Я создал класс с двумя методами get, один const и один не const. Метод const является общедоступным, поэтому пользователи могут запрашивать вектор. Метод non-const защищен, поэтому я могу использовать его для изменения необходимых мне данных.
Однако, когда я пытаюсь использовать класс и вызываю метод get, компилятор жалуется, что метод non-const защищен. Вместо этого я должен использовать const_cast, чтобы передать объект в const, поэтому я могу вместо этого использовать открытый метод.
Есть ли способ решить это? Почему компилятор не выполнил сам бросок, поскольку существует общедоступный метод? Если я удалю защищенную версию и просто оставлю ее const, она будет работать отлично, поэтому в этой ситуации она будет выполнена. Кастинг в const всегда безопасен. Это устранение неполадки, которая является проблемой.