Domande taggate «incomplete-type»

6
std :: unique_ptr con un tipo incompleto non verrà compilato
Sto usando l'idioma pimpl con std::unique_ptr: class window { window(const rectangle& rect); private: class window_impl; // defined elsewhere std::unique_ptr<window_impl> impl_; // won't compile }; Tuttavia, viene visualizzato un errore di compilazione relativo all'uso di un tipo incompleto, nella riga 304 in <memory>: Applicazione non valida di " sizeof" a un …

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
T deve essere un tipo completo da usare in `std :: declval <T>`?
Considera questo esempio (proveniente da qui ): #include &lt;type_traits&gt; #include &lt;iostream&gt; template &lt;typename U&gt; struct A { }; struct B { template &lt;typename F = int&gt; A&lt;F&gt; f() { return A&lt;F&gt;{}; } using default_return_type = decltype(std::declval&lt;B&gt;().f()); }; int main() { B::default_return_type x{}; std::cout &lt;&lt; std::is_same&lt; B::default_return_type, A&lt;int&gt;&gt;::value; } Si compila …

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.