// file : cutl/meta/polymorphic-p.hxx // copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : MIT; see accompanying LICENSE file #ifndef CUTL_META_POLYMORPHIC_HXX #define CUTL_META_POLYMORPHIC_HXX #include #include #include namespace cutl { namespace meta { template struct polymorphic_p { typedef typename remove_cv::r X; template struct impl { static const bool r = false; }; template struct impl { struct t1: Y { t1 (); }; struct t2: Y { t2 (); virtual ~t2 () LIBCUTL_NOTHROW_NOEXCEPT; }; static const bool r = sizeof (t1) == sizeof (t2); }; static const bool r = impl::r>::r; }; } } #endif // CUTL_META_POLYMORPHIC_HXX