다음 코드는 작성되지 않습니다.벡터가 열거 형으로 초기화 됨
struct some_struct {
some_struct() {
... do something here to specify size of v; how ??
}
enum {
ZERO,
ONE,
TWO
};
static std::vector<std::string> v(TWO);
};
아무 생각해도 이해할 수 없습니다.이 제품은 불법 사용을 권장하지 않습니다.
오타가 : 벡터 구문과 보정을 고정 :
이error C2061: syntax error : identifier 'TWO'
또한 편집 :
그것은처럼 보이는 난 단지 2010 요구하는 사람들에 대한 오류 메시지, 2005/2008에없는 테스트 한 컴파일러는 v
이 std::vector<std::string>
유형을 반환하는 함수라고 생각합니다. 이 모든 것들은 struct
안에 있습니다. (더 자세히 설명하기 위해 게시물을 수정했습니다). 아마도 타입에 혼란스럽고 크기를 생성자의 어딘가에 선언하는 크기 인수를 생략해야할까요? 이 벡터는 구조체의 정적 데이터 멤버가 될 것입니다. 컴파일러에서이를 이해하도록하려면 어떻게해야합니까?
참고 : Linux에서 필자는 구조체가없는 원래의 코드와 비슷한 독립 실행 형 코드를 테스트하여 Linux에서이 수정 사항을 사용하지 않고 컴파일하지 않을 수도 있습니다. 그래서 나는 리눅스에서 OK를 만들었다는 코멘트를 삭제했다. 사과.
오류 메시지가 무엇입니까? 분명한 오류 (벡터에 지정된 유형 없음)를 수정하면 VS2010에서 정상적으로 컴파일됩니다. –
나는 그것이 어떤 플랫폼이나 컴파일러에서 컴파일 될지 의심 스럽다. 벡터의 유형을 지정해야합니다. –
@ LuchianGrigore, 처음에 나는 그것이 가장 귀찮은 구문일지도 모른다고 생각했지만, 시도는 당신이 옳았다는 것을 보여 주었다. http://ideone.com/ccTWv –