title: "too few arguments to function" in boost thread
body: <p>I am trying to develop a stereoscopic vision system. I am receiving the messages below whenever I try to build my code:</p>
  
  <pre><code>   ***** Build of configuration Debug for project RicoCameraCpp ****
  
      make all 
      Building file: ../main.cpp
      Invoking: Cross G++ Compiler
      g++ -I/home/ux/Downloads -I/usr/local/boost_1_52_0/boost -I/usr/local/boost_1_52_0 -    I/home/ux/Downloads/opencv2 -include/home/ux/Downloads/opencv2/opencv_modules.hpp -include/usr/local/boost_1_52_0/boost/thread.hpp -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"main.d" -MT"main.d" -o "main.o" "../main.cpp"
  In file included from /usr/local/boost_1_52_0/boost/thread/thread.hpp:22:0,
                   from /usr/local/boost_1_52_0/boost/thread.hpp:13,
                   from &lt;command-line&gt;:0:
  /usr/local/boost_1_52_0/boost/thread/detail/thread.hpp: In member function ‘void boost::detail::thread_data&lt;F&gt;::run() [with F = int (*)(int, char**)]’:
  ../main.cpp:81:1:   instantiated from here
      /usr/local/boost_1_52_0/boost/thread/detail/thread.hpp:78:17: error: too few arguments to function
      /usr/local/boost_1_52_0/boost/system/error_code.hpp: At global scope:
      /usr/local/boost_1_52_0/boost/system/error_code.hpp:214:36: warning: ‘boost::system::posix_category’ defined but not used [-Wunused-variable]
      /usr/local/boost_1_52_0/boost/system/error_code.hpp:215:36: warning:     ‘boost::system::errno_ecat’ defined but not used [-Wunused-variable]
      /usr/local/boost_1_52_0/boost/system/error_code.hpp:216:36: warning:     ‘boost::system::native_ecat’ defined but not used [-Wunused-variable]
      make: *** [main.o] Error 1
  
      **** Build Finished *****
  </code></pre>
  
  <p>Here's my code:</p>
  
  <pre><code>#include "cstdlib"
  #include "cmath"
  #include "opencv/cv.h"
  #include "opencv/highgui.h"
  #include "boost/thread.hpp"
  #include &lt;iostream&gt;
  
  using namespace std;
  using namespace boost;
  using namespace cv;
  
  int firstCam( int argc, char** argv )
  {
      //initilize first camera
      CvCapture* captureRightCam = cvCaptureFromCAM(0);
  
      //check if first camera is available
      if(!captureRightCam)
          {
          cout &lt;&lt; "No first camera to capture\n";
              return(-1);
          }
  
      //create right window
      cvNamedWindow( "Right Cam", CV_WINDOW_AUTOSIZE );
  
      //display frames for every cvWaitKey duration
      while ( 1 )
          {
              //get frames
          IplImage* rightFrame = cvQueryFrame( captureRightCam );
  
          //check if captured
          if ( !rightFrame )
          {
              fprintf( stderr, "ERROR: frame is null...\n" );
              getchar();
              break;
          }
          //show frames inside the windows
          cvShowImage( "Right Cam", rightFrame );
          cvWaitKey(150);
      }
  //release and destroy windows
  cvReleaseCapture( &amp;captureRightCam );
  cvDestroyWindow( "Right Cam" );
  return 0;
  }
  
  int secondCam( int argc, char** argv )
  {
  CvCapture* captureLeftCam = cvCaptureFromCAM(1);
  if(!captureLeftCam)
      {
          cout &lt;&lt; "No second camera to capture\n";
          return(-1);
      }
  cvNamedWindow( "Left Cam", CV_WINDOW_AUTOSIZE );
  while ( 1 )
      {
          IplImage* leftFrame = cvQueryFrame( captureLeftCam );
          if ( !leftFrame )
          {
              fprintf( stderr, "ERROR: frame is null...\n" );
              getchar();
              break;
          }
          cvShowImage( "Left Cam", leftFrame );
          cvWaitKey(150);
      }
  cvReleaseCapture( &amp;captureLeftCam );
  cvDestroyWindow( "Left Cam" );
  return 0;
  }
  
  int main()
  {
  boost::thread t1(firstCam);
  boost::thread t2(secondCam);
  return 0;
  }
  </code></pre>
  
  <p>What am I doing wrong?</p>