MSVC 14:std :: type_info在没有异常的情况下构建时不可用

时间:2016-03-03 17:15:55

标签: c++ visual-studio exception visual-studio-2015 rtti

我正在使用MSVC 19.0.23506.0并且无异常地构建:

  • 定义_HAS_EXCEPTIONS = 0
  • 通过CMake删除了异常处理:

    string(REGEX REPLACE "/EHsc" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")

    这意味着CXX标志如下:

    /DWIN32 /D_WINDOWS /GR /W4 /MP

以下最小示例足以重现我的错误:

#include <typeinfo>

int main(int, char**)
{
    std::type_info* ptr = nullptr;
    return 0;
}

编译上面的示例会导致以下错误:

main.cpp(6): error C2039: 'type_info': is not a member of 'std'

为什么MSVC在禁用异常时禁用对type_ids的支持,尽管通过/GR标志启用了RTTI的使用。 (看起来它取代了整个vcruntime_typeinfo.h标头以删除type_info定义。)

0 个答案:

没有答案