テンプレート関数を非ポインタ型にすることを特化したいのですが、ポインタを取得した場合には*を付けずに呼び出すことにしたいと思います。オブジェクト引数なしのテンプレート関数
std :: remove_pointerを使用しない方法があるのだろうかと思います。
例えば、私はこのような何かをしたいと思います:
template<typename T>
void setName() {
name = __PRETTY_FUNCTION__;
}
template<typename T>
void setName<T*>() {
setName<T>();
}
name
は、プライベートデータメンバーとして定義されます。
:Fortuatelyパーシャルクラステンプレートの特殊化は、静的メソッドの回避策を使用することができるように許可(以下
setName_impl
の専門を参照)、あれば必要な関数テンプレートラッパ(以下setName()
を参照)されましたか? –@CrazyEddieはい、私はテンプレートを取得しています void :: setName() 'はオーバーロードできません " –
Loay