Today I was digging through the source code of the Visual Studio C++ implementation and stumbled across the following lines of the std::unique_ptr:
template<class _Ty,class _Dx>
class unique_ptr<_Ty[], _Dx>
I understand the first line. The second line surprised me. Why are the template arguments behind the name of the class? What does that mean? Probably it has to do with the fact that this is the array variant of unique_ptr?