こんなことをしてもマッチして欲しいと思う。無理?
#include <iostream> using namespace std; class CDisplayInt { public: void operator()(int x) { cout << "int:" << x << endl; } }; class MakePrintingObject { public: operator CDisplayInt() { return CDisplayInt(); } }; int main(void) { MakePrintingObject printingObject; printingObject(6); /* 本当はキャストが必要 */ /* ((CDisplayInt)printingObject)(6); */ /* に相当する変換を暗黙にできない?って話 */ return 0; }