@famousman204

Как в шаблоне разрешить определенные типы?

Здравствуйте! Вопрос такой, как в шаблоне разрешить , допустим, типы int и double а на остальные поставить ассерты?

template <class T>
struct Test {
    T workingOnlyWithIntegerOrDouble();
private:
    T num_;
}
  • Вопрос задан
  • 43 просмотра
Пригласить эксперта
Ответы на вопрос 1
0hquazEd
@0hquazEd
template <class T>
struct is_permitted 
{
	static constexpr bool value = false;
};

template <>
struct is_permitted<int>
{
	static constexpr bool value = true;
};

template <>
struct is_permitted<double>
{
	static constexpr bool value = true;
};

template <class T>
struct test
{
	test()
	{
		static_assert(is_permitted<T>::value);
	}
};
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы