enable_if 오류 : 내가 알고있는 것처럼C++ (11) 나 C++ 11 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;
}
, 시스템 아키텍처에 따라 "my_memcpy"기능 32 중 하나를 사용할 수를 또는 64 비트 버전. 하지만 컴파일시 다음과 같은 오류를 받고 있어요 :
error: ‘type’ in ‘struct std::enable_if<false, void>’ does not name a type
나는 (I 리눅스 페도라 32 비트를 사용하고 있습니다)에만 32 버전을 사용할 수 있어야한다 생각했기 때문에 나는 조금 혼란 스러워요.
아마도이 예제에 문제가 있습니까? 또는 나는 무엇인가 놓치고 있냐?
감사합니다.
감사 싸이언합니다. 이제 해결되었습니다. 또한이 주제에 대해 더 잘 이해하고 있습니다. :) – user1274605