Как я могу настроить карту со строкой, столь же ключевой и ostream как значение?

Два пути. Символы (:foo нотация) или константы (FOO нотация).

Символы являются соответствующими, когда Вы хотите улучшить удобочитаемость, не замусорив код литеральными строками.

postal_code[:minnesota] = "MN"
postal_code[:new_york] = "NY"

Константы являются соответствующими, когда у Вас есть базовое значение, которое важно. Просто объявите, что модуль содержит Ваши константы и затем объявляет константы в этом.

module Foo
  BAR = 1
  BAZ = 2
  BIZ = 4
end

flags = Foo::BAR | Foo::BAZ # flags = 3
5
задан honk 27 March 2019 в 09:08
поделиться

3 ответа

Потоки не любят, когда их копируют. Самое простое решение - использовать указатель (или, лучше, интеллектуальный указатель) на поток на карте:

typedef map<string, ofstream*> mapType;
12
ответ дан 18 December 2019 в 13:15
поделиться

Объекты типа ofstream не копируются, что является предварительным условием для помещения в любой контейнер стандартной библиотеки.

1
ответ дан 18 December 2019 в 13:15
поделиться

Оператор = является частным для std :: ios_base , из которого происходит ofstream . Таким образом, вы не можете скопировать объекты foo1 и foo2 .

1
ответ дан 18 December 2019 в 13:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: