Предположим, что я имел следующий класс:станд :: набор шаблона класса без конкретного определения
template<typename T>
class Value {
public:
Value(std::string name, T value) : name(name), value(value) { }
T const &value() throw() { return value }
std::string const &name() throw() { return name }
private:
std::string name;
T value;
};
, а затем я хотел сделать что-то вроде:
class Group {
public:
Group(std::string name) : name(name) { }
template<typename T>
void add_value(std::string const &name, T const &val) throw() {
Value<T> tmp(name, val);
values.insert(tmp);
return;
}
private:
std::string name;
std::set< Value<????> > values; // HERE BE MY QUESTION
}
Конкретно, я хочу, чтобы сохранить Value
в его многочисленных формах шаблонов в том же std :: set (например, с Value<int>
и Value<float>
, сохраненными в том же наборе).