我需要专门研究std::thread模板化构造函数。
以下代码使用g++可以很好地编译,而在使用clang++(6.0)进行编译时则失败。
#include <thread>
class MyThread
{
public:
void start()
{
run();
}
virtual void run(void) {};
};
namespace std
{
template<>
thread::thread<MyThread*>(MyThread*&&)
{
}
}
int main(int argc, char *argv[])
{
std::thread myThread(new MyThread);
return 0;
}
我收到以下错误:
thr2.cpp:18:17: error: expected unqualified-id
thread::thread<MyThread*>(MyThread*&&)
您有什么想法可能是什么问题吗?
问候,
垫
最佳答案
这是不合法的。您可以为每个[namespace.constraints]\2添加规格
但是,[namespace.constraints]\4继续指出
所以你不能这样做。
关于c++ - std::thread构造函数“特化”。 g++与clang++,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50236242/