Elimizde ingilizce’deki tüm sözcükleri içeren bir ASCII metin dosyası var. Dosyanın ismi dict.txt. Dosyamızın her satırında bir sözcük yer alıyor ve toplamda 354.935 sözcüğümüz var.
constructor tracker (kurucu işlev izleyicisi)
Aşağıdaki gibi bir sınıf yapımız olsun:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
class A { public: A(int); // }; class B { public: B(int); // }; class C { public: C(int); // }; class Myclass { A m_a; B m_b; C m_c; public: A(); // } |
Myclass isimli sınıfın A, B ve C sınıfı türünden veri öğeleri (data members) var. A, B ve
enable_if
type_traits başlık dosyası içinde yer alan enable_if sınıf yapısı C++11 ile türden bağımsız programlamaya ilişkin gelen en önemli desteklerden biri:
1 2 3 4 5 |
template<bool B, class T = void> struct enable_if {}; template<class T> struct enable_if<true, T> { typedef T type; }; |
Önce bu şablonları bir
sağ taraf referansları – 1
Sağ taraf referansları C++11 standartlarıyla C++ diline eklenmiş en önemli araçlardan biridir. Sağ taraf referanslarını iyi öğrenebilmek için öncelikle bu referansların ne işe yaradığını,
algoritmaların üye işlevleri çağırması
Sınıf nesneleri ya da sınıf göstericileri tutan bir kabımız var. Bu kapta tutulan öğelerin tamamı ya da belirli bir aralığı için öğelerin ait olduğu
string sınıfında silme işlemleri
Bu yazımızın konusu string sınıfında silme işlemleri Standart string sınıfının erase işlevi 3 ayrı imzayla yüklenmiş:
1 2 3 |
string& erase (size_type pos = 0, size_type len = npos); iterator erase (const_iterator p); iterator erase (const_iterator first, const_iterator last); |
Üç işlevi de ayrıntılı olarak inceleyeceğiz. Önce
şablonların özelleştirilmesi (template specialization)
Bir sınıf şablonu ya da bir işlev şablonundan kod üretimi her tür için uygun olmayabilir. Bazı türlerin arayüzü şablon kodda uygulanmış işlemleri desteklemeyebilir. Bazı türler
ham string sabitleri (raw string literals)
Bir string sabiti içinde \ (ters bölü) ya da ” (çift tırnak) karakterlerini kullanmak istediğimizde bu karakterleri bir kaçış dizgesi (escape sequence) olarak ifade etmek
array sınıf şablonu
STL’in array sınıf şablonu C dizilerini sarmalayarak bu dizilere STL kaplarının (container) arayüzünü kazandırır. array sınıf şablonu ile diziler ek bir maliyet olmadan daha güvenli,
constexpr – 1
constexpr kabuk değiştirmiş C++’ın en önemli anahtar sözcüklerinden biri. Üç ayrı yazımı bu anahtar sözcüğe ayıracağım. Bu okumakta olduğunuz birinci yazım. constexpr anahtar sözcüğü