Предположим, что следующий код является допустимым кодом, который правильно компилируется, что T
- это имя типа, а x
- имя переменной .
Синтаксис один:
T a(x);
Синтаксис два:
T a = x;
Отличается ли когда-нибудь точная семантика этих двух выражений? Если да, то при каких обстоятельствах?
Если эти два выражения когда-либо имеют разную семантику, мне также действительно любопытно, какая часть стандарта говорит об этом.
Также, если есть особый случай, когда T является имя скалярного типа (иначе, int
, long
, double
и т. Д.), Каковы различия, когда T является скалярным типом по сравнению с нескалярным типом?