从静态方法获取类的类型

时间:2014-06-05 09:24:28

标签: c++ gcc c++11

我有一个带有静态方法的模板类,理想情况下我想在此方法中添加类似std::cout << decltype(this) << std::endl;的内容,但由于我无法在静态方法中使用this,因此无法编译。我找到了一个工作示例here(不确定我可以打印decltype输出)但它也使用this所以我不能在静态方法中使用它。我被迫在构造函数中使用它,但我还没有放弃。有没有人知道如何在静态方法中打印类类型?

1 个答案:

答案 0 :(得分:3)

你的意思是:

#include <iostream>
#include <typeinfo>

template <typename T>
class C
{
public:
    static void print()
    {
        std::cout << typeid(C).name() << std::endl;
    }

};

int main() {
    C<int>::print();
    C<char>::print();
    return 0;
}