6
Учитывая тип варианта и функцию шаблона, Как проверить тип шаблона - один из вариантов варианта? Есть ли более элегантный способ, чем следующий?Как проверить, является ли тип шаблона одним из типов типа варианта?
typedef boost::variant<Foo,Bar> Var;
template <typename T>
void f(const T& x)
{
BOOST_STATIC_ASSERT(
boost::is_same<T,Foo>::value
|| boost::is_same<T,Bar>::value
);
}
Примечание: Я использую Повысьте 1.57 и GCC 4.8.3. Я не использую C++ 11 для совместимости со старыми версиями gcc.
Вы можете сделать черты 'contains' (но без VARIADIC от C++ 11, не уверен, что он более изящный). – Jarod42