Я помітив, що деякі мої функції в класі насправді не мають доступу до об'єкта, тому я зробив їх static
. Тоді компілятор сказав мені, що всі змінні, до яких вони мають доступ, також повинні бути статичними - ну, цілком зрозумілими поки що. У мене є купа рядкових змінних, таких як
string RE_ANY = "([^\\n]*)";
string RE_ANY_RELUCTANT = "([^\\n]*?)";
і так далі в класі. Тоді я створив їх усіх, static const
бо вони ніколи не змінюються. Однак моя програма компілюється лише в тому випадку, якщо я переміщую їх з класу: В іншому випадку MSVC ++ 2010 скаржиться на те, "що в класі можуть бути ініціалізовані лише статичні постійні інтегральні змінні".
Ну це прикро. Чи є обхідне рішення? Я хотів би залишити їх у класі, до якого вони належать.
const
іstatic
.