02类模板中,模板模板形参的示例代码模板类型参数重名,`msvc` 允许 `gcc` 编译错误
Closed this issue · 9 comments
ooolize commented
Mq-b commented
你应该提供 https://godbolt.org/
Mq-b commented
模板类型参数重名了,的确,这是个问题,msvc 不在乎这个问题。
ooolize commented
嗯 好的白老师 https://godbolt.org/z/115YKq9TK
Mq-b commented
https://godbolt.org/z/zPenEK9Ko
把第二个模板类型参数的名字改成 T2
就是。
Mq-b commented
- 有默认模板且可以有名字的模板模板形参。
也有这个问题。
Mq-b commented
还是改成 Ty
吧,模板模板形参那里的不动。
AzrBrk commented
虽然可能和主题无关,但是模板模板形参并不需要命名,完全可以写成
template<typename T, template<typename> typename C = my_array>
并且命名了实际上并没有什么作用,编译器并不能提取模板模板形参里面的类型,甚至
template<template<typename...Typs> typename List>
然后sizeof...(Typs)
都做不到。
特化也无法分辨。
然而, 函数重载却可以分辨数数量, 就提一下:https://godbolt.org/z/GfEzvj4aj
Mq-b commented
但是模板模板形参并不需要命名
是,但是你应该看视频是如何教学的,直接“复制”,默认带个名字了,无所谓。