Я заметил, что некоторые из моих функций в классе фактически не обращаются к объекту, поэтому я сделал их static
. Затем компилятор сказал мне, что все переменные, к которым они обращаются, также должны быть статичными - и это вполне понятно. У меня есть куча строковых переменных, таких как
string RE_ANY = "([^\\n]*)";
string RE_ANY_RELUCTANT = "([^\\n]*?)";
и т.д. в классе. Затем я сделал их всех static const
, потому что они никогда не меняются. Однако моя программа компилируется только в том случае, если я вывожу их из класса: иначе MSVС++ 2010 жалуется: "Только статические постоянные интегральные переменные могут быть инициализированы внутри класса".
Что ж, это несчастливо. Есть ли обходной путь? Я хотел бы оставить их внутри класса, к которому они принадлежат.