Каким образом, как показано ниже, при разработке класса или функции лучше и почему?
class Container {
//Provide this functionality??
void addItemVariadic(const Value& val, ...);
//Or provide this functionality??
void addItemList(const list<Value>& vals);
};
Лучше предоставить такую функцию, как addItemVariadic (..) или addItemList (..)?
Или лучше предоставить набор таких функций, например, продолжить использование некоторых итераторов, или лучше ограничить функциональность, например, просто взять список?
Использование переменных функций опасно
Если вы когда-нибудь передадите переменную, которая не имеет тип appriopriate, она вылетит во время выполнения при вызове функции.
Наоборот, если вы используете std::list
, он не будет компилироваться просто, и вы избежите сбоя.
Кстати: я советую вам использовать std::vector
вместо std::list
в этом случае.
Edit1 Возможный дублирующий вопрос. с хорошее решение с использованием оператора << для ввода всех параметров в одном кадре.
Edit2 Чтобы выбирать между различными std :: Containers, есть выбор-граф в качестве ответа на этот вопрос. Этот график адресован на C ++ 03, он не охватывает новые контейнеры, представленные в C ++ 1.
Других решений пока нет …