/* Copyright Barrett Adair 2016 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt) */ //useless MSVC /Wall warnings #pragma warning(disable: 4514 4711) #include #include #include #include struct foo { template std::enable_if_t= 4, int> operator()(Args...) const { return{}; } template std::enable_if_t operator()(Args...) const { return{}; } }; namespace ct = callable_traits; int main() { using args = ct::args; using expected_args = std::tuple; static_assert(std::is_same{}, ""); using signature = ct::signature; using expected_signature = ct::unknown(ct::unknown); static_assert(std::is_same{}, ""); return 0; }