【问题标题】:Detecting a type of a class [closed]检测类的类型[关闭]
【发布时间】:2010-11-06 20:24:11
【问题描述】:

是否可以检测一个类是否属于某种类型?

【问题讨论】:

  • 是的,这是可能的,但是为了什么?
  • 类的类型是什么意思?类是一种类型。
  • -1:就目前而言,这个问题毫无意义。请澄清!
  • @sepp2k 我想这意味着如果 A 是 B 的子类。今天所有 OP 的 3 个问题都是关于 C++ 元编程的非常模糊的(单行)问题。他应该提供更多细节。
  • @那里...?那么,我的答案对您不起作用怎么办? is_same<A, B>::value?

标签: c++ metaprogramming


【解决方案1】:

是的:

template <typename T, typename U>
struct is_same
{
    static const bool value = false;
};


template <typename T>
struct is_same<T, T>
{
    static const bool value = true;
};

is_same<int, float>::value; // false
is_same<int, int>::value; // true

这些被称为类型特征,您可以在 Boost.TypeTraits 和 C++0x 中找到其中的大量。

【讨论】:

  • 你我的男人!这是检测类型是否相同而不是某种类型。
  • @There:那你的问题没有意义。如果您想知道“它们是否属于某种类型”,这与检查“检测类型是否相同”有什么不同? As usual,询问您要解决的大局和问题,而不是您认为需要采取的微小的理论步骤。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-02
  • 2021-06-19
  • 2018-01-31
  • 2023-04-09
相关资源
最近更新 更多