Création d'un opérateur =~

Le
Zainal
Bonjour à tous,

J'ai bien vu que l'on pouvais redéfinir un opérateur pour un type de donnée,
mais ce que je voudrais faire c'est en créer un nouveau. Est-ce possible ?

L'idée serait de créer l'opérateur présent en language perl =~ qui applique
une Regex directement sur la chaine de caractère qui est à gauche. Par
exemple :

if("machaine" =~ "[^0-9]*")
{
// TODO
}

Merci par avance
FEREYRE Matthieu
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
OlivierH
Le #12134231
Salut Zainal,

Pourquoi ne pas utiliser une fonction ?

Quel est l'interet d'un nouvel operateur dans ce cas ?

if(testRegEx("machaine","[^0-9]*")

{
// TODO
}


Olivier




Zainal a écrit :
Bonjour à tous,

J'ai bien vu que l'on pouvais redéfinir un opérateur pour un type de donnée,
mais ce que je voudrais faire c'est en créer un nouveau. Est-ce possible ?

L'idée serait de créer l'opérateur présent en language perl =~ qui applique
une Regex directement sur la chaine de caractère qui est à gauche. Par
exemple :

if("machaine" =~ "[^0-9]*")
{
// TODO
}

Merci par avance
FEREYRE Matthieu



Zainal
Le #12134221
Pour le plaisir. :)


"OlivierH" <"nospam[contact]" a écrit :

Salut Zainal,

Pourquoi ne pas utiliser une fonction ?

Quel est l'interet d'un nouvel operateur dans ce cas ?

if(testRegEx("machaine","[^0-9]*")

{
// TODO
}


Olivier




Zainal a écrit :
> Bonjour à tous,
>
> J'ai bien vu que l'on pouvais redéfinir un opérateur pour un type de donnée,
> mais ce que je voudrais faire c'est en créer un nouveau. Est-ce possible ?
>
> L'idée serait de créer l'opérateur présent en language perl =~ qui applique
> une Regex directement sur la chaine de caractère qui est à gauche. Par
> exemple :
>
> if("machaine" =~ "[^0-9]*")
> {
> // TODO
> }
>
> Merci par avance
> FEREYRE Matthieu
>



Christophe Lephay
Le #12134201
"Zainal"
Pour le plaisir. :)


"OlivierH" <"nospam[contact]" a écrit :

Salut Zainal,

Pourquoi ne pas utiliser une fonction ?

Quel est l'interet d'un nouvel operateur dans ce cas ?

if(testRegEx("machaine","[^0-9]*")

{
// TODO
}


Zainal a écrit :
> Bonjour à tous,
>
> J'ai bien vu que l'on pouvais redéfinir un opérateur pour un type de
> donnée,
> mais ce que je voudrais faire c'est en créer un nouveau. Est-ce
> possible ?





On ne peut que redéfinir certains opérateurs. On ne peut pas en créer de
nouveaux. On ne peut pas non plus en changer la syntaxe (par exemple un
opérateur prenant deux paramètres ne peut pas être redéfini comme n'en
prenant qu'un seul).

Les opérateurs pouvant être redéfinis sont énumérés ici
http://msdn2.microsoft.com/fr-fr/library/8edha89s(vs.80).aspx

D'une manière générale, la redéfinition des opérateurs est intéressante
lorsqu'on définit des types ayant une sémantique de valeur (des structures,
de manière typique). Dans les autres cas, c'est plus souvent une source de
problèmes qu'autre chose, d'une part car c'est alors facilement
contre-intuitif, d'autre part (et surtout) parce que les opérateurs sont
static, et donc susceptibles de poser problème avec des objets polymorphes.
Publicité
Poster une réponse
Anonyme