mik*_*keg 1 c++ compiler-errors type-conversion c++11 c++-chrono
我得到以下编译器(vs2012)错误:
错误3错误C2679:二进制'+ =':找不到运算符,它采用类型为'const std :: chrono :: duration <_Rep,_Period>'的右手操作数(或者没有可接受的转换)c:\ program files(x86)\ microsoft visual studio 11.0\vc\include\chrono 749
我对持续时间的定义是:
// Tick interval type in nanoseconds
typedef std::chrono::duration<double, std::ratio<1, 100000000>> tick_interval_type;
Run Code Online (Sandbox Code Playgroud)
当我使用float时出现相同的错误...它仅在Rep类型的持续时间为整数时编译.
有人可以帮忙吗?
编辑(从输出更完整的日志):
c:\ program files(x86)\ microsoft visual studio 11.0\vc\include\chrono(749):error C2679:binary'+ =':找不到运算符,它采用类型为'const std :: chrono的右手操作数:: duration <_Rep,_Period>'(或没有可接受的转换)[_ Red = double,_Period = std :: nano] c:\ program files(x86)\ microsoft visual studio 11.0\vc\include\chrono( 166):可能是'std :: chrono :: duration <_Rep,_Period>&std :: chrono :: duration <_Rep,_Period> :: operator + =(const std :: chrono :: duration <_Rep,_Period>& )'与[_Rep = __ int64,_ Period = std :: nano]同时尝试将参数列表'(std :: chrono :: nanoseconds,const std :: chrono :: duration <_Rep,_Period>)与[_Rep]匹配= double,_Period = std :: nano] c:\ program files(x86)\ microsoft visual studio 11.0\vc\include\thread(164):参见函数模板实例化'xtime std :: _ To_xtime(const std :: chrono :: duration <_Rep,_Period>&)'用[_Rep = double,_Period = std :: nano]编译c:\ dev\projects\revolverx\classes\ticker.h(78):见re 函数模板实例化'void std :: this_thread :: sleep_for(const std :: chrono :: duration <_Rep,_Period>&)'用[_Rep = double,_Period = std :: nano]编译