Mam funkcję:C++ - std :: enable_if dla kilku rodzajów
template <typename T,
typename std::enable_if <std::is_same<T, int>::value == true>::type* = nullptr>
void test(T i)
{
//process data
}
to działa.
Jednak muszę włączyć tę funkcję nie tylko dla int
, ale dla float
i const char *
oraz ... jak to zrobić bez pisania tych samych razy metoda 3x?
Jedna sugestia. Prawdopodobnie można przypisać 'remove_cv', jeśli kwalifikatory nie mają znaczenia przy wyborze przeciążenia. –
@YanZhou Ponieważ parametr "i" nie jest przekazywany przez odniesienie, ale przez wartość, stałość i niestabilność zostaną usunięte w każdym razie. Dlatego 'T' nie będzie kwalifikował się cv, a' remove_cv' nic nie zrobi dla tego typu. –