What will be the program exit code?
struct S {
    static int i;
    S()         { ++i; }
    S(const S&) { ++i; }
};

int S::i = 0;

int main() {
    S v(S());
    return S::i;
}
Explanation
The S() construct in this context denotes the type of a pointer to a function that takes no parameters and returns an object of type S.
Thus, S v(S()); is a forward declaration in the local scope of the function with the name v, the type of the return value S and the type of the argument - a pointer to a function without parameters with the type of the return value of S.

Следи за CodeGalaxy

Мобильное приложение Beta

Get it on Google Play
Обратная Связь
Cosmo
Зарегистрируйся сейчас
или Подпишись на будущие тесты