У меня есть класс со стандартной картой std ::, причина в том, что карта дорогая, поэтому я ищу способы минимизировать влияние. Так как карта не всегда используется, нужно подумать, зачем ее создавать, пока она НЕ используется.
У меня проблемы с добавлением значений в класс после построения, синтаксис ускользает от меня :), или, возможно, я неправильно понял некоторые ограничения, и это не может быть использовано таким образом. Хотелось бы получить некоторое понимание.
class A {
public:
void addValues() {
_map_value.emplace(/* what goes here ?*/);
// It is expecting something like std::enable_if_t<std::is_constructible<std::map< .... initializer list
}
private:
std::optional<std::map<std::string, ResourceValue>> _map_value{};
};
Я пытался создать пару и различные формы emplace. Я вижу, что я должен использовать std :: option :: emplace, но я думаю, что это только для конструкции, а не для доступа и добавления к карте впоследствии. Как я могу управлять этой картой после ее создания?