OVH Cloud OVH Cloud

Position de const

60 réponses
Avatar
Jmr
Bonjour, je voudrais écrire une fonction copiant le contenu d'un tableau
dans un autre. j'utilise la déclaration suivante :

bool Cpy(const float * & Source, float * & Dest)

En espérant que :
? & Source : passe le pointeur Source à la fonction en tant que référence
pour éviter une copie inutile (mais est-ce bien nécessaire ?)
? const float : évite de modifier la valeur du pointeur Source. (const
doit-il être placé là ou plutôt ici : float * const & Source ?)

Par la suite j'utilise une fonction déclarée ainsi :

bool Affect (const Data & src, Data & dest)

où :

Data est du genre :
struct Data
{
int n ;
float *p ;
} ;

Lorsque j'écris :
bool Affect (const Data & src, Data & dest)
{
Cpy(src.p, dest.p) ;
..
}

le compilateur affiche l'erreur suivante : error C2664: 'Cpy' : cannot
convert parameter 1 from 'float *const ' to 'const float *& '

j'en déduis que les qualificatifs const sont mal placés mais où faut'il les
placer ?

Par avance Merci

10 réponses

1 2 3 4 5
Avatar
Fabien LE LEZ
On 14 Sep 2003 19:51:44 +0200, Gabriel Dos Reis
wrote:

[je crois que la form « usuelle » serait : Fabien et moi. Note la
place du « moi »]


Etant donné que James n'est pas expert en français, on va mettre ça
sur le compte d'une méconnaissance de la langue, et pas d'une
hypertrophie des chevilles ;-)

Avatar
Alain Naigeon
"Fabien LE LEZ" a écrit dans le message news:

On 14 Sep 2003 19:51:44 +0200, Gabriel Dos Reis
wrote:

[je crois que la form « usuelle » serait : Fabien et moi. Note la
place du « moi »]


Etant donné que James n'est pas expert en français, on va mettre ça
sur le compte d'une méconnaissance de la langue, et pas d'une
hypertrophie des chevilles ;-)


Il suffit de se promener sur certains groupes pour constater
que James s'exprime bien mieux que pas mal de Français...

Alors Fabien et moi, moi et Fabien, c'est comme bonnet
blanc et blanc bonnet, ou const char et char const :-)

--

Français *==> "Musique renaissance" <==* English
midi - facsimiles - ligatures - mensuration
http://anaigeon.free.fr | http://www.medieval.org/emfaq/anaigeon/
Alain Naigeon - - Strasbourg, France


Avatar
Fabien LE LEZ
On Sun, 14 Sep 2003 23:40:15 +0200, "Alain Naigeon"
wrote:

Alors Fabien et moi, moi et Fabien, c'est comme bonnet
blanc et blanc bonnet, ou const char et char const :-)


C'est-à-dire, assez important pour générer un thread de 18 messages ?

Avatar
Michaël Monerau
Fabien LE LEZ wrote:
On Sun, 14 Sep 2003 23:40:15 +0200, "Alain Naigeon"
wrote:

Alors Fabien et moi, moi et Fabien, c'est comme bonnet
blanc et blanc bonnet, ou const char et char const :-)


C'est-à-dire, assez important pour générer un thread de 18 messages ?


19
;-)
--
<=- Michaël "Cortex" Monerau -=>


Avatar
Fabien LE LEZ
On Mon, 15 Sep 2003 05:22:02 GMT, "Michaël Monerau"
wrote:

19


20.

Moi aussi, je peux le faire.
NB : AMHA, un post ne contenant que "21" ne s'impose pas ;-)

--
Let's face it, boys: the Trash Heap _is_ all.

Avatar
Christophe Lephay
"Gabriel Dos Reis" a écrit dans le message de
news:
James Kanze writes:

| certain nombre d'experts : moi et Fabien, par exemple:-)

une canicule d'égocentrisme ? ;-)

[je crois que la form « usuelle » serait : Fabien et moi. Note la
place du « moi »]


C'est vrai que ça fait plus humble, d'un coup ;)

Chris

Avatar
Alain Naigeon
"Christophe Lephay" a écrit dans le message
news: bk3ldh$odt$
"Gabriel Dos Reis" a écrit dans le message
de

news:
James Kanze writes:

| certain nombre d'experts : moi et Fabien, par exemple:-)

une canicule d'égocentrisme ? ;-)

[je crois que la form « usuelle » serait : Fabien et moi. Note la
place du « moi »]


C'est vrai que ça fait plus humble, d'un coup ;)


Bof, ça fait partie de cette (fausse) humilité qu'on m'a
inculquée dès le primaire, au point qu'il fallait se nommer
"Naigeon Alain" lors des appels en classe, et non "Alain Naigeon" !
Quand on a "l'orgueil" de dire quelque chose qu'on croit utile,
on peut aussi avoir le courage de dire "moi", il me semble.

--

Français *==> "Musique renaissance" <==* English
midi - facsimiles - ligatures - mensuration
http://anaigeon.free.fr | http://www.medieval.org/emfaq/anaigeon/
Alain Naigeon - - Strasbourg, France


Avatar
Samuel Krempp
le Monday 15 September 2003 12:01, écrivit :

C'est vrai que ça fait plus humble, d'un coup ;)



je crois que c'est à prendre avec ironie

Bof, ça fait partie de cette (fausse) humilité qu'on m'a
inculquée dès le primaire, au point qu'il fallait se nommer
"Naigeon Alain" lors des appels en classe, et non "Alain Naigeon" !
Quand on a "l'orgueil" de dire quelque chose qu'on croit utile,
on peut aussi avoir le courage de dire "moi", il me semble.


je suis tout à fait d'accord. Je trouve plus franc de dire "moi et ..", car
de toute façon c'est fatalement dans cet ordre que ça vient à l'esprit.
se forcer à se citer en dernier, on peut trouver que ça améliore
l'esthétique (parfois ça sonne mieux), mais ce n'est pas un signe
d'humilité..

--
Sam


Avatar
Xavier Hardy
"James Kanze" écrivait :
"Michaël Monerau" writes:
Pourquoi ça serait un cas particulier ?
Parce que ce ne suit pas la règle générale : que le const


modifie ce qui le précède.


Juste pour voir si je suis bien : selon cette convention
« rationnelle », il faudrait écrire "int const i = 1;"
au lieu de "const int i = 1;" et ainsi de suite ?

Cela fait vraiment bizarre quand on a jamais vu que l'autre
écriture. D'autant que si l'on voit "const" comme un
qualificatif, le "const int" a l'air assez naturel du point
de vue de la langue anglaise. Mais si on adopte la régle
que les déclarations peuvent généralement déchiffré en
les lisant de droite à gauche, la règle générale s'impose.

Xavier



Avatar
Gabriel Dos Reis
--=-=- Content-Type: text/plain; charset=iso-8859-15
Content-Transfer-Encoding: quoted-printable

Xavier Hardy writes:

| "James Kanze" écrivait :
| > "Michaël Monerau" writes:
| > > > Pourquoi ça serait un cas particulier ?
| > Parce que ce ne suit pas la règle générale : que le const
| > modifie ce qui le précède.
|
| Juste pour voir si je suis bien : selon cette convention
| « rationnelle », il faudrait écrire "int const i = 1;"
| au lieu de "const int i = 1;" et ainsi de suite ?

--=-=- Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit


« il faudrait écrire » me semble une formulation trop rigide de ce qui
n'est en fin de compte qu'une préférence comme la couleur ou le goût.
La règle générale n'est pas aussi rigide que James l'énonce --
évidemment, il l'énonce suivant son goût et non selon quelque de moins
subjectif.

--=-=- Content-Type: text/plain; charset=iso-8859-15
Content-Transfer-Encoding: quoted-printable


| Cela fait vraiment bizarre quand on a jamais vu que l'autre
| écriture. D'autant que si l'on voit "const" comme un
| qualificatif, le "const int" a l'air assez naturel du point
| de vue de la langue anglaise. Mais si on adopte la régle
| que les déclarations peuvent généralement déchiffré en
| les lisant de droite à gauche, la règle générale s'impose.

comme "unsigned int typedef size_t" ?

-- Gaby

--=-=-=--
1 2 3 4 5