There are a number of inline member functions in boost::filesystem::path that have different implementations depending on the definition of BOOST_FILESYSTEM_VERSION. When compiling boost.filesystem, BOOST_FILESYSTEM_VERSION is always set to 4. If a program uses boost.filesystem with BOOST_FILESYSTEM_VERSION set to 3, which is the default, then I believe this is an ODR violation because the program now has multiple definitions of the same function that do not consist of the same sequence of tokens.
There are a number of inline member functions in
boost::filesystem::paththat have different implementations depending on the definition ofBOOST_FILESYSTEM_VERSION. When compiling boost.filesystem,BOOST_FILESYSTEM_VERSIONis always set to 4. If a program uses boost.filesystem withBOOST_FILESYSTEM_VERSIONset to 3, which is the default, then I believe this is an ODR violation because the program now has multiple definitions of the same function that do not consist of the same sequence of tokens.