到目前为止,我想出的最好办法是:{};
auto foo(A& a, B&在A::is_special不是有效类型的情况下,有什么简单的方法使这些函数只被创建吗?在更一般的情况下,我也会问:如果任何“阳性”的SFINAE测试会导致测试结果创建函数或类,那么是否有任何方法专门否定该测试以供其他情况使用?本质上,相当于if ... else
然而,对于所有类型的集合(和地图),它都不是最优的,因为我们可以使用:
template<template<class, class...> class set_t, class item_t, class现在,我正在寻找一种使用std::enable_if的方法,如果container_t不提供count成员函数,则启用to第一个模板,如果提供了第二个模板,则启用第二个模板。