小编Ale*_* G.的帖子

一个人怎么能将简单成员与memcpy结合起来?

我不太了解标准报价memcpyunion普通会员。

考虑代码:

struct Test{
    union
    {
        void(*function_p)(void*);
        void(*function_p_c)(const void*);
    };
    Test(const Test &other)
    {
        using std::memcpy;
        memcpy(&function_p, &other.function_p, sizeof(function_p)); //?
        memcpy(&function_p_c, &other.function_p_c, sizeof(function_p_c)); //??
    }
};

int main(void)
{
    Test t1; t1.function_p = NULL; //let it be NULL for c++98 sake
    Test t2(t1); // is it safe? does this set new active member of union?

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

因此,一个问题导致另一个问题:

  • 上面的代码安全吗?还是UB排名第二/第一,memcpy取决于union所接触的成员用户?招募memcpy两个成员都太过分了吗?

  • 如果不安全,那么我如何在没有一些活动联合成员标志的情况下实现复制构造函数?

c++ std standards-compliance unions language-lawyer

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

Visual Studio Code在远程主机上编译

我在远程主机上有一个项目(QNX,g ++,makefile,如果重要的话).我正在使用VSCode通过ftp编辑远程主机上的源代码.

如何使用Visual Studio Code在远程主机上的本地机器上使用params运行make实用程序来在远程主机上构建此项目?

我发现这个.json脚本在本地机器上运行make,但我无法弄清楚如何在远程执行它.

c++ makefile g++ qnx visual-studio-code

6
推荐指数
0
解决办法
951
查看次数