将std :: thread添加到预先存在的项目中

时间:2016-12-13 04:29:00

标签: c++ multithreading cmake

我正在处理我给出的示例c ++,并且我正在尝试为该程序添加线程。

如果程序中的任何地方我添加以下内容:

#include <thread>

void someFunction () {
    std::thread t([]() {std::cout << "Hello" << std::endl; });
}

无法使用错误进行编译:

1>C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\thread(48): error C3083: 'std': the symbol to the left of a '::' must be a type
1>  C:\Users\Dennis Jeong\Documents\Stanford\CS148\cs148-raytracer\common\RayTracer.cpp(20): note: see reference to function template instantiation 'std::thread::thread<RayTracer::Run::<lambda_d2fd5ec539e104442fc3c5987873ac7f>,,void>(_Fn &&)' being compiled
1>          with
1>          [
1>              _Fn=RayTracer::Run::<lambda_d2fd5ec539e104442fc3c5987873ac7f>
1>          ]

但是,如果我在visual studio中创建一个新的c ++项目,这是有效的。

错误可能在哪里?

如果有用,则cmake文件位于: https://gist.github.com/w0nche0l/aef2a112b596f489705441f429e725b5

编辑:另外,我确定它不是导致此错误的lambda语法,因为我可以在没有线程的情况下创建和运行lambda。

0 个答案:

没有答案