Объявление ссылки внутри списка параметров функции - PullRequest
0 голосов
/ 02 октября 2011

Я пытаюсь сделать что-то смешное с макросами, и для этого мне нужно сделать что-то еще более забавное. Чтобы привести пример того, что я пытаюсь сделать, рассмотрите код ниже:

#include <iostream>

int set_to_three(int& n) {
    n = 3;
    return 0;
}

int main() {

    int s = set_to_three(int& t); // <-- Obviously this wouldn't compile

    t += 5;

    std::cout << t << std::endl; // <-- This should print 8
    std::cout << s << std::endl; // <-- This should print 0

    return 0;
}

Итак, как вы можете видеть, я хочу вызвать функцию, объявить ее параметр и записать возвращаемое значение функции точно в ONE выражении. Я пытался использовать запятую разными способами, но безрезультатно.

Мне было интересно, возможно ли это вообще, и если да, то как я мог это сделать? Я думаю, что это возможно, используя операторы запятых, но я просто не знаю как. Я использую Visual Studio 2010, если вам нужно знать, какой компилятор я использую.

1 Ответ

2 голосов
/ 02 октября 2011

Поскольку у вас есть только два int с, это будет работать:

int t, s = set_to_three(t);

Обратите внимание, что это не оператор запятой.

Были типы s и t иначе, это было бы невозможно ИМХО.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...