型マッチング

こんなことをしてもマッチして欲しいと思う。無理?

#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;
}