По идее это тянет на спецификатор в объявлении, но уже есть const и вы сами понимаете, что второго const с урезаным функционалом не будет. Завернуть в класс и раздать friend только для конструктора-деструктора? Ну или так, если цель — не писать const руками.
class Class
{
private:
const struct PrevedKagDila
{
int a;
int b;
} c;
public:
void foo()
{
c.a=45;
}
};
Посмотри в сторону mutable, например. Внимательно посмотри. Тебе это не нужно! а я точно не понял, что тебе нужно
я хочу чтобы это отследил компилер и при этом каждому методу вручную не указывать const
Okay. Этош цплюсплюс. Курни чего-нибудь тяжелогоВыпей вина, закуси сыром, оберни поле в хитрую обертку, которая формально запретит изменение поля в методах :) Запряги компилер по хардкору: конопля-тайм проверками и донскими мета-вычислениями «а не из метода ли дергается поле? А ты уверен?» (Главное, не забудь комментарии: //u DO NOT WANT ass-ign diz memba anywer but ctor() bitchas! SRSLY - будет проще рефакторить)
Потом через месяц почитаешь, что получилось - тут дао-то на голову и обрушится.
именно то что вы сделали в примере. у вас конструктор пустой и something инициализируется в списке инициализации. или я выразил мысль не общепринятым методом?
А, в смысле, вы хотите инициализировать в списке инициализации, но не в теле конструктора? Я в упор не понимаю вашу проблематику и чем именно вам не угодил const.