You've answered 0 of 187 questions correctly. (Clear)

Question #394 Difficulty: 3

According to the C++23 standard, what is the output of this program?

    #include <iostream>
#include <utility>

struct A {
    A() = default;
    A(const A&)  { std::cout << '1'; }
    A(A&&)       { std::cout << '2'; }
};

A a;

int main() {
    [a = std::move(a)]() {
        [a = std::move(a)]() {
        }();
    }();
}

Hint:

Remember that, unless declared mutable, a lambda’s call operator is const by default, so its captured data members are treated as const inside the body.

Answer:

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

Create your own!

C++ Brain Teasers

Get the book, support the site! C++ Brain Teasers cover