Во время чтения статьи, я наткнулся на следующую функцию:Одд синтаксис в C++: возвращение {.name = значение, ...}
SolidColor::SolidColor(unsigned width, Pixel color)
: _width(width),
_color(color) {}
__attribute__((section(".ramcode")))
Rasterizer::RasterInfo SolidColor::rasterize(unsigned, Pixel *target) {
*target = _color;
return {
.offset = 0,
.length = 1,
.stretch_cycles = (_width - 1) * 4,
.repeat_lines = 1000,
};
}
Что автор делает с обратным утверждением? Раньше я не видел ничего подобного, и я не знаю, как его искать ... Действительно ли это справедливо для простого С?
Edit: link to the original article
Действителен в C, нестандартном расширении некоторых компиляторов для C++ (как и в C++ 11, эта функциональность отсутствует в стандарте C++.) –
См. [Стандарт C] (http: //www.open- std.org/jtc1/sc22/wg14/www/docs/n1570.pdf), раздел _6.5.2.5 Компонентные литералы_, пункт 10 (относительно назначенных инициализаторов). – Michael
Я уверен, что это верно для простых C и _not_ для C++. – davmac