В прошлом я выбрал опцию C - Составление 'длинной, узкой' таблицы, которая хранит динамические значения столбцов как строки, которые тогда должны вертеться для создания 'короткого, широкого' набора строк, содержащего все значения для определенного объекта. . Однако я использовал ORM, и это ДЕЙСТВИТЕЛЬНО сделало вещи болезненными. Я не могу думать, как Вы выполнили бы в нем, скажем, LinqToSql. Я предполагаю, что должен был бы создать Хеш-таблицу для ссылки на поля.
@Skliwz: я предполагаю, что он больше интересуется разрешением пользователям создать пользовательские поля.
Согласно Википедия :
C ++ определяет ключевые слова, которые действуют как псевдонимы для ряда символов, которые функционируют как операторы: and (&&), bitand (&), and_eq (& =), или (||), bitor (|), or_eq (| =), xor (^), xor_eq (^ =), а не (!), not_eq (! =), comp (~).
Как MadKeithV указывает , эти замены были взяты из iso646.h языка C и были включены в ISO C ++ как ключевые слова операторов. В статье Википедии для iso646.h говорится, что причиной этих ключевых слов действительно были международные и другие клавиатуры, не поддерживающие QWERTY, у которых, возможно, не было легкого доступа к символам.
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" ;)
iso646.h определяет ряд альтернативных операторов - это часть стандарта C ++.