Устранить неоднозначность перегруженного указателя на функцию-член в качестве параметра шаблона
Я пытаюсь воссоздатьОбразец наблюдателя где я могу идеально передать параметры для данного члена функции наблюдателей.
Если я попытаюсь передать адресфункция-член у которого естьнесколько переопределений, он не может вывести правильную функцию-член на основе аргументов.
#include
#include
#include
template
struct observer_list
{
template
void call(Ret (Class::*func)(Args...), UArgs&&... args)
{
for (auto obj : _observers)
{
(obj->*func)(std::forward(args)...);
}
}
std::vector _observers;
};
struct foo
{
void func(const std::string& s)
{
std::cout < this < ": " < s < std::endl;
}
void func(const double d)
{
std::cout < this < ": " < d < std::endl;
}
};
int main()
{
observer_list