Задать вопрос
@famousman204

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

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

template <class T>
struct Test {
    T workingOnlyWithIntegerOrDouble();
private:
    T num_;
}
  • Вопрос задан
  • 45 просмотров
Подписаться 1 Простой 2 комментария
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Разработчик C++
    9 месяцев
    Далее
  • Академия Codeby
    Курс «Введение в Реверс инжиниринг»
    1 месяц
    Далее
  • Академия Codeby
    Курс «Реверсивный инжиниринг ПО под ОС Windows»
    26 недель
    Далее
Пригласить эксперта
Ответы на вопрос 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);
	}
};
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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