File tree Expand file tree Collapse file tree 1 file changed +8
-2
lines changed Expand file tree Collapse file tree 1 file changed +8
-2
lines changed Original file line number Diff line number Diff line change @@ -531,13 +531,19 @@ auto is( X const& ) -> bool {
531
531
}
532
532
533
533
template < typename C, typename X >
534
- requires (std::is_base_of_v<X, C> && !std::is_same_v<C,X>)
534
+ requires (
535
+ ( std::is_base_of_v<X, C> ||
536
+ ( std::is_polymorphic_v<C> && std::is_polymorphic_v<X>)
537
+ ) && !std::is_same_v<C,X>)
535
538
auto is ( X const & x ) -> bool {
536
539
return dynamic_cast <C const *>(&x) != nullptr ;
537
540
}
538
541
539
542
template < typename C, typename X >
540
- requires (std::is_base_of_v<X, C> && !std::is_same_v<C,X>)
543
+ requires (
544
+ ( std::is_base_of_v<X, C> ||
545
+ ( std::is_polymorphic_v<C> && std::is_polymorphic_v<X>)
546
+ ) && !std::is_same_v<C,X>)
541
547
auto is ( X const * x ) -> bool {
542
548
return dynamic_cast <C const *>(x) != nullptr ;
543
549
}
You can’t perform that action at this time.
0 commit comments