我尝试编译简单代码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 (是不是?),但它什么都没有。