【发布时间】:2019-11-23 13:43:58
【问题描述】:
我正在努力让它发挥作用:
template<template<typename> class... Attributes>
struct Skills
{
template<class DERIVED>
struct Create : public Attributes<DERIVED>...
{};
};
template <class T, class SKILLS>
class Tester : public typename SKILLS::Create<Tester<T,SKILLS>>
{}
但编译器抱怨:
错误 C2518:基类列表中的关键字 'typename' 非法;忽略
但是,如果我不在类模板中派生,这可以正常工作。
有没有机会从嵌套模板类派生?
我为什么需要它?我正在尝试为 CRTP 类模板实现一个更好的接口,它允许执行以下操作:
using MyClass = ClassWithAttributes<Skills<Plus,Minus,Equal,Clear,Size>>
【问题讨论】:
标签: c++ templates template-meta-programming crtp