Как проверить, может ли std::variant содержать определенный типC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как проверить, может ли std::variant содержать определенный тип

Сообщение Anonymous »


У меня есть класс с std::variant. Этот тип std::variant может содержать только определенный список типов.

У меня есть функции шаблона, которые позволяют пользователю класса вставлять различные значения в std::unordered_map, карта содержит значения этого типа варианта. То есть пользователю разрешено вставлять значения только в том случае, если его тип находится в определенном списке типов. Однако я не хочу, чтобы пользователь мог самостоятельно определять этот список типов.

класс GLCapabilities { публика: используя VariantType = std::variant; // в будущем у этого будут другие типы шаблон std::enable_if_t AddCapability(имя параметра const GLenum) { если (m_capabilities.count (имя параметра) == 0) { /*... получить правильное значение типа T ... */ m_capabilities.insert(имя параметра, значение); } } шаблон std::enable_if_t
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»