0
ответов

Использование union внутри класса

Я видел следующий код: class A { частный: союз {B * rep; A * следующий; }; // переменные этого анонима не определены! void func () {A * p = новый A; p - & ...
вопрос задан: 24 June 2014 01:46
0
ответов

Пустая структура и анонимный союз странный случай

Скомпилировав мой код как C ++ 11 с gcc 4.8.2 и llvm / clang 3.4 на fedora-linux, я получил странные результаты, которые я не мог объяснить ... вот аналогичная программа fedora. #include < iostream > с помощью ...
вопрос задан: 6 May 2014 19:29
0
ответов

Какие неограниченные объединения предлагаются в C ++ 11?

Я считаю неограниченные союзы одной из функциональных возможностей C ++ 11. Кто-нибудь, пожалуйста, объясните семантику, стоящую за этим, и преимущества, которые она предоставляет?
вопрос задан: 1 July 2013 09:55
0
ответов

C ++: объединения с методами?

Что-то не так с объединением, имеющим один или несколько методов? Или чего-то, чего нужно остерегаться? (Я вижу, что конструкторы / деструкторы проблематичны по причинам шизофрении)
вопрос задан: 6 October 2012 15:19
0
ответов

Ошибка: оператор присваивания копирования не разрешен в union

Я компилирую приведенный ниже код, когда появляется следующая ошибка. Я не могу найти причину. typedef union {struct {const int j; } тег; typedef union {struct {const int j; } тег; typedef union {struct {const int j; } тег; } ИКС; int main () {возврат 0;
вопрос задан: 6 October 2012 15:19
0
ответов

Почему глобальные анонимные объединения должны быть объявлены как статические?

C ++ 0x draft 9.5.6 Анонимные объединения, объявленные в именованном пространстве имен или в глобальном пространстве имен, должны быть объявлены статическими. Зачем? Обновление - на основе ответов Барта ван Ингена Шенау и Лотара, ...
вопрос задан: 6 October 2012 15:18
0
ответов

Объединения как базовый класс

Стандарт определяет, что объединения не могут использоваться в качестве базового класса, но есть ли для этого какие-то особые причины? Насколько я понимаю, Unions могут иметь конструкторы, деструкторы, а также переменные-члены, ...
вопрос задан: 6 October 2012 15:18
0
ответов

в общем случае преобразовать из boost :: variant для ввода

У меня есть вариант typedef boost :: variant , который я использую для хранения различных типов значений в структура. Только один из ...
вопрос задан: 1 October 2012 16:16
0
ответов

Почему анонимные объединения не могут содержать членов с нетривиальными конструкторами / деструкторами?

Я могу ошибаться, но основное объяснение, которое я нашел, заключалось в том, что объединение не может инициализировать, потому что он не знает, какой конструктор члена вызвать. Компилятор не может автоматически генерировать ...
вопрос задан: 1 October 2012 16:16
0
ответов

Как работают boost :: variant и boost :: any?

Как вариант и любой из библиотеки boost работают внутри? В проекте, над которым я работаю, я использую объединение с тегами. Я хочу использовать что-то еще, потому что объединения в C ++ не позволяют вам использовать ...
вопрос задан: 1 October 2012 16:15
0
ответов

Объединение в C ++, возможно ли оно

Может ли объединение в C ++ иметь функцию-член? Как существует объединение с элементами данных и функциями-членами при создании объекта? Если я полагаю, что да, тогда они осуществимы где-нибудь. Если да, то где?
вопрос задан: 25 September 2012 23:30
0
ответов

Объединение с константным и неконстантным членами?

Это похоже на неопределенное поведение union A {int const x; float y; }; А а = {0}; ау = 1; В спецификации сказано: «Создание нового объекта в месте хранения, который представляет собой константный объект со статическими, ...
вопрос задан: 25 September 2012 23:29
0
ответов

Хорошо ли определено использование союза вместо слепка?

Сегодня утром я обсуждал с коллегой правильность "трюк кодирования" для определения порядка байтов. Уловка была такой: bool is_big_endian () {объединение {int я; char c [sizeof (...
вопрос задан: 25 September 2012 23:27
0
ответов

Объединение одного и того же типа в C ++

Когда я вижу примеры объединения, это всегда разные типы. Например, из MSDN: // declaring_a_union.cpp union DATATYPE // Объявить тип объединения {char ch; int i; long l; ...
вопрос задан: 25 September 2012 23:26
0
ответов

Почему размер моего объединения больше, чем я ожидал?

Когда я печатаю размер объединения следующим образом: union u {char c [5]; int i; } un; используя это: int _tmain (int argc, _TCHAR * argv []) {printf ("размер объединения =% d", sizeof (un)); возврат 0; } Я ...
вопрос задан: 25 September 2012 17:08
0
ответов

Может ли запись варианта Ada быть двоично совместимой с объединением C ++?

Я разрабатываю промежуточное программное обеспечение связи для использования в приложении, которое имеет модуль в Ada и множество модулей на C ++, которое передает параметры передачи (скалярные значения) и конструкции. The ...
вопрос задан: 25 September 2012 17:00
0
ответов

Как я могу предотвратить безымянную структуру \ объединение?

Я создаю класс, у которого есть объединение для своих матричных данных, однако я могу его скомпилировать только тогда, когда я не имеют имени для struct \ union. Однако с уровнем предупреждения более высокого уровня (четыре на ...
вопрос задан: 27 August 2012 14:11
0
ответов

Анонимное объединение/структура класса с конструктором

GCC жалуется на этот код, хотя я компилирую с флагом -std=c++11, и моя версия gcc предположительно поддерживает неограниченные объединения (> 4.6). союз { структура { float4 I,J,K,T; }; ...
вопрос задан: 27 August 2012 14:10
0
ответов

строгие псевдонимы и выравнивание

Мне нужен безопасный способ псевдонимов между произвольными типами POD, соответствующий ISO-C++11, явно учитывающий 3.10/10 и 3.11 n3242 или позже. Здесь много вопросов о строгом алиасинге, большинство...
вопрос задан: 27 August 2012 14:09
0
ответов

Анонимное объединение C++11 с нетривиальными элементами

Я обновляю свою структуру и хочу добавить в нее элемент std::string. Исходная структура выглядит следующим образом: struct Value { uint64_t lastUpdated; союз { uint64_t пользовательский интерфейс; int64_t ...
вопрос задан: 26 August 2012 17:56
0
ответов

Сработало бы это объединение, если бы у char были более строгие требования к выравниванию, чем у int?

Недавно я наткнулся на следующий фрагмент, который является попыткой гарантировать, что все байты i (не более) доступны как отдельные элементы c: union {int i; char c [sizeof (int)]; }; Теперь ...
вопрос задан: 24 August 2012 00:27
0
ответов

Как хранятся члены объединения?

тест объединения {int i; char ch; } t; int main () {t.ch = 20; } Предположим, sizeof (int) == 2 и пусть для t выделены адреса памяти 2000, 2001. Тогда где хранится 20 ietch - в 2000 или 2001 или ...
вопрос задан: 24 August 2012 00:26
0
ответов

Можно ли использовать указатель в объединении?

Если нет, почему? Использование союза над структурой ??
вопрос задан: 24 August 2012 00:25
0
ответов

Доступ к элементам структуры, как к одному массиву?

У меня есть две структуры со значениями, которые должны вычислять среднее значение, как в этой упрощенной версии: typedef struct {int v_move, v_read, v_suck, v_flush, v_nop, v_call; } ценности; typedef ...
вопрос задан: 20 August 2012 18:13
0
ответов

Является ли объединение более эффективным, чем переход на современные компиляторы?

Рассмотрим простой код: результат UINT64; UINT32 высокий, низкий; ... результат = ((UINT64) high << 32) | (UINT64) низкий; Превращают ли современные компиляторы это в настоящий сдвиг ствола на высоком уровне или оптимизируют его до ...
вопрос задан: 20 August 2012 17:53
0
ответов

Схема памяти объединения разного размера член?

typedef union epoll_data {void * ptr; int fd; __uint32_t u32; __uint64_t u64; } epoll_data_t; Здесь int и __uint32_t - 4 байта, а остальные - 8 байтов. Когда мы ...
вопрос задан: 20 August 2012 17:52
0
ответов

Союзы внутри союзов

Можно ли в языке C определить союз внутри другого союза? Если нет, то почему это невозможно? Или, если да, где это можно использовать?
вопрос задан: 19 August 2012 00:56
0
ответов

Можем ли мы использовать va_arg с профсоюзами?

6.7.2.1 В пункте 14 моего проекта стандарта С99 говорится о профсоюзах и указателях (акцент, как всегда, добавлен): Размеры союзов достаточно велики для того, чтобы содержать наибольшее число их членов. ...
вопрос задан: 17 August 2012 00:25
0
ответов

Делает ли заполнение структуры C это использованием небезопасным?

Предположим, у меня есть структура, будь она объединена или нет: typedef struct {union {struct {float x, y, z; } xyz; struct {float r, g, b; } rgb; float xyz [3] ...
вопрос задан: 16 August 2012 15:44
0
ответов

Является ли const-кастинг через объединение неопределенным поведением?

В отличие от C++, в C нет понятия const_cast. То есть, не существует корректного способа преобразовать указатель, имеющий квалификацию const, в указатель без квалификации: void const * p; void * q = p; // нехорошо Во-первых: Является ли ...
вопрос задан: 16 August 2012 15:43