Domande taggate «templates»

Il tag dei modelli viene utilizzato in più contesti: programmazione generica (in particolare C ++) e generazione di dati / documenti mediante motori di modelli. Quando si utilizza questo tag per domande pesanti sull'implementazione, taggare il linguaggio del codice in cui è scritta l'implementazione.

4
Sovraccarico di una funzione mediante modelli
Sto provando a definire una funzione usando i template e voglio che il typename sia int o anEnum (un enum specifico che avevo definito). Ho provato quanto segue ma ho fallito: template <int | anEnum T> // or <int T, anEnum T> or <int, anEnum T> bool isFunction(const T &aVariable){} …

3
Come posso creare un modo cartesiano di elenchi di tipi in C ++?
Autoesplicativo. Fondamentalmente, dire che ho elenchi di tipi in questo modo: using type_list_1 = type_list<int, somestructA>; using type_list_2 = type_list<somestructB>; using type_list_3 = type_list<double, short>; Possono essere un numero variabile di elenchi di tipi. Come posso ottenere una lista dei tipi di prodotti cartesiani? result = type_list< type_list<int, somestructB, double>, …

4
Contenitore STL con un tipo specifico come argomento generico
Esiste un modo in cui posso fare una funzione che accetta un contenitore con un tipo specifico (diciamo std::string) come parametro void foo(const std::container<std::string> &cont) { for(std::string val: cont) { std::cout << val << std::endl; } } e chiamarlo per ogni tipo di contenitore stl come input? come sopra? std::set<std::string> …






1
Clang ha ragione a rifiutare il codice in cui la classe nidificata di un modello di classe è definita solo tramite specializzazioni?
Dato il seguente modello di classe: template<typename T> struct Outer { struct Inner; auto f(Inner) -> void; }; definiamo Innerseparatamente per ogni specializzazione di Outer: template<> struct Outer<int>::Inner {}; template<> struct Outer<double>::Inner {}; e quindi definire funa volta la funzione membro per tutte le specializzazioni di Outer: auto Outer<T>::f(Inner) -> …

2
Modelli di sovraccarico ambigui
Ho il seguente codice di modello #include <vector> #include <array> #include <iostream> template<typename T1> void foo(std::vector<T1> bar) { std::cout << "GENERIC" << std::endl; } template<typename T1> void foo(std::vector<std::vector<T1>> bar) { std::cout << "SPECIFIC (vector)" << std::endl; } template<typename T1, int SIZE> void foo(std::vector<std::array<T1, SIZE>> bar) { std::cout << "SPECIFIC (array)" …
16 c++  templates 


3
Modelli variabili: spiega argomenti in gruppi
Ho una funzione che accetta due argomenti: template <typename T1, typename T2> void foo(T1 arg1, T2 arg2) { std::cout << arg1 << " + " << arg2 << '\n'; } E una variadica che dovrebbe inoltrare i suoi argomenti in coppia: template <typename... Args> void bar(Args&&... args) { static_assert(sizeof...(Args) % …


1
Clang non compila il codice ma gcc e msvc lo hanno compilato
Non capisco qual è il problema: né nel mio codice né nel compilatore (meno possibile). C'è un pezzo di codice come questo: #include <iostream> #include <type_traits> #include <set> template<typename T, typename = void> struct TestA: std::false_type {}; template<typename T> struct TestA<T, std::void_t<typename T::reverse_iterator>> : std::true_type {}; template<typename T> struct TestA<T, …


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.