BOOST 奇怪的编译错误 boost/asio/detail/consuming_buffers.hpp:105:65: error

 

在我的项目工程代码内#include <boost/asio.hpp>后导致了编译报错:

BOOST  <boost/asio.hpp> 奇怪的编译错误 boost/asio/detail/consuming_buffers.hpp:105:65: error

./include/boost/asio/detail/consuming_buffers.hpp: In member function 'boost::asio::detail::consuming_buffers<Buffer, Buffers, Buffer_Iterator>::prepared_buffers_type boost::asio::detail::consuming_buffers<Buffer, Buffers, Buffer_Iterator>::prepare(std::size_t)':
./include/boost/asio/detail/consuming_buffers.hpp:105:65: error: '.' cannot appear in a constant-expression
./include/boost/asio/detail/consuming_buffers.hpp:105:50: error: parse error in template argument list

这里应该是没问题的,这可是boost库源码,百度百科查看C++运算符优先级后,觉得这里也是没问题的。

痛哭很久,意外地修改后,解决了该编译报错。修改方法:使用圆括号括起来。 

BOOST  <boost/asio.hpp> 奇怪的编译错误 boost/asio/detail/consuming_buffers.hpp:105:65: error

怎么会需要使用圆括号来括一下啊,理论上完全没必要啊!

难道我的编译器对于C++标准的运算符优先级有鬼? 我当前使用的是基于mips的一个g++的交叉编译器,公司里还没有人用过这个,我对这个编译器心里也没底。

来尝试一下,专门做个小实验:

BOOST  <boost/asio.hpp> 奇怪的编译错误 boost/asio/detail/consuming_buffers.hpp:105:65: error

实测,小实验编译没问题,这说明我当前的mips编译器对于C++标准运算符优先级的完全遵守的啊。

算了,不深究了, 遇到奇怪问题,先行在此,做个简要笔记吧。

 

 

 

.

上一篇:服务器断电重启后,oracle数据库登陆报错:ora-01033。修复数据文件后,报错ORA-00600:


下一篇:Spring Data Buffers and Codecs