У меня есть файл .ixx, в котором функция замены членов принимает 1 аргумент, а функция, не являющаяся членом, принимает 2.
Код: Выделить всё
export module Spreadsheet;
export import SpreadsheetCell;
export class Spreadsheet
{
public:
Spreadsheet(size_t width, size_t height);
Spreadsheet(const Spreadsheet& src);
Spreadsheet(Spreadsheet&& src) noexcept;
~Spreadsheet();
Spreadsheet& operator=(const Spreadsheet& rhs);
Spreadsheet& operator=(Spreadsheet&& rhs) noexcept;
void setCellAt(size_t x, size_t y, const SpreadsheetCell& cell);
SpreadsheetCell& getCellAt(size_t x, size_t y);
void swap(Spreadsheet& other) noexcept;
private:
void verifyCoordinate(size_t x, size_t y) const;
size_t m_width{ 0 };
size_t m_height{ 0 };
SpreadsheetCell** m_cells{ nullptr };
};
export void swap(Spreadsheet& first, Spreadsheet& second) noexcept;
Код: Выделить всё
void Spreadsheet::swap(Spreadsheet& other) noexcept
{
std::swap(m_width, other.m_width);
std::swap(m_height, other.m_height);
std::swap(m_cells, other.m_cells);
}
void swap(Spreadsheet& first, Spreadsheet& second) noexcept
{
first.swap(second);
}
Код: Выделить всё
// Move constructor
Spreadsheet::Spreadsheet(Spreadsheet&& src) noexcept
{
cout
Подробнее здесь: [url]https://stackoverflow.com/questions/79883648/overloaded-function-is-not-found[/url]
Мобильная версия