Ні.
Ну, начебто так, в тому сенсі , що існують люди , які вважають newв new intбути оператором. Однак ця думка (в основному) суперечить стандарту.
По-перше, [lex.operators/1]перелічує оператори на мові. Не обманюйте себе, думаючи, що це також просто "оператори попередньої обробки"; не існує такої різниці у значенні лексичних операторів. Це також не мало б сенсу, оскільки ви не можете (наприклад) ++макрос.
newнасправді є ключовим словом (за [lex.key/1]).
Далі, давайте розглянемо сам вираз new . Тут все стає трохи більш шерстяним. Наприклад, є таке формулювання [expr.new/4]:
Натомість версію нового оператора в явних дужках можна використовувати для створення об’єктів складених типів
Вважаю, що це редакційна помилка, оскільки вона суперечить викладеним вище визначенням і більше ніде не зустрічається в цьому розділі.
Тоді ми приходимо до перевантаження оператора . У своєму граматичному створенні для операторської декларації термінал із переліком речей (включаючи new) називається operator ( [over.oper.general/1]). Я не думаю, що нам потрібно турбуватися з цього приводу. Назви терміналів у граматиці ніколи не мали на меті ввести визначення термінів. Зрештою, у вас є і-вираз, що _не потрібно бути побітовою операцією І; це може бути просто вираз рівності :
і-вираз :
рівність-вираз
і-вираз & рівність-вираз
Загальноприйнятим є визначення таких граматик, і це, безумовно, не означає, що кожен вираз рівності якось слід вважати викликом побітового оператора І.
Нарешті, деякі стверджували, що наступне формулювання (також у розділі перевантаження оператора) є доказом того, що newзараз якимось чином, ізольовано, магічно є оператором:
Оператори new[], delete[], ()і []утворюються з більш ніж одного маркерів
Для них я кажу, що не тільки newне входить до переліку, але тут явно використовується термін "оператор" у більш широкому розумінні "речі, які можуть бути перевантажені", хоча newсам по собі все ще не є оператором . Це також у ненормативній примітці, яка повинна розповісти вам все, що вам потрібно знати.
І, як ви самі вказуєте, ми вже вважаємо operator newщось інше.
newякsizeofтут. І я думаю, що більшість спільноти C ++ вважаєsizeofсебе оператором. Стенсар навітьsizeofописує " оператора" при описі його наслідків.