You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It would be nice if there would be some magic option that will allow to build boost::log with std::filesystem instead of boost::filesystem. This will help with symbol problems in static configuration caused by BOOST_FILESYSTEM_VERSION define.
The text was updated successfully, but these errors were encountered:
Some public methods in boost::filesystem are marked as inline and have different implementation depending on BOOST_FILESYSTEM_VERSION. From Microsoft documentation: "The compiler treats the inline expansion options and keywords as suggestions. There's no guarantee that functions will be inlined. You can't force the compiler to inline a particular function, even with the __forceinline keyword. "
In some rare cases these simple one-liners aren't being inlined. So if boost is used as static library (users of shared libraries are safe :)), it might lead to situations when wrong version of method is linked in final binary. For example, if libboost_filesystem.lib has this "inlined" method with v4 and user's code (.obj/.lib files) expects that v3 will be called.
I've already replaced all boost::filesystem usages from my code, only transitive boost::process and boost::log are left.
boost::process will have "BOOST_PROCESS_USE_STD_FS" in next version.
It would be nice if it would be possible to have similar define in boost::log.
It would be nice if there would be some magic option that will allow to build boost::log with std::filesystem instead of boost::filesystem. This will help with symbol problems in static configuration caused by BOOST_FILESYSTEM_VERSION define.
The text was updated successfully, but these errors were encountered: