Como las otras respuestas han dicho, no se puede crear un nuevo operador - al menos, no sin alterar el léxico y el analizador que están integrados en el compilador. Básicamente, el compilador está diseñado para reconocer que un personaje individual como <
o ?
, o un par como >>
o <=
, es un operador y lo trata especialmente; sabe que i<5
es una expresión en lugar de un nombre de variable, por ejemplo. Reconocer a un operador como operador es un proceso separado de decidir qué hace realmente el operador y está mucho más integrado en el compilador, por lo que puede personalizar el último pero no el primero.
Para los idiomas que tienen un compilador de fuente abierta (como GCC), en teoría, podría modificar el compilador para reconocer un nuevo operador. Pero no sería particularmente fácil, y además, todos necesitarían su compilador personalizado para usar su código.
ningún lenguaje tiene esta capacidad ... – AminM
@JesonPark - No es cierto. F # lo tiene como otros lo han señalado, y [C++ también lo tiene.] (Http: // stackoverflow.com/questions/1515399/can-you-make-custom-operators-in-c) [CoffeeScript] (http://coffeescript.org/) ofrece varios operadores nuevos como azúcar sintáctico para los modismos de JavaScript, y es tan personalizable que podría describirlo como permitir operadores personalizados. El último es un poco complicado, ya que técnicamente extenderías el idioma. –
@JustinMorgan: como se menciona en el artículo de CodeProject _ "C++ admite la sobrecarga del operador, pero no está permitido crear sus propios operadores" _ esta es una emulación !! – AminM