Конструктор копирования с параметрами по умолчанию никогда не вызывается

Почему на выходе следующей программы просто int3 , а не int3 & 4 ?

#include <iostream>

class B
{
public:
    explicit B(int i) { std::cout<<"int"<<i; }
    B(const B& rhs, int i = 0) { std::cout<<"&"<<i; }
};

int main(int, char**)
{
    B b(B(3), 4);
}

Команда: clang ++ test. cpp -O0

Компилятор: Apple clang версии 3.0 (теги / Apple / clang-211.12) (на основе LLVM 3.0svn)

7
задан David Lin 2 March 2012 в 01:44
поделиться