viernes, 15 de abril de 2011

Cómo especializar un template para arrays

#include <iostream>

template < typename T >
struct Example
{
    static inline void call()
    {
        std::cout << "non-array" << std::endl;
    }
};

template < typename T, unsigned int N >
struct Example< T[N] >
{
    static inline void call()
    {
        std::cout << "array" << std::endl;
    }
};

int main()
{
    Example < int[5][10] >::call();
    Example < float[10] >::call();
    Example < float >::call();
}

Resultado:

array
array
non-array

No hay comentarios:

Publicar un comentario