c++ 如何使用模板类的所有示例?

r6vfmomb  于 2023-01-22  发布在  其他
关注(0)|答案(2)|浏览(166)

因此,我有一个简单的模板类,其中有多个类继承了它的不同类型。

template<typename T> class root {
    T value;
};

class body : public root<int> {
    /* some code */
};

/*some more classes that inherits root*/

在文件的后面,我需要引用从根继承的所有类

concept _bcie = std::is_base_of_v<root, body>

它给出的误差是use of class template 'root' requires template arguments
但是我想引用从根继承的所有类
有没有一种方法可以只使用类而不提供模板参数?

ia2d9nvy

ia2d9nvy1#

使root从另一个更高的非模板基类派生,并检查该类。

fafcakar

fafcakar2#

简单的方法是使用模板lambda

template<typename T> 
class root {
  T value;
};

template<class T>
concept is_derived_from_root = requires (const T& t) {
  []<class U>(const root<U>&){}(t);
};

Demo

相关问题