/*<- Copyright (c) 2016 Barrett Adair Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt) ->*/ //[ is_invocable #include #include namespace ct = boost::callable_traits; struct foo { template typename std::enable_if::value>::type operator()(T){} }; static_assert(ct::is_invocable::value, ""); static_assert(!ct::is_invocable::value, ""); int main() {} //]