Code: Select all
virtual void doSomethingWithInts(std::ranges::input_range auto intsView) = 0;
Hier ist ein detaillierteres Beispiel:
#include
#include
class IGetRange{
virtual void doSomethingWithInts(std::ranges::input_range auto intsView) = 0;
};
class PrintRange : public IGetRange{
void doSomethingWithInts(std::ranges::input_range auto intsView) {
std::ranges::copy(intsView, std::cout);
}
};
class SendOverNetworkRange : public IGetRange{
NetworkAdapter networkAdapter;
void doSomethingWithInts(std::ranges::input_range auto intsView) {
//do some extra work with additional input
std::ranges::copy(intsView, networkAdapter);
}
};
class Caller {
std::vectordoSomethingWithInts(passView);
}
};
< /code>
, aber es sollte polymorph sein, daher ist es virtuell und akzeptiert keine Vorlagen < /p>
Ich möchte keinen neuen Vektor übergeben, weil es wird Mehr Platz zuweisen,
entweder eine Spannweite ist keine Option, da ich ihn zuweisen muss.>