Bugün programımda küçük bir yazım hatası yaptım ve programın iyi bir şekilde derlenmiş olmasına rağmen neden hiç çıktı almadığımı merak ediyordum. Temel olarak bu kadar azaltır:Akış çıkışında <yerine <neden hala <çoğum?
#include <iostream>
int main()
{
std::cout < "test"; // no << but <
}
ben program hala derler işte gerçekleştirilir örtük dönüşüm ne tür hiçbir fikrim yok (her iki gr ++ 4.9.2 ve hatta g ++ 5). Sadece clang ++ kodunu reddettiğini fark ettim. Gerçekleştirilen void*
'a bir dönüşüm var mı (başka bir şey düşünemiyorum)? Böyle bir şey gördüğümü hatırlıyorum, ama g ++ 5'de ele alındığını düşündüm, ama durum böyle görünmüyor.
DÜZENLEME: -std=c++11
ile derleme değildi, böylece kod geçerli olduğu önceden C++ 11 (nedeniyle ostream
arasında void*
dönüşüm için). -std=c++11
ile derlerken g ++ 5 kodu reddeder, g ++ 4.9 hala kabul eder.
Ancak '-Wall' kullanırken kullanılmayan bir hesaplanmış değer hakkında g ++ 4.9.2'den bir uyarı alıyorum. –
@Raphael, derlediğim zaman, tüm uyarılara bakmadım, şimdi ne olduğunu anladım ve anladım, ama biraz sıra dışı olduğunu söylemeliyim. Çoğu zaman kullanıyorum -Wall', ancak bu, yüce metinde derlediğim ve sihirli bir şekilde çalıştığı küçük bir kod parçasıydı. – vsoftco
Neden [bu] (http://coliru.stacked-crooked.com/a/ 667a9c3ad1ee9afe) 0 bir çıkış verir mi? – Destructor