id summary reporter owner description type status milestone component version severity resolution keywords cc 12680 Inheriting constructors from Boost.Variant should be possible djh Antony Polukhin "Suppose users want a strong typedef for their sumtypes. Instead of creating a weak type alias for a boost::variant the user should be able to inherit from the variant inheriting its constructors, too. {{{ using TreeBase = boost::variant>; struct Tree : TreeBase { using TreeBase::TreeBase; // ... }; }}} Here is the full small self-contained example https://gist.github.com/daniel-j-h/12c8b7f1c59b5a76c7e75dab38eb06fe#file-crash-cc GCC crashing on this is ticketed upstream https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78767 Creating a new type for this use-case provides the user with type safety and should be the recommended way of using variant in any non-trivial code. Unfortunately, inheriting from Boost.Variant is not possible at the moment. The code example above does not compile. In the Boost IRC channel Agustín Bergé told me this might be related to inheriting constructors with default arguments and that there are quirks related to SFINAE before C++17." Bugs closed Boost 1.64.0 variant Boost 1.62.0 Problem fixed