id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 11323,is_virtual_base_of fails to build when virtual bases and their ancestors define identical virtual functions,leandro.gracia.gil@…,John Maddock,"The following code snippet fails to build in clang 6.0: {{{ #include #include struct A { virtual void foo() {} }; struct B : public virtual A { virtual void foo() {} }; struct C : public B {}; int main() { std::cout << boost::is_virtual_base_of::value << std::endl; return 0; } }}} This is the compiler error it throws: {{{ /usr/local/include/boost/type_traits/is_virtual_base_of.hpp:55:12: error: virtual function 'A::foo' has more than one final overrider in 'boost_type_traits_internal_struct_X' struct boost_type_traits_internal_struct_X : public Derived, virtual Base (...) }}} The problem can be temporarily worked around by redefining virtual void foo() {} into boost_type_traits_internal_struct_X, but that does not scale as we would need to know and override every single virtual method that appears both in A and B.",Bugs,closed,To Be Determined,type_traits,Boost 1.57.0,Problem,fixed,,