有没有办法在静态上下文中获取当前类的类型?

时间:2014-12-19 11:47:11

标签: c++ c++11 types static decltype

出于好奇,是否有可能获得当前类的类型而不在静态上下文中拼写出其名称?

这个想法是这样的:

class Foo{
    auto clone () -> decltype(*this);
}

但这只适用于非静态上下文。像这样的成员声明是不可能的:

class Foo{
    static auto make() -> decltype(*this); //"this" is not valid in a static function
    decltype(*this) secondFoo;
    static decltype(*this) instance;
}

那么,有什么我可以用decltype(*this)替换它会使上述声明有效吗?


解决方法当然是typedef Foo OwnType;,然后使用OwnType,我只是好奇,如果还有不同的方法。


我想为PMP函数执行此操作,该函数定义了与调用函数的类相同类型的静态成员变量的加载。

0 个答案:

没有答案