小编jda*_*dls的帖子

constexpr基类的地址

使用clang 3.4(trunk),有没有办法用常量表达式计算基类的位移?

struct A { int a; };
struct B { int b; };

struct C: A, B {};

// cannot access base class of null pointer:
constexpr auto c_b_address = /*(size_t)*/ &(B&) *(C*)nullptr; 
Run Code Online (Sandbox Code Playgroud)

c++ base-class constexpr c++14

6
推荐指数
1
解决办法
500
查看次数

C++指向成员的指针

//#define NOT_WORKS
#define HOW(X) 0

struct A {

};

struct B {
    A a;
};

struct C {
    B b;
};

int main(int argc, char **argv) {
    A B::*ba = &B::a;       // ba is a pointer to B::a member
    B C::*cb = &C::b;       // cb is a pointer to C::b member

#ifdef NOT_WORKS

    { A C::*ca = &C::b::a; }    // error: Symbol a could not be resolved / error: ‘C::b’ is not a class or namespace
    { A C::*ca = …
Run Code Online (Sandbox Code Playgroud)

c++ member-pointers

5
推荐指数
1
解决办法
268
查看次数

标签 统计

c++ ×2

base-class ×1

c++14 ×1

constexpr ×1

member-pointers ×1