用asio进行C++11类型的推导
C++11 type deduce with asio
我正在使用boost::asio::steady_timer _timer
,但我发现如果使用-std=c++11标志,编译器将在以下位置报告无法转换类型的错误:
boost::asio::steady_timer::time_point now() {
return boost::asio::steady_timer::clock_type::now();
}
操作员+()在处没有匹配功能
_timer.expires_at(now()+boost::chrono::milliseconds(100));
编译器似乎无法在c++11模式下推导出正确的类型。但我使用
boost::asio::basic_waitable_timer<boost::chrono::steady_clock> _timer;
并更改boost::asio::steady_timer::time_point
到boost::chrono::steady_clock::time_point
这是可以的。然而,它们是一样的,在没有0x或11模式的g++中工作得很好。
C++11是否对typedef推导做了一些不同的事情?或者是升压配置问题?
basic_waitable_timer
类可以与std::chrono
或boost::chrono
一起使用。在最近的g++上,默认情况下使用std::chrono
。要强制使用boost::chrono
,请定义BOOST_ASIO_DISABLE_STD_CHRONO
。
相关文章:
- C++11 中不同类型的对象的 std::array 的替代方案
- 强枚举类型定义:Clang Bug 还是 C++11 标准不确定性?
- c++ 11 带有 decltype 的尾随返回类型无法按预期工作
- 在 C++11 函数中使用尾随返回类型的优点
- 使用C++11标准的哪些规则来确定({..})中表达式的类型
- 带有void类型和参数的C++11模板专用化
- 从迭代器转换为变量的类型.(C++11 模板)
- C++11: Atomic::compare_exchange_weak 是否支持非基元类型?
- C++11 与不同类型的随机分布共享相同的函数
- 在 C++11 标准中,为什么要依赖 char 类型实现?
- 使用 (c++11) 声明类型时放置 __declspec(dllimport) 关键字的位置
- C++11中的自动类型扣除和类型转换有什么区别
- C++11 标准中的哪一部分规定了基元数据类型大小之间的相对顺序?
- C++11 按 POD 类型的值传递比常量引用差
- OpenCL 矢量类型:在启用 C++11 的情况下无法访问联合组件 x,y,z
- 使用 C++11 C++不同输入类型的可变参数模板
- 在运行时C++11 个索引模板参数包,以便访问第 N 种类型
- 找出函子的返回类型 C++11Boost
- 具有更高含义的简单类型(C++11)
- 如何从boost::bind的类型中获取参数类型(c++11不可用)