Pertanyaan yang diberi tag «incomplete-type»

6
std :: unique_ptr dengan tipe tidak lengkap tidak akan dikompilasi
Saya menggunakan idiom-jerawat dengan std::unique_ptr: class window { window(const rectangle& rect); private: class window_impl; // defined elsewhere std::unique_ptr<window_impl> impl_; // won't compile }; Namun, saya mendapatkan kesalahan kompilasi tentang penggunaan tipe yang tidak lengkap, pada baris 304 di <memory>: Aplikasi ' sizeof' ke jenis yang tidak lengkap ' uixx::window::window_impl' tidak …

1
Apakah Dentang benar untuk menolak kode di mana kelas bersarang dari templat kelas didefinisikan hanya melalui spesialisasi?
Diberikan templat kelas berikut: template<typename T> struct Outer { struct Inner; auto f(Inner) -> void; }; kami mendefinisikan Innersecara terpisah untuk setiap spesialisasi Outer: template<> struct Outer<int>::Inner {}; template<> struct Outer<double>::Inner {}; dan kemudian mendefinisikan fungsi anggota fsekali untuk semua spesialisasi Outer: auto Outer<T>::f(Inner) -> void { } tapi Dentang …

2
Apakah T harus merupakan tipe yang lengkap untuk digunakan dalam `std :: declval <T>`?
Pertimbangkan contoh ini (datang dari sini ): #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; } Ini mengkompilasi …

1
Bisakah pointer ke tipe tidak lengkap tidak lengkap?
Bisakah int (*)[]tipe yang tidak lengkap? C 2018 6.2.5 1 mengatakan: Pada berbagai titik dalam unit terjemahan, suatu jenis objek mungkin tidak lengkap (kurang informasi yang cukup untuk menentukan ukuran objek jenis itu) atau lengkap (memiliki informasi yang cukup). Jadi tampaknya jika ukuran suatu jenis diketahui, jenisnya lengkap. 6.2.6.1 28 …
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.