2016-11-22 4 views
1

私はVS2012の下でブースト1_62_0を使用して私たちのプログラムの1つをコンパイルするいくつかの問題にぶつかっています。私はこれまでVS2015の下でこのコンパイルを行っていましたが、これを確認することはできません。UINT64は昇圧のメンバーではありません

含まれて私はまさにその問題を持つ場所のアイデアを得るために/showIncludesオン、と私はVS2012からtypeindexを含めることにそれを絞り込むました:

の#pragmaメッセージを使用して
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 

を、私ができますcstdint.hppのブーストネームスペース内にusing ::uint64_tがあることを確認してください。

これを修正する方法はありますか?

+4

':: uint64_t'は、具体的には*グローバル*ネームスペースを指します。ブーストの名前ではありません。 –

+2

マクロラットのようなにおいがします。しかし、最初にする必要があるのは、4歳のBoostバージョンです。このような古いコンパイラで1.62が動作することを期待しているのはあまりにも楽観的です。 〜1.53を目指してください –

+2

@HansPassant私はまず問題を解決したいと思います。私はかなり肯定的です。ブーストは 'UINT64'を使用したり宣言したりしていません。また、1.62.0はまだVC8(VS2005)をサポートしています。 – sehe

答えて

3

これはMACROのような臭いです。

あなたは、あなたがこれを見つけることができなかっ翻訳単位のプリプロセッサの出力を保存することができます

#define uint64_t UINT64 

のようなものを定義しているヘッダを見つける必要があります。

関連する問題