Как можно перегрузить оператор << сразу для 2 аргументов?
Задача состоит в этом: У меня есть некий класс smartlist в котором есть вектор состоящий из структур ONE_ELEM_LIST где есть лишь 2 класса string (in, out). Заполнение 1 элемента листа должно выглядеть примерно так:
thelist << "input", "out";
я знаю что, что с помощью функции это можно реализовать буквально за несколько секунд, но мне хочется чтобы добавление элементов было через оператор <<.
Как это можно сделать?
Проблему решил. Может и не так как хотелось, но тоже не плохо (Оказывается оператор , перегрузить не возможно как и && или ||) Сделал я это с помощью операторов + и -. Если кому надо код:
#include <Algorithm>
#include <regex>
#include <string>
#include <vector>
using namespace std;
struct smartlist
{
struct ONE_ELEM_LIST
{
string out;
string in;
};
vector<string>outvec;
vector<string>invec;
vector<ONE_ELEM_LIST>tlist;
void load()
{
tlist.clear();
size_t sizeout = outvec.size();
size_t sizein = invec.size();
if (sizeout == 0 && sizein == 0)
{
return;
}
size_t nondouble = sizeout % sizein;
size_t fortime = sizeout + sizein - nondouble;
fortime = fortime / 2;
for (size_t x = 0; x < fortime; x++)
{
ONE_ELEM_LIST tmp;
tmp.in = invec[x];
tmp.out = outvec[x];
tlist.push_back(tmp);
}
}
void clear()
{
tlist.clear();
outvec.clear();
invec.clear();
}
smartlist& operator-(string val)
{
invec.push_back(val);
return *this;
}
smartlist& operator+(string val)
{
outvec.push_back(val);
return *this;
}
};```