مقدمة في Boost C++
\n\nBoost هي مجموعة قوية ومفتوحة المصدر وواسعة الاستخدام من المكتبات المُحكّمة (التي تمت مراجعتها من قبل الأقران) للغة C++. وهي تعمل كامتداد للمكتبة القياسية لـ C++ (STL)، حيث توفر حلولاً جاهزة وعالية الجودة للعديد من المهام الشائعة التي إما تكون غير موجودة في المكتبة القياسية أو تتطلب تنفيذاً معقداً. أصبحت العديد من مكونات Boost أساساً لمعايير C++11 و C++14 و C++17 و C++20 (على سبيل المثال، std::shared_ptr، std::function، std::thread).
لماذا نحتاج Boost؟
\n- \n
- الجودة والموثوقية: يخضع الكود لعملية مراجعة صارمة، مما يضمن استقراراً وأداءً عاليين. \n
- التوافق عبر المنصات: يعمل Boost على معظم أنظمة التشغيل والمترجمات الحديثة. \n
- توفير الوقت: بدلاً من كتابة الخوارزميات وهياكل البيانات المعقدة من الصفر، يمكنك استخدام مكونات جاهزة ومُختبرة. \n
- التحضير للمعايير المستقبلية: باستخدام Boost، غالباً ما تعمل مع مفاهيم تصبح لاحقاً جزءاً من المعيار الرسمي لـ C++. \n
- مجموعة واسعة من المهام: من العمل مع المؤشرات الذكية والتعبيرات المنتظمة إلى إنشاء تطبيقات الشبكات وتحليل القواعد النحوية. \n
تثبيت Boost
\n\nعلى عكس Python (حيث يُستخدم pip) أو Node.js (npm)، لا تمتلك C++ مدير حزم واحد. يعتمد تثبيت Boost على نظام التشغيل والمترجم المستخدم.
الخيار 1: التثبيت عبر مدير الحزم للنظام (Linux/macOS)
\nهذه هي أسهل طريقة للأنظمة الشبيهة بـ Unix.
\n# Debian/Ubuntu\nsudo apt-get update\nsudo apt-get install libboost-all-dev\n\n# Fedora/CentOS/RHEL\nsudo dnf install boost-devel\n\n# macOS (عبر Homebrew)\nbrew install boost\n\nالخيار 2: التثبيت عبر vcpkg (موصى به لنظام Windows والتطوير عبر المنصات)
\nvcpkg هو مدير حزم من Microsoft يتكامل بشكل ممتاز مع Visual Studio و CMake.
# 1. استنساخ مستودع vcpkg\ngit clone https://github.com/Microsoft/vcpkg.git\ncd vcpkg\n\n# 2. تشغيل سكريبت التثبيت (Windows)\n.\\bootstrap-vcpkg.bat\n# أو (Linux/macOS)\n./bootstrap-vcpkg.sh\n\n# 3. التكامل مع النظام (اختياري ولكنه مريح)\n./vcpkg integrate install\n\n# 4. تثبيت Boost\n./vcpkg install boost\n\nالخيار 3: البناء من المصدر (أقصى مرونة)
\nمناسب إذا كنت بحاجة إلى إعدادات محددة أو أحدث إصدار.
\n# 1. تنزيل الأرشيف من الموقع الرسمي (https://www.boost.org/)\n# 2. فك الضغط\ntar -xzf boost_1_86_0.tar.gz\ncd boost_1_86_0\n\n# 3. تشغيل سكريبت الإعداد الأولي\n./bootstrap.sh\n\n# 4. البناء والتثبيت (--prefix يحدد مسار التثبيت)\n./b2 install --prefix=/usr/local\n\nربط المشروع (مثال مع CMake)
\ncmake_minimum_required(VERSION 3.10)\nproject(MyBoostProject)\n\n# العثور على Boost المثبت\nfind_package(Boost REQUIRED COMPONENTS system filesystem)\n\n# التحقق من العثور على Boost\nif(Boost_FOUND)\n include_directories(${Boost_INCLUDE_DIRS})\n add_executable(my_app main.cpp)\n target_link_libraries(my_app ${Boost_LIBRARIES})\nendif()\n\nبداية سريعة: مثال كود
\nلنكتب برنامجاً بسيطاً يستخدم boost::lexical_cast لتحويل سلسلة نصية إلى رقم و boost::filesystem للتحقق من وجود ملف.
#include <iostream>\n#include <string>\n#include <boost/lexical_cast.hpp>\n#include <boost/filesystem.hpp>\n\nint main() {\n // 1. استخدام boost::lexical_cast للتحويل الآمن للأنواع\n std::string number_str = "12345";\n try {\n