을 사용하여 표준 : :지도를 초기화 :는 초기화하는 좋은 쉽게, 기본적으로 구성 값
struct Foo
{
char x;
};
std::map<int, Foo> myMap =
{
{ 1, Foo() },
{ 2, Foo() }
};
하지만 내 가치 유형을 가정은 기본 생성자를 가지고 있지만, 입력 다루기입니다 :
std::map<int, yourNamespace::subLibrary::moreLevels::justBecause::Thing> myMap =
{
// What goes here? I don't want to type
// yourNamespace::subLibrary::moreLevels::justBecause::Thing again.
};
값 유형을 키보드 친화적으로 만드는 using
선언이 짧아서 map
을 키 집합으로 초기화하는 방법이 있으며 기본값은 모두 yourNamespace::subLibrary::moreLevels::justBecause::Thing
입니다. 매핑 된 값을 해당 유형의 기본 생성되도록하려면 어떻게 신호를 보낼 수 있습니까?
나는 할 수있을 것이라고 생각했는데, 시도해 보았지만 작동하지 않았다. 그래서 내가 여기에 온 이유가있다. 더 많은 자극은 general_에서 작동하지만 value-type이 복사 가능하지 않은 경우에는 작동하지 않습니다. 그 이유를 아십니까? – Chowlett
@Chowlett 귀하의 후속 질문에 대해서는 [이 답변] (http://stackoverflow.com/a/7232135/7359094)으로 안내 할 것입니다. –
아. 그것은 그것을 설명 할 것이다. 그러므로 나는이 방식으로 초기화를 위해 완전히 채워야합니까? 아마도 myMap = {{1, Foo()}};도 아마도 정확히 같은 이유 때문에 실패합니다. – Chowlett