【发布时间】:2019-03-03 00:12:26
【问题描述】:
C++17 标准说可以做到这一点:
template<class T, class U = T> class B { /* ... */ };
template<template<class> class P> class X { /* ... */ };
X<B> xb; // OK in C++17; ill formed in C++14
C++14 标准使相同的代码成为错误。
旧的 C++14 规则对我来说很有意义。新的 C++17 规则没有。发生了什么变化?
上面的示例代码供参考
【问题讨论】:
-
一些编辑请在 [c++14] 和 [c++17] 问题中添加 [c++] 标签。但是,这个问题可能太小而无法引起一般 [c++] 观察者的兴趣。只有专门观看 [c++14] 和/或 [c++17] 的观察者才需要注意。
-
阅读标签维基,你总是标签c++以及版本化的。
-
@PasserBy 当然。没关系。
标签: c++ templates c++14 language-lawyer c++17