Prior to this update, a number of boost libraries were not compatible with the GNU Compiler Collection (GCC) provided with Red Hat Developer Toolset. A fix has been implemented to address this problem and the affected libraries now properly work with Red Hat Developer Toolset GCC.
Description of problem:
Some boost libraries are not compatible with devtoolset.
For example, one cannot use C++11 features and #include boost/filesystem/operations.hpp, see below.
~$ rpm -q boost-filesystem devtoolset-2-gcc
boost-filesystem-1.41.0-18.el6.x86_64
devtoolset-2-gcc-4.8.2-15.el6.x86_64
~$ cat boost_filesystem.cc
#include <boost/filesystem/operations.hpp>
~$ scl enable devtoolset-2 'g++ -c -std=c++0x boost_filesystem.cc'
In file included from /usr/include/boost/filesystem/path.hpp:23:0,
from /usr/include/boost/filesystem/operations.hpp:17,
from boost_filesystem.cc:1:
/usr/include/boost/throw_exception.hpp: In instantiation of \u2018void boost::throw_exception(const E&) [with E = boost::filesystem::basic_filesystem_error<boost::filesystem::basic_path<std::basic_string<char>, boost::filesystem::path_traits> >]\u2019:
/usr/include/boost/filesystem/operations.hpp:281:55: required from \u2018typename boost::enable_if<boost::filesystem::is_basic_path<Path>, boost::filesystem::file_status>::type boost::filesystem::symlink_status(const Path&) [with Path = boost::filesystem::basic_path<std::basic_string<char>, boost::filesystem::path_traits>; typename boost::enable_if<boost::filesystem::is_basic_path<Path>, boost::filesystem::file_status>::type = boost::filesystem::file_status]\u2019
/usr/include/boost/filesystem/operations.hpp:287:45: required from here
/usr/include/boost/throw_exception.hpp:64:56: error: use of deleted function \u2018boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::filesystem::basic_filesystem_error<boost::filesystem::basic_path<std::basic_string<char>, boost::filesystem::path_traits> > > >::clone_impl(const boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::filesystem::basic_filesystem_error<boost::filesystem::basic_path<std::basic_string<char>, boost::filesystem::path_traits> > > >&)\u2019
(... many more errors ...)
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory, and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.
http://rhn.redhat.com/errata/RHBA-2014-1440.html
Description of problem: Some boost libraries are not compatible with devtoolset. For example, one cannot use C++11 features and #include boost/filesystem/operations.hpp, see below. ~$ rpm -q boost-filesystem devtoolset-2-gcc boost-filesystem-1.41.0-18.el6.x86_64 devtoolset-2-gcc-4.8.2-15.el6.x86_64 ~$ cat boost_filesystem.cc #include <boost/filesystem/operations.hpp> ~$ scl enable devtoolset-2 'g++ -c -std=c++0x boost_filesystem.cc' In file included from /usr/include/boost/filesystem/path.hpp:23:0, from /usr/include/boost/filesystem/operations.hpp:17, from boost_filesystem.cc:1: /usr/include/boost/throw_exception.hpp: In instantiation of \u2018void boost::throw_exception(const E&) [with E = boost::filesystem::basic_filesystem_error<boost::filesystem::basic_path<std::basic_string<char>, boost::filesystem::path_traits> >]\u2019: /usr/include/boost/filesystem/operations.hpp:281:55: required from \u2018typename boost::enable_if<boost::filesystem::is_basic_path<Path>, boost::filesystem::file_status>::type boost::filesystem::symlink_status(const Path&) [with Path = boost::filesystem::basic_path<std::basic_string<char>, boost::filesystem::path_traits>; typename boost::enable_if<boost::filesystem::is_basic_path<Path>, boost::filesystem::file_status>::type = boost::filesystem::file_status]\u2019 /usr/include/boost/filesystem/operations.hpp:287:45: required from here /usr/include/boost/throw_exception.hpp:64:56: error: use of deleted function \u2018boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::filesystem::basic_filesystem_error<boost::filesystem::basic_path<std::basic_string<char>, boost::filesystem::path_traits> > > >::clone_impl(const boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::filesystem::basic_filesystem_error<boost::filesystem::basic_path<std::basic_string<char>, boost::filesystem::path_traits> > > >&)\u2019 (... many more errors ...)