Surcharger les opérateurs mathématiques

Vous avez une idée pour améliorer ou modifier PureBasic ? N'hésitez pas à la proposer.
Guimauve
Messages : 1015
Inscription : mer. 11/févr./2004 0:32
Localisation : Québec, Canada

Surcharger les opérateurs mathématiques

Message par Guimauve »

Bonjour

Je pense qu'il serait bien de pouvoir surcharger les opérateurs mathématiques pour les rendrent compatibles avec les structures de données en indiquant au compilateur ce qu'il doit faire. Dans l'exemple ci-dessous, il y a les mots clef "Equal", "Plus" et "Minus" mais l'utilisation des symboles mathématiques correspondant serait peut-être mieux. ("=", "+", "-", ...)

La chose est possible en C++, alors pourquoi pas avec PB ?

A+
Guimauve

Code : Tout sélectionner

; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; Suggestion : Operator Overcharge
; Suggested by : Guimauve
; Date : 08-01-2007
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

Structure Vector3
   
   i.f
   j.f
   k.f
   
EndStructure

MathsOperator *RHS.Vector3 Equal *LHS.Vector3 ;>
   
   *RHS\i = *LHS\i
   *RHS\j = *LHS\j
   *RHS\k = *LHS\k
   
EndMathsOperator ;<

MathsOperator *RHS.Vector3 Plus *LHS.Vector3 ;>
   
   *RHS\i + *LHS\i
   *RHS\j + *LHS\j
   *RHS\k + *LHS\k
   
EndMathsOperator ;<

MathsOperator *RHS.Vector3 Minus *LHS.Vector3 ;>
   
   *RHS\i - *LHS\i
   *RHS\j - *LHS\j
   *RHS\k - *LHS\k
   
EndMathsOperator ;<

; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< Inside the program <<<<<

VectorA.Vector3
VectorB.Vector3
VectorC.Vector3
vectorR.Vector3

vectorR = VectorA + VectorB - VectorC

; <<<<<<<<<<<<<<<<<<<<<<<
; <<<<< END OF FILE <<<<<
; <<<<<<<<<<<<<<<<<<<<<<<
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

ouais c'est clair que ce serait sympa.
tous les langages modernes peuvent le faire.
Image
Répondre