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. Его прямая замена не будет компилироваться, поскольку назначение копирования неявно удаляется. Можно ли это преодолеть элегантным способом?
Я пытаюсь создать класс, который будет обработчиком сообщений с определенным состоянием. Минимальный пример с указателями будет примерно таким: [code]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 }
}; [/code] Мне интересно, есть ли хороший способ заставить это работать со ссылкой вместо указателя на y. Его прямая замена не будет компилироваться, поскольку назначение копирования неявно удаляется. Можно ли это преодолеть элегантным способом?
Я пытаюсь создать класс, который будет обработчиком обмена сообщениями с определенным состоянием.
Когда сообщение подготовлено, я ожидаю создать новую структуру state_t, ссылающуюся на новый y данные. Затем я хочу иметь возможность доступа к новому...
Я пытаюсь создать класс, который будет обработчиком обмена сообщениями с определенным состоянием.
Когда сообщение подготовлено, я ожидаю создать новую структуру state_t, ссылающуюся на новый yданные. Затем я хочу иметь возможность доступа к новому...
Я создаю компилятор Python, используя llvmlite и Python.
В данный момент я работаю над переназначением переменных и постоянно получаю эту ошибку;
Parsing expression, current token: Token
Left expression:
Parsing expression, current token: Token...