Domande taggate «template-specialization»


4
Perché il modello di funzione non può essere parzialmente specializzato?
So che la specifica del linguaggio proibisce la specializzazione parziale del modello di funzione. Vorrei conoscere la logica del perché lo vieta? Non sono utili? template<typename T, typename U> void f() {} //allowed! template<> void f<int, char>() {} //allowed! template<typename T> void f<char, T>() {} //not allowed! template<typename T> void …

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) -> …

1
incoerenza clang / gcc nella specializzazione di classe
Mi sono imbattuto in questo problema durante il tentativo di specializzarmi tuple_size/ tuple_elementper una classe personalizzata in C ++ 17 per l'associazione strutturata. Il codice seguente viene compilato in GCC, ma non in clang (entrambe le versioni del trunk, vedere il link seguente). #include <type_traits> template<typename T, typename... Ts> using …
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.