Variadic Templates; Funktionsauruf
-
Hallo
ich habe folgendes Problem.
Ich habe eine Klasse Range
class Range{}
mit Unterklassen
class IntegerRange : public Range { public: int _start, _end; IntegerRange( int start, int end) { _start=start; _end=end;} } class FloatRange : public Range { public: float start, end; FloatRange( float start, float end) { _start=start; _end=end;} }
Ich möchte nun verschiedene Ranges in einen std::vector<Range> einreihen:
std::vector<Range> rangeVector; rangeVector.insert( new IntegerRange( 0, 10 ) ); rangeVector.insert( new IntegerRange( 12, 22 ) ); rangeVector.insert( new FloatRange( 1.33f, 3.01f ) ); rangeVector.insert( new IntegerRange( 0, 10 ) ); // ...
Anschließend möchte ich eine Funktion folgender Form definieren
template<typename...Ts> double foo( std::function<double(Ts...)> func, std::vector<Range> rangeVector ) { return // hier soll func aufgerufen werden mit den Start- und Endwerten aller umfassten Kindklassen, also: func(0,10, 12,22, 1.33f,3.01f, 0,10) }
Ich habe leider keine Ahnung, wie ich den Aufruf von func mit den gewünschten Argumenten implementieren kann. Kann mir einer von euch helfen?
Danke!
-
Falsches Unterforum... hier ist C++/CLI, eine .NET Sprache.