심각도 코드 설명 프로젝트 파일 줄
비표시 오류(Suppression) 상태 세부 정보
오류 C2338 static_assert failed:
'The C++ Standard forbids containers
of const elements because allocator<const T> is ill-formed.'
위와 같은 에러가 발생
원인은 싱글톤 객체를 상수로 만들었고 이 내부에 vector를 선언하였음.
std::vector<const int> temp;
위와 같은 경우에 문제가 발생한다.
찾아보니 C++ 표준에서는 'const'요소를 가진 컨테이너를 사용하는 것을 금지하고 있다. 그 이유는 'std::allocator' 클래스 템플릿이 'const T' 형식에 대한 인스턴스화를 지원하지 않기 때문이다.
실제로 벡터같은 경우도 데이터가 계속 추가되기 때문에 (중간에 삽입도 되고) const로 타입을 정의하는 것은 안된다.