You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Waktu diskusi tentang style nama class member type, style yang mau dipakai sebenarnya PascalCase seperti contoh berikut.
structFoo {
using BarBaz = int;
};
tapi karena API dari standard library seperti iterator yang harus pakai snake_case, jadi stylenya akhirnya diganti menjadi snake_case biar konsisten.
structContainerIterator {
// member type harus snake_case kalau mau pakai std::distanceusing difference_type = ptrdiff_t;
using value_type = int;
using pointer = int*;
using reference = int;
using iterator_category = std::forward_iterator_tag;
// snake_caseusing foo_bar = int;
// ...
};
tapi, ternyata masalah API iterator ini bisa diganti dengan type traits seperti iterator_traits, jadi tidak ada lagi situasi yang harus pakai snake_case, sehingga nama class member type bisa PascalCase saja supaya nama type konsisten semua.
structContainerIterator {
// PascalCaseusing FooBar = int;
// ...
};
namespacestd {
// template specialization untuk ContainerIteratortemplate<>
structiterator_traits<ContainerIterator> {
using difference_type = ptrdiff_t;
using value_type = int;
using pointer = int*;
using reference = int;
using iterator_category = std::forward_iterator_tag;
};
}
Waktu diskusi tentang style nama class member type, style yang mau dipakai sebenarnya PascalCase seperti contoh berikut.
tapi karena API dari standard library seperti iterator yang harus pakai snake_case, jadi stylenya akhirnya diganti menjadi snake_case biar konsisten.
code lengkapnya di https://godbolt.org/z/Z-FNIY
tapi, ternyata masalah API iterator ini bisa diganti dengan type traits seperti
iterator_traits
, jadi tidak ada lagi situasi yang harus pakai snake_case, sehingga nama class member type bisa PascalCase saja supaya nama type konsisten semua.https://godbolt.org/z/WkH3dt
The text was updated successfully, but these errors were encountered: