У меня есть
void f(std::initializer_list<int> x);
// .cpp
void f(std::initializer_list<int> x) { /* Lots of code */ }
В какой-то момент мне нужно также
inline void f(std::vector<int> x) { /* I want call f(initializer_list), but cant */; }
Мое решение
void f_inner(const int* x, std::size_t size);
inline void f(std::initializer_list<int> x) { f_inner(x.begin(), x.size(); }
inline void f(std::vector<int> x) { f_inner(x.data(), x.size()); }
// .cpp
void f_inner(const int* x, std::size_t size) { /* Lots of code */ }
Может быть, есть более элегантное решение?Но я не хочу перемещать f_inner в .h и делать его шаблоном