У меня есть класс с std :: variant в нем. Этот тип std :: variant может содержать только определенный список типов. То есть пользователю разрешено вставлять значения только в том случае, если его тип находится в конкретном списке типов. Тем не менее, я не хочу, чтобы пользователь мог определить этот список самих типов. < /P>
class GLCapabilities
{
public:
using VariantType = std::variant; // in future this would have other types
template
std::enable_if_t AddCapability(const GLenum parameterName)
{
if(m_capabilities.count(parameterName) == 0)
{
/*... get correct value of type T ... */
m_capabilities.insert(parameterName,value);
}
}
template
std::enable_if_t
Подробнее здесь: https://stackoverflow.com/questions/458 ... rtain-type