Pertanyaan yang diberi tag «language-lawyer»

Untuk pertanyaan tentang seluk-beluk spesifikasi bahasa dan lingkungan pemrograman formal atau otoritatif

1
Apakah UB untuk melanjutkan fungsi anggota coroutine dari objek yang masa hidupnya telah berakhir?
Pertanyaan ini berasal dari komentar ini: Penjelasan seumur hidup Lambda untuk C ++ 20 coroutine tentang contoh ini: auto foo() -> folly::coro::Task<int> { auto task = []() -> folly::coro::Task<int> { co_return 1; }(); return task; } Jadi pertanyaannya adalah apakah mengeksekusi coroutine yang dikembalikan oleh fooakan menghasilkan UB. "Memanggil" fungsi …

1
Penciptaan Obyek Tersirat yang Tidak Ditentukan
Karena P0593 penciptaan objek secara implisit untuk manipulasi objek tingkat rendah telah diterima, objek sekarang dapat dibuat secara implisit dalam C ++ 20. Khususnya kata-kata yang diperkenalkan oleh proposal memungkinkan operasi tertentu (seperti std::malloc) untuk secara otomatis membuat dan memulai masa objek dari tipe tertentu, yang disebut tipe implisit-seumur hidup …




1
dentang / gcc inkonsistensi dalam spesialisasi kelas
Saya menemukan masalah ini ketika mencoba untuk mengkhususkan tuple_size/ tuple_elementuntuk kelas khusus di C ++ 17 untuk penjilidan terstruktur. Kode di bawah ini dikompilasi dalam GCC, tetapi tidak dalam dentang (kedua versi trunk, lihat tautan di bawah). #include <type_traits> template<typename T, typename... Ts> using sfinae_t = T; template<typename T, bool... …

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 …


1
Mencoba memahami templat dan pencarian nama
Saya mencoba memahami cuplikan kode berikut Cuplikan # 1 template <typename T> struct A { static constexpr int VB = T::VD; }; struct B : A<B> { }; Baik gcc9 atau dentang melemparkan kesalahan di sini. Q. Mengapa kode ini dikompilasi? Bukankah kita instantiasi A<B>ketika mewarisi dari B? Tidak ada …

1
Apa artinya "sangat terjadi sebelum"?
Ungkapan "sangat terjadi sebelum" digunakan beberapa kali dalam standar konsep C ++. Misalnya: Pengakhiran [basic.start.term] / 5 Jika penyelesaian inisialisasi objek dengan durasi penyimpanan statis sangat terjadi sebelum panggilan ke std :: atexit (lihat, [support.start.term]), panggilan ke fungsi diteruskan ke std :: atexit diurutkan sebelum panggilan ke destruktor untuk objek. …
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.