C ++ 0xでは、次のようなことができます。
double f(double x) { return x; }
template<class T>
T f(T x) = delete;
f()
以外のタイプで呼び出されないようにするためdouble
。
私がやろうとしていることは似ていますが、まったく同じではありません。
ポインタ配列を操作する関数があります。例えば:
template<class T>
T* some_string_function(T* x);
Tをchar、char16_t、およびchar32_tで機能させたいのですが、他のタイプでは機能させたくありません。私はC++0xdelete
がこれを達成するための良い方法だろうと思っていました。基本的に、この関数が3つのUnicodechar
タイプのいずれでもないタイプで機能しないようにしたいのですが、それでも、タイプを一般化してコードの繰り返しを回避できる関数テンプレートの利点を活用したいと考えています。
この問題を解決するための最良の方法は何でしょうか?出来ますか?