Tipos de letra fuertes [duplicado]

Esta pregunta ya tiene una respuesta aquí:

C ++ fuertemente tipado usando y typedef 4 respuestas

¿Hay alguna forma de hacer una copia completa de un tipo para que puedan distinguirse en el contexto de deducción de plantillas? Toma el ejemplo:

#include <iostream>

template <typename T>
struct test
{
    static int c()
    { 
        static int t = 0;
        return t++;
    }
};

typedef int handle;

int main()
{
    std::cout << test<int>::c() << std::endl;
    std::cout << test<handle>::c() << std::endl;
    return 0;
}

Dado que typedef solo crea un alias para un tipo, imprime 0, 1 en lugar del 0, 0. ¿Hay alguna solución para esto?

Respuestas a la pregunta(2)

Su respuesta a la pregunta