クラスまたは関数を設計するとき、以下に示すように、どちらの方法が優れているのでしょうか。また、その理由は何ですか。
class Container {
//Provide this functionality??
void addItemVariadic(const Value& val, ...);
//Or provide this functionality??
void addItemList(const list<Value>& vals);
};
addItemVariadic(..)やaddItemList(..)のような関数を提供する方が良いですか?
または、イテレータをさらに取得するなど、そのような関数のセットを提供する方がよいのでしょうか、それとも、リストを取得するなど、機能を制限する方がよいのでしょうか。