小言

C++でtemplateクラスのインスタンスを作るたびに,長いテンプレート引数を書かなければならないのは耐え難いものがある。と,前から思っていたわけだが,先日見たソースを参考に,C++のtemplate周りの型推論を使えば,さくさくかけるっぽい。

#include 

template 
class Class {
public:
  Class(const T& d) : data_(d) {}
  void write(std::ostream &out) const { out << data_; }
private:
  T data_;
};

template 
Class make(const T& d) { return Class(d); }

int main()
{
  Class(3).write(std::cout);
  std::cout << std::endl;
  make(3).write(std::cout);
  std::cout << std::endl;
}

こりゃ便利。んま,関数を書かなきゃいけないから,そこら辺どうなのよ的な感はありますが。