访问指针类型的静态属性

时间:2016-12-01 01:17:55

标签: c++ c++11 pointers static typetraits

我试图在元组中调用类型的静态方法,但元组使用指针,而不是类型本身。这意味着当我使用tuple_element时,我得到一个指针类型,我不能用它来调用静态方法。

有谁知道如何将指针类型转换为非指针等效项,或者访问指针类型的静态属性?

struct Example
{
    static int example()
    {
        return 0;
    }
};

typedef Example* PointerType;

int main()
{
    PointerType::example(); // Nope
    (*PointerType)::example(); // Nope
    (typename *PointerType)::example(); // Nope
    (PointerType*)::example(); // Nope
}

1 个答案:

答案 0 :(得分:4)

您可以使用std::remove_pointer(因为C ++ 11)来获取指向的类型,例如(注意{C>支持int b = 0b11100000; System.out.println(b); System.out.println(b >>> 2); 14)

std::remove_pointer_t