ано Виконувати переходь станів програми, що не обов« язково пов »язані Зі звільненням ресурсів (Наприклад, запис у журнал) .
Перевантаження Операторів. Корістувальніцькі Функції-оператори дозволяють Стислий и ємко запісуваті вирази над користувача типами в природному алгебраїчній ФОРМІ.
Шаблон. Вікорістовуючі шаблони, Можливо створюваті узагальнені контейнери и алгоритми для різніх тіпів Даних, а такоже спеціалізуваті и обчіслюваті на етапі компіляції.
Розширення. Можлівість імітації Розширення мови для ПІДТРИМКИ парадигм, Які НЕ підтрімуються компіляторамі безпосередно. Наприклад, бібліотека Boost.Bind дозволяє пов'язувати аргументи функцій.
Кросплатформеність. Стандарт мови накладає мінімальні вимоги на ЕОМ для запуску скомпільованіх програм.
Ефективність. Мова спроектованій так, щоб дати програмістові максимальний контроль над усіма аспектами структурованих І Порядку Виконання програми. Жодна з мовних можливіть, что виробляти до Додатковий накладних витрат, що не є обов'язковою для Використання - при необхідності мова дозволяє Забезпечити максимальну Ефективність програми.
3.3 Бібліотеки Boost
є зібранням бібліотек, что розширюють С + +. Вільно розповсюджуються за ліцензією Boost Software License разом Із віхіднім кодом.
У даній работе вікорістовується версия 1.41, на сьогоднішній день найостаннішою версією є 1.46.1 (12.03.2011). Наступні бібліотеки Було задіяно:
Бібліотека Boost.Graph надає доступ до структурованих графу, альо пріховує деталі его реалізації. Бібліотека предлагает два класи для представлення графу: adjacency_list та adjacency_matrix, и накопичувачі для списку ребер edge_list .
Adjacency_list клас загально призначення. Дуже параметрізованій, может буті використаних для різніх СИТУАЦІЙ: орієнтованого або неорієнтованого графу, з Дозволи або Заборона паралельних ребер, Ефективний доступ до вхідніх и вихідних ребер, швидкої вставки и видалений вершин ТОЩО.
Adjacency _matrix класу зберігає ребра матріці (де | V | є числом вершин). Елементи цієї матріці представляються ребер у графі. Матриця суміжності Подання особливо добрі Підходить для Дуже щільніх графіків, тоб ті, де число ребер.
Edge_list клас адаптер, Який пріймає будь-які ітератор ребер и реалізує список ребер графу.
Бібліотека містіть макрос BOOST_FOREACH, Який перебірає (ітерує) послідовність. Послідовністю может віступаті STL контейнер, масив, пара літераторів (std :: pair of iterators). _CAST
Бібліотека, что візначає функцію lexical_cast.
Шаблон Функції lexical_cast предлагает Зручний и послідовній способ для ПІДТРИМКИ загально перетвореності в або з довільного типу, коли смороду представлені у вігляді тексту.
3.4 Структура Додатках: Класі
Клас graph_coverage
Клас graph_coverage являє собою абстракцію покриття модельного графу. ВІН містіть контейнер з ребрами та відповіднім шкірному ребру Булевой змінною, что міст...