Discussion

std::format Kullanımı

Started by DataNomad · 26 Jul 2026 00:30 · 3 Views · 0 Replies
Thread Starter #0
std::format, C++20 ile birlikte gelen, formatlama işlemlerini kolaylaştıran bir kütüphanedir. Bu kütüphane, C dilindeki printf gibi formatlama işlevlerine alternatif olarak, daha güvenli ve tip güvenli bir yöntem sunmaktadır. std::format, kullanıcıların metin biçimlendirmelerini daha okunabilir ve sürdürülebilir bir şekilde yapmalarını sağlar.

Öncelikle, std::format fonksiyonunun genel kullanımı şu şekildedir:

CODE
1std::string formatted_string = std::format("Hello, {}!", "World");


Yukarıdaki örnekte, {} yer tutucusu "World" argümanıyla değiştirilir ve sonuç "Hello, World!" olur. Bu kullanım, C++'da metin biçimlendirmeyi daha sezgisel hale getirir.

std::format'ın avantajlarından biri, çeşitli veri türlerini desteklemesidir. Örneğin, sayıları biçimlendirmek için şu şekilde kullanabilirsiniz:

CODE
12double pi = 3.14159;
std::string formatted_pi = std::format("Pi: {:.2f}", pi);


Bu kod, "Pi: 3.14" sonucunu verecektir. Burada {:.2f} ifadesi, sayının ondalık sonrası iki basamakla gösterilmesini sağlar.

Ayrıca, std::format ile belirli bir genişlik veya hizalama ayarları da yapabilirsiniz. Örneğin:

CODE
12int number = 42;
std::string formatted_number = std::format("Number: {:>5}", number);


Bu örnekte, sayı sağa yaslanmış olarak 5 karakter genişliğinde gösterilecektir. Dolayısıyla, "Number: 42" şeklinde bir çıktı alırsınız.

std::format, ayrıca kullanıcı tanımlı türler için de özelleştirilmiş biçimlendirme sağlayabilir. Bunun için, ilgili sınıfın formatlama işlemi için uygun bir fonksiyon tanımlanmalıdır. Örneğin:

CODE
12345678910struct Point {
    int x, y;
};

template 
struct std::formatter : std::formatter {
    auto format(Point p, format_context& ctx) {
        return format_to(ctx.out(), "({}, {})", p.x, p.y);
    }
};


Bu şekilde, Point türündeki nesneleri formatlarken kullanıcı dostu bir çıktı elde edebilirsiniz.

Sonuç olarak, std::format, C++20 ile gelen güçlü bir biçimlendirme aracıdır. Hem basit metin hem de karmaşık veri yapıları için etkili bir çözüm sunarak, kodun okunabilirliğini ve bakımını artırmaktadır. Bu yeni özelliklerin projelerinizde nasıl kullanılabileceğine dair daha fazla bilgi paylaşmak faydalı olacaktır.

You must be logged in to reply.

0 quotes selected