小编T. *_*ter的帖子

参数包识别std :: is_base_of()

是否有可能有一个静态断言是否作为模板参数提供的类型实现参数包中列出的所有类型,即.一个参数包知道std :: is_base_of()?

template <typename Type, typename... Requirements>
class CommonBase
{
    static_assert(is_base_of<Requirements..., Type>::value, "Invalid.");
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
            parameter pack aware version of std::is_base_of()
public:
    template <typename T> T* as()
    {
        static_assert(std::is_base_of<Requirements..., T>::value, "Invalid.");
        return reinterpret_cast<T*>(this);
    }
};
Run Code Online (Sandbox Code Playgroud)

c++ templates type-traits variadic-templates

9
推荐指数
1
解决办法
976
查看次数

标签 统计

c++ ×1

templates ×1

type-traits ×1

variadic-templates ×1