익명 네임 스페이스 안에 전역 변수가 있습니다. cpp 파일 내의 전역 변수
namespace {
std::unordered_map<std::string, std::string> m;
}
A::A() { m.insert(make_pair("1", "2")); } // crasches
void A::insert() { m.insert(make_pair("1", "2")); } // ok
생성자 내부의 map
를 사용하려고하면
A
이 초기화 된 후에 사용하면 작동합니다.
이 문제가 해결 되었습니까?
더 많은 코드가 필요합니다. –
정적 멤버 'A'가 있습니까? –
다른 cpp 파일에 정의 된 전역 A 인스턴스가있는 경우이 인스턴스와 m의 작성 순서는 정의되지 않습니다. –