Domande taggate «sfinae»

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 …



2
Come funziona `void_t`
Ho visto il discorso di Walter Brown a Cppcon14 sulla programmazione di modelli moderni ( Parte I , Parte II ) in cui ha presentato la sua void_ttecnica SFINAE. Esempio: dato un semplice modello variabile che valuta voidse tutti gli argomenti del modello sono ben formati: template< class ... > …
149 c++  templates  c++14  sfinae 



2
Come viene implementato std :: is_function?
Come è la seguente un'implementazione per std::is_function ? template<class T> struct is_function : std::integral_constant< bool, !std::is_const<const T>::value && !std::is_reference<T>::value > {}; (a partire dal riferimento CPP ) Mi sembra che intsarebbe una funzione in base a questa definizione. Cosa mi sto perdendo?
82 c++  templates  std  sfinae 

2
Approcci per il funzionamento di SFINAE in C ++
Sto usando pesantemente la funzione SFINAE in un progetto e non sono sicuro che ci siano differenze tra i seguenti due approcci (diversi dallo stile): #include <cstdlib> #include <type_traits> #include <iostream> template <class T, class = std::enable_if_t<std::is_same_v<T, int>>> void foo() { std::cout << "method 1" << std::endl; } template <class …
40 c++  sfinae 
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.