C++と色々

主にC++やプログラムに関する記事を投稿します。

テンプレートテンプレートパラメータにtypenameキーワードを使えるようにする

N4051 Allow typename in a template template parameter

今のC++ではテンプレートテンプレートパラメータにはclassキーワードしか使えません。

template <template <typename> class T> // OK
struct A;

template <template <typename> typename T> // NG
struct B;

この制限を無くして、typenameキーワードでもOKにしようというのがN4051の提案です。 私は、キーワードをclassに限定する必要は無いと思いますし、テンプレートパラメータではclasstypenameどちらもOKですから、この提案は採用されて欲しいと思います。むしろ逆になぜ今までclassしかダメな仕様にしていたのかわからないくらいです