識別子にマルチバイト使ったりテンプレート引数に文字列渡したり型名を文字列にしたりしたい。
< がテンプレートの括弧にしか見えなくなったのでトライ。
びみょう…。
#include <iostream> class SeeYouNextWeek; namespace Yuno {int X = ((std::cout<<"ひだまりスケッチ"),1);} int _ = ((std::cout << "x360 "), 1); template <class T> int X() { std::cout << "来週も見てくださいね!" << std::endl; return 1; } int main() { Yuno:: X / _ / X < SeeYouNextWeek >();}
演算子オーバーロードは使ってません。
評価順これでいいかどうか自信ないです。
なんとかしてテンプレートの引数に文字列リテラル渡せると思ってたんですが、無理ぽいです。そりゃ静的に解決できないもんな。
もうちょいなんとかならんかなー。とりあえず Modern C++ Design とか読んでみるか。
C++0x だと関数テンプレートでデフォルト引数が使えるらしい。
へー。ていうか今まだ使えないのが驚き。なんでだろう。
#include <iostream> namespace Yuno {int X = ((std::cout<<"ひだまりスケッチ"),1);} int _ = ((std::cout << "x360 "), 1); template <int a=0> int X() { std::cout << "来週も見てくださいね!" << std::endl; return 1; } int main() { Yuno:: X / _ / X < //来週も見てくださいね!// >();}
うん…なんかもうしつこいね。ごめんね。