Переназначение структуры, содержащей ссылкуC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Переназначение структуры, содержащей ссылку

Сообщение Anonymous »

Я пытаюсь создать класс, который будет обработчиком обмена сообщениями с определенным состоянием.
Когда сообщение подготовлено, я ожидаю создать новую структуру state_t, ссылающуюся на новый yданные. Затем я хочу иметь возможность доступа к новому объекту через ту же переменную состояния.
Минимальный пример с указателями будет примерно таким:

Код: Выделить всё

class Handler {
int x;  // something config for the handler
struct state_t {
int *y;
state_t(int *y) : y(y) {}
};

std::optional state;

Handler(int x) : x(x), state(std::nullopt) {}

void prepare_message(int *y) {
state = state_t(y);
}

void handle_state() {
// do something with the y e.g. send it over a socket
}

};
Мне интересно, есть ли хороший способ заставить это работать со ссылкой вместо указателя на y. Его прямая замена не будет компилироваться, поскольку назначение копирования неявно удаляется. Можно ли это преодолеть элегантным способом?

Подробнее здесь: https://stackoverflow.com/questions/791 ... -reference
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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