или не допустимый C++: почему это кодирует компиляцию?

В прошлом я выбрал опцию C - Составление 'длинной, узкой' таблицы, которая хранит динамические значения столбцов как строки, которые тогда должны вертеться для создания 'короткого, широкого' набора строк, содержащего все значения для определенного объекта. . Однако я использовал ORM, и это ДЕЙСТВИТЕЛЬНО сделало вещи болезненными. Я не могу думать, как Вы выполнили бы в нем, скажем, LinqToSql. Я предполагаю, что должен был бы создать Хеш-таблицу для ссылки на поля.

@Skliwz: я предполагаю, что он больше интересуется разрешением пользователям создать пользовательские поля.

24
задан Meysam 18 October 2012 в 11:21
поделиться

3 ответа

Согласно Википедия :

C ++ определяет ключевые слова, которые действуют как псевдонимы для ряда символов, которые функционируют как операторы: and (&&), bitand (&), and_eq (& =), или (||), bitor (|), or_eq (| =), xor (^), xor_eq (^ =), а не (!), not_eq (! =), comp (~).

Как MadKeithV указывает , эти замены были взяты из iso646.h языка C и были включены в ISO C ++ как ключевые слова операторов. В статье Википедии для iso646.h говорится, что причиной этих ключевых слов действительно были международные и другие клавиатуры, не поддерживающие QWERTY, у которых, возможно, не было легкого доступа к символам.

54
ответ дан 28 November 2019 в 22:22
поделиться

or is a C++ keyword, and you're allowed to use it instead of ||. There is no magic.

The same goes for and and most other logical operators. It's generally best to stick to the commonly known names though, to avoid confusion like this. If you use or, someone will wonder "why does this compile" ;)

16
ответ дан 28 November 2019 в 22:22
поделиться

iso646.h определяет ряд альтернативных операторов - это часть стандарта C ++.

7
ответ дан 28 November 2019 в 22:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: