Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Union что из себя представляет? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Скрипт для автоматизации забивания инфы http://www.cyberforum.ru/cpp-beginners/thread161901.html
Есть такая проблема.... Имеется сайт......на нём есть какталог товаров.....забивается каталог через админку.... знач вводятся следующие поля ... наименования товара.... описание ..... цена........
C++ Как установить весь MinGW? Собственно сабж. Дома у меня Линукс и проблем не возникает. А на работе винда. Я использую Эклипсу с МинГВином, но нехватает Autoconf. Сабжевый инсталятор тянет только базовую систему. Выкачивать... http://www.cyberforum.ru/cpp-beginners/thread161835.html
Сравнение элементов массива C++
Доброе время суток. У меня такой вопрос. Как сравнить элементы массива,допустим массив состоит из пяти элентов???
C++ Статические поля класса
class mi { int a,b; public: mi(int a, int b) : a(a),b(b) {} void sw() { std::cout<<a<<" - "<<b<<std::endl; } static int pa = 9; }; мне нужно сделать переменную в...
C++ Советы http://www.cyberforum.ru/cpp-beginners/thread161822.html
Добрый день, сделал с горем пополам калькулятор, но необходимы советы о написании программ на примере того же калькулятора, так как было довольно заморочливо его делать и программа похожа на if-then...
C++ Уникальные массивы Здравствуйте, подскажите пожалуйста как на С реализовывается уникальность массивов. Чтобы в массив попадали только те элементы, которые являются уникальными. Чтобы читая файл на выходе можно было... подробнее

Показать сообщение отдельно
DrOffset
7351 / 4451 / 1009
Регистрация: 30.01.2014
Сообщений: 7,292
22.06.2016, 09:27
Цитата Сообщение от IGPIGP Посмотреть сообщение
Вообще, система в которой всё что не запрещено - разрешено, имеет потенциал развития значительно более высокий чем та у которой всё что не разрешено - запрещено.
Это вопрос философский.
Впрочем, UB ничего не запрещает. UB - это всего лишь отсутствие стандартизированного поведения. Некоторые проявления UB вполен себе безобидные и контролируются в частных случаях. Например, лезть за пределы выделенной памяти - UB, но если мы конкретно знаем устройство нашего аллокатора, и в курсе, что он помещает информацию по определенному смещению от начала выделенной нам памяти, то вполне сможем эту информацию прочитать, и программа после этогого хоть и станет непортируемой и потеряет в сопровождаемости, но поведение, заложенное нами в рамках текущей реализации сохранится и будет работать.
Почему у многих здесь (как и у меня) негативное отношение к UB (даже если оно контролируемо в данный момент), так это потому, что многие (как и я) - занимаются программированием профессионально. И здесь, помимо собственно программирования, принято еще учитывать риски, в том числе на сопровождение кода. Наличие UB этот риск увеличивает. Поэтому в профессиональной разработке принято строго придерживаться установленного в компании регламента на кодирование и стандартов, чтобы получить более предсказуемый цикл разработки ПО.

Цитата Сообщение от IGPIGP Посмотреть сообщение
как мне удалось перевести и спарсить тут речь о типах одной иерархии.
Скажем так, тут речь просто о совместимых по своему представлению типах. Например две структуры, с одинаковым порядком совпадающих полей.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
struct A
{
    int a;
    char b;
    short c;
};
 
struct B
{
    int a;
    char b;
    short c;
};
Например, типы int * и int уже не являются layout-compatible.

3.9
11 Two types cv1 T1 and cv2 T2 are layout-compatible types if T1 and T2 are the same type, layout-compatible
enumerations
(7.2), or layout-compatible standard-layout class types (9.2).
9.2
16 The common initial sequence of two standard-layout struct (Clause 9) types is the longest sequence of nonstatic
data members and bit-fields in declaration order, starting with the first such entity in each of the
structs
, such that corresponding entities have layout-compatible types and either neither entity is a bit-field
or both are bit-fields with the same width. [ Example:
C++
1
2
3
4
5
struct A { int a; char b; };
struct B { const int b1; volatile char b2; };
struct C { int c; unsigned : 0; char b; };
struct D { int d; char b : 4; };
struct E { unsigned int e; char b; };
The common initial sequence of A and B comprises all members of either class. The common initial sequence
of A and C and of A and D comprises the first member in each case. The common initial sequence of A and
E is empty. —end example ]
17 Two standard-layout struct (Clause 9) types are layout-compatible if their common initial sequence comprises
all members and bit-fields of both classes
(3.9).
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru