-Bu yazımda, sizlere "Boost C++" kütüphanesi hakkında genel bilgiler vermeye çalışacağım. Benim bu makaleyi yazmaktaki amacım; Ne zaman meydana getirdiğim yazılım işlerinde başım sıkışsa, veya yeni bir şeyler öğrenmek için internetten araştırma yaptığımda, ne yazık ki güzel Türkçemizde C++ ile ilgili, temel bilgiler haricinde mevzulara sahip yazılara rastlayamamamdır. --
-İleriki zamanlarda sizlere, soket yazılımları, multi-thread yazılımlar, thread pool, memory pool kullanımı, nesne yönelimli programlama, generic template kütüphane oluşturma, distributed computing şeklinde, sizlerinde işine yarayacağını düşündüğüm konularda, kendi bildiğim kadarıyla yardımcı olmaya çalışacağım.
--
-Fakat bu mevzuların içine iyice dalmadan önce, sizlere, bana bütün programlarımda işime yarayan, bulduktan sonra vazgeçemediğim, eğer olmazsa olmazım Boost hakkında genel bilgiler vermeye çalışacağım.--
-Boost, son olarak sürümünü buradan indirebileceğiniz, C++ dilinde sizlere çok fakat çok yardımcı olabilecek, yazılım yaparken kodlamanızı azaltan, yazdıklarınızın anlaşılmasını kolaylaştıran, çalışmasından şüphe etmediğiniz, geniş ve varlıklı yardımcı çalgılarıyla her isteğinize, ihtiyacınıza yarayan, bugüne kadarki en büyük ve içerik
anlamında en varlıklı, C++ için geliştirilen kütüphaneler topluluğudur.--- --
-Tamamen ücretsizdir. Bu organizasyon altında geliştirilen 10 tane kütüphane, şu anda C++ için gösterilen TR1(Technical Report) ve C++11 standartında yer verilmiştir. Boost kütüphaneleri, MS Windows ve Unix (Linux, Mac OS, Solaris) ve hemen hemen tüm modern işletim sistemler altında çalışabilmektedir.--
-İleriki zamanlarda sizlere, soket yazılımları, multi-thread yazılımlar, thread pool, memory pool kullanımı, nesne yönelimli programlama, generic template kütüphane oluşturma, distributed computing şeklinde, sizlerinde işine yarayacağını düşündüğüm konularda, kendi bildiğim kadarıyla yardımcı olmaya çalışacağım.
--
-Fakat bu mevzuların içine iyice dalmadan önce, sizlere, bana bütün programlarımda işime yarayan, bulduktan sonra vazgeçemediğim, eğer olmazsa olmazım Boost hakkında genel bilgiler vermeye çalışacağım.--
-Boost, son olarak sürümünü buradan indirebileceğiniz, C++ dilinde sizlere çok fakat çok yardımcı olabilecek, yazılım yaparken kodlamanızı azaltan, yazdıklarınızın anlaşılmasını kolaylaştıran, çalışmasından şüphe etmediğiniz, geniş ve varlıklı yardımcı çalgılarıyla her isteğinize, ihtiyacınıza yarayan, bugüne kadarki en büyük ve içerik
anlamında en varlıklı, C++ için geliştirilen kütüphaneler topluluğudur.--- --
-Tamamen ücretsizdir. Bu organizasyon altında geliştirilen 10 tane kütüphane, şu anda C++ için gösterilen TR1(Technical Report) ve C++11 standartında yer verilmiştir. Boost kütüphaneleri, MS Windows ve Unix (Linux, Mac OS, Solaris) ve hemen hemen tüm modern işletim sistemler altında çalışabilmektedir.--
Kod:
Any : Herhangi bir tipte data kullanımını list, vector, v.b. container sınıflarında karışık olarak tutmayı sağlayan güzel bir kütüphanedir.
Asio : Network ve soket yazılımlarını çok kolaylaştıran ve kod yazımını üst seviyede azaltan bir kütüphanedir.
Bimap : Data gruplarınızı (Varsayalım ki iki tane map<X,Y> ve map <Y,X> türünden, birbirine bağlı iki tane koleksiyona ihtiyacınız var.) ikiyönlü (Bidirectional) olarak saklayabileceğiniz, kullanımı kolay yardımcı bir kütüphanedir.
Bind : İleride size bir çok kere bahsedeceğim, benim için "Generic Programming" yapmam için vazgeçilmez, Boost' unda her yerinde göreceğiniz, "std::bind1st ve std::bind2nd" işlevlerinin özelleştirilmiş halidir.
Chrono : Kullanışlı, zaman ile alakalı yardımcı araçlar topululuğu.
Config : Boost' un bazı özelliklerini açıp, kapayabileceğiniz, ayar yapabileceğiniz sistemdir.
Container : STL kütüphanesindeki container sınıfları ve standartda olmayan, ama kullanışlı (flat_map, flat_set, stable_vector gibi) yardımcı bir kütüphanedir.
Date Time : Gregorian tarihlerini kullanabildiğiniz ve tarihleri itere edebildiğiniz yardımcı, güzel bir kütüphane.
Filesystem : Dosya ve klasörler arasında iterator'ler ve yardımcı araçlar ile dolaşabildiğiniz, yeni klasör yaratma, dosya silme, adını değştirme, gibi bütün işlevleri kolayca gerçekleştirebilmenize yarayan kütüphanedir.
Foreach : .Net bilenlerin isminden aşikâr olduğu gibi, container' larda gezinirken, bizi sıkıcı ve bazen anlamayı zorlaştıran "for" döngülerinden kurtaran bir macro kütüphanedir.
Geometry : İçinde bir çok geometri formüllerinin yer aldığı, kod optimizasyonlu güzel ve kullanışlı bir kütüphanedir.
Interprocess : Shared memory, memory mapped files, prosesler arası mutex' ler gibi ihtiyaca yönelik, bazı programlarda can kurtaran işleve sahip bir kütüphane.
Lambda : Yeni C++ standardında yer alan "Lambda" operatörüne benzer, daha fazla yeteneğe sahip bir kütüphanedir.
Math : İsminden de anlaşıldığı üzere matematik işlemleri ve formüllerini barındıran, özellikle matriks işlemlerinizde, kodun optimizasyonu ve anlaşılabilirliği açısından çok fayda sağlayan bir kütüphanedir.
MPI : " distributed-memory parallel " tarzı programlarınızda mesaj paylaşımlı arayüz kütüphanesidir.
Pool : Memory Pool kullanmanız gereken yazılımlarınızda size yardımcı olabilecek, kullanışlı bir kütüphanedir.
Signals / Signals2 : C++ dilinde, .Net' de sıklıkla kullanılan ve çoğu işi kolaylaştıran "delegate" ve "Event Handler" benzeri bir arayüz sunan kütüphanedir.
Smart Ptr : Pointer türünden dinamik bir nesne yarattınız, bütün diğer nesneleriniz onu kullanıyor ve siz, nesnenizi ne zaman sileceğinizi veya kaç kere kopyalandığını bilemiyor veya bilmek istemiyorsanız, tam size göre ve bir çok zaman programınızın çalışması sırasında sizi, "segmentation fault" hatasından kurtaracak (ki bu hata benim en nefret ettiğim hatadır.), kullanımı son derece kolay bir kütüphanedir.
Thread : Multi-thread yazılımlarınızda hayatınızı kolaylaştıracak, ve Boost Asio gibi Boost' un benim için vazgeçilmezlerinden olan bir kütüphanedir.
