C++20 - std::format

TerabyteForever

Megapat
Katılım
5 Mart 2017
Mesajlar
6.709
Makaleler
7
Çözümler
59
Daha fazla  
Cinsiyet
Erkek
Bunu programlama blogları havuzuna açmadım çünkü bunun bir blog niteliği taşıyabileceğini düşünmedim.

Selamlar!

Uzun bir süre Python gibi dillerde format kullanmaya alışık kişiler için çok iyi bir özellik olan std::format özelliği C++20 standardı ile birlikte C++'a geldi!

[CODE lang="cpp" title="Eski düzen"]//...
int main(){
int a = 100;
std::cout<<std::hex<<a<<std::endl;
return 0;
}[/CODE]
[CODE lang="cpp" title="İsteğe bağlı C++20 düzeni"]//...
#include <format>
//...
int main(){
int a = 100;
std::cout<<std::format("{:016x}\n",a);
return 0;
}[/CODE]

Fakat bu o kadar yeni bir şey ki, daha çoğu sisteme "format" isimli başlık dosyası bile gelmedi. Yani kod taşınabilirliğini azalttığı için bu gibi çok yeni bir komponenti kullanmanızı tavsiye etmem.
 
Yakında import ile #include da kalmayacak gibi.
*Üzgün C usulü C++ yapan programcı sesleri*

Modern C++ adı altında bazı şeyleri abarttıklarını düşünüyorum. Akıllı işaretçileri mesela hiç kullanmam. Dilin tadını bozduğunu düşünüyorum bazı özelliklerin.
 
Espriyi açıklamak kötü bir şey olduğunu düşünsem de clean C++'ın ne olduğunu bilmiyorum açıklayabilir misiniz hocam?
Standartlar arası değişkenlik yaşandığı durumlarda da her şekilde etkilenmeden çalışabilen temiz kod.

C++'dan çok C gibi yazılan, ona benzeyen hatta bazenleri birebir C ile aynı olabilen kodlar.
 
Standartlar arası değişkenlik yaşandığı durumlarda da her şekilde etkilenmeden çalışabilen temiz kod.

C++'dan çok C gibi yazılan, ona benzeyen hatta bazenleri birebir C ile aynı olabilen kodlar.
Standartları arasında uyumluluğu anladım çok sağ olun hocam.

Tıpatıp C gibi yazıyorlarsa O zaman neden C++ diyorlar bir kaç kod hariç hepsi çok benzediği için mi C++ diyorlar? Neden sadece C++ standartlarına uyumlu yazmıyorlar C'ye benzetiyorlar hocam?
 
Standartları arasında uyumluluğu anladım çok sağ olun hocam.

Tıpatıp C gibi yazıyorlarsa O zaman neden C++ diyorlar birkaç kod hariç hepsi çok benzediği için mi C++ diyorlar? Neden sadece C++ standartlarına uyumlu yazmıyorlar C'ye benzetiyorlar hocam?
Tıpatıp C değil, ama esintiler oluyor. C++ standartlarına sürekli değişen hallerine ayak uydurmak zor, sürekli değiştirmek de gerekmiyor açıkçası. Bir kodu doğru düzgün yazarsın, işini gördüğü sürece o yapıyı/tarzı kullanırsın.

Ben de C konusunda daha yeni başlamış sayılırım, bu soruyu @TerabyteForever veya @The Anorak daha doğru cevaplar diye düşünüyorum :)
 
Diller üzerindeki değişimler ciddi bir kusur bulunmuyorsa ekleme şeklinde oluyor.
Eklemeler de genelde yabancıların "Syntactic Sugar" dedikleri tipten şeyler oluyor. Arka planda zaten yaptığı bir şeyi çok daha basit veya anlaşılabilir şekilde yapılabilir hale getiriyorlar.

Bu eklemeleri en çok hissettiğim dil Javascript.
ES5 ile ES6 arasında büyük eklemeler mevcut. Ancak hala var kullanıp, callback'ler ile async programlama yapılabiliyor. Hatta Babel Script gibi derleyiciler ile güncel JS'i desteklemeyen browser için ESNext ile yazılmış kodu ES3'e kadar indirgeyebiliyor.
 
Standartları arasında uyumluluğu anladım çok sağ olun hocam.

Tıpatıp C gibi yazıyorlarsa O zaman neden C++ diyorlar bir kaç kod hariç hepsi çok benzediği için mi C++ diyorlar? Neden sadece C++ standartlarına uyumlu yazmıyorlar C'ye benzetiyorlar hocam?
Nesne yönelimli programlama gibi özellikleri beğenip her şeyi kendimiz yapmak istediğimiz için. 🤓
 

Geri
Yukarı