zu variadische Vorlagen und zum Zweck des Lernens zu überprüfen, ich bin neu betrachtet die folgende FunktionWie die Art der übergebenen Argumente zu variadische Funktion
template <typename T, typename... args>
T* make_arr(args... arg) {
// Code to check if passed args are of the same type
T* arr = new T[sizeof...(arg)]{ arg... };
return arr;
}
Ich habe zwei Fragen:
- I Ich möchte, dass die Funktion zu einem Template wird und ich möchte, dass die übergebenen Argumente vom selben Typ sind, also die Frage: Ist es möglich zu überprüfen, ob übergebene Argumente vom selben Typ sind?
- Ist es möglich, den Typ des Array-Zeigers abzuleiten, indem der Typ
args...
abgeleitet wird, ich meine, ohne<typename T>
zu verwenden? ... Ich benutze decltype (arg), aber es hat nicht funktioniert ...
Hinweis: Bitte die Titelfrage bearbeiten, wenn es nicht angemessen ist ... Dank
nicht sicher, aber haben Sie versucht, 'typeid' Funktion. – seleciii44
Sie möchten, dass die Argumente identisch sind * und sich möglicherweise von "T" unterscheiden? Oder möchten Sie, dass alle denselben Typ wie "T" haben? Oder Sie erlauben es, dass sie sich voneinander unterscheiden, aber Sie müssen lediglich Ihr Array von 'T' mit Typen erstellen, die in' T' konvertiert werden können? –