Domande taggate «template-meta-programming»

27
Controllo basato su modelli per l'esistenza di una funzione membro della classe?
È possibile scrivere un modello che cambia comportamento a seconda che una determinata funzione membro sia definita su una classe? Ecco un semplice esempio di ciò che vorrei scrivere: template<class T> std::string optionalToString(T* obj) { if (FUNCTION_EXISTS(T->toString)) return obj->toString(); else return "toString not defined"; } Quindi, se class Tè stato …

20
Come puoi iterare sugli elementi di una std :: tuple?
Come posso iterare su una tupla (usando C ++ 11)? Ho provato quanto segue: for(int i=0; i<std::tuple_size<T...>::value; ++i) std::get<i>(my_tuple).do_sth(); ma questo non funziona: Errore 1: mi dispiace, non implementato: impossibile espandere "Listener ..." in un elenco di argomenti di lunghezza fissa. Errore 2: non posso apparire in un'espressione costante. Quindi, …


3
Come posso ottenere la profondità di uno std :: vector multidimensionale al momento della compilazione?
Ho una funzione che accetta un multidimensionale std::vectore richiede che la profondità (o il numero di dimensioni) sia passata come parametro del modello. Invece di codificare questo valore, vorrei scrivere una constexprfunzione che prenderà std::vectore restituisca la profondità come unsigned integervalore. Per esempio: std::vector<std::vector<std::vector<int>>> v = { { { 0, …

4
Meta programmazione dei template
Qualcuno può spiegarmi, perché il primo modo di meta-programmazione del modello sta andando a ciclo infinito, ma il secondo funziona correttamente. #include <iostream> using namespace std; template<int N, int M> struct commondivs { static const int val = (N<M) ? commondivs<N,(M-N)>::val : commondivs<(N-M),M>::val; }; template<int N> struct commondivs<N,N> { static …

2
Passare un concetto a una funzione
Poiché i concetti sono definiti come predicati in fase di compilazione, è anche possibile riutilizzare effettivamente questi predicati per algoritmi in fase di compilazione? Ad esempio, sarebbe possibile verificare se tutti i tipi in una tupla sono conformi a un concetto? Per quanto ho visto, non è possibile in alcun …

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.