1

Visual Studio で Cuda 5 プロジェクト (VC++) を作成しましたが、boost chrono API を使用したいと考えています。を含めるboost/chrono.hppと、次のエラーが発生します。

Error   89  error C2675: unary '-' : 'T' does not define this operator or a conversion to a
 type acceptable to the predefined operator D:\StandaloneApp\Library\Vc\boost_1_52_0\boost\ratio\detail\mpl\abs.hpp
68  1   ThrustCompareSoaAndAos

68行目あたりのコードブロック:

#if defined(BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC_2)
namespace aux {
template< typename T, T n > struct abs_wknd
{
    BOOST_STATIC_CONSTANT(T, value = (n < 0 ? -n : n));
    typedef integral_c<T,value> type; // line 68
};
}
#endif

このエラーの原因は何ですか?

4

1 に答える 1

1

次の行を変更しました: BOOST_STATIC_CONSTANT(T, value = (n < 0 ? -n : n)); BOOST_STATIC_CONSTANT(T, 値 = (n < 0 ? (n * -1) : n));

これは準拠しました。

于 2014-04-23T13:16:30.477 に答える