UINT64不是boost的成员

时间:2016-11-22 07:16:00

标签: c++ visual-studio-2012 boost

我在使用VS2012下的boost 1_62_0编译我们的程序时遇到了一些问题。我以前在VS2015下进行了这个编译我相信(但无法验证这一点)。

我打开/showIncludes以了解问题究竟在哪里,并且我已将其范围缩小到包含来自VS2012的typeindex包括:

Note: including file:          C:\PROGRA~2\MICROS~3.0\VC\include\crtdefs.h^M
Note: including file:        \\COMPILESERVER\BASENT\dev\lib\src\third_party\boost\boost_latest_win64_vs2012\boost/limits.hpp^M
Note: including file:       \\COMPILESERVER\BASENT\dev\lib\src\third_party\boost\boost_latest_win64_vs2012\boost/limits.hpp^M
Note: including file:       \\COMPILESERVER\BASENT\dev\lib\src\third_party\boost\boost_latest_win64_vs2012\boost/type_traits/is_enum.hpp^M
Note: including file:       \\COMPILESERVER\BASENT\dev\lib\src\third_party\boost\boost_latest_win64_vs2012\boost/type_traits/is_integral.hpp^M
Note: including file:       \\COMPILESERVER\BASENT\dev\lib\src\third_party\boost\boost_latest_win64_vs2012\boost/utility/enable_if.hpp^M
Note: including file:       \\COMPILESERVER\BASENT\dev\lib\src\third_party\boost\boost_latest_win64_vs2012\boost/cstdint.hpp^M
Note: including file:       C:\PROGRA~2\MICROS~3.0\VC\include\typeindex^M
\\COMPILESERVER\BASENT\dev\lib\src\third_party\boost\boost_latest_win64_vs2012\boost/functional/hash/hash.hpp(236) : error C2039: 'UINT64' : is not a member of 'boost'^M
\\COMPILESERVER\BASENT\dev\lib\src\third_party\boost\boost_latest_win64_vs2012\boost/functional/hash/hash.hpp(237) : error C2039: 'UINT64' : is not a member of 'boost'^M
Note: including file:       \\COMPILESERVER\BASENT\dev\lib\src\third_party\boost\boost_latest_win64_vs2012\boost/functional/hash/extensions.hpp^M

使用#pragma消息,我可以在cstdint.hpp中的boost命名空间中验证它有using ::uint64_t

有关如何解决此问题的任何想法?

1 个答案:

答案 0 :(得分:3)

确实这闻起来像一个MACRO。

你应该找出哪个标题定义类似

#define uint64_t UINT64

您可以保存失败转换单元的预处理器输出以找到它。