Изменить: чтобы быть ясным, структура ничего не делает, поскольку в ней нет функций. Я думаю, что у меня создалось впечатление, что я думал, что использовать список инициализаторов и оставить тело конструктора пустым - это проблема.
Скажем, я использую struct для хранения двух значений, и у меня есть конструктор, чтобы я мог создать произвольную структуру следующим образом:
struct twoValues
{
int x;
int y;
twoValues(int x_, int y_):y(y_),x(x_)
{}
};
someFunction(twoValues(1,2));
Это избавит меня от необходимости делать это:
twoValues anInstance;
anInstance.x=1;
anInstance.y=2;
someFunction(anInstance);
Изменить: вы все правильно, я также мог бы инициализировать следующее:
twoValues anInstance = {1,2};
Я не вижу ничего плохого в этом, но у меня была некоторая обратная связь от теста на С++, и одна из отрицательных отметок обратной связи была "конструкторы для структур, которые ничего не делают". Я имел ограниченный контакт с парнем, который меня проверял, и поэтому никогда не спрашивал, почему.
Это плохо и почему? Я бы предпочел продолжить это.