/* @copyright Louis Dionne 2014 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt) */ #include #include #include using namespace boost::hana; struct Typeclass { BOOST_HANA_TYPECLASS(Typeclass); }; struct NotInstance; struct Instance; struct PredicatedInstance; template struct Typeclass::instance{}>> { }; template <> struct Typeclass::instance { }; int main() { BOOST_HANA_STATIC_ASSERT(instantiates); BOOST_HANA_STATIC_ASSERT(!instantiates); BOOST_HANA_STATIC_ASSERT(!instantiates); BOOST_HANA_STATIC_ASSERT(instantiates); }