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

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

./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++运算符优先级后,觉得这里也是没问题的。

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

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

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

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

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

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

.

/************* 社会的有色眼光是:博士生、研究生、本科生、车间工人; 重点大学高材生、普通院校、二流院校、野鸡大学; 年薪百万、五十万、五万; 这些都只是帽子,可以失败千百次,但我和社会都觉得,人只要成功一次,就能换一顶帽子,只是社会看不见你之前的失败的帽子。 当然,换帽子决不是最终目的,走好自己的路就行。 杭州.大话西游 *******/
原文地址:https://www.cnblogs.com/happybirthdaytoyou/p/13883491.html