«language-lawyer» etiketlenmiş sorular

Programlama dillerinin ve ortamlarının resmi veya yetkili teknik özelliklerinin karmaşıklığı hakkındaki sorular için.

13
Optimize edilmeyecek sonsuz bir boş döngüyü nasıl yapabilirim?
C11 standardı, sürekli kontrol ifadelerine sahip yineleme ifadelerinin optimize edilmemesi gerektiği anlamına geliyor. Tavsiyemi taslak standarttan bölüm 6.8.5'ten alıntı yapan bu cevaptan alıyorum : Kontrol ifadesi sabit bir ifade olmayan bir yineleme ifadesi ... uygulama tarafından sonlandırılacağı varsayılabilir. Bu cevapta, benzer bir döngünün while(1) ;optimizasyona tabi olmaması gerektiği belirtilmektedir. Öyleyse …


5
Double için "==" operatörünün tanımı
Bazı nedenlerden dolayı sınıf için .NET Framework kaynağına gizlice giriyordum Doubleve beyanının şöyle olduğunu öğrendim ==: public static bool operator ==(Double left, Double right) { return left == right; } Aynı mantık her operatör için geçerlidir . Böyle bir tanımın amacı nedir? O nasıl çalışır? Neden sonsuz bir özyineleme yaratmıyor?
126 c#  .net  language-lawyer 


2
Lambda yakalama ve aynı isimli parametre - diğerini kim gölgeliyor? (clang 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 ve daha yeni çıktı "Clang ++ kullanıyorsunuz!" ve kullanılmayan yakalama konusunda uyarın foo. g ++ 4.9.0 ve daha yenisi "g ++ kullanıyorsunuz!" ve kullanılmayan parametre konusunda uyarın foo. Burada C …

6
Lambda kendini geri veriyor: bu yasal mı?
Oldukça yararsız olan bu programı düşünün: #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); } Temel olarak, kendisini döndüren bir lambda yapmaya çalışıyoruz. MSVC …


5
Virgül içeren üçlü operatör neden gerçek durumda yalnızca bir ifadeyi değerlendirir?
Şu anda C ++ Primer kitabıyla C ++ öğreniyorum ve kitaptaki alıştırmalardan biri: Aşağıdaki ifadenin ne yaptığını açıklayın: someValue ? ++x, ++y : --x, --y Biz ne biliyoruz? Üçlü operatörün virgül operatöründen daha yüksek önceliğe sahip olduğunu biliyoruz. İkili operatörlerde bunu anlamak oldukça kolaydı, ancak üçlü operatörle biraz mücadele ediyorum. …


2
Program 3 büyük C ++ derleyicisinde farklı şekilde derleniyor. Hangisi doğrudur?
Önceki sorumun ilginç bir devamı olarak (yine de büyük bir pratik öneme sahip değil): C ++ neden bir değişken bildirirken değişken adını parantez içine almamıza izin veriyor? Parantez içindeki bildirimi enjekte edilen sınıf adı özelliği ile birleştirmenin derleyici davranışıyla ilgili şaşırtıcı sonuçlara yol açabileceğini öğrendim . Aşağıdaki programa bir göz …

8
C ++ 'da C başlıklarını kullanırken, std :: işlevlerinden mi yoksa global isim alanından mı kullanmalıyız?
C bir şekilde, tam olarak değil, C ++ 'nın bir alt kümesidir. Yani C ++ 'daki C işlevlerinin / başlıklarının çoğunu adı biraz değiştirerek ( stdio.hto cstdio, stdlib.hto cstdlib) kullanabiliriz. Sorum aslında biraz anlamsal. C ++ kodunda (GCC derleyicisinin en yeni sürümünü kullanarak), arayabilirim printf("Hello world!");ve std::printf("Hello world!");tamamen aynı şekilde …
113 c++  language-lawyer  std 

8
"Geri arama cehennemi" nedir ve RX bunu nasıl ve neden çözer?
JavaScript ve node.js bilmeyen biri için "callback cehennemi" nin ne olduğunu açıklayan basit bir örnekle birlikte net bir tanım verebilir mi? "Geri arama cehennemi sorunu" ne zaman (ne tür ayarlarda) ortaya çıkar? Neden oluşur? "Geri arama cehennemi" her zaman eşzamansız hesaplamalarla mı ilgilidir? Veya "geri arama cehennemi" tek bir iş …


4
Boş referans mümkün mü?
Bu kod parçası geçerli mi (ve tanımlanmış davranış)? int &nullReference = *(int*)0; Hem gr ++ ve çınlama ++ derleme onu herhangi bir uyarı olmadan, kullanırken bile -Wall, -Wextra, -std=c++98, -pedantic, -Weffc++... Elbette referans, erişilemediği için aslında boş değildir (boş göstericiye başvurmak anlamına gelir), ancak adresini kontrol ederek boş olup olmadığını …


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.