You've answered 0 of 166 questions correctly. (Clear)
Question #350 Difficulty:
According to the C++23 standard, what is the output of this program?
#include <functional>
#include <iostream>
struct Q {
int v = 0;
Q() { std::cout << "D"; }
Q(const Q&) { std::cout << "C"; }
Q(Q&&) { std::cout << "M"; }
void change() { ++v; }
void func() { std::cout << v; }
};
void takeQfunc(std::function<void(Q)> qfunc) {
Q q;
q.func();
qfunc(q);
q.func();
}
int main() {
takeQfunc([](Q&& q) { q.change(); });
}
Hint:
How does the parameter type to qfunc
differ from the parameter type to the lambda?
Problems? View a hint or try another question.
I give up, show me the answer (make 3 more attempts first).
Mode : Training
You are currently in training mode, answering random questions. Why not Start a new quiz? Then you can boast about your score, and invite your friends.
Contribute
Android app
Get Sergey Vasilchenko's CppQuiz Android app.
C++ Brain Teasers
Get the book, support the site!