/* @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; template struct F; struct X { }; int main() { BOOST_HANA_STATIC_ASSERT(flatten(decltype_(decltype_(X{}))) == decltype_(X{})); BOOST_HANA_STATIC_ASSERT(flatten(decltype_(decltype_(decltype_(X{})))) == decltype_(decltype_(X{}))); BOOST_HANA_STATIC_ASSERT(bind(type, compose(decltype_, template_)) == type>); }