http://subtech.g.hatena.ne.jp/cho45/20080708/1215450151
http://subtech.g.hatena.ne.jp/miyagawa/20080708/1215473551
#include <iostream> using namespace std; static int _ = 1; struct X_ { X_() { this->operator /(0); } X_& operator /(int a) { static char const* const text[] = {"ひだまり", "スケッチ", "365"}; cout << text[a]; return *this; } X_& operator <(char const* arg) { cout << " " << arg; return *this;} operator int() { return 2; } } X; int main(int argc, _TCHAR* argv[]) { X / _ / X < "来週も見てくださいね!"; return 0; }
追記
要求満たすだけなら条件分岐いらないな……。
#include <iostream> using namespace std; int main() { struct X_ { X_& operator/(X_&){ return *this; } X_& operator<(char const* a){ cout << "ひだまりスケッチ365 " << a; return *this; } } X, _; X / _ / X < "来週も見てくださいね!"; return 0; }
でよかった。