id summary reporter owner description type status milestone component version severity resolution keywords cc 13037 is missing include Adam Badura Antony Polukhin "Trivial demonstration can be made by preparing a source file containing nothing but an inclusion of the `polymorphic_get.hpp`: {{{#!c++ #include }}} on GCC 6.3 with options `-Wall -Wextra -std=c++14` compiling such file produces errors: {{{ In file included from Test.cpp:1:0: /cygdrive/c/Programming/boost_1_64_0/boost/variant/polymorphic_get.hpp: In member function ‘boost::detail::variant::get_polymorphic_visitor::pointer boost::detail::variant::get_polymorphic_visitor::operator()(U&) const’: /cygdrive/c/Programming/boost_1_64_0/boost/variant/polymorphic_get.hpp:121:18: error: ‘is_const’ is not a member of ‘boost’ (boost::is_const::value || !boost::is_const::value) ^~~~~ /cygdrive/c/Programming/boost_1_64_0/boost/variant/polymorphic_get.hpp:121:18: note: suggested alternative: In file included from /usr/lib/gcc/x86_64-pc-cygwin/6.3.0/include/c++/bits/move.h:57:0, from /usr/lib/gcc/x86_64-pc-cygwin/6.3.0/include/c++/bits/nested_exception.h:40, from /usr/lib/gcc/x86_64-pc-cygwin/6.3.0/include/c++/exception:171, from /cygdrive/c/Programming/boost_1_64_0/boost/variant/polymorphic_get.hpp:15, from Test.cpp:1: /usr/lib/gcc/x86_64-pc-cygwin/6.3.0/include/c++/type_traits:652:12: note: ‘std::is_const’ struct is_const ^~~~~~~~ In file included from Test.cpp:1:0: /cygdrive/c/Programming/boost_1_64_0/boost/variant/polymorphic_get.hpp:121:41: error: ‘::value’ has not been declared (boost::is_const::value || !boost::is_const::value) ^~ /cygdrive/c/Programming/boost_1_64_0/boost/variant/polymorphic_get.hpp:121:53: error: ‘is_const’ is not a member of ‘boost’ (boost::is_const::value || !boost::is_const::value) ^~~~~ /cygdrive/c/Programming/boost_1_64_0/boost/variant/polymorphic_get.hpp:121:53: note: suggested alternative: In file included from /usr/lib/gcc/x86_64-pc-cygwin/6.3.0/include/c++/bits/move.h:57:0, from /usr/lib/gcc/x86_64-pc-cygwin/6.3.0/include/c++/bits/nested_exception.h:40, from /usr/lib/gcc/x86_64-pc-cygwin/6.3.0/include/c++/exception:171, from /cygdrive/c/Programming/boost_1_64_0/boost/variant/polymorphic_get.hpp:15, from Test.cpp:1: /usr/lib/gcc/x86_64-pc-cygwin/6.3.0/include/c++/type_traits:652:12: note: ‘std::is_const’ struct is_const ^~~~~~~~ In file included from Test.cpp:1:0: /cygdrive/c/Programming/boost_1_64_0/boost/variant/polymorphic_get.hpp:121:68: warning: logical not is only applied to the left hand side of comparison [-Wlogical-not-parentheses] (boost::is_const::value || !boost::is_const::value) ^ /cygdrive/c/Programming/boost_1_64_0/boost/variant/polymorphic_get.hpp:121:71: error: ‘::value’ has not been declared (boost::is_const::value || !boost::is_const::value) ^~ /cygdrive/c/Programming/boost_1_64_0/boost/variant/polymorphic_get.hpp:125:9: error: template argument 2 is invalid > tag_t; ^ }}} Workaround it trivial - one needs to include `is_const.hpp` before including `polymorphic_get.hpp`: {{{#!c++ #include #include }}}" Bugs closed Boost 1.65.0 variant Boost 1.64.0 Problem fixed variant