2013/3/26 Jeffrey Lee Hellrung, Jr. <jeffrey.hellrung@gmail.com>
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.