vi el siguiente ejemplo de enable_if para C++ 11:C++ 11 error enable_if
struct is_64_bit
{
static const bool value = sizeof(void*) == 8;
};
enable_if<is_64_bit::value, void>::type
my_memcpy(void* target, const void* source, size_t n)
{
cout << "64 bit memcpy" << endl;
}
enable_if<!is_64_bit::value, void>::type
my_memcpy(void* target, const void* source, size_t n)
{
cout << "32 bit memcpy" << endl;
}
Según entiendo, dependiendo de la arquitectura del sistema, la función "my_memcpy" estará disponible ya sea para 32 o versiones de 64 bits. Pero me estoy haciendo el siguiente error durante la compilación:
error: ‘type’ in ‘struct std::enable_if<false, void>’ does not name a type
Estoy un poco confundido porque pensaba que sólo la versión 32 debe estar disponible (estoy usando Linux Fedora 32 bits).
Tal vez hay algún problema con este ejemplo? ¿O me estoy perdiendo algo?
Gracias.
Gracias cyon. Está resuelto ahora. También entiendo mejor este tema. :) – user1274605