Comme les autres réponses ont dit, vous ne pouvez pas créer un nouvel opérateur - du moins, pas sans altérer le lexer et analyseur qui sont construits dans le compilateur. Fondamentalement, le compilateur est construit pour reconnaître qu'un caractère individuel comme <
ou ?
, ou une paire comme >>
ou <=
, est un opérateur et de le traiter spécialement; il sait que i<5
est une expression plutôt qu'un nom de variable, par exemple. Reconnaître un opérateur en tant qu'opérateur est un processus distinct de la décision de l'opérateur et est beaucoup plus étroitement intégré dans le compilateur - c'est pourquoi vous pouvez personnaliser ce dernier mais pas le premier.
Pour les langages qui ont un compilateur open-source (tel que GCC), vous pouvez, en théorie, modifier le compilateur pour reconnaître un nouvel opérateur. Mais ce ne serait pas particulièrement facile, et d'ailleurs, tout le monde aurait besoin de votre compilateur personnalisé pour utiliser votre code.
pas de langue ont cette capacité ... – AminM
@JesonPark - Pas vrai. F # l'a comme d'autres l'ont souligné, et [C++ l'a aussi bien.] (Http: // stackoverflow.com/questions/1515399/can-you-make-custom-opérateurs-in-c) [CoffeeScript] (http://coffeescript.org/) offre plusieurs nouveaux opérateurs comme sucre syntaxique pour les idiomes JavaScript, et il est tellement personnalisable que vous pourrait le décrire comme permettant des opérateurs personnalisés. Le dernier est un peu compliqué, puisque techniquement vous étendez la langue. –
@JustinMorgan: comme mentionné dans l'article CodeProject _ "C++ supporte la surcharge de l'opérateur, mais vous n'êtes pas autorisé à créer vos propres opérateurs" _ c'est une émulation !! – AminM