Я пишу функцию-оболочку, которая принимает некоторые устаревшие структуры данных, которые не используют шаблоны, но также хотели бы вариант для структур данных STL.
template<class DataType,
std::enable_if_t<std::is_same<DataType, Array>>::value, int> = 0>
auto MyFunc(DataType data) { ... }
template<class DataType,
std::enable_if_t<std::is_same<DataType, HashSet>>::value, int> = 0>
auto MyFunc(DataType data) { ... }
template<template<class DataType, class ValType,
std::enable_if_t<std::is_same<DataType, ???>::value, int> = 0>
auto MyFunc(DataType data) { ... }
Как мне написать последнюю функцию, чтобы он принимал std :: vector и аналогичные типы данных, принимающие один параметр шаблона? У меня это написано здесь с SFINAE, но я также открыт для перегрузки функций. Я использую C ++ 14.