mercredi 4 octobre 2017

Template template for std::vector fails to build on icc16

I have a class that has a container in it. This container must be a template and must accept std::vector. The code needs to be C++11 standard. I have simplified for this question, but it is equivalent to:

#include <vector>

template <template <typename, typename...> class Container>
class Test {
    Container<double> c;
};

class TestImplementation : public Test<std::vector> {};

Recently I have found this fails to build for icpc16 as shown by CompilerExplorer http://ift.tt/2y0PjpK with the error message:

too few arguments for template template parameter "Container"
      Container<double> c;

It compiles for gcc, clang and icpc17. Is this a bug in icpc16 or is my code incorrect?

Aucun commentaire:

Enregistrer un commentaire