Una tipica implementazione sarebbe in questo modo:test se un tipo V è uno dei tipi di una tupla <...> senza variardics
template <typename V, typename T>
struct Is_in_tuple;
template <typename V, typename T0, typename... T>
struct Is_in_tuple <V, tuple<T0, T...> >
{
static const bool value = Is_in_tuple<V, tuple<T...> >::value;
};
template <typename V, typename... T>
struct Is_in_tuple <V, tuple<V, T...> >
{
static const bool value = true;
};
template <typename V>
struct Is_in_tuple <V, tuple<> >
{
static const bool value = false;
};
Il problema si pone in VS2012 cui esistono tuple, ma templates variadic non!
C'è una soluzione alternativa, un modo per eseguire tali test senza modelli variadic?
Come può un compilatore supportare in modo decente le tuple senza supportare i modelli variadic? – BatchyX
@BatchyX: limite superiore e generazione automatica simili a Boost.Preprocessor. – Xeo
@Xeo: ho detto che, per quanto mi riguarda, sono conforme allo standard. – BatchyX