Неразрешенный внешний символ при отсутствии функции - PullRequest
0 голосов
/ 07 июня 2019

Для следующей программы C ++ / CLI:

#pragma managed(push, off)

class FooBar
{
    FooBar(const FooBar& that) { *this = that; }
    const FooBar& operator =(const FooBar& that);
};

#pragma managed(pop)

int main()
{
    return 0;
}

Предоставляет следующий вывод компоновщика:

Код серьезности Описание Ошибка состояния подавления строки файла проекта LNK2019, неразрешенный внешний символ "private": класс FooBar const & __thiscall FooBar :: operator = (класс FooBar const &) "(?? 4FooBar @@ AAEABV0 @ ABV0 @@ Z) ссылается на функцию" private: __thiscall FooBar :: FooBar (класс FooBar const &) "(?? 0FooBar @@ AAE @ ABV0 @@ Z) ConsoleApplication1 C: \ Users \ SomeUser \ Documents \ Visual Studio 2019 \ Projects \ ConsoleApplication1 \ ConsoleApplication1 \ ConsoleApplication1 \ ConsoleApplication1.obj 1

Но следующееПрограмма на C ++ не делает:

class FooBar
{
    FooBar(const FooBar& that) { *this = that; }
    const FooBar& operator =(const FooBar& that);
};

int main()
{
    return 0;
}

Причина, по которой мне нужно, чтобы это работало, заключается в том, что я включаю заголовочный файл, который находится вне моего контроля, который делает это.Хотя мне никогда не нужно использовать конструктор копирования или оператор присваивания.

Скомпилировано с использованием набора инструментов платформы v142.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...