初期化リストを使用するのは初めてですが、他のstlコンテナと同じように機能するかどうか疑問に思っています。つまり、値をコピーするということですか?私がやろうとしているのは、次のような単純なmin()関数です。
template <class T> T& minArgs(const std::initializer_list<T&>& Arguments)
{
const T* Smallest = Arguments.begin();
for (const T* I = begin(Arguments); I != end(Arguments); ++I)
{
if (*I < *Smallest) Smallest = I;
}
return *Smallest;
}
ただし、関数を呼び出すと、GCCから次のようになります。
error: 'const' qualifiers cannot be applied to 'int&'
私はこれをいじってみましたが、initializer_listsは私が望むことをしないかもしれません。非POD引数も除外する関数が必要です。va_listはより良い代替手段でしょうか?
ありがとう!