Boost لـ C++: دليل كامل مع أمثلة

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

مقدمة في Boost C++

\n\n

Boost هي مجموعة قوية ومفتوحة المصدر وواسعة الاستخدام من المكتبات المُحكّمة (التي تمت مراجعتها من قبل الأقران) للغة C++. وهي تعمل كامتداد للمكتبة القياسية لـ C++ (STL)، حيث توفر حلولاً جاهزة وعالية الجودة للعديد من المهام الشائعة التي إما تكون غير موجودة في المكتبة القياسية أو تتطلب تنفيذاً معقداً. أصبحت العديد من مكونات Boost أساساً لمعايير C++11 و C++14 و C++17 و C++20 (على سبيل المثال، std::shared_ptr، std::function، std::thread).

\n\n

لماذا نحتاج Boost؟

\n
    \n
  • الجودة والموثوقية: يخضع الكود لعملية مراجعة صارمة، مما يضمن استقراراً وأداءً عاليين.
  • \n
  • التوافق عبر المنصات: يعمل Boost على معظم أنظمة التشغيل والمترجمات الحديثة.
  • \n
  • توفير الوقت: بدلاً من كتابة الخوارزميات وهياكل البيانات المعقدة من الصفر، يمكنك استخدام مكونات جاهزة ومُختبرة.
  • \n
  • التحضير للمعايير المستقبلية: باستخدام Boost، غالباً ما تعمل مع مفاهيم تصبح لاحقاً جزءاً من المعيار الرسمي لـ C++.
  • \n
  • مجموعة واسعة من المهام: من العمل مع المؤشرات الذكية والتعبيرات المنتظمة إلى إنشاء تطبيقات الشبكات وتحليل القواعد النحوية.
  • \n
\n\n

تثبيت Boost

\n\n

على عكس Python (حيث يُستخدم pip) أو Node.js (npm)، لا تمتلك C++ مدير حزم واحد. يعتمد تثبيت Boost على نظام التشغيل والمترجم المستخدم.

\n\n

الخيار 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 والتطوير عبر المنصات)

\n

vcpkg هو مدير حزم من Microsoft يتكامل بشكل ممتاز مع Visual Studio و CMake.

\n
# 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)

\n
cmake_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 للتحقق من وجود ملف.

\n\n
#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                    

توصيات