![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Endian Mini-ReviewBoost , ,
|
Endian Home Конверсионные функции Арифметические типы Буферные типы Подход к выбору |
Результаты повышения. Формальный обзор Эндиана включал список вопросов, которые должны быть решены до мини-обзора.
Вопросы показаны в bold ниже, с указанным разрешением.
1. Следует разработать общие сценарии использования.
Готово. Документация была переработана. Теперь страница посвящена Выбору подхода к эндианности. См. Использовать случаи для сценариев использования.
2.Программы-примеры должны быть разработаны для общих сценариев использования.
См. Выбор подхода. Всюду был добавлен примерный код.
3. Документация должна освещать различия между эндиан-целым числом/поплавковым типом и эндиан-конверсионными подходами к сценариям общего использования и обеспечивать руководящие принципы для выбора наиболее подходящего подхода в приложениях пользователя.
См. Выбор подхода.
4.Должны быть предусмотрены функции преобразования, обеспечивающие результаты через возврат.
См. ConversionFunctions.
5. Следует поддерживать конкретные улучшения производительности платформы, такие как использование встроенных компонентов компилятора или ослабленные требования к выравниванию.
Компиляторы (Clang, GCC, VisualC++ и т.д.) и встроенные функции используются в реализации, где это необходимо. См. Построенная поддержка Intrinsics. См. Наименования для примера 2 для оценки воздействия внутренних элементов.
6. Эндиевые целые (и плавающие) типы должны быть реализованы с помощью функций преобразования. Если это невозможно сделать эффективно, следует рассмотреть вопрос о расширении сигнатуры функции преобразования для устранения неэффективности.
Готово. Для эндиан-типов реализация использует эндиан-конверсионные функции и, следовательно, внутренние элементы, как запрошено.
7. Должны быть предусмотрены контрольные показатели, измеряющие эффективность работы. Должна быть возможность сравнивать конкретные улучшения производительности платформы с портативными базовыми реализациями и сравнивать эндиан-целочисленные подходы с эндиан-конверсионными подходами для сценариев общего использования.
См. Настройки для примера 2. Каталог
endian/test
также содержит несколько дополнительных тестовых программ.
8. Следует поддерживать плавающий (32-бит) и двойной (64-бит). IEEE 754 является основным вариантом использования.
endian buffer types, endian arithmetic types и endian conversion functions теперь поддерживают 32-битную (
float)
и 64-битную(double)
плавающую точку, как запрашивалось.
9. Поддержка определенных пользователем типов (UDT) желательна и должна предоставляться там, где не будет конфликта с другими проблемами.
Сделано. Точки персонализации для определяемых пользователем типов (UDT).
10. Существует некоторая озабоченность по поводу того, что эндиановые целочисленные/плавающие арифметические операции могут использоваться непреднамеренно или ненадлежащим образом. Необходимо исследовать влияние добавления класса эндиан-буфера без арифметических операций.
Готово. Эндиановые типы были разбиты на шаблон класса
endian_buffer
и шаблон классаendian_arithmetic
. Классendian_buffer
является общедоступным базовым классом дляendian_arithmetic
, а также может использоваться пользователями как отдельный класс.
11. Вставка потока и извлечение эндиановых целых чисел/поплавковых типов должны быть задокументированы и включены в тестовый охват.
См. Stream inserter и Stream extractor.
12. Бинарная поддержка ввода/вывода, которая была исследована во время разработки библиотеки Эндиана, должна быть выставлена для мини-обзора для включения в библиотеку ввода/вывода Boost.
Еще не сделано. Это будет отдельный мини-обзор вскоре после мини-обзора Эндиана.
13. Другие изменения.
- В дополнение к функциям преобразования по имени-эндианности теперь предоставляются функции, которые выполняют отправку времени компиляции (через шаблон) и времени выполнения (через аргумент функции).
order::native
теперь является синонимомorder::big
илиorder::little
в соответствии с эндианностью платформы. Это уменьшает количество требуемых специализаций шаблонов.- Заголовки были реорганизованы, чтобы их было легче читать, с кратким изложением на передней панели и последующей реализацией.
Последнее изменение: 19 января 2015 года19 January, 2015[ORIG_END] -->
Авторское право Beman Dawes, 2014
Распространяется под лицензией Boost Software License, версия 1.0. См. www.boost.org/ LICENSE_1_0.txt
Статья Endian Mini-Review раздела может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
:: Главная :: ::
реклама |