不完整的类型直到C ++ 17?

时间:2017-09-16 23:39:16

标签: c++ c++11 variadic-templates c++17 template-specialization

我认为下面的代码是有效的C ++ 11,但GCC(g ++(GCC)8.0.0 20170528)拒绝它;报告变量f的类型不完整。虽然它使用-std=c++17标志进行编译。谁能告诉我为什么?

#include <type_traits>

template <class> struct Foo;

template <
  template <template <class ...> class> class MM,
  template <class...> class M
>
struct Foo<MM<M>> {};

template <template <class ...> class, class...>
struct Bar { };

Foo<Bar<std::add_pointer>> f;

0 个答案:

没有答案