Как писать комментарии в doskey файлы макросов?

Я унаследовал прекрасный беспорядок макросов доскей и пытается отсортировать их по проблемным областям. Пока мне не удалось найти никаких ссылок, в которых упоминаются комментарии каким-либо образом, но это кажется настолько распространенным сценарием, что я был бы удивлен, если он каким-то образом не поддерживается .. против резерва (1); v.push_back (1); // гарантированно ли этот оператор не сработает? Я выбрал int, потому что в нем нет конструкторов, которые могли бы генерировать - очевидно, если некоторые ...

Учтите:

std::vector v;
v.reserve(1);
v.push_back(1); // is this statement guaranteed not to throw?

Я выбрал int , потому что у него нет конструкторов, которые могли бы генерировать - очевидно, если какой-то конструктор копирования T выбрасывает, тогда это исключение ускользает из vector :: push_back .

Этот вопрос относится как к insert , так и к push_back , но он был вдохновлен Безопасно ли push_back «динамически выделяемый объект» в вектор? , который, случается, спрашивает о push_back .

В C ++ 03 и C + + 0x standard / FCD, описания vector :: insert говорят, что если перераспределения не происходит, итераторы / ссылки перед точкой вставки остаются действительными. Они не говорят, что если не происходит перераспределения, исключение не генерируется (кроме конструкторов и т. Д. Из T).

Есть ли что-нибудь еще в стандарте, чтобы гарантировать это?

Я не делаю ' Не ожидаю, что push_back сделает что-нибудь, что может вызвать выброс в этом случае. Реализация GNU этого не делает. Вопрос в том, запрещает ли это стандарт.

В качестве продолжения, может ли кто-нибудь придумать причину, по которой любая реализация выдает ошибку? Лучшее, что я могу придумать, это то, что если вызов резерв заканчивается увеличением емкости до значения, превышающего max_size () , тогда вставьте , возможно разрешено выбросить length_error , когда будет превышен максимальный размер. Было бы бесполезно увеличивать емкость сверх max_size () , но я не Я сразу вижу все, что запрещает это, либо [Edit: ваш распределитель, вероятно, не позволит вам увеличить емкость сверх max_size , поэтому это предложение может быть бесполезным.]

11
задан Community 23 May 2017 в 10:26
поделиться