Я хотел бы получить тип возврата std::begin
общим способом. Мое текущее решение:
using type = decltype(std::begin(std::declval<T>()));
и работает, когда T = std::vector<int>
. Но я не понимаю, почему следующее не работает:
using type = decltype(std::begin(std::declval<int[3]>()));
Я получаю сообщение об ошибке:
example.cpp:83:60: error: no matching function for call to ‘begin(int [3])’
using type = decltype(std::begin(std::declval<int[3]>()));
Как получить возвращаемый тип std::begin
общим способом?