Основные рекомендации C++ для статических переменных-членов ⇐ C++
-
Anonymous
Основные рекомендации C++ для статических переменных-членов
У меня в классе есть частный статический вектор, который хранит указатель на все созданные на его основе объекты. Это необходимо, поскольку каждому объекту для выполнения некоторых вычислений необходим доступ к информации всех остальных объектов:
// Заголовочный файл: Пример класса { публика: Пример(); частный: static std::vector example_; }; // CPP-файл: std::vector Пример::examples_ = {}; Пример::Пример() { // инициализация example_.emplace_back(это); } void Пример::DoCalc() { for (автоматический пример: example_) { // делаем что-то } } clang-tidy указывает, что я нарушаю основные рекомендации C++, а именно: «Переменная 'examples_' не является константной и доступна глобально, рассмотрите возможность сделать ее константной (cppcoreguidelines-avoid-non- const-глобальные-переменные)".
Лично я не вижу сходства между моим кодом и примером кода в основных рекомендациях, тем более что переменная находится внутри класса и является частной. Каким будет «правильный» способ реализации этой функции? Я не хочу отключать эту проверку в clang-tidy, если этого можно избежать.
У меня в классе есть частный статический вектор, который хранит указатель на все созданные на его основе объекты. Это необходимо, поскольку каждому объекту для выполнения некоторых вычислений необходим доступ к информации всех остальных объектов:
// Заголовочный файл: Пример класса { публика: Пример(); частный: static std::vector example_; }; // CPP-файл: std::vector Пример::examples_ = {}; Пример::Пример() { // инициализация example_.emplace_back(это); } void Пример::DoCalc() { for (автоматический пример: example_) { // делаем что-то } } clang-tidy указывает, что я нарушаю основные рекомендации C++, а именно: «Переменная 'examples_' не является константной и доступна глобально, рассмотрите возможность сделать ее константной (cppcoreguidelines-avoid-non- const-глобальные-переменные)".
Лично я не вижу сходства между моим кодом и примером кода в основных рекомендациях, тем более что переменная находится внутри класса и является частной. Каким будет «правильный» способ реализации этой функции? Я не хочу отключать эту проверку в clang-tidy, если этого можно избежать.
Мобильная версия