Инициализировать статические переменные в классе C ++?

Я заметил, что некоторые из моих функций в классе на самом деле не обращаются к объекту, поэтому я сделал их статическими . Затем компилятор сказал мне, что все переменные, к которым они обращаются, также должны быть статическими - что ж, пока что вполне понятно. У меня в классе есть несколько строковых переменных, таких как

string RE_ANY = "([^\\n]*)";
string RE_ANY_RELUCTANT = "([^\\n]*?)";

и так далее. Затем я сделал их все static const , потому что они никогда не меняются. Однако моя программа компилируется только в том случае, если я перемещаю их из класса: в противном случае MSVC ++ 2010 жалуется: «В классе могут быть инициализированы только статические постоянные интегральные переменные».

Что ж, прискорбно. Есть ли обходной путь? Я хотел бы оставить их в классе, к которому они принадлежат.

69
задан jww 8 September 2018 в 01:53
поделиться