識別子にマルチバイト使ったりテンプレート引数に文字列渡したり型名を文字列にしたりしたい。

< がテンプレートの括弧にしか見えなくなったのでトライ。

びみょう…。

#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 < //来週も見てくださいね!//

>();}

うん…なんかもうしつこいね。ごめんね。