Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Chapter 4. Boost.Any

Boost , The Boost C++ Libraries BoostBook Documentation Subset , Part I. The Boost C++ Libraries (BoostBook Subset)

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Chapter 4. Boost.Any

Kevlin Henney

Распространяется под лицензией Boost Software License, версия 1.0. (См. сопроводительный файл<LICENSE_1_0.txt>или копию по адресуhttp://www.boost.org/LICENSE_1_0.txt)

Introduction

Бывают случаи, когда общее (в смыслеобщеев отличие отшаблонное программирование)Тип необходим: переменные, которые действительно переменные, вмещающие значения многих других более конкретных типов, а не нормальных строгих и статических типов C++. Можно выделить три основных вида родового типа:

  • Преобразующие типы, которые могут содержать один из нескольких возможных типов значений, например<int>и<string>, и свободно конвертировать между ними, например, интерпретируя<5>как<"5">или наоборот. Такие типы распространены в скриптинге и других интерпретируемых языках.<boost::lexical_cast>поддерживает такую конверсионную функциональность.

  • Дискриминированные типы, которые содержат значения различных типов, но не пытаются преобразования между ними, т.е.<5>строго как<int>и не являются неявно конвертируемыми ни в<"5">, ни в<5.0>. Их безразличие к интерпретации, но осведомленность о типе эффективно делает их безопасными, универсальными контейнерами с единичными значениями, без каких-либо сюрпризов от неоднозначных преобразований.

  • Неизбирательные типы, которые могут относиться к чему угодно, но не обращают внимания на фактический базовый тип, поручая все формы доступа и интерпретации программисту. В этой нише доминирует<void *>, что предлагает множество возможностей для удивительного, неопределенного поведения.

Класс<boost::any>(на основе одноимённого класса, описанного в"Valued Conversions"Кевлином Хенни,C++ Report12(7), июль/август 2000) является вариантным типом значений, основанным на второй категории. Он поддерживает копирование любого типа стоимости и безопасное извлечение этого значения строго по отношению к его типу. Аналогичная конструкция, предлагающая более подходящие операторы, может быть использована для обобщенного функционального адаптера,<any_function>, обобщенного адаптера итератора,<any_iterator>и других типов объектов, которые нуждаются в однородной обработке во время выполнения, но поддерживают только соответствие шаблона шаблона времени компиляции.


PrevUpHomeNext

Статья Chapter 4. Boost.Any раздела The Boost C++ Libraries BoostBook Documentation Subset Part I. The Boost C++ Libraries (BoostBook Subset) может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Part I. The Boost C++ Libraries (BoostBook Subset) ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 17:18:12/0.0065169334411621/0