编译器看不到 C++11 标识符
Compiler doesn't see the C++11 identifiers
当我尝试构建 Google 测试 c++ 项目时,我遇到了错误
Error C3861 't1': identifier not found
Error C2065 't1': undeclared identifier
Error C2039 'thread': is not a member of 'std'
Error C2065 'thread': undeclared identifier
Error C2146 syntax error: missing ';' before identifier 't1'
我的测试代码是:
#include <future>
#include <thread>
#include "pch.h"
TEST(...)
{
// preconditions here
std::thread t1([&] {
Sleep(100);
testee.enqueue(item);
});
t1.join();
// other logic
}
为什么我不能在我的项目中使用 std::thread 和其他 C++11 功能?我该怎么做?
Why I cannot use the std::thread and other C++11 features in my project?
潜在原因 1:除非使用 C++11 或更高版本的标准,否则无法使用 C++11 功能。
潜在原因 2:除非包含定义 std::thread
的 header,否则不能使用 std::thread
。它在 header <thread>
.
中定义
#include "pch.h"
必须是第一个。 #include "pch.h"
之前的其他 #include 指令将被忽略。
关于pch.h,可以参考这个。我在VS2019测试了你上传的代码,代码没有错误。结果如图。
#include <iostream>
#include <future>
#include <thread>
#include<Windows.h>
int main()
{
std::thread t1([&] {
Sleep(1000);
});
t1.join();
}
关于C++11的使用,可以在项目属性>配置属性>通用>C++语言标准中设置。我建议你使用C++14,因为C++14已经包含了C++11的特性。
当我尝试构建 Google 测试 c++ 项目时,我遇到了错误
Error C3861 't1': identifier not found
Error C2065 't1': undeclared identifier
Error C2039 'thread': is not a member of 'std'
Error C2065 'thread': undeclared identifier
Error C2146 syntax error: missing ';' before identifier 't1'
我的测试代码是:
#include <future>
#include <thread>
#include "pch.h"
TEST(...)
{
// preconditions here
std::thread t1([&] {
Sleep(100);
testee.enqueue(item);
});
t1.join();
// other logic
}
为什么我不能在我的项目中使用 std::thread 和其他 C++11 功能?我该怎么做?
Why I cannot use the std::thread and other C++11 features in my project?
潜在原因 1:除非使用 C++11 或更高版本的标准,否则无法使用 C++11 功能。
潜在原因 2:除非包含定义 std::thread
的 header,否则不能使用 std::thread
。它在 header <thread>
.
#include "pch.h"
必须是第一个。 #include "pch.h"
之前的其他 #include 指令将被忽略。
关于pch.h,可以参考这个
#include <iostream>
#include <future>
#include <thread>
#include<Windows.h>
int main()
{
std::thread t1([&] {
Sleep(1000);
});
t1.join();
}
关于C++11的使用,可以在项目属性>配置属性>通用>C++语言标准中设置。我建议你使用C++14,因为C++14已经包含了C++11的特性。