Здравствуйте, Аноним, Вы писали:
А>Есть такой метод:
А>template <class _ValueType>
А>bool GetValue(const std::string& value_name, _ValueType& value);
А>_ValueType — может быть как простым значением так и контейнером.
заведи traits, типа такого:
template <class T>
struct is_container
{
enum { value = false };
};
и специализируй его для типов, которые являются контейнерами
template <>
struct is_container<std::string>
{
enum { value = true };
};
Кстати, так как у всех STL-контейнеров определен тип value_type, то можно сделать что-нть вроде (в таком виде не скомпилируется, но идея, думаю, понятна):
template <class T>
struct is_container
{
typedef typename T::value_type v;
enum { value = true };
};
тогда по SFINAE для всех STL-контейнеров is_container<...>::value == true.