Код: Выделить всё
#include
class Foo
{
public:
Foo (int N) : values {new int[N]}{
for (int i = 0; i < N; i++) {
values[i]=2*i;
}
};
private:
int *values;
};
int main()
{
Foo A {20};
Foo B {A};
Foo C {std::move(A)};
return 0;
}
< /code>
так что если я собираюсь и делаю
nm -C a.out | grep Foo< /code>
я просто см. < /p>
00000000000011b8 W Foo::Foo(int)
00000000000011b8 W Foo::Foo(int)
000000000000122a W std::remove_reference::type&& std::move(Foo&)
< /code>
Если я изменяю класс, чтобы включить, например, < /p>
Foo(const Foo&)=default;
< /code>
Тогда полученный выход из NM одинаковы. В то время как если я сделаю < /p>
Foo(const Foo&){};
< /code>
Тогда я получаю < /p>
00000000000011ce W Foo::Foo(int)
0000000000001240 W Foo::Foo(Foo const&)
00000000000011ce W Foo::Foo(int)
0000000000001240 W Foo::Foo(Foo const&)
000000000000124f W std::remove_reference::type&& std::move(Foo&)
Подробнее здесь: https://stackoverflow.com/questions/794 ... mbol-table