// Copyright (C) 2006 Arkadiy Vertleyb // Use, modification and distribution is subject to the Boost Software // License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt) #include #include #include void f1() {} void f2(...) {} template struct tpl1 { typedef BOOST_TYPEOF_TPL(&f1) type; }; template struct tpl2 { typedef BOOST_TYPEOF_TPL(&f2) type; }; typedef void(*fun1_type)(); typedef void(*fun2_type)(...); BOOST_STATIC_ASSERT((boost::is_same::type, fun1_type>::value)); BOOST_STATIC_ASSERT((boost::is_same::type, fun2_type>::value));