Boost tribool causing right to left conditional evaluation in C++
问题 To my knowledge, C++ always evaluates from left to right in a conditional statement if(A, B, C) A would be evaluated first, B second, so on. However, the following example is exhibiting some odd behavior. #include <iostream> #include <map> #include <memory> #include <vector> #include <boost/logic/tribool.hpp> //-//////////////////////////////////////////// // File Block class FileBlock { public: FileBlock(); virtual ~FileBlock(); bool linked(); std::vector<int> messages_; private: boost: