mirror of
https://github.com/boostorg/thread.git
synced 2026-01-21 17:32:18 +00:00
38 lines
1023 B
C++
38 lines
1023 B
C++
// Copyright (C) 2001-2003
|
|
// William E. Kempf
|
|
//
|
|
// Permission to use, copy, modify, distribute and sell this software
|
|
// and its documentation for any purpose is hereby granted without fee,
|
|
// provided that the above copyright notice appear in all copies and
|
|
// that both that copyright notice and this permission notice appear
|
|
// in supporting documentation. William E. Kempf makes no representations
|
|
// about the suitability of this software for any purpose.
|
|
// It is provided "as is" without express or implied warranty.
|
|
|
|
#include <boost/thread/thread.hpp>
|
|
#include <boost/ref.hpp>
|
|
#include <iostream>
|
|
|
|
class factorial
|
|
{
|
|
public:
|
|
factorial(int x) : x(x), res(0) { }
|
|
void operator()() { res = calculate(x); }
|
|
int result() const { return res; }
|
|
|
|
private:
|
|
int calculate(int x) { return x <= 1 ? 1 : x * calculate(x-1); }
|
|
|
|
private:
|
|
int x;
|
|
int res;
|
|
};
|
|
|
|
int main()
|
|
{
|
|
factorial f(10);
|
|
boost::thread thrd(boost::ref(f));
|
|
thrd.join();
|
|
std::cout << "10! = " << f.result() << std::endl;
|
|
}
|