Aslında, destek kütüphanelerinin miras olacağını düşünmüyorum.
Evet, kullanmak gerekir std::type_traits
, regex
, shared_ptr
, unique_ptr
, tuple<>
, std::tie
,std::begin
daha hareketli sürece yerine Boost Typetraits arasında / Programı,, Tuple Boost, Smartpointer Boost Menzil kütüphaneleri Boost ama pratikte 'anahtar' için gerçek bir ihtiyaç olmalıdır kodunuzu c ++ 11'e çevirin.
Ayrıca, tecrübelerime göre, bunların std
çoğunun sürümleri biraz daha az özelliklidir. Örneğin AFAICT standart yok değil var
- Perl5 düzenli ifadeleri
- call_traits
- Belirli regex arayüz üyeleri (gibi
bool boost::basic_regex<>::empty()
) ve diğer arayüz farklılıkları
- Boost arayüzü Boost Xpressive ile tam olarak eşleştiği için bu daha fazla ısırır
- ve Boost String Algoritmaları ile çok daha güzel oynuyor Açıkçası, ikincisinin standart muadilleri yok (henüz?)
- TMP (Boost Fusion) ile ilgili birçok şey
Tembel, ifade şablonu tabanlı lambdalar; C ++ 11'in aksine bugün polimorfik olabilmeleri için kaçınılmaz faydaları var . Bu nedenle genellikle daha özlü olabilirler:
std::vector<int> v = {1,2,-9,3};
for (auto i : v | filtered(_arg1 >=0))
std::cout << i << "\n";
// or:
boost::for_each(v, std::cout << _arg1);
Kesinlikle, bu hala C ++ 11 lambdas üzerinde biraz çekicidir (sondaki dönüş türleri, açık yakalama ve beyan edilen parametrelerle).
Ayrıca, Boost için tam olarak C ++ 03'ten C ++ 11'e yol geçişini kolaylaştırmak ve C ++ 11 ve C ++ 03 kod tabanlarını entegre etmede BÜYÜK bir rol var. Özellikle düşünüyorum
- Otomatik Yükseltme (BOOST_AUTO)
- Takviye Yardımcı Programı (
boost::result_of<>
ve ilgili)
- Foreach'u Artır (BOOST_FOREACH)
- Unutmayın: Boost Move - Boost 1_48 + ve C ++ 11 derleyicileri ile C ++ 03 derleyicilerinde eşit derecede iyi derlenecek bir sözdizimi ile hareket semantiği olan sınıflar yazmayı mümkün kılar.
Sadece benim 0.02 $