SFINAE here에 관한 litb의 질문을 읽고 있었는데 그의 코드가 무엇을 선언하고 있는지 궁금합니다. 템플릿이없는 간단한 예제는 다음과 같습니다.이 줄이 함수를 선언합니까? C++
int (&a())[2];
정확히 무엇입니까? &의 역할은 무엇입니까? 나는 내가 배열을 반환하는 함수를 선언에 대한 오류를 얻을 수
int b()[2];
대신 다음과 같은 선언하는 경우 첫 번째 줄은 그러한 오류가없는 동안, 내 혼란에 추가하려면 (따라서, 하나는 최초의 선언이 생각하는 것 이 아닌). 그러나, 나는 그래서 지금 이 기능입니다 ... 나는이 기능 A를 할당하려고 해요라는 오류를 얻을
a = a;
를 할당하려고합니다. 이게 정확히 무엇일까?
나는 어떤 기능이 호출되었는지보기 위해 다소 이상한 구조를 사용했다. sizeof (a())는 sizeof (int [2])를줍니다.다른 함수는 int (& a()) [1]로 선언됩니다. 그 중 하나가 호출되면 sizeof (int [1])를 제공합니다. 어떤 T의 경우 sizeof (T &) == sizeof (T) –