повышение:: system::( …) _category определенный, но не используемый

Я не уверен, что Ваш основной вопрос здесь, но да, .contains чувствителен к регистру.

11
задан einpoklum - reinstate Monica 27 January 2017 в 20:31
поделиться

1 ответ

Это относится к библиотеке error_code в библиотеке Boost.System. Boost error_codes содержит два атрибута: значения и категории. Чтобы сделать error_codes расширяемой, чтобы пользователи библиотеки могли создавать свои собственные категории ошибок, разработчикам повышения требовался способ представления уникальной категории кода ошибки. Простого идентификационного номера будет недостаточно, потому что это может привести к тому, что два проекта будут использовать конфликтующие идентификационные номера для пользовательских категорий ошибок.

По сути, они использовали адреса памяти в виде статических объектов, которые наследуются от базовый класс категория_ошибки . Эти переменные на самом деле ничего не делают, кроме как служат уникальными идентификаторами определенной категории ошибок. Поскольку они по сути являются статическими фиктивными объектами с уникальными адресами в памяти, вы можете легко создать свои собственные категории ошибок, которые не будут мешать «идентификаторам» других категорий ошибок. См. здесь для получения дополнительной информации.

Я полагаю, что то, что вы видите, является побочным эффектом этого дизайнерского решения. Поскольку эти переменные никогда не используются в вашей программе, компилятор выдает предупреждения. Достаточно сказать, я не думаю, что вы делаете что-то не так.

7
ответ дан 3 December 2019 в 03:04
поделиться
Другие вопросы по тегам:

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