ここで B のオブジェクトを初期化することを期待していましたが、代わりに関数宣言を取得しました。
#include <iostream>
using namespace std;
class A {};
class B {
public:
B(const A&) {
cout << "B: conversion constructor\n";
}
};
int main()
{
B b( A() ); //function declaration: B b( A(*)() );
b.test();
}
出力は次のとおりです。非クラス型 'B( A( *)() )'*である 'b' のメンバー 'test' の要求
この状況でコンストラクターが呼び出されないのはなぜですか?