对decltype(nullptr)的typeinfo的未定义引用

时间:2015-07-23 06:30:23

标签: c++ c++11 exception clang c++14

我尝试编译简单代码int main() { throw nullptr; }并收到错误:

/tmp/main-ea26ec.o: In function `main':
main.cpp:(.text+0x13): undefined reference to `typeinfo for decltype(nullptr)'
clang: error: linker command failed with exit code 1 (use -v to see invocation)

命令行是:clang++ -std=gnu++1z -stdlib=libc++ -Ofast -march=native -Weverything -Wno-c++98-compat -Wno-c++98-compat-pedantic -Wno-newline-eof main.cpp -o a && ./a clang ++ 版本为clang version 3.6.0 (tags/RELEASE_360/final 235480)(来自coliru)。

我查看了相关问题,virtual函数存在问题,但类型std::nullptr_t不是类,也没有成员函数。

错误的来源是什么?

我还尝试添加auto const & unused = typeid(std::nullptr_t);来为nullptr强制生成 typeinfo (是不是?),但它什么都没有。

0 个答案:

没有答案