包索引是在 C++26 中引入的,我希望此功能能够对元编程产生重大影响,特别是对于索引包,否则需要解决方法。
由于包索引说明符的语法是:
typedef-name ... [ expression ]
- 其中
typedef-name
是identifier
或simple-template-id
有了上述信息,是否允许:
template <typename>
using apply_t = bool;
// #1
template <typename... Args>
using A = apply_t<Args>...[0];
// can be reworked with: apply_t<Args...[0]>
// #2
template <template <typename...> typename... Temps>
using B = Temps<>...[0]
// no other way other than this because 'Temps...[0]<>' is not allowed yet (?)