1 /* 2 3 Copyright Barrett Adair 2016-2017 4 Distributed under the Boost Software License, Version 1.0. 5 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt) 6 7 */ 8 9 #include <type_traits> 10 #include <functional> 11 #include <tuple> 12 #include <boost/callable_traits.hpp> 13 14 struct foo { operator ()foo15 void operator()() const {} 16 }; 17 18 namespace ct = boost::callable_traits; 19 main()20int main() { 21 22 using args = ct::args_t<foo>; 23 using expected_args = std::tuple<>; 24 static_assert(std::is_same<args, expected_args>{}, ""); 25 26 using signature = ct::function_type_t<foo>; 27 using expected_signature = void(); 28 static_assert(std::is_same<signature, expected_signature>{}, ""); 29 30 return 0; 31 } 32