Комбинация летучих + объектов запрещена в C++?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Комбинация летучих + объектов запрещена в C++?

Сообщение Anonymous »

Я использую встроенный компилятор для TI TMS320F28335, поэтому я не уверен, является ли это общей проблемой C++ (у меня нет работающего компилятора C++) или только моего компилятора. Включение следующего фрагмента кода в мой код приводит к ошибке компиляции:

"build\main.cpp", line 61: error #317: the object has cv-qualifiers that are not
compatible with the member function
object type is: volatile Foo::Bar


Ошибка исчезает, когда я закомментирую функцию initWontWork() ниже. О чем мне говорит ошибка и как ее обойти, не прибегая к использованию статических функций, которые работают с изменчивой структурой?

struct Foo
{
struct Bar
{
int x;
void reset() { x = 0; }
static void doReset(volatile Bar& bar) { bar.x = 0; }
} bar;
volatile Bar& getBar() { return bar; }
//void initWontWork() { getBar().reset(); }
void init() { Bar::doReset(getBar()); }
} foo;


Подробнее здесь: https://stackoverflow.com/questions/375 ... lowed-in-c
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»