Пространства имён
Варианты
Действия

Alternative operator representations

Материал из cppreference.com
< cpp‎ | language

 
 
Язык С++
Общие темы
Управление программой
Операторы условного выполнения
Операторы повторения
Операторы перехода
Функции
объявление функции
объявление лямбда-функции
шаблон функции
спецификатор inline
спецификаторы исключений (устарело)
спецификатор noexcept (C++11)
Исключения
Пространства имён
объявление пространства имён
псевдонимы пространства имён
Типы
спецификатор decltype (C++11)
Спецификаторы
cv-спецификаторы
спецификаторы продолжительности хранения
спецификатор constexpr (C++11)
спецификатор auto (C++11)
спецификатор alignas (C++11)
Инициализация
Литералы
Выражения
категории значений
порядок вычисления
альтернативные представления
Утилиты
Типы
typedef-объявление
объявление псевдонима типа (C++11)
атрибуты (C++11)
Приведения типов
неявные преобразования
const_cast-преобразование
static_cast-преобразование
dynamic_cast-преобразование
reinterpret_cast-преобразование
C-подобное и функциональное приведение типов
Выделение памяти
Классы
Особые свойства классовых функций
Специальные функции-члены
Шаблоны
шаблон класса
шаблон функции
специализация шаблона
упакованные параметры (C++11)
Разное
Ассемблерные вставки
 
C + + (и C) исходный код может быть записан в любой не-ASCII 7-битный набор символов, который включает в себя ISO 646/ECMA-6 инвариантным набором символов. Тем не менее, несколько C + + операторы и знаки пунктуации требуют символы, которые находятся за пределами ISO 646 кодировки: {, }, [, ], #, \, ^, |, ~. Чтобы быть в состоянии использовать кодировки, где все или некоторые из этих символов не существует, C + + определяет два вида альтернатив: дополнительные ключевые слова, которые соответствуют операторы, которые используют эти символы и специальные комбинации из двух или трех ISO 646 совместимы символов, которые интерпретируются как если бы они были одного не-ISO 646 символов.
Оригинал:
C++ (and C) source code may be written in any non-ASCII 7-bit character set that includes the ISO 646/ECMA-6 invariant character set. However, several C++ operators and punctuators require characters that are outside of the ISO 646 codeset: {, }, [, ], #, \, ^, |, ~. To be able to use character encodings where some or all of these symbols do not exist, C++ defines two kinds of alternatives: additional keywords that correspond to the operators that use these characters and special combinations of two or three ISO 646 compatible characters that are interpreted as if they were a single non-ISO 646 character.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

Содержание

[править] Альтернативные ключевые слова

Есть альтернативные варианты написания нескольких операторов, определенных в качестве ключевых слов в C + + стандарт.
Оригинал:
There are alternative spellings for several operators defined as keywords in the C++ standard.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Primary Alternative
&& and
&= and_eq
& bitand
| bitor
~ compl
! not
!= not_eq
|| or
|= or_eq
^ xor
^= xor_eq

[править] Совместимость с С

Те же самые слова определены в языке программирования Си в <iso646.h> включаемый файл в виде макросов. Потому что в C + + эти ключевые слова языка, C + + версии <iso646.h>, а также <ciso646>, не определяет ничего.
Оригинал:
The same words are defined in the C programming language in the include file <iso646.h> as macros. Because in C++ these are language keywords, the C++ version of <iso646.h>, as well as <ciso646>, does not define anything.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

[править] Digraphs и триграфы

Следующие комбинации из двух и трех символов (орграфов и триграфы) справедливы замены для своих первичных символов:
Оригинал:
The following combinations of two and three characters (digraphs and trigraphs) are valid substitutions for their respective primary characters:
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Primary Digraph Trigraph
{ <% ??<
None} %> ??>
[ <: ??(
] :> ??)
# %: ??=
\ ??/
^ ??'
| ??!
~ ??-

[править] Ключевые слова

and, and_eq, bitand, bitor, compl, not, not_eq, or, or_eq, xor, xor_eq

[править] Пример

В следующем примере показано, как использовать несколько ключевых слов альтернатива:
Оригинал:
The following example demonstrates the use of several alternative keywords:
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

%:include <iostream>
 
int main(int argc, char *argv<::>)
<%
    if (argc > 1 and argv<:1:> not_eq '\0') <%
        std::cout << "Hello " << argv<:1:> << '\n';
    %>
%>