LINUX.ORG.RU

C++, g++, почему появляется этот warning?


0

1
namespace Toolbar
{

struct ToolInfo
{
	ToolType m_type;
	const char *m_icon_filename;
	const int m_icon_width;
	const int m_icon_height;
	const char *m_label;
};


struct ToolInfo global_toolsinfo[] =
{
		Toolbar::TOOL_SEPARATOR, ":/images/separator-16x24.png", 16, 24, "Separator"
		, Toolbar::TOOL_NEW, ":/images/new-24x24.png", 24, 24, "New"
		, Toolbar::TOOL_OPEN, ":/images/folder-24x24.png", 24, 24, "Open"
		, Toolbar::TOOL_SAVE, ":/images/save2-24x24.png", 24, 24, "Save"
		, Toolbar::TOOL_CLOSE, ":/images/remove-24x24.png", 24, 24, "Close"
		, Toolbar::TOOL_COPY, ":/images/copy-24x24.png", 24, 24, "Copy"
		, Toolbar::TOOL_PASTE, ":/images/paste-24x24.png", 24, 24, "Paste"
		, Toolbar::TOOL_INSERT, ":/images/insert-24x24.png", 24, 24, "Insert mode"
		, Toolbar::TOOL_PLAY, ":/images/play-24x24.png", 24, 24, "Play"
		, Toolbar::TOOL_STOP, ":/images/stop-24x24.png", 24, 24, "Stop"
		, Toolbar::TOOL_HAND, ":/images/hand-24x24.png", 24, 24, "Drag"
		, Toolbar::TOOL_SELECT_TIME, ":/images/select-time-24x24.png", 24, 24, "Select time"
		, Toolbar::TOOL_SELECT_BOTH, ":/images/select-both-24x24.png", 24, 24, "Select 2D"
		, Toolbar::TOOL_BANDPASS, ":/images/band-pass-24x24.png", 24, 24, "Bandpass filter"
		, Toolbar::TOOL_BANDPASS_ZERO, ":/images/band-pass-zero-24x24.png", 24, 24, "FFT left shift"
		, Toolbar::TOOL_BANDSUPPRESS, ":/images/band-suppress-24x24.png", 24, 24, "Band suppress filter"
		, Toolbar::TOOL_PEN, ":/images/pen-green-visualpharm-24x24.png", 24, 24, "Pen"
		, Toolbar::TOOL_ERASER, ":/images/eraser-24x24.png", 24, 24, "Eraser"
		, Toolbar::TOOL_INFO, ":/images/info-24x24.png", 24, 24, "Info/help"
		, Toolbar::CONTROL_TYPE_LIMIT, "", 0, 0, ""
}; // line 29

}

Warning при запуске g++ с опцией -Wall.

src/Toolbar.cpp:29:1: warning: missing braces around initializer for 'Toolbar::ToolInfo'

а прочитать и смысл ворнинга осознать?

Фигурные скобки должны быть вокруг инициализации каждой структуры, странно как это вообще скомпилировалось

Harald ★★★★★
()

{Toolbar::TOOL_SEPARATOR, ":/images/separator-16x24.png", 16, 24, «Separator»}, {Toolbar::TOOL_NEW, ":/images/new-24x24.png", 24, 24, «New»} и т.д.

netcat ★★
()
struct ToolInfo global_toolsinfo[] =
{
	{ Toolbar::TOOL_SEPARATOR, ":/images/separator-16x24.png", 16, 24, "Separator" },
	{ Toolbar::TOOL_NEW, ":/images/new-24x24.png", 24, 24, "New" },
	{ Toolbar::TOOL_OPEN, ":/images/folder-24x24.png", 24, 24, "Open" },
	// ...
};

Не? Или идти искать пункт стандарта, по которому допускается подобная развёрнутая инициализация?

ilammy ★★★
()
Ответ на: комментарий от Harald

Сначала эти скобки были, потом в процессе эволюции исходника куда-то делись (-;

kiverattes ★☆
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.