小编ben*_*itj的帖子

指针到"内部结构"成员是否被禁止?

我有一个嵌套的结构,我想有一个嵌入成员之一的指向成员的指针:

这合法吗?

struct InnerStruct
{
    bool c;
};
struct MyStruct {
    bool t;
    bool b;
    InnerStruct inner;
}; 
Run Code Online (Sandbox Code Playgroud)

这个:

MyStruct mystruct;
//...
bool MyStruct::* toto = &MyStruct::b;
Run Code Online (Sandbox Code Playgroud)

没问题,但是:

bool MyStruct::* toto = &MyStruct::inner.c;
Run Code Online (Sandbox Code Playgroud)

不是.任何的想法?

谢谢

这里有一些细节是的,它是&MyStruct :: b而不是mystruct :: b; 代码来自自定义RTTI/Property系统.对于每个指定的类,我们保留一个"Property"数组,包括一个Ptr-to-member它的用法如下:

//somewhere else in code...
( myBaseClassWithCustomRTTIPointer)->* toto = true;
Run Code Online (Sandbox Code Playgroud)

c++ pointers

18
推荐指数
3
解决办法
4073
查看次数

通过继承减少模板膨胀

有没有人有使用继承减少模板代码膨胀的经验?

我犹豫以这种方式重写我们的容器:

class vectorBase
{
  public:
    int size();
    void clear();
    int m_size;
    void *m_rawData;
    //....
};

template< typename T > 
class vector : public vectorBase
{
    void push_back( const T& );
    //...

};
Run Code Online (Sandbox Code Playgroud)

我应该保持最大的性能,同时减少编译时间

我也想知道为什么stl实现不使用这种方法

感谢您的反馈

c++ inheritance templates code-generation

10
推荐指数
1
解决办法
1212
查看次数

标签 统计

c++ ×2

code-generation ×1

inheritance ×1

pointers ×1

templates ×1