Функции mysql_
:
Я не на 100% уверен в этом, но это может быть для предотвращения неоднозначности синтаксиса. Например, рассмотрим следующий класс:
class BadTimes {
struct Overloaded;
int Overloaded; // Legal, but a very strange idea.
int confusing(Overloaded); // <-- This line
};
Что означает обозначенная линия? Как написано, это объявление функции-члена с именем confusing
, которая принимает в качестве параметра объект типа Overloaded
(имя которого не указано в объявлении функции) и возвращает int
. Если C ++ 11 разрешал инициализаторам использовать круглые скобки, это было бы неоднозначно, потому что это также может быть определение члена типа int
с именем confusing
, который инициализируется значением элемента данных Overloaded
, (Это связано с текущей проблемой с Most Vexing Parse .)
При использовании фигурных скобок эта неоднозначность удаляется:
class BadTimes {
struct Overloaded;
int Overloaded; // Legal, but a very strange idea.
int confusing{Overloaded}; // <-- This line
};
Теперь , ясно, что confusing
на самом деле является int
, инициализированным значением Overloaded
, потому что нет возможности прочитать его как объявление функции.
Надеюсь, что это поможет!