Ist es möglich, zwei Vorlagenklassen in eine Vorlagenklasse zu übergeben?Mehrere Vorlagenvorlagenparameter für Vorlagenklasse
Ich bin auf der Suche nach einer Klasse, die zwei verschiedene std::tuple<std::vector<>>
enthält.
Ich fange an zu vermuten, dass das, was ich erreichen möchte, nicht getan werden kann, aber ich kann nichts finden, was anders sagt.
Im Folgenden wird der Code Ich arbeite mit:
#include <iostream>
#include <vector>
#include <tuple>
template<typename... Ts>
struct Typelist
{
static constexpr std::size_t size { sizeof...(Ts) };
};
template<class, class> class World;
template<template<typename... Arg1> class T1, template<typename... Arg2> class T2>
class World<Typelist, Typelist>
{
private:
std::tuple<std::vector<T1>...> m1;
std::tuple<std::vector<T2>...> m2;
};
int main() {
// your code goes here
using TL1 = Typelist<int, char, double>;
using TL2 = Typelist<float, unsigned int, bool>;
World<TL1, TL2> w2;
return 0;
}
Ist das möglich ist, und wenn ja, was mache ich falsch? Wenn nicht, gibt es eine mögliche Alternative?
Die Verwendung von 'World' ist nicht korrekt, da 'Typelist' keine Klasse ist. Sie können 'World , Typelist >' verwenden, aber es ist nicht klar aus Ihrem Post, was sinnvolle Werte für 'args1' und' args2' wären. –
Bitte erklären Sie mir, was der Zweck des Tupels ist, ist es mir überhaupt nicht klar, weil wie geschrieben nur ein Typ darin ist, und Sie den '...' Operator missbrauchen? Es gibt kein Parameterpaket zum Erweitern? Versuchen Sie, 'std :: tuple ...>' zu tun? –
OmnipotentEntity