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

Question #190 Difficulty: 2

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

    #include <iostream>

struct A {
  A(int i) : m_i(i) {}
  operator bool() const { return m_i > 0; }
  int m_i;
};

int main() {
  A a1(1), a2(2);
  std::cout << a1 + a2 << (a1 == a2);
}

Hint:

An implicit conversion sequence is used, and operator bool() const gets called. There is however no built-in operator+ or operator== for bools, so one more conversion is used in the sequence.

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!

Android app

Get Sergey Vasilchenko's CppQuiz Android app.