I am trying to restrict the scope of my non-type template parameter as much as possible, so this is the parent template:
template <typename _Tp, const std::vector<std::size_t> &_dims>
struct __array_traits{};
and I'm trying to create a specialised template with the non-type template parameter set to a default value, possibly an empty const vector:
template<typename _Tp>
struct __array_traits < _Tp, const std::vector<std::size_t> &&std::vector<std::size_t>{} >
{};
Then the VS linting highlighted the latter const saying 'Type name is not allowed.' and the latter __array_traits saying 'The template argument list of the partial specialization includes a nontype argument whose type depends on a template parameter.'
I'm new to C++ and am quite confused to how templates work. Any help would be much appreciated.