2012-11-23 5 views
3

r 값 인수를 사용하는 함수가 있고 기본값을 제공한다고 가정하면 어떻게 올바르게 지정합니까? gcc 4.7.0에서는 다음과 같이 작동하지만 icpc 13.0.1에서는 이 실패합니다.r 값 참조 인수에 대한 올바른 기본값은 무엇입니까?

struct data { 
    int _data[10]; 
    data() = default; 
    data(data&&) = default; 
    data(const data&) = default; 
}; 
void func(data&& = data{}); 

ICPC는

error: type name is not allowed 
void func(data&& = data{}); 
       ^

이 올바른지 불평? 올바른 구문은 무엇입니까?

+2

icpc는 범용 초기화 구문을 지원합니까? value-initializer'data && = data()'를 해봤습니까? – ecatmur

+0

실제로 @ecatmur가 작동합니다. 그래서 이것은 인텔의 문제로 보인다. 버전 13.0.1은 gcc 4.7.0과 호환 될 예정이지만 이것이 아닙니다! – Walter

답변

2

icpc 13.0.1은 기본 인수에서 범용 초기화 구문을 지원하지 않는 것으로 보입니다. 작동 방식 :

void func(data&& = data()); 
         ^^ value-initialization