Вот мне и интересно, учитывая простой класс:
//Foo.h
class Foo {
private:
static constexpr int bar = 0;
public:
int do_something();
};
//Foo.cpp
int Foo::do_something() {
return 5 + bar;
}
Было бы разумно полностью удалить bar
из заголовка как его частное статическое значение constexpr, которое никогда не использовалось в заголовочном файле?
Если бы вместо этого он просто находился в верхней части файла cpp, он фактически предоставил бы ту же функциональность с дополнительным бонусом небольшой очистки файла заголовка.
Есть ли причины не делать этого?
Редактировать: Для пояснения, эти переменные могут использоваться в одной или нескольких функциях, один или несколько раз, и НИКОГДА в заголовочном файле.
В моем случае использования эти переменные являются постоянными пределами / vecs, например:
static constexpr float rotLimitVertical = to_rad(90.0f);
static constexpr float rotLimitHorizontal = to_rad(360.0f);
static const glm::vec3 right = {1, 0, 0};
static const glm::vec3 up = {0, 1, 0};
static const glm::vec3 forward = {0, 0, 1};
, который я хотел бы оставить в верхней части файла, чтобы их можно было легко настроить при необходимости (особенно в случае, если переменная используется только в одной функции, возможно, имеет смысл изменить ее на локальную переменную). , но это делает его более раздражающим, чтобы найти для настройки).