Ultimo metodo, fa un pò la stessa roba di BOOST_STATIC_ASSERT
template<bool> struct StaticAssert;
template<> struct StaticAssert<true> {};
template <class A, class B>
struct is_same
{
static const bool value = false;
};
template <class A>
struct is_same<A, A>
{
static const bool value = true;
};
template <class T>
class vettore{
public:
vettore(){};
void metodo (T parametro);
private:
};
template <class T>
void vettore<T>::metodo( T parametro )
{
StaticAssert<is_same<T,int>::value>();
std::cout << parametro;
}
il codice si compila solo per T = int;