小编Mar*_*rny的帖子

在gcc和MSVC中以不同方式调用函数参数的析构函数

在将一些C++代码从Microsoft Visual Studio移植到gcc时,我遇到了一个奇怪的错误,我最终归结为:

#include <iostream>
using namespace std;

class Foo {
public:
    int data;
    Foo(int i) : data(i) 
    {
        cout << "Foo constructed with " << i << endl; 
    }
    Foo(const Foo& f) : data(f.data)
    {
        cout << "copy ctor " << endl;
    }
    Foo(const Foo&& f) : data(f.data)
    {
        cout << "move ctor" << endl;
    }
    ~Foo()
    {
        cout << "Foo destructed with " << data << endl;
    }
};

int Bar(Foo f)
{
    cout << "f.data = " …
Run Code Online (Sandbox Code Playgroud)

c++ gcc c++11 visual-studio-2015

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

标签 统计

c++ ×1

c++11 ×1

gcc ×1

visual-studio-2015 ×1