kontrola typu w klasie

0

Jeśli mam szablon klasy, to mogę kontrolować z jakim typem danych został obiekt tej klasy stworzony?
Dla przykładu mając

template <typename T>
class eq {
... };

eq <double> A;

mogę w klasie rzucić wyjątek, że doubla nie lubimy i nie chcemy z pewnych powodów?

2

Dodaj specjalizację:

template<>
class eq<double>
{
////rzuc wyjatek
};
0

Dzięki wielkie.

2

Możesz też użyć std::enable_if

2

Do tego jest właśnie static_assert:

template <typename T>
class X {
  static_assert(!std::is_same<T, double>(), "Nie lubimy double");
};

http://ideone.com/cwutyJ

0

Są jeszcze concepts ale ciężko by było tym wykryć double ;p

1 użytkowników online, w tym zalogowanych: 0, gości: 1