Hello à tous,
Je ne comprends pas pourquoi dans l'exemple suivant b3 est considéré comme
la déclaration d'un prototype de fonction (VC++ 7.1, MingW 3.3.1), d'autant
plus que b2 est valide.
class A
{
public:
A( int ) {}
};
class B
{
public:
B( A a1, A a2 ) {};
};
int main()
{
int i1 = 0;
int i2 = 0;
A a1( 0 );
A a2( 0 );
B b1( a1, a2 );
B b2( A( 0 ), A( 0 ) );
// warning C4930 : 'B b3(A,A)' : fonction prototypée non appelée
// (était-ce la définition de variable souhaitée ?)
B b3( A( i1 ), A( i2 ) );
}
La suite du programme montre bien que b3 est considéré comme une fonction.
Merci.
Pourquoi faire simple quand on peut faire compliqué... Z'ont même pas été fichus de pondre des mots-clés commençant par "__" -- c'est pourtant une technique assez classique pour définir des mots-clefs spéfiques à un compilo et/ou un système.
C'est déjà fait avec Managed C++, et c'est imbitable comme syntaxe. Faut pourrir ton code de mot clés genre __gc et c'est super lourd. Y'en a un qui est "marrant" : __identifier, qui permet d'utiliser un mot clé comme identifieur. http://msdn.microsoft.com/library/en-us/vcmex/html/vclrf__identifier.asp
Si j'ai bien compris Managed C++ c'est une extension MS au C++ standard, alors que C++ CLI c'est un nouveau langage (et si j'ai bien compris encore Intel et Comeau travaillent à un compilateur dessus, en plus de MS biensûr). http://download.microsoft.com/download/9/9/c/99c65bcd-ac66-482e-8dc1-0e14cd1670cd/C++-CLI%20Standard.pdf
-- Aurélien REGAT-BARREL
Pourquoi faire simple quand on peut faire compliqué...
Z'ont même pas été fichus de pondre des mots-clés commençant
par "__" -- c'est pourtant une technique assez classique pour
définir des mots-clefs spéfiques à un compilo et/ou un système.
C'est déjà fait avec Managed C++, et c'est imbitable comme syntaxe. Faut
pourrir ton code de mot clés genre __gc et c'est super lourd.
Y'en a un qui est "marrant" : __identifier, qui permet d'utiliser un mot clé
comme identifieur.
http://msdn.microsoft.com/library/en-us/vcmex/html/vclrf__identifier.asp
Si j'ai bien compris Managed C++ c'est une extension MS au C++ standard,
alors que C++ CLI c'est un nouveau langage (et si j'ai bien compris encore
Intel et Comeau travaillent à un compilateur dessus, en plus de MS biensûr).
http://download.microsoft.com/download/9/9/c/99c65bcd-ac66-482e-8dc1-0e14cd1670cd/C++-CLI%20Standard.pdf
Pourquoi faire simple quand on peut faire compliqué... Z'ont même pas été fichus de pondre des mots-clés commençant par "__" -- c'est pourtant une technique assez classique pour définir des mots-clefs spéfiques à un compilo et/ou un système.
C'est déjà fait avec Managed C++, et c'est imbitable comme syntaxe. Faut pourrir ton code de mot clés genre __gc et c'est super lourd. Y'en a un qui est "marrant" : __identifier, qui permet d'utiliser un mot clé comme identifieur. http://msdn.microsoft.com/library/en-us/vcmex/html/vclrf__identifier.asp
Si j'ai bien compris Managed C++ c'est une extension MS au C++ standard, alors que C++ CLI c'est un nouveau langage (et si j'ai bien compris encore Intel et Comeau travaillent à un compilateur dessus, en plus de MS biensûr). http://download.microsoft.com/download/9/9/c/99c65bcd-ac66-482e-8dc1-0e14cd1670cd/C++-CLI%20Standard.pdf
-- Aurélien REGAT-BARREL
Gabriel Dos Reis
"Aurélien REGAT-BARREL" writes:
| Si j'ai bien compris Managed C++ c'est une extension MS au C++ standard, | alors que C++ CLI c'est un nouveau langage (et si j'ai bien compris encore | Intel et Comeau travaillent à un compilateur dessus, en plus de MS biensûr). | http://download.microsoft.com/download/9/9/c/99c65bcd-ac66-482e-8dc1-0e14cd1670cd/C++-CLI%20Standard.pdf
| Si j'ai bien compris Managed C++ c'est une extension MS au C++ standard,
| alors que C++ CLI c'est un nouveau langage (et si j'ai bien compris encore
| Intel et Comeau travaillent à un compilateur dessus, en plus de MS biensûr).
| http://download.microsoft.com/download/9/9/c/99c65bcd-ac66-482e-8dc1-0e14cd1670cd/C++-CLI%20Standard.pdf
| Si j'ai bien compris Managed C++ c'est une extension MS au C++ standard, | alors que C++ CLI c'est un nouveau langage (et si j'ai bien compris encore | Intel et Comeau travaillent à un compilateur dessus, en plus de MS biensûr). | http://download.microsoft.com/download/9/9/c/99c65bcd-ac66-482e-8dc1-0e14cd1670cd/C++-CLI%20Standard.pdf
Tu n'as qu'à moitié bien compris ;-)
-- Gaby
Fabien LE LEZ
On Fri, 26 Nov 2004 13:53:23 +0100, "Aurélien REGAT-BARREL" :
Si j'ai bien compris Managed C++ c'est une extension MS au C++ standard, alors que C++ CLI c'est un nouveau langage (et si j'ai bien compris encore Intel et Comeau travaillent à un compilateur dessus, en plus de MS biensûr).
Y'a pas quelqu'un qui va se dévouer pour faire une encapsulation propre de tout ce machin, appelable depuis un programme en vrai C++ ?
-- ;-)
On Fri, 26 Nov 2004 13:53:23 +0100, "Aurélien REGAT-BARREL"
<nospam-aregatba@yahoo.fr.invalid>:
Si j'ai bien compris Managed C++ c'est une extension MS au C++ standard,
alors que C++ CLI c'est un nouveau langage (et si j'ai bien compris encore
Intel et Comeau travaillent à un compilateur dessus, en plus de MS biensûr).
Y'a pas quelqu'un qui va se dévouer pour faire une encapsulation
propre de tout ce machin, appelable depuis un programme en vrai C++ ?
On Fri, 26 Nov 2004 13:53:23 +0100, "Aurélien REGAT-BARREL" :
Si j'ai bien compris Managed C++ c'est une extension MS au C++ standard, alors que C++ CLI c'est un nouveau langage (et si j'ai bien compris encore Intel et Comeau travaillent à un compilateur dessus, en plus de MS biensûr).
Y'a pas quelqu'un qui va se dévouer pour faire une encapsulation propre de tout ce machin, appelable depuis un programme en vrai C++ ?
-- ;-)
Aurélien REGAT-BARREL
Y'a pas quelqu'un qui va se dévouer pour faire une encapsulation propre de tout ce machin, appelable depuis un programme en vrai C++ ?
Ben si tu te sens de faire mieux que Lippman et Sutter, y'a plus qu'à ;-)
-- Aurélien REGAT-BARREL
Y'a pas quelqu'un qui va se dévouer pour faire une encapsulation
propre de tout ce machin, appelable depuis un programme en vrai C++ ?
Ben si tu te sens de faire mieux que Lippman et Sutter, y'a plus qu'à ;-)
Y'a pas quelqu'un qui va se dévouer pour faire une encapsulation propre de tout ce machin, appelable depuis un programme en vrai C++ ?
Ben si tu te sens de faire mieux que Lippman et Sutter, y'a plus qu'à ;-)
-- Aurélien REGAT-BARREL
Loïc Joly
Aurélien REGAT-BARREL wrote:
Y'a pas quelqu'un qui va se dévouer pour faire une encapsulation propre de tout ce machin, appelable depuis un programme en vrai C++ ?
Ben si tu te sens de faire mieux que Lippman et Sutter, y'a plus qu'à ;-)
Mieux, ou différent ? Il ont bien réussi à ce que le code C++ soit appelable de façon transparente par du code managé, mais rien n'existe dans l'autre sens (il faut passer par des extensions autres, comme COM, ou par des astuces non docummentées). Alors, difficulté technique, ou volonté politique ?
-- Loïc
Aurélien REGAT-BARREL wrote:
Y'a pas quelqu'un qui va se dévouer pour faire une encapsulation
propre de tout ce machin, appelable depuis un programme en vrai C++ ?
Ben si tu te sens de faire mieux que Lippman et Sutter, y'a plus qu'à ;-)
Mieux, ou différent ? Il ont bien réussi à ce que le code C++ soit
appelable de façon transparente par du code managé, mais rien n'existe
dans l'autre sens (il faut passer par des extensions autres, comme COM,
ou par des astuces non docummentées). Alors, difficulté technique, ou
volonté politique ?
Y'a pas quelqu'un qui va se dévouer pour faire une encapsulation propre de tout ce machin, appelable depuis un programme en vrai C++ ?
Ben si tu te sens de faire mieux que Lippman et Sutter, y'a plus qu'à ;-)
Mieux, ou différent ? Il ont bien réussi à ce que le code C++ soit appelable de façon transparente par du code managé, mais rien n'existe dans l'autre sens (il faut passer par des extensions autres, comme COM, ou par des astuces non docummentées). Alors, difficulté technique, ou volonté politique ?
-- Loïc
Aurelien REGAT-BARREL
Mieux, ou différent ? Il ont bien réussi à ce que le code C++ soit appelable de façon transparente par du code managé, mais rien n'existe dans l'autre sens (il faut passer par des extensions autres, comme COM, ou par des astuces non docummentées). Alors, difficulté technique, ou volonté politique ?
int main() { std::string s( "coucou" ); std::cout << s << " avec coutn"; System::Console::Write( s.c_str() ); System::Console::WriteLine( S" avec System::Console" ); return 0; }
J'appelle bien du .Net depuis du C++ non ?
-- Aurélien REGAT-BARREL
Mieux, ou différent ? Il ont bien réussi à ce que le code C++ soit
appelable de façon transparente par du code managé, mais rien n'existe
dans l'autre sens (il faut passer par des extensions autres, comme COM, ou
par des astuces non docummentées). Alors, difficulté technique, ou volonté
politique ?
Mieux, ou différent ? Il ont bien réussi à ce que le code C++ soit appelable de façon transparente par du code managé, mais rien n'existe dans l'autre sens (il faut passer par des extensions autres, comme COM, ou par des astuces non docummentées). Alors, difficulté technique, ou volonté politique ?
| > Mieux, ou différent ? Il ont bien réussi à ce que le code C++ soit | > appelable de façon transparente par du code managé, mais rien n'existe | > dans l'autre sens (il faut passer par des extensions autres, comme COM, ou | > par des astuces non docummentées). Alors, difficulté technique, ou volonté | > politique ? | | #using <mscorlib.dll> | #include <string> | #include <iostream> | | int main() | { | std::string s( "coucou" ); | std::cout << s << " avec coutn"; | System::Console::Write( s.c_str() ); | System::Console::WriteLine( S" avec System::Console" ); | return 0; | } | | J'appelle bien du .Net depuis du C++ non ?
| > Mieux, ou différent ? Il ont bien réussi à ce que le code C++ soit
| > appelable de façon transparente par du code managé, mais rien n'existe
| > dans l'autre sens (il faut passer par des extensions autres, comme COM, ou
| > par des astuces non docummentées). Alors, difficulté technique, ou volonté
| > politique ?
|
| #using <mscorlib.dll>
| #include <string>
| #include <iostream>
|
| int main()
| {
| std::string s( "coucou" );
| std::cout << s << " avec coutn";
| System::Console::Write( s.c_str() );
| System::Console::WriteLine( S" avec System::Console" );
| return 0;
| }
|
| J'appelle bien du .Net depuis du C++ non ?
| > Mieux, ou différent ? Il ont bien réussi à ce que le code C++ soit | > appelable de façon transparente par du code managé, mais rien n'existe | > dans l'autre sens (il faut passer par des extensions autres, comme COM, ou | > par des astuces non docummentées). Alors, difficulté technique, ou volonté | > politique ? | | #using <mscorlib.dll> | #include <string> | #include <iostream> | | int main() | { | std::string s( "coucou" ); | std::cout << s << " avec coutn"; | System::Console::Write( s.c_str() ); | System::Console::WriteLine( S" avec System::Console" ); | return 0; | } | | J'appelle bien du .Net depuis du C++ non ?
Vraiment ?
-- Gaby
Aurelien REGAT-BARREL
| J'appelle bien du .Net depuis du C++ non ?
Vraiment ?
Ben heu... oui ? (je vois pas où tu veux en venir)
-- Aurélien REGAT-BARREL
| J'appelle bien du .Net depuis du C++ non ?
Vraiment ?
Ben heu... oui ? (je vois pas où tu veux en venir)
Ben heu... oui ? (je vois pas où tu veux en venir)
-- Aurélien REGAT-BARREL
Loïc Joly
Aurelien REGAT-BARREL wrote:
Mieux, ou différent ? Il ont bien réussi à ce que le code C++ soit appelable de façon transparente par du code managé, mais rien n'existe dans l'autre sens (il faut passer par des extensions autres, comme COM, ou par des astuces non docummentées). Alors, difficulté technique, ou volonté politique ?
int main() { std::string s( "coucou" ); std::cout << s << " avec coutn";
// Ici, éventuellement quelquechose du style // DotNet::LoadMSILInterpreter(); System::Console::Write( s ); System::Console::WriteLine( " avec System::Console" ); return 0; }
Ce n'est pas pur caprice. Nous avons du code non managé existant, que nous voulons majoritairement portable. Et nous voudrions dans une des couches basses de ce code faire appel à des fonctions managées (le remoting.NET). Recompiler tout notre code (y compris le code d'autres bibliothèques, dont nous n'avons pas les sources, mais qui utilisent des callback sur des fonctions de notre code) en /clr, simplement pour en avoir un petit bout qui fasse appel à des fonctions managées semble excessif...
Je suis prèt à appeler toutes les fonctions de bibliothèque nécessaires, mais souhaite le faire depuis un code C++ standard.
-- Loïc
Aurelien REGAT-BARREL wrote:
Mieux, ou différent ? Il ont bien réussi à ce que le code C++ soit
appelable de façon transparente par du code managé, mais rien n'existe
dans l'autre sens (il faut passer par des extensions autres, comme COM, ou
par des astuces non docummentées). Alors, difficulté technique, ou volonté
politique ?
int main()
{
std::string s( "coucou" );
std::cout << s << " avec coutn";
// Ici, éventuellement quelquechose du style
// DotNet::LoadMSILInterpreter();
System::Console::Write( s );
System::Console::WriteLine( " avec System::Console" );
return 0;
}
Ce n'est pas pur caprice. Nous avons du code non managé existant, que
nous voulons majoritairement portable. Et nous voudrions dans une des
couches basses de ce code faire appel à des fonctions managées (le
remoting.NET). Recompiler tout notre code (y compris le code d'autres
bibliothèques, dont nous n'avons pas les sources, mais qui utilisent des
callback sur des fonctions de notre code) en /clr, simplement pour en
avoir un petit bout qui fasse appel à des fonctions managées semble
excessif...
Je suis prèt à appeler toutes les fonctions de bibliothèque nécessaires,
mais souhaite le faire depuis un code C++ standard.
Mieux, ou différent ? Il ont bien réussi à ce que le code C++ soit appelable de façon transparente par du code managé, mais rien n'existe dans l'autre sens (il faut passer par des extensions autres, comme COM, ou par des astuces non docummentées). Alors, difficulté technique, ou volonté politique ?
int main() { std::string s( "coucou" ); std::cout << s << " avec coutn";
// Ici, éventuellement quelquechose du style // DotNet::LoadMSILInterpreter(); System::Console::Write( s ); System::Console::WriteLine( " avec System::Console" ); return 0; }
Ce n'est pas pur caprice. Nous avons du code non managé existant, que nous voulons majoritairement portable. Et nous voudrions dans une des couches basses de ce code faire appel à des fonctions managées (le remoting.NET). Recompiler tout notre code (y compris le code d'autres bibliothèques, dont nous n'avons pas les sources, mais qui utilisent des callback sur des fonctions de notre code) en /clr, simplement pour en avoir un petit bout qui fasse appel à des fonctions managées semble excessif...
Je suis prèt à appeler toutes les fonctions de bibliothèque nécessaires, mais souhaite le faire depuis un code C++ standard.