Hi, I want to pass data to a thread function. My question is- what is wrong with this code? The compiler error output is: "error: function returning a function". In the code below I am trying to pass an int to the thread function. // ------------- code: how to pass data to the thread ? ---------------- #include <boost/thread/thread.hpp> #include <boost/bind.hpp> #include <iostream> using namespace std; class TestThread { public: void thread(int a); void CreateThreads(void); }; void TestThread::thread(int a) { cout << "I am thread " << a << endl; } void TestThread::CreateThreads() { boost::thread t1( boost::bind( &TestThread::thread, 10)); boost::thread t2( boost::bind( &TestThread::thread, 20)); // wait for the thread to finish t1.join(); t2.join(); } int main() { TestThread t; t.CreateThreads(); }