Note bien que l'Académie est silent sur les accents sur les
majuscules.
Note bien que l'Académie est silent sur les accents sur les
majuscules.
Note bien que l'Académie est silent sur les accents sur les
majuscules.
Franck Branjonneau wrote:Yoxoman écrivait:La solution avec transform serait quelque chose du
genre :
typedef std::ctype< char >
Cvt ;
std::transform(
source.begin(), source.end(),
std::back_inserter( dest ),
std::bind1st(
std::mem_fun(
static_cast< char (Cvt::*)( char ) const >(
&Cvt::tolower ) ),
&std::use_facet< Cvt >( std::locale() ) ) ) ;
Sans oublier d'initialiser le locale global avant.
Ca me fait penser à un film : Scanners. Ca parle de gens
capables de faire exploser le cerveau d'autres presonnes à
distance.
Si c'est le static_cast<> qui t'ennuie, tu peux l'enelever.
Tu en es sûr ?
Il y a bien deux fonctions std::ctype<>::tolower,
selon la norme. C'est vrai que la deuxième prend deux
paramètres, et qu'il n'y a aucune instantiation de std::mem_fun
qui accepte l'adresse d'une fonction à deux paramètres.
Mais je ne crois pas que le compilateur soit exigé, ou même
autorisé, à faire l'analyse à ce point, selon §13.4 et §14.8.2.2. Ou
peut-être que si ; j'avoue que ce n'est pas du tout clair dans mon
ésprit.
Avec Boost, évidemment, on écrirait :
std::transform(
source.begin(), source.end(),
std::back_inserter( dest ),
boost::bind(
&Cvt::tolower,
&std::use_facet< Cvt >( std::locale() ),
_1 ) ) ;
Je crois que bind fait partie aussi de TR1.
Franck Branjonneau wrote:
Yoxoman <yoxoman@aol.com> écrivait:
La solution avec transform serait quelque chose du
genre :
typedef std::ctype< char >
Cvt ;
std::transform(
source.begin(), source.end(),
std::back_inserter( dest ),
std::bind1st(
std::mem_fun(
static_cast< char (Cvt::*)( char ) const >(
&Cvt::tolower ) ),
&std::use_facet< Cvt >( std::locale() ) ) ) ;
Sans oublier d'initialiser le locale global avant.
Ca me fait penser à un film : Scanners. Ca parle de gens
capables de faire exploser le cerveau d'autres presonnes à
distance.
Si c'est le static_cast<> qui t'ennuie, tu peux l'enelever.
Tu en es sûr ?
Il y a bien deux fonctions std::ctype<>::tolower,
selon la norme. C'est vrai que la deuxième prend deux
paramètres, et qu'il n'y a aucune instantiation de std::mem_fun
qui accepte l'adresse d'une fonction à deux paramètres.
Mais je ne crois pas que le compilateur soit exigé, ou même
autorisé, à faire l'analyse à ce point, selon §13.4 et §14.8.2.2. Ou
peut-être que si ; j'avoue que ce n'est pas du tout clair dans mon
ésprit.
Avec Boost, évidemment, on écrirait :
std::transform(
source.begin(), source.end(),
std::back_inserter( dest ),
boost::bind(
&Cvt::tolower,
&std::use_facet< Cvt >( std::locale() ),
_1 ) ) ;
Je crois que bind fait partie aussi de TR1.
Franck Branjonneau wrote:Yoxoman écrivait:La solution avec transform serait quelque chose du
genre :
typedef std::ctype< char >
Cvt ;
std::transform(
source.begin(), source.end(),
std::back_inserter( dest ),
std::bind1st(
std::mem_fun(
static_cast< char (Cvt::*)( char ) const >(
&Cvt::tolower ) ),
&std::use_facet< Cvt >( std::locale() ) ) ) ;
Sans oublier d'initialiser le locale global avant.
Ca me fait penser à un film : Scanners. Ca parle de gens
capables de faire exploser le cerveau d'autres presonnes à
distance.
Si c'est le static_cast<> qui t'ennuie, tu peux l'enelever.
Tu en es sûr ?
Il y a bien deux fonctions std::ctype<>::tolower,
selon la norme. C'est vrai que la deuxième prend deux
paramètres, et qu'il n'y a aucune instantiation de std::mem_fun
qui accepte l'adresse d'une fonction à deux paramètres.
Mais je ne crois pas que le compilateur soit exigé, ou même
autorisé, à faire l'analyse à ce point, selon §13.4 et §14.8.2.2. Ou
peut-être que si ; j'avoue que ce n'est pas du tout clair dans mon
ésprit.
Avec Boost, évidemment, on écrirait :
std::transform(
source.begin(), source.end(),
std::back_inserter( dest ),
boost::bind(
&Cvt::tolower,
&std::use_facet< Cvt >( std::locale() ),
_1 ) ) ;
Je crois que bind fait partie aussi de TR1.
On 17 Nov 2005 00:49:46 -0800, "kanze" :Note bien que l'Académie est silent sur les accents sur les
majuscules.
"en français, l?accent a pleine valeur orthographique"
http://www.academie-francaise.fr/langue/questions.html#accentuation
Pour résumer, même si omettre des accents semble courant, ce
n'est pas moins une faute d'orthographe
On 17 Nov 2005 00:49:46 -0800, "kanze" <kanze@gabi-soft.fr>:
Note bien que l'Académie est silent sur les accents sur les
majuscules.
"en français, l?accent a pleine valeur orthographique"
http://www.academie-francaise.fr/langue/questions.html#accentuation
Pour résumer, même si omettre des accents semble courant, ce
n'est pas moins une faute d'orthographe
On 17 Nov 2005 00:49:46 -0800, "kanze" :Note bien que l'Académie est silent sur les accents sur les
majuscules.
"en français, l?accent a pleine valeur orthographique"
http://www.academie-francaise.fr/langue/questions.html#accentuation
Pour résumer, même si omettre des accents semble courant, ce
n'est pas moins une faute d'orthographe
"kanze" écrivait:Franck Branjonneau wrote:Yoxoman écrivait:La solution avec transform serait quelque chose du
genre :
typedef std::ctype< char >
Cvt ;
std::transform(
source.begin(), source.end(),
std::back_inserter( dest ),
std::bind1st(
std::mem_fun(
static_cast< char (Cvt::*)( char ) const >(
&Cvt::tolower ) ),
&std::use_facet< Cvt >( std::locale() ) ) ) ;
Sans oublier d'initialiser le locale global avant.
Ca me fait penser à un film : Scanners. Ca parle de gens
capables de faire exploser le cerveau d'autres presonnes
à distance.
Si c'est le static_cast<> qui t'ennuie, tu peux l'enelever.
Tu en es sûr ?
Je n'ai aucune certitude.Il y a bien deux fonctions std::ctype<>::tolower, selon la
norme. C'est vrai que la deuxième prend deux paramètres, et
qu'il n'y a aucune instantiation de std::mem_fun qui accepte
l'adresse d'une fonction à deux paramètres.
Oui mais ce ne sont pas des fonctions templates. Ce sont des
fonctions membres d'une classe template std::ctype<>. Qui,
elle, a été instanciée avec char, le compilateur doit donc
choisir entre les deux signatures
std::ctype< char >::tolower(char) const;
std::ctype< char >::tolower(char, const char) const;
pour choisir quelle std::mem_fun<> utiliser.
Il y aurait une impossibilité de déduction avec quelque chose
comme
struct Cvt {
template< typename _Character >
_Character
tolower(
_Character) {}
};
ou même
struct Cvt {
template< typename _Character >
_Character
tolower(
_Character);
char
tolower(
char);
};
Mais je ne crois pas que le compilateur soit exigé, ou même
autorisé, à faire l'analyse à ce point, selon §13.4 et
§14.8.2.2. Ou peut-être que si ; j'avoue que ce n'est pas du
tout clair dans mon ésprit.
Je ne suis pas dans ton esprit :-) et je ne comprends pas bien
ton interrogation. L'analyse doit être faite au point
d'instanciation de std::transform<>, non ?
Avec Boost, évidemment, on écrirait :
std::transform(
source.begin(), source.end(),
std::back_inserter( dest ),
boost::bind(
&Cvt::tolower,
&std::use_facet< Cvt >( std::locale() ),
_1 ) ) ;
Je crois que bind fait partie aussi de TR1.
Dans 10 (ou peut-être 20 ans) nous pourrons utiliser
std::transform<> :-)
"kanze" <kanze@gabi-soft.fr> écrivait:
Franck Branjonneau wrote:
Yoxoman <yoxoman@aol.com> écrivait:
La solution avec transform serait quelque chose du
genre :
typedef std::ctype< char >
Cvt ;
std::transform(
source.begin(), source.end(),
std::back_inserter( dest ),
std::bind1st(
std::mem_fun(
static_cast< char (Cvt::*)( char ) const >(
&Cvt::tolower ) ),
&std::use_facet< Cvt >( std::locale() ) ) ) ;
Sans oublier d'initialiser le locale global avant.
Ca me fait penser à un film : Scanners. Ca parle de gens
capables de faire exploser le cerveau d'autres presonnes
à distance.
Si c'est le static_cast<> qui t'ennuie, tu peux l'enelever.
Tu en es sûr ?
Je n'ai aucune certitude.
Il y a bien deux fonctions std::ctype<>::tolower, selon la
norme. C'est vrai que la deuxième prend deux paramètres, et
qu'il n'y a aucune instantiation de std::mem_fun qui accepte
l'adresse d'une fonction à deux paramètres.
Oui mais ce ne sont pas des fonctions templates. Ce sont des
fonctions membres d'une classe template std::ctype<>. Qui,
elle, a été instanciée avec char, le compilateur doit donc
choisir entre les deux signatures
std::ctype< char >::tolower(char) const;
std::ctype< char >::tolower(char, const char) const;
pour choisir quelle std::mem_fun<> utiliser.
Il y aurait une impossibilité de déduction avec quelque chose
comme
struct Cvt {
template< typename _Character >
_Character
tolower(
_Character) {}
};
ou même
struct Cvt {
template< typename _Character >
_Character
tolower(
_Character);
char
tolower(
char);
};
Mais je ne crois pas que le compilateur soit exigé, ou même
autorisé, à faire l'analyse à ce point, selon §13.4 et
§14.8.2.2. Ou peut-être que si ; j'avoue que ce n'est pas du
tout clair dans mon ésprit.
Je ne suis pas dans ton esprit :-) et je ne comprends pas bien
ton interrogation. L'analyse doit être faite au point
d'instanciation de std::transform<>, non ?
Avec Boost, évidemment, on écrirait :
std::transform(
source.begin(), source.end(),
std::back_inserter( dest ),
boost::bind(
&Cvt::tolower,
&std::use_facet< Cvt >( std::locale() ),
_1 ) ) ;
Je crois que bind fait partie aussi de TR1.
Dans 10 (ou peut-être 20 ans) nous pourrons utiliser
std::transform<> :-)
"kanze" écrivait:Franck Branjonneau wrote:Yoxoman écrivait:La solution avec transform serait quelque chose du
genre :
typedef std::ctype< char >
Cvt ;
std::transform(
source.begin(), source.end(),
std::back_inserter( dest ),
std::bind1st(
std::mem_fun(
static_cast< char (Cvt::*)( char ) const >(
&Cvt::tolower ) ),
&std::use_facet< Cvt >( std::locale() ) ) ) ;
Sans oublier d'initialiser le locale global avant.
Ca me fait penser à un film : Scanners. Ca parle de gens
capables de faire exploser le cerveau d'autres presonnes
à distance.
Si c'est le static_cast<> qui t'ennuie, tu peux l'enelever.
Tu en es sûr ?
Je n'ai aucune certitude.Il y a bien deux fonctions std::ctype<>::tolower, selon la
norme. C'est vrai que la deuxième prend deux paramètres, et
qu'il n'y a aucune instantiation de std::mem_fun qui accepte
l'adresse d'une fonction à deux paramètres.
Oui mais ce ne sont pas des fonctions templates. Ce sont des
fonctions membres d'une classe template std::ctype<>. Qui,
elle, a été instanciée avec char, le compilateur doit donc
choisir entre les deux signatures
std::ctype< char >::tolower(char) const;
std::ctype< char >::tolower(char, const char) const;
pour choisir quelle std::mem_fun<> utiliser.
Il y aurait une impossibilité de déduction avec quelque chose
comme
struct Cvt {
template< typename _Character >
_Character
tolower(
_Character) {}
};
ou même
struct Cvt {
template< typename _Character >
_Character
tolower(
_Character);
char
tolower(
char);
};
Mais je ne crois pas que le compilateur soit exigé, ou même
autorisé, à faire l'analyse à ce point, selon §13.4 et
§14.8.2.2. Ou peut-être que si ; j'avoue que ce n'est pas du
tout clair dans mon ésprit.
Je ne suis pas dans ton esprit :-) et je ne comprends pas bien
ton interrogation. L'analyse doit être faite au point
d'instanciation de std::transform<>, non ?
Avec Boost, évidemment, on écrirait :
std::transform(
source.begin(), source.end(),
std::back_inserter( dest ),
boost::bind(
&Cvt::tolower,
&std::use_facet< Cvt >( std::locale() ),
_1 ) ) ;
Je crois que bind fait partie aussi de TR1.
Dans 10 (ou peut-être 20 ans) nous pourrons utiliser
std::transform<> :-)
Y compris quand la technologie ne le permet pas, comme dans un
texte dactylographié ?
Y compris quand la technologie ne le permet pas, comme dans un
texte dactylographié ?
Y compris quand la technologie ne le permet pas, comme dans un
texte dactylographié ?
Y compris quand la technologie ne le permet pas, comme dans un
texte dactylographié ?
Je suis d'accord avec toi que l'utilisation des accents sur les
majuscules est préférable. Je l'exige dans mon propre travail,
et je m'attends à ce que d'autres le fasse chaque fois que c'est
technologiquement possible.
Y compris quand la technologie ne le permet pas, comme dans un
texte dactylographié ?
Je suis d'accord avec toi que l'utilisation des accents sur les
majuscules est préférable. Je l'exige dans mon propre travail,
et je m'attends à ce que d'autres le fasse chaque fois que c'est
technologiquement possible.
Y compris quand la technologie ne le permet pas, comme dans un
texte dactylographié ?
Je suis d'accord avec toi que l'utilisation des accents sur les
majuscules est préférable. Je l'exige dans mon propre travail,
et je m'attends à ce que d'autres le fasse chaque fois que c'est
technologiquement possible.
Je suis sur que le responsable de la faq sera ravi d'accueillir ta
"vérification"
à moins que tu n'es pas le temps
Je suis sur que le responsable de la faq sera ravi d'accueillir ta
"vérification"
à moins que tu n'es pas le temps
Je suis sur que le responsable de la faq sera ravi d'accueillir ta
"vérification"
à moins que tu n'es pas le temps
"kanze" writes:
Y compris quand la technologie ne le permet pas, comme dans un texte
dactylographié ?
Si tu casses la touche 'a' de ton ordinateur, et que tu tappes un
texte en ne mettant pas les 'a', est-ce une faute d'orthographe ? A
mon avis, c'en est une, mais tu as juste les circonstances
atténuantes.
"kanze" <kanze@gabi-soft.fr> writes:
Y compris quand la technologie ne le permet pas, comme dans un texte
dactylographié ?
Si tu casses la touche 'a' de ton ordinateur, et que tu tappes un
texte en ne mettant pas les 'a', est-ce une faute d'orthographe ? A
mon avis, c'en est une, mais tu as juste les circonstances
atténuantes.
"kanze" writes:
Y compris quand la technologie ne le permet pas, comme dans un texte
dactylographié ?
Si tu casses la touche 'a' de ton ordinateur, et que tu tappes un
texte en ne mettant pas les 'a', est-ce une faute d'orthographe ? A
mon avis, c'en est une, mais tu as juste les circonstances
atténuantes.
kanze wrote:
Y compris quand la technologie ne le permet pas, comme dans un
texte dactylographié ?
Selon les règles de typographie en usage à l'Imprimerie
Nationale, il faut accentuer les majuscules à condition de
pouvoir mettre tous les accents. Mais il vaut mieux ne rien
accentuer que d'avoir la moitié seulement des majuscules
devant être accentuées, accentuées.
La seule justification pour ne pas accentuer les majuscules
est une impossibilité technique (historiquement, les machines
d'imprimerie souvent d'origine américaine n'en étaient pas
capables).
Je suis d'accord avec toi que l'utilisation des accents sur les
majuscules est préférable. Je l'exige dans mon propre travail,
et je m'attends à ce que d'autres le fasse chaque fois que c'est
technologiquement possible.
En ceci, tu sembles être en parfait accord avec l'Imprimerie
Nationale... :-)
kanze wrote:
Y compris quand la technologie ne le permet pas, comme dans un
texte dactylographié ?
Selon les règles de typographie en usage à l'Imprimerie
Nationale, il faut accentuer les majuscules à condition de
pouvoir mettre tous les accents. Mais il vaut mieux ne rien
accentuer que d'avoir la moitié seulement des majuscules
devant être accentuées, accentuées.
La seule justification pour ne pas accentuer les majuscules
est une impossibilité technique (historiquement, les machines
d'imprimerie souvent d'origine américaine n'en étaient pas
capables).
Je suis d'accord avec toi que l'utilisation des accents sur les
majuscules est préférable. Je l'exige dans mon propre travail,
et je m'attends à ce que d'autres le fasse chaque fois que c'est
technologiquement possible.
En ceci, tu sembles être en parfait accord avec l'Imprimerie
Nationale... :-)
kanze wrote:
Y compris quand la technologie ne le permet pas, comme dans un
texte dactylographié ?
Selon les règles de typographie en usage à l'Imprimerie
Nationale, il faut accentuer les majuscules à condition de
pouvoir mettre tous les accents. Mais il vaut mieux ne rien
accentuer que d'avoir la moitié seulement des majuscules
devant être accentuées, accentuées.
La seule justification pour ne pas accentuer les majuscules
est une impossibilité technique (historiquement, les machines
d'imprimerie souvent d'origine américaine n'en étaient pas
capables).
Je suis d'accord avec toi que l'utilisation des accents sur les
majuscules est préférable. Je l'exige dans mon propre travail,
et je m'attends à ce que d'autres le fasse chaque fois que c'est
technologiquement possible.
En ceci, tu sembles être en parfait accord avec l'Imprimerie
Nationale... :-)