Jump to content

C23 (стандартная версия C)

C23 — неофициальное название ISO/IEC 9899:2024 , следующего стандарта языка программирования C , который заменит C17 (стандарт ISO/IEC 9899:2018). [1] Он был запущен в 2016 году неофициально как C2x, [2] и ожидалось, что он будет опубликован в 2024 году. [3] Последний общедоступный рабочий проект C23 был выпущен 1 апреля 2023 года. [4] Первое заседание WG14 по проекту C2x состоялось в октябре 2019 года. [5] проводились виртуальные дистанционные встречи В 2020 году из-за пандемии COVID-19 , затем до 2024 года продолжали проводиться различные телеконференции.

Изменения, включенные в последний рабочий проект C23, перечислены ниже. [4]

Стандартная библиотека

[ редактировать ]

Новые функции

[ редактировать ]
  • Добавлять memset_explicit() функционировать в <string.h> для удаления конфиденциальных данных, где сохранение в памяти должно выполняться всегда, независимо от оптимизации. [6]
  • Добавлять memccpy() функционировать в <string.h> для эффективного объединения строк — аналогично расширениям C POSIX и SVID . [7]
  • Добавлять strdup() и strndup() функции в <string.h> для выделения копии строки – аналогично расширениям C POSIX и SVID . [8]
  • Добавлять memalignment() функционировать в <stdlib.h> для определения выравнивания байтов указателя. [9]
  • Добавьте служебные функции/макросы/типы битов в новый заголовок. <stdbit.h> для изучения многих целочисленных типов. Все начинается с stdc_ чтобы минимизировать конфликт с устаревшим кодом и сторонними библиотеками. [10]
    • Далее замените * с uc, us, ui, ul, ull для пяти имен функций или пусто для макроса общего типа. [10]
    • Добавлять stdc_count_ones*() и stdc_count_zeros*() для подсчета количества 1 или 0 бит в значении. [10]
    • Добавлять stdc_leading_ones*() и stdc_leading_zeros*() для подсчета ведущих 1 или 0 битов значения. [10]
    • Добавлять stdc_trailing_ones*() и stdc_trailing_zeros*() для подсчета конечных 1 или 0 битов значения. [10]
    • Добавлять stdc_first_leading_one*() и stdc_first_leading_zero*() чтобы найти первый ведущий бит со значением 1 или 0. [10]
    • Добавлять stdc_first_trailing_one*() и stdc_first_trailing_zero*() чтобы найти первый конечный бит со значением 1 или 0. [10]
    • Добавлять stdc_has_single_bit*() чтобы определить, является ли значение точной степенью 2 (возвращает true тогда и только тогда, когда существует один бит 1). [10]
    • Добавлять stdc_bit_floor*() определить наибольшую целую степень 2, не превышающую значение. [10]
    • Добавлять stdc_bit_ceil*() определить наименьшую целую степень 2, которая не меньше значения. [10]
    • Добавлять stdc_bit_width*() чтобы определить количество битов для представления значения. [10]
  • Добавлять timegm() функционировать в <time.h> для преобразования структуры времени в значение календарного времени - аналогично функции в библиотеках glibc и musl . [11]
  • Новый <math.h> функции, основанные на рекомендациях IEEE 754-2019, такие как функции тригонометрии, работающие с единицами и exp10. [12]

Существующие функции

[ редактировать ]
  • Добавлять %b спецификатор двоичного преобразования в printf() функциональное семейство. [13]
  • Добавлять %b спецификатор двоичного преобразования в scanf() функциональное семейство. [13]
  • Добавлять 0b и 0B поддержка двоичного преобразования в strtol() и wcstol() функциональные семейства. [13]
  • Сделайте функции bsearch(), bsearch_s(), memchr(), strchr(), strpbrk(), strrchr(), strstr()и их широкие аналоги wmemchr(), wcschr(), wcspbrk(), wcsrchr(), wcsstr() вернуть константный объект, если он был передан им. [14]

Препроцессор

[ редактировать ]
  • Добавлять #elifdef и #elifndef директивы , [15] которые по сути эквивалентны #elif defined и #elif !defined. Обе директивы были добавлены в стандарт C++23 и GCC 12. [16]
  • Добавлять #embed директива для включения двоичных ресурсов и __has_embed позволяя проверять доступность ресурса с помощью директив препроцессора. [17]
  • Добавлять #warning направление на диагностику. [18]
  • Добавлять __has_include возможность проверки доступности заголовка с помощью директив препроцессора. [19]
  • Добавлять __has_c_attribute позволяя проверять доступность атрибута с помощью директив препроцессора. [20] (новую функцию атрибута см. в группе «Совместимость с C++»)
  • Добавлять __VA_OPT__ функциональный макрос для макросов с вариациями , который расширяется до своего аргумента только в том случае, если аргумент с вариацией был передан содержащему макросу. [21]
  • Добавлять nullptr_t, тип нулевого указателя . [22]
  • Добавлять _BitInt(N) и unsigned _BitInt(N) типы для целых чисел с точностью до бита. Добавлять BITINT_MAXWIDTH макрос для максимальной разрядности. [23] [24]
  • Добавлять ckd_add(), ckd_sub(), ckd_mul() макросы для проверяемых целочисленных операций. [25]
  • Типы с изменяющимися переменными (но не VLA , которые представляют собой автоматические переменные, размещаемые в стеке) становятся обязательной функцией. [26]
  • Лучшая поддержка использования const с массивами. [27]
  • Стандартизация typeof(...) оператор. [28]
  • Значение auto Ключевое слово было изменено, чтобы вызвать вывод типа , сохраняя при этом свое старое значение спецификатора класса хранения, если оно использовалось вместе с типом. В отличие от C++ , C23 допускает вывод типа только для определений объектов (без вывода типа возвращаемого значения функции или типа параметра функции). [29]
  • Правила совместимости для структурных, объединенных и перечислимых типов были изменены, чтобы разрешить повторное объявление совместимого типа с тем же тегом. [30]
  • Целое число точной ширины теперь может превышать intmax_t (N2888). [31]

Константы

[ редактировать ]
  • Добавлять nullptr постоянная для nullptr_t тип. [22]
  • Добавлять wb и uwb целочисленные литеральные суффиксы для _BitInt(N) и unsigned _BitInt(N) типы, [32] такой как 6uwb дает unsigned _BitInt(3), и -6wb дает signed _BitInt(4) который имеет три бита значения и один знаковый бит.
  • Добавлять 0b и 0B двоичные константные префиксы, [33] такой как 0b10101010 (соответствует 0xAA).
  • Добавлять ' цифровой разделитель в литеральные константы, [34] такой как 0xFE'DC'BA'98 (соответствует 0xFEDCBA98), 299'792'458 (соответствует 299792458 ), 1.414'213'562 (что соответствует 1,414213562 ).
  • Добавьте возможность указать базовый тип enum. [35]
  • Позволять enums без фиксированного базового типа для хранения значений, которые не могут быть представлены int. [36]

Ключевые слова

[ редактировать ]
  • Добавлять true и false ключевые слова. [37]
  • Добавлять alignas, alignof, bool, static_assert, thread_local ключевые слова. Ранее определенные ключевые слова становятся альтернативными вариантами написания: _Alignas, _Alignof, _Bool, _Static_assert, _Thread_local. [38]
  • Добавлять _BitInt ключевое слово (см. группу «типы»)
  • Добавлять typeof и typeof_unqual ключевые слова (см. группу «типы»)
  • Добавлять nullptr ключевое слово (см. группу «константы»)
  • Добавлять constexpr ключевое слово (см. группу «другое»)
  • Добавлять _Decimal32, _Decimal64, _Decimal128 ключевые слова для (необязательной) десятичной арифметики с плавающей запятой (см. группу «другое»)

Синтаксис

[ редактировать ]
  • Метки могут появляться перед объявлениями и в конце составных операторов . [39]
  • Безымянные параметры в определениях функций. [40]
  • Нулевая инициализация с {} (включая инициализацию VLA). [41]
  • Вариадным функциям больше не нужен именованный аргумент перед многоточием и va_start Макросу больше не нужен второй аргумент, и он не оценивает аргументы после первого, если они есть. [42]
  • Добавить C++11. стиля атрибута синтаксис [43] используя двойные квадратные скобки [[]]. В дополнение к атрибутам C++11 , перечисленным ниже, добавьте новые атрибуты:
    • [[unsequenced]][44] позволяет оптимизировать компилятор для функций, производящих повторяемые выходные данные только на основе их параметров
    • [[reproducible]], [44] похоже на [[unsequenced]], но для функций, порядок вызова которых также имеет значение
  • Добавить один аргумент _Static_assert для совместимости с C++17 . [45]
  • Функции без аргументов, указанные в прототипе void foo() понимаются как не имеющие аргументов (см. удаление объявлений функций K&R)

Совместимость с С++

[ редактировать ]
  • Различные изменения синтаксиса улучшают совместимость с C++, например, метки перед объявлениями, безымянные аргументы функций, нулевая инициализация с помощью {}, вариативные функции без именованного аргумента, C++11 , атрибуты стиля _Static_assert (см. Синтаксис). Для меток в конце составных операторов в C++23 было внесено соответствующее изменение . [46]
  • Добавьте атрибуты в стиле C++ (см. Синтаксис). Добавить атрибуты [47] [[deprecated]], [48] [[fallthrough]], [49] [[maybe_unused]], [50] [[nodiscard]], [51] и [[noreturn]] атрибут для совместимости с C++11 , затем объявить устаревшим _Noreturn, noreturn, заголовок <stdnoreturn.h> функции, представленные в C11 . [52] Дублирование атрибутов разрешено для совместимости с C++23 . [53] Все стандартные атрибуты также могут быть окружены двойным подчеркиванием (например, [[__deprecated__]] эквивалентно [[deprecated]]).
  • Добавлять u8 префикс для символьных литералов , представляющий кодировку UTF-8 для совместимости с C++17 . [54] [55]
  • Добавлять #elifdef и #elifndef директивы предварительной обработки для совместимости с C++23 . [15] (см. группу «препроцессор»)

Другие особенности

[ редактировать ]
  • Поддержка ISO/IEC 60559:2020, текущей версии стандарта IEEE 754 для арифметики с плавающей запятой, с расширенной двоичной арифметикой с плавающей запятой и (дополнительно) десятичной арифметикой с плавающей запятой. [56] [57]

Устаревшие функции

[ редактировать ]

Некоторые старые устаревшие функции либо удалены, либо признаны устаревшими из рабочего проекта C23:

Поддержка компилятора

[ редактировать ]

ССЗ 9 , [67] Кланг 9.0, [68] и Пеллес С 11.00 [69] компиляторы реализуют экспериментальный флаг компилятора для поддержки этого стандарта.

См. также

[ редактировать ]
  1. ^ «История Си» . cppreference.com . 27.06.2022. Архивировано из оригинала 19 октября 2022 года.
  2. ^ «WG14-N2086: Устав C2x» . open-std.org . 20 сентября 2016 г. Архивировано из оригинала 22 декабря 2022 года.
  3. ^ «WG14-N3156: Обновленное расписание C23» (PDF) . open-std.org . 19 июля 2023 г. Архивировано (PDF) из оригинала 29 января 2024 г.
  4. ^ Jump up to: а б «WG14-N3096: Проект ISO/IEC 9899:2024» (PDF) . open-std.org . 1 апреля 2023 г. Архивировано (PDF) из оригинала 2 апреля 2023 г.
  5. ^ «WG14-N2437: Повестка дня на октябрь 2019 г.» . open-std.org . 21.10.2019. Архивировано из оригинала 5 марта 2021 года.
  6. ^ «WG14-N2897: memset_explicit()» . open-std.org . 2021-12-27. Архивировано из оригинала 25 октября 2022 года.
  7. ^ «WG14-N2349: На пути к более эффективному копированию и конкатенации строк» . open-std.org . 18 марта 2019 г. Архивировано из оригинала 30 сентября 2022 года.
  8. ^ «WG14-N2353: strdup() и strndup()» . open-std.org . 18 марта 2019 г. Архивировано из оригинала 24 декабря 2022 года.
  9. ^ «WG14-N2974: Запрашиваемое выравнивание указателя» (PDF) . open-std.org . 15 апреля 2022 г. Архивировано (PDF) из оригинала 13 октября 2022 г.
  10. ^ Jump up to: а б с д и ж г час я дж к «WG14-N3022: Современные битовые утилиты» . open-std.org . 06.07.2022. Архивировано из оригинала 24 декабря 2022 года.
  11. ^ «WG14-N2833: Добавьте timegm() как необязательную часть time.h» . open-std.org . 07.10.2021. Архивировано из оригинала 1 декабря 2021 года.
  12. ^ Полезный обзор см. в N3096 ​​§ B.11. Функции были добавлены в отдельные документы: N2488, его обновленные версии и ссылки.
  13. ^ Jump up to: а б с «WG14-N2630: форматированный ввод/вывод целых двоичных чисел» (PDF) . open-std.org . 01.01.2021. Архивировано (PDF) из оригинала 14 декабря 2022 г.
  14. ^ «WG14-N3020: Функции стандартной библиотеки, сохраняющие квалификаторы» (PDF) . open-std.org . 13.06.2022. Архивировано (PDF) из оригинала 13 октября 2022 г.
  15. ^ Jump up to: а б «WG14-N2645: Добавить поддержку директив предварительной обработки #elifdef и #elifndef» (PDF) . open-std.org . 25 января 2020 г. Архивировано (PDF) из оригинала 28 ноября 2022 г.
  16. ^ «В GCC 12 добавлена ​​поддержка новых директив #elifdef #elifndef» . фороникс . 12 мая 2021 г. Архивировано из оригинала 27 декабря 2022 г.
  17. ^ «WG14-N3017: #embed — сканируемый, удобный для инструментов механизм включения двоичных ресурсов» . open-std.org . 27.06.2022. Архивировано из оригинала 24 декабря 2022 года.
  18. ^ «WG14-N2686: #предупреждение» (PDF) . open-std.org . 22 июля 2022 г. Архивировано (PDF) из оригинала 28 ноября 2022 г.
  19. ^ «WG14-N2799: __has_include для C» (PDF) . open-std.org . 2021-08-30. Архивировано (PDF) из оригинала 24 декабря 2022 г.
  20. ^ «WG14-N2553: Запрос поддержки атрибутов» (PDF) . open-std.org . 04.08.2020. Архивировано (PDF) из оригинала 14 октября 2022 г.
  21. ^ «WG14-N3033: Пропуск и удаление запятых» . open-std.org . 20 июля 2022 г. Архивировано из оригинала 27 декабря 2022 года.
  22. ^ Jump up to: а б «WR14-N3042: Введите константу nullptr» . open-std.org . 22 июля 2022 г. Архивировано из оригинала 24 декабря 2022 года.
  23. ^ «WG14-N2763: Добавление фундаментального типа для N-битных целых чисел» (PDF) . open-std.org . 21 июня 2021 г. Архивировано (PDF) из оригинала 27 декабря 2022 г.
  24. ^ «WG14-N3035: исправления _BitInt» (PDF) . open-std.org . 21 июля 2022 г. Архивировано (PDF) из оригинала 13 октября 2022 г.
  25. ^ «WG14-N2867: Проверенные N-битные целые числа» (PDF) . open-std.org . 2021-11-28. Архивировано (PDF) из оригинала 14 декабря 2022 г.
  26. ^ «WG14-N2778: Типы с переменными изменениями» (PDF) . open-std.org . 11 июля 2021 г. Архивировано (PDF) из оригинала 22 декабря 2022 г.
  27. ^ «WG14-N2607: Совместимость указателей на массивы с квалификаторами» (PDF) . open-std.org . 2020-10-31. Архивировано (PDF) из оригинала 13 октября 2022 г.
  28. ^ «WG14-N2899: Не все так волшебно — typeof для C» . open-std.org . 21 января 2022 г. Архивировано из оригинала 24 декабря 2022 года.
  29. ^ «WG14-N3007: Вывод типа для определений объектов» . open-std.org . 10.06.2022. Архивировано из оригинала 24 декабря 2022 года.
  30. ^ «WG14-N3037: Улучшенные правила совместимости тегов (обновления N3032)» (PDF) .
  31. ^ «C23 завершен: вот что в меню» . Пастбище . 31 июля 2022 г.
  32. ^ «WG14-N2775: Буквенные суффиксы для целых чисел с точностью до бита» (PDF) . open-std.org . 2021-07-13. Архивировано (PDF) из оригинала 27 декабря 2022 г.
  33. ^ «WG14-N2549: Разрешить использование двоичных целочисленных констант» (PDF) . open-std.org . 2020-07-30. Архивировано (PDF) из оригинала 22 декабря 2022 г.
  34. ^ «WG14-N2626: Разделители цифр» (PDF) . open-std.org . 2020-12-15. Архивировано (PDF) из оригинала 19 декабря 2022 г.
  35. ^ «WG14-N3030: Улучшения в перечислениях» . open-std.org . 19 июля 2022 г. Архивировано из оригинала 26 ноября 2022 года.
  36. ^ «WG14-N3029: Улучшенные обычные перечисления» . open-std.org . 19 июля 2022 г. Архивировано из оригинала 29 января 2023 года.
  37. ^ «WG14-N2935: Сделайте ложные и истинные первоклассные языковые функции» (PDF) . open-std.org . 15 февраля 2022 г. Архивировано (PDF) из оригинала 21 ноября 2022 г.
  38. ^ «WG14-N2934: Исправьте написание ключевых слов» (PDF) . open-std.org . 15 февраля 2022 г. Архивировано (PDF) из оригинала 24 декабря 2022 г.
  39. ^ «WG14-N2508: Свободное расположение меток внутри составных операторов» (PDF) . open-std.org . 2020-03-28. Архивировано (PDF) из оригинала 27 декабря 2022 г.
  40. ^ «WG14-N2510: Разрешение безымянных параметров в определении функции» (PDF) . open-std.org . 09.04.2020. Архивировано (PDF) из оригинала 24 декабря 2022 г.
  41. ^ «WG14-N2900: последовательная, интуитивно понятная инициализация без предупреждений с помощью {}» . open-std.org . 01.01.2022. Архивировано из оригинала 27 декабря 2022 года.
  42. ^ «WG14-N2975: Ослабьте требования к спискам переменных параметров» (PDF) . open-std.org . 15 апреля 2022 г. Архивировано (PDF) из оригинала 28 ноября 2022 г.
  43. ^ «WG14-N2335: Атрибуты в C» (PDF) . open-std.org . 09.03.2019. Архивировано (PDF) из оригинала 26 октября 2022 г.
  44. ^ Jump up to: а б «Непоследовательные функции» . open-std.org . Проверено 18 июля 2024 г.
  45. ^ «WG14-N2265: Гармонизация static_assert с C++» (PDF) . open-std.org . 06.07.2018. Архивировано (PDF) из оригинала 28 марта 2023 г.
  46. ^ «Метки в конце составных операторов (совместимость с C)» (PDF) . 13 января 2022 г.
  47. ^ «WG14-N2554: Небольшие исправления формулировок атрибутов» (PDF) . open-std.org . 04.08.2020. Архивировано (PDF) из оригинала 28 ноября 2022 г.
  48. ^ «WG14-N2334: устаревший атрибут» (PDF) . open-std.org . 22 января 2019 г. Архивировано (PDF) из оригинала 19 октября 2022 г.
  49. ^ «WG14-N2408: Атрибут провала» (PDF) . open-std.org . 11.08.2019. Архивировано (PDF) из оригинала 25 декабря 2022 г.
  50. ^ «WG14-N2270: Атрибут may_unused» (PDF) . open-std.org . 06.07.2018. Архивировано (PDF) из оригинала 25 декабря 2022 г.
  51. ^ «WG14-N2267: Атрибут nodiscard» (PDF) . open-std.org . 06.07.2018. Архивировано (PDF) из оригинала 19 октября 2022 г.
  52. ^ «WG14-N2764: Атрибут noreturn» (PDF) . open-std.org . 21 июня 2021 г. Архивировано (PDF) из оригинала 25 декабря 2022 г.
  53. ^ «WG14-N2557: Разрешить дублирование атрибутов» (PDF) . open-std.org . 01.09.2020. Архивировано (PDF) из оригинала 28 ноября 2022 г.
  54. ^ «WG14-N2418: Добавление префикса символов u8» (PDF) . open-std.org . 2019-09-02. Архивировано (PDF) из оригинала 13 января 2023 г.
  55. ^ В чем смысл символьных литералов UTF-8, предложенных для C++17?; Переполнение стека.
  56. ^ «WG14-N2341: ISO/IEC TS 18661-2 — Расширения с плавающей запятой для C — Часть 2: Десятичная арифметика с плавающей запятой» (PDF) . open-std.org . 26 февраля 2019 г. Архивировано (PDF) из оригинала 21 ноября 2022 г.
  57. ^ «WG14-N2601: Приложение X — взаимозаменяемые и расширенные типы IEC 60559» (PDF) . open-std.org . 15 октября 2020 г. Архивировано (PDF) из оригинала 14 октября 2022 г.
  58. ^ «WG14-N3018: Спецификатор constexpr для определений объектов» . open-std.org . 06.07.2022. Архивировано из оригинала 24 декабря 2022 года.
  59. ^ «WG14-N2653: char8_t: тип символов и строк UTF-8 (версия 1)» . open-std.org . 04.06.2021. Архивировано из оригинала 27 мая 2023 года.
  60. ^ «WG14-N2728: строковые литералы char16_t и char32_t должны иметь формат UTF-16 и UTF-32» . open-std.org . 15 мая 2021 г. Архивировано из оригинала 27 мая 2023 года.
  61. ^ «WG14-N3038: Введение спецификаторов класса хранения для составных литералов» . open-std.org . 21 июля 2022 г. Архивировано из оригинала 26 ноября 2022 года.
  62. ^ «WG14-N2940: Удаление триграфов??!» (PDF) . open-std.org . 2022-03-02. Архивировано (PDF) из оригинала 26 октября 2022 г.
  63. ^ «WG14-N2432: Удалить поддержку определений функций с предложением списков идентификаторов» (PDF) . open-std.org . 25 сентября 2019 г. Архивировано (PDF) из оригинала 27 декабря 2022 г.
  64. ^ «WG14-N2841: Никаких деклараторов функций без прототипов» . open-std.org . 10.10.2021. Архивировано из оригинала 12 ноября 2022 года.
  65. ^ «WG14-N2412: Представление знака дополнения до двух» (PDF) . open-std.org . 11 августа 2019 г. Архивировано (PDF) из оригинала 27 декабря 2022 г.
  66. ^ «WG14-N2993: Сделать *_HAS_SUBNORM устаревшим» . open-std.org . 06.06.2022. Архивировано из оригинала 5 декабря 2022 года.
  67. ^ «Примечания к выпуску GCC 9» . Проект ГНУ . Архивировано из оригинала 27 декабря 2022 года.
  68. ^ «Clang 9.0 — добавлен новый языковой режим для C2x» . Репозиторий проектов LLVM . 14 мая 2019 г. Архивировано из оригинала 27 декабря 2022 г.
  69. ^ «Пеллес С – существенные изменения между 10.00 и 11.00» . smorgasbordet.com . Архивировано из оригинала 27 декабря 2022 года.

Дальнейшее чтение

[ редактировать ]
  • N3096 ​​(рабочий проект стандарта C23); РГ14; Апрель 2023 г. (скачать бесплатно)
  • N3149 (рабочий проект стандарта C23); РГ14; Июль 2023 г. (недоступно для общественности)
  • N3219 ( проект DIS ISO/IEC 9899:2023 ); РГ14; Февраль 2024 г. (проект ISO доступен, но не бесплатно)
  • ISO/IEC 9899:2024 (официальный стандарт C23); ИСО ; 2024 г. (планируется к выпуску в 2024 г.)
[ редактировать ]
Предшественник языка C Стандарты Последний
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 5aa166912f6c813db05dfa38b3cb2b79__1721357160
URL1:https://arc.ask3.ru/arc/aa/5a/79/5aa166912f6c813db05dfa38b3cb2b79.html
Заголовок, (Title) документа по адресу, URL1:
C23 (C standard revision) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)