/******************************************************************************
Online C++ Compiler.
Code, Compile, Run and Debug C++ program online.
Write your code in this editor and press "Run" button to compile and execute it.
*******************************************************************************/
#include <iostream>
#include <functional>
template<typename... Args>
void addController(const char * name, const std::function<bool(Args...)> & func)
{
}
void addControllerNoArg(const char * name, std::function<bool()> func);
class Foo
{
public:
bool isFoo() const { return true; }
//Compiles
void registerMe1()
{
std::function<bool()> foo_func = [this]()->bool {return this->isFoo(); };
addController<>("foo", foo_func);
}
//Compiles
void registerMe2()
{
addControllerNoArg("foo", [this]()->bool {return this->isFoo(); });
}
//Does not compile
void registerMe3()
{
addController<>("foo", [this]()->bool {return this->isFoo(); });
}
};
int main()
{
Foo foo;
return 0;
}