シーケンスのサイズを決めたい。 STLのすべてのシーケンスに対して、私は.size()メンバ関数を使用できますが、シーケンスが配列の場合は問題になります。引数として渡されたシーケンスが配列型かSTL配列型かをプログラムで判断する方法はありますか?共通のインターフェースを使ってシーケンスのサイズを調べる
template<typename sequence>
size_t find_size(sequence& s)
{
// if s has .size() member function
// return s.size()
//else if it is an array type
// return sizeof(s)
//else throw error
}
は基本的に私はC++ 11
PSにおける非会員のサイズ、我々は非会員が始まる持っているだけのような関数()とend()を探しています:順序で私は、シーケンスとしての意味しますSTLで定義されています(すべてが.size()メンバー関数を持ちます)。
実際には、どのようなシーケンスタイプにも依存しないように、このようなインターフェイスが必要です。 –
あなたが何を求めているのか分かりません。あなたは2つではなく1つの関数だけを使って同じ結果を得たいですか? –
関数のオーバーロードも問題ありません。 –