相关疑难解决方法(0)

std :: chrono和cout

我有一个愚蠢的问题.我尝试切换到c ++ 11标头,其中一个是chrono.但我的问题是我无法控制时间操作的结果.例如:

auto t=std::chrono::high_resolution_clock::now();
cout<<t.time_since_epoch();
Run Code Online (Sandbox Code Playgroud)

得到:

初始化‘std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&&, const _Tp&) [with _CharT = char, _Traits = std::char_traits<char>, _Tp = std::chrono::duration<long int, std::ratio<1l, 1000000l> >]’ ... /usr/include/c++/4.6/ostream的 参数1

cout<<(uint64_t)t.time_since_epoch();
Run Code Online (Sandbox Code Playgroud)

给出无效的演员

c++ time c++11 c++-chrono

31
推荐指数
4
解决办法
4万
查看次数

std :: vector:无法将'std :: ostream {aka std :: basic_ostream <char>}'左值绑定到'std :: basic_ostream <char> &&'

尝试做一些简单的事情时,我遇到了一个令人困惑的错误消息

std::cout << std::vector<int>{1,2,3};
Run Code Online (Sandbox Code Playgroud)

这说

 cannot bind 'std::ostream {aka std::basic_ostream<char>}' lvalue to 'std::basic_ostream<char>&&'
 int main() {  std::cout << std::vector<int>{1,2,3}; }
Run Code Online (Sandbox Code Playgroud)

(使用gcc-4.8.1和-std = c ++ 11测试)

SO有类似的问题,如重载运算符<<:无法将左值绑定到'std :: basic_ostream <char> &&',这是关于某些带嵌套类的用户定义类.还有一个工作围绕这个问题的公认答案.

但我不知道这是否适用std::vector.有人可以解释为什么会发生这种错误std::vector,以及如何解释它?

谢谢

c++ gcc iostream stl c++11

21
推荐指数
2
解决办法
3万
查看次数

标签 统计

c++ ×2

c++11 ×2

c++-chrono ×1

gcc ×1

iostream ×1

stl ×1

time ×1