No.
Bueno, algo sí, en el sentido de que existen personas que se consideran newen new intser un operador. Sin embargo, esta opinión está (en su mayoría) en desacuerdo con el estándar.
En primer lugar, [lex.operators/1]enumera los operadores en el idioma. No se deje engañar pensando que estos son simplemente "operadores de preprocesamiento"; no existe tal distinción en el sentido de operadores léxicos . Tampoco tendría sentido, ya que no puede (por ejemplo) ++una macro.
newes, de hecho, una palabra clave (por [lex.key/1]).
A continuación, veamos la nueva expresión en sí. Aquí es donde las cosas se ponen un poco más confusas. Hay, por ejemplo, la siguiente redacción en [expr.new/4]:
En cambio, la versión explícitamente entre paréntesis del nuevo operador se puede utilizar para crear objetos de tipos compuestos.
Considero que esto es un error editorial, ya que está en desacuerdo con las definiciones proporcionadas anteriormente y no ocurre en ningún otro lugar de esa sección.
Luego llegamos a la sobrecarga del operador . En su producción gramatical para una declaración de operador, el terminal que enumera cosas (incluido new) se denomina operador ( [over.oper.general/1]). No creo que debamos preocuparnos por esto. Los nombres de terminales en la gramática nunca han tenido la intención de introducir definiciones de términos. Después de todo, tiene una expresión and que _no necesita ser una operación AND bit a bit; puede ser simplemente una expresión de igualdad :
expresión-y :
expresión
- & igualdad y expresión expresión-igualdad
Es común definir gramáticas como esta, y ciertamente no significa que cada expresión de igualdad deba considerarse de alguna manera una invocación del operador AND bit a bit.
Finalmente, algunos han afirmado que la siguiente redacción (también en la sección de sobrecarga del operador) es una prueba de que de newalguna manera ahora, de forma aislada, mágicamente es un operador:
Los operadores new[], delete[], (), y []se forman a partir de más de una ficha
A ellos les digo, no sólo no está newni siquiera en la lista, sino que está claramente usando el término "operador" en el sentido más amplio de "cosas que se pueden sobrecargar", aunque newen sí mismo todavía no es un operador . También está en una nota no normativa, que debería decirle todo lo que necesita saber.
Y, como usted mismo señala, ya lo consideramos operator newotra cosa.
newes comosizeofaquí. Y creo que la mayoría de la comunidad de C ++ piensasizeofen un operador. El stansard incluso se refiere al "sizeofoperador" cuando describe sus efectos.