25 Mar
2013
25 Mar
'13
8:48 p.m.
On Mon, Mar 25, 2013 at 12:22 PM, Nevin Liber <nevin@eviloverlord.com>wrote:
On 22 March 2013 08:15, TONGARI <tongari95@gmail.com> wrote:
It doesn't seem to work with default arguments. :-(
Here is my test case (under gcc 4.7.2 -std=c++0x):
#include "boost/type_traits/has_call.hpp" #include <cassert>
template<typename Sig, typename F> bool HasCall(F const&) { return boost::has_call<F, Sig>::value; }
void DefaultVal(int = 0) {}
int main() { assert(HasCall<void()>(DefaultVal)); }
That's because the type of DefaultVal is void ( int ). Function types cannot encode the default'ness of parameters. - Jeff