gpt4 book ai didi

C++ - 类型特征问题

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:08:39 26 4
gpt4 key购买 nike

我想知道在 C++ 中是否有可能以某种方式处理以下情况:

情况 1) (容易处理)

class BasicFacility { }

template <typename U1, typename U2> class Facility : public BasicFacility { }

现在假设我们想要一些编译时断言并且我们想要检查任意类型 typename TFacility 建模.这很简单:

(boost::is_base_of<BasicFacility, T>::type)

情况 2) (???)

现在让我们假设在同样的情况下我们只有我们的模板类:

template <typename U1, typename U2> class Facility { }

显然我们不能使用与情况一相同的解决方案,因为我们不能写statement<Facility, T> (Facility 本身就是一个模板)。

那么,有没有一种方法(也许,肮脏的,涉及丑陋的转换,特定于对齐方式,任何可能有效的方法)来检查是否有一些T实际上等于一些 template type不引入特定的空(辅助)基类(因为有时你根本做不到)?

谢谢。

最佳答案

推出您自己的测试非常简单:

template <typename T>
struct is_facility : public boost::false_type { };

template <typename U1, typename U2>
struct is_facility< Facility<U1, U2> > : public boost::true_type { };

关于C++ - 类型特征问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3963492/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com