J'aimerais lancer un petit sondage.
D'apr=E8s C++1x, je pourrai =E9crire:
// proxy fonctor pour =E9lever un nombre =E0 la puissance en param=E8tre
struct puissance_proxy
{
puissance_proxy(long n=3D0):nombre(n){}
long nombre;
// renvoie nombre =E0 la puissance p
constexpr long operator()(long p)const
{
return pow(nombre,p); // supposant que pow(long,long) existe
}
};
// user defined literal pour g=E9n=E9rer un puissance_proxy d'un nombre
constexpr puissance_proxy operator "" puissance(long n)
{
return puissance_proxy(n);
}
Ce qui me permet d'=E9crire:
const long valeur=3D2puissance(8);
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Senhon
"Michael Doubez" a écrit dans le message de groupe de discussion :
Quel calme après toutes ces discussions !
J'aimerais lancer un petit sondage. D'après C++1x, je pourrai écrire:
// proxy fonctor pour élever un nombre à la puissance en paramètre struct puissance_proxy { puissance_proxy(long n=0):nombre(n){} long nombre;
// renvoie nombre à la puissance p constexpr long operator()(long p)const { return pow(nombre,p); // supposant que pow(long,long) existe } };
// user defined literal pour générer un puissance_proxy d'un nombre constexpr puissance_proxy operator "" puissance(long n) { return puissance_proxy(n); }
Ce qui me permet d'écrire: const long valeur=2puissance(8);
Pour ou contre une utilisation de ce genre ?
Pour ! c'est plus concis ! Ceux que cette écriture gênerai ne sont pas obliger d'utiliser.
"Michael Doubez" <michael.doubez@free.fr> a écrit dans le message de groupe
de discussion :
ebd57118-8d9a-402d-af6b-735eb3333bbc@26g2000yqk.googlegroups.com...
Quel calme après toutes ces discussions !
J'aimerais lancer un petit sondage.
D'après C++1x, je pourrai écrire:
// proxy fonctor pour élever un nombre à la puissance en paramètre
struct puissance_proxy
{
puissance_proxy(long n=0):nombre(n){}
long nombre;
// renvoie nombre à la puissance p
constexpr long operator()(long p)const
{
return pow(nombre,p); // supposant que pow(long,long) existe
}
};
// user defined literal pour générer un puissance_proxy d'un nombre
constexpr puissance_proxy operator "" puissance(long n)
{
return puissance_proxy(n);
}
Ce qui me permet d'écrire:
const long valeur=2puissance(8);
Pour ou contre une utilisation de ce genre ?
Pour ! c'est plus concis !
Ceux que cette écriture gênerai ne sont pas obliger d'utiliser.
"Michael Doubez" a écrit dans le message de groupe de discussion :
Quel calme après toutes ces discussions !
J'aimerais lancer un petit sondage. D'après C++1x, je pourrai écrire:
// proxy fonctor pour élever un nombre à la puissance en paramètre struct puissance_proxy { puissance_proxy(long n=0):nombre(n){} long nombre;
// renvoie nombre à la puissance p constexpr long operator()(long p)const { return pow(nombre,p); // supposant que pow(long,long) existe } };
// user defined literal pour générer un puissance_proxy d'un nombre constexpr puissance_proxy operator "" puissance(long n) { return puissance_proxy(n); }
Ce qui me permet d'écrire: const long valeur=2puissance(8);
Pour ou contre une utilisation de ce genre ?
Pour ! c'est plus concis ! Ceux que cette écriture gênerai ne sont pas obliger d'utiliser.
Note que comme le constructeur n'est pas constexpr, ce type n'est pas un « literal type »
| long nombre; | | // renvoie nombre à la puissance p | constexpr long operator()(long p)const | { | return pow(nombre,p); // supposant que pow(long,long) existe
Note que comme le constructeur n'est pas constexpr, ce type n'est pas un
« literal type »
| long nombre;
|
| // renvoie nombre à la puissance p
| constexpr long operator()(long p)const
| {
| return pow(nombre,p); // supposant que pow(long,long) existe
Note que comme le constructeur n'est pas constexpr, ce type n'est pas un « literal type »
| long nombre; | | // renvoie nombre à la puissance p | constexpr long operator()(long p)const | { | return pow(nombre,p); // supposant que pow(long,long) existe
est-ce que 'pow()' est constexpr ?
-- Gaby
Michael Doubez
On 24 juil, 17:02, Gabriel Dos Reis wrote:
Michael Doubez writes:
| Quel calme après toutes ces discussions ! | | J'aimerais lancer un petit sondage. | D'après C++1x, je pourrai écrire: | | // proxy fonctor pour élever un nombre à la puissance en paramètr e | struct puissance_proxy | { | puissance_proxy(long n=0):nombre(n){}
Note que comme le constructeur n'est pas constexpr, ce type n'est pas un « literal type »
Oups. Merci
| long nombre; | | // renvoie nombre à la puissance p | constexpr long operator()(long p)const | { | return pow(nombre,p); // supposant que pow(long,long) ex iste
est-ce que 'pow()' est constexpr ?
long pow(long, long) n'existe pas dans le standard alors pourquoi pas.
Remplaçons la pusissance par un unsigned pour éviter les problèmes de signe: constexpr unsigned long pow(long v, unsigned p,long accumulate=1l) { return p>0?pow(v,p-1,accumulate*v):accumulate; }
-- Michael
On 24 juil, 17:02, Gabriel Dos Reis <g...@cs.tamu.edu> wrote:
Michael Doubez <michael.dou...@free.fr> writes:
| Quel calme après toutes ces discussions !
|
| J'aimerais lancer un petit sondage.
| D'après C++1x, je pourrai écrire:
|
| // proxy fonctor pour élever un nombre à la puissance en paramètr e
| struct puissance_proxy
| {
| puissance_proxy(long n=0):nombre(n){}
Note que comme le constructeur n'est pas constexpr, ce type n'est pas un
« literal type »
Oups. Merci
| long nombre;
|
| // renvoie nombre à la puissance p
| constexpr long operator()(long p)const
| {
| return pow(nombre,p); // supposant que pow(long,long) ex iste
est-ce que 'pow()' est constexpr ?
long pow(long, long) n'existe pas dans le standard alors pourquoi pas.
Remplaçons la pusissance par un unsigned pour éviter les problèmes de
signe:
constexpr unsigned long pow(long v, unsigned p,long accumulate=1l)
{
return p>0?pow(v,p-1,accumulate*v):accumulate;
}
| Quel calme après toutes ces discussions ! | | J'aimerais lancer un petit sondage. | D'après C++1x, je pourrai écrire: | | // proxy fonctor pour élever un nombre à la puissance en paramètr e | struct puissance_proxy | { | puissance_proxy(long n=0):nombre(n){}
Note que comme le constructeur n'est pas constexpr, ce type n'est pas un « literal type »
Oups. Merci
| long nombre; | | // renvoie nombre à la puissance p | constexpr long operator()(long p)const | { | return pow(nombre,p); // supposant que pow(long,long) ex iste
est-ce que 'pow()' est constexpr ?
long pow(long, long) n'existe pas dans le standard alors pourquoi pas.
Remplaçons la pusissance par un unsigned pour éviter les problèmes de signe: constexpr unsigned long pow(long v, unsigned p,long accumulate=1l) { return p>0?pow(v,p-1,accumulate*v):accumulate; }