Перегрузка оператора сложения двух матриц
Имеется такая задача: перегрузить оператор сложения двух матриц таким образом, чтоб перегруженный оператор принимал размер блока и выполнял блочную обработку с помощью std::async и фьючерсов. Как это осуществить с помощью асинхронного выполнения мне в принципе ясно, но не понимаю, как правильно написать само название функции и принимаемые параметры. Ведь, если я пишу таким образом (часть кода чуть ниже), выдаётся ошибка касательно количества параметров, а как сделать иначе не понимаю, ведь нужно же, как я понимаю, обязательно передать прибавляемую матрицу и размер блока по заданию:
class matrix {
//... (тут что-то нужное для класса написано: поля и тд)
public:
matrix operator+ (const matrix& a, int block_size) {
//...
}
};
Были мысли насчёт того, чтоб создать какую-то дополнительную вспомогательную функцию, но кажется, что тоже не совсем подходящий вариант. Помогите, пожалуйста, разобраться!