https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86105
--- Comment #1 from Johel Ernesto Guerrero Peña <johelegp at gmail dot com> --- Denoised: https://godbolt.org/z/87fbMG6f5. ```C++ template<class To, class From> concept is_static_castable = requires(From && (*from)()) { static_cast<To>(from()); }; struct B { }; struct D : B { }; struct D2 : D, B { }; struct D3 : private B { }; void f() { D2 d2; (void)static_cast<B&&>(d2); // error: invalid static_assert(not is_static_castable<B&&, D2&>); // says "is valid" D3 d3; (void)static_cast<B&&>(d3); // error: invalid static_assert(not is_static_castable<B&&, D3&>); // says "is valid" } ``` ``` <source>:5:8: warning: direct base 'B' inaccessible in 'D2' due to ambiguity [-Winaccessible-base] 5 | struct D2 : D, B { }; | ^~ <source>: In function 'void f()': <source>:10:28: error: 'B' is an ambiguous base of 'D2' 10 | (void)static_cast<B&&>(d2); // error: invalid | ^ <source>:11:17: error: static assertion failed 11 | static_assert(not is_static_castable<B&&, D2&>); // says "is valid" | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ <source>:13:28: error: 'B' is an inaccessible base of 'D3' 13 | (void)static_cast<B&&>(d3); // error: invalid | ^ <source>:14:17: error: static assertion failed 14 | static_assert(not is_static_castable<B&&, D3&>); // says "is valid" | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Compiler returned: 1 ```