Pertanyaan yang diberi tag «language-lawyer»

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

13
Bagaimana cara membuat loop kosong tanpa batas yang tidak akan dioptimalkan?
Standar C11 tampaknya menyiratkan bahwa pernyataan iterasi dengan ekspresi kontrol konstan tidak boleh dioptimalkan. Saya menerima saran saya dari jawaban ini , yang secara khusus mengutip bagian 6.8.5 dari konsep standar: Pernyataan iterasi yang ekspresi pengontrolnya bukan ekspresi konstan ... dapat diasumsikan oleh implementasi untuk diakhiri. Dalam jawaban itu disebutkan …


5
Definisi operator "==" untuk Double
Untuk beberapa alasan saya menyelinap ke sumber .NET Framework untuk kelas Doubledan menemukan bahwa deklarasi ==adalah: public static bool operator ==(Double left, Double right) { return left == right; } Logika yang sama berlaku untuk setiap operator. Apa gunanya definisi seperti itu? Bagaimana cara kerjanya? Mengapa itu tidak menciptakan rekursi …
126 c#  .net  language-lawyer 


2
Tangkapan Lambda dan parameter dengan nama yang sama - siapa yang membayangi yang lain? (dentang vs gcc)
auto foo = "You're using g++!"; auto compiler_detector = [foo](auto foo) { std::puts(foo); }; compiler_detector("You're using clang++!"); clang ++ 3.6.0 dan yang lebih baru mencetak "Anda menggunakan clang ++!" dan peringatkan tentang tangkapan foo yang tidak digunakan. g ++ 4.9.0 dan yang lebih baru mencetak "Anda menggunakan g ++!" dan …

6
Lambda kembali sendiri: apakah ini legal?
Pertimbangkan program yang cukup tidak berguna ini: #include <iostream> int main(int argc, char* argv[]) { int a = 5; auto it = [&](auto self) { return [&](auto b) { std::cout << (a + b) << std::endl; return self(self); }; }; it(it)(4)(6)(42)(77)(999); } Pada dasarnya kami mencoba membuat lambda yang kembali …



2
Program sedang dikompilasi secara berbeda dalam 3 kompiler C ++ utama. Yang mana yang benar?
Sebagai tindak lanjut yang menarik (meskipun tidak terlalu penting secara praktis) untuk pertanyaan saya sebelumnya: Mengapa C ++ memungkinkan kita untuk mengapit nama variabel dalam tanda kurung saat mendeklarasikan variabel? Saya menemukan bahwa menggabungkan deklarasi dalam tanda kurung dengan fitur nama kelas yang disuntikkan dapat menyebabkan hasil yang mengejutkan terkait …


8
Apa itu "callback hell" dan bagaimana dan mengapa RX menyelesaikannya?
Dapatkah seseorang memberikan definisi yang jelas bersama dengan contoh sederhana yang menjelaskan apa itu "callback hell" untuk seseorang yang tidak tahu JavaScript dan node.js? Kapan (dalam jenis pengaturan apa) "masalah callback hell" terjadi? Mengapa itu terjadi? Apakah "callback hell" selalu terkait dengan komputasi asinkron? Atau dapatkah "callback hell" terjadi juga …




7
Kebingungan tentang inisialisasi array di C
Dalam bahasa C, jika menginisialisasi array seperti ini: int a[5] = {1,2}; maka semua elemen dari array yang tidak diinisialisasi secara eksplisit akan diinisialisasi secara implisit dengan nol. Tapi, jika saya menginisialisasi array seperti ini: int a[5]={a[2]=1}; printf("%d %d %d %d %d\n", a[0], a[1],a[2], a[3], a[4]); keluaran: 1 0 1 …

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.