我想任何SFINAE的使用都可以被认为是一种黑客行为,但我在这里尝试了很长时间,我所能做到的最好的方法是在其中一个重载中使用默认的void*参数: struct Dog Dog() {}这确实有效,但使用SFINAE的典型方法是使用一个专门的版本,当替换失败时会调用该版本,对吧?此外,我不喜欢使用默认的void*,因为我可以看到一个
我正在尝试创建一个递归重载集实用程序,例如,您可以访问lambda中的this (如提案)。不过,我遇到了一个问题,我不太确定如何解决或解决这个问题。但是,当我将重载包装在一般lambda中时,重载解析似乎不再起作用了: auto f_double = [](double) {};call to overloaded function
f(0.0); // e