С99 Designated Initializers vs C++
От: daniil1984  
Дата: 11.12.09 14:50
Оценка:
На C Можно написать так.

struct A
{
int a;
int b;
int c;
};

struct A aVar = {.b = 10, .c = 12};

В С++ так делать нельзя, но можно A aVar = {10, 12, 13};
Что безумно неудобно в случае большой структуры.

Вопрос состоит в следующем. Есть ли возможность, что бы С++ понимал С99?
И есть ли возможность проинициализировать структуру во время компиляции, как это делается выше, но
более удобным способом, возможно по анологии с Designated Initializers.
Re: С99 Designated Initializers vs C++
От: Lorenzo_LAMAS  
Дата: 11.12.09 15:09
Оценка:
Да, можно это опция:

----my_abstract_c_plus_plus_compiler_mix_C99_C_PLUS_PLUS
Of course, the code must be complete enough to compile and link.
Re[2]: С99 Designated Initializers vs C++
От: Lorenzo_LAMAS  
Дата: 11.12.09 15:12
Оценка:
L_L>----my_abstract_c_plus_plus_compiler_mix_C99_C_PLUS_PLUS

А если серьезно, вот например что нашел гугл-всезнающий: http://gcc.gnu.org/ml/gcc-patches/2004-10/msg01964.html
Of course, the code must be complete enough to compile and link.
Re[3]: С99 Designated Initializers vs C++
От: Lorenzo_LAMAS  
Дата: 11.12.09 16:50
Оценка:
Непонятно на самом деле, нахрена нужны эти нестандартные дезигнаторы в гцц. они могут компилиться в С++ коде, но толку мало от этого — т.к. они не работают как надо — нельзя их поставить в произвольном порядке или пропустить какой-то из них, как это можно делать в С99. Компилятор ругается — мол фича не реализована.
Of course, the code must be complete enough to compile and link.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.