已弃用的结构构造函数语法

问题描述 投票:0回答:1

我正在迁移一个旧的 C++ 库,其中大部分代码已经有 20 年以上的历史了。我发现了一个结构声明,我认为它是一个看起来像这样的构造函数:

struct PROPERTIES_PRESENT2
{
    bool PropertyPresence[13];

    struct PROPERTIES_PRESENT2(void)
    {
        memset((&PropertyPresence), 0, (sizeof(bool) * 13));
    }
};

今天的现代编译器无法编译它。我想我可以通过删除构造函数之前的“结构”来使其工作。但我希望获得帮助的是:旧的 C++ 标准是否需要在构造函数之前使用“结构”,如上所示?任何人都可以确认该行为确实是构造函数的行为,而不是一些我应该意识到的长期被遗忘的带有副作用的东西吗?

我的“转换”版本:

struct PROPERTIES_PRESENT
{
    bool PropertyPresence[13];
    
    PROPERTIES_PRESENT(void)
    {
        memset((&PropertyPresence), 0, (sizeof(bool) * 13));
    }      
};
c++ struct constructor
1个回答
0
投票

旧的 C++ 标准是否要求构造函数之前有“结构”,如上所示?

不,ISO C++ 中从来都不是格式良好的语法。

我从未见过这种语法,所以遗憾的是我无法回答问题的其余部分。

© www.soinside.com 2019 - 2024. All rights reserved.