【发布时间】:2019-01-19 19:26:58
【问题描述】:
当我编译以下代码时,我得到 error: type/value mismatch at argument 1 in template parameter list...。编译器是gcc 8.2.0版。
template<typename>
struct t1 {};
template<typename ...>
struct t2 {};
template<typename, typename ...>
struct t3 {};
template<template<typename> class>
struct tt1 {};
template<template<typename ...> class>
struct tt2{};
template<template<typename, typename ...> class>
struct tt3{};
tt1<t2> _1; // error
tt1<t3> _2; // error
tt2<t1> _3;
tt2<t3> _4;
tt3<t1> _5;
tt3<t2> _6; // error
问题:为什么允许_3、_4、_5和_1 、_2、_6错了吗?
【问题讨论】:
标签: c++ c++11 variadic-templates