Salut, comme "foo" est un const char* fort probablement :
XXX = const char* ou XXX = ...
Bonjour,
J'ai un peu de mal avec le type d'une chaîne littérale. Si j'écris
try { throw "foo"; } catch (XXX) { }
quelles sont les valeurs de "XXX" qui feront que l'exception sera attrapée ?
Merci d'avance...
Falk Tannhäuser
Fabien LE LEZ wrote:
J'ai un peu de mal avec le type d'une chaîne littérale. Si j'écris
try { throw "foo"; } catch (XXX) { }
quelles sont les valeurs de "XXX" qui feront que l'exception sera attrapée ?
"foo" est du type 'char const[4]' qui d'après § 15.1/3 est ajusté en 'char const*'. L'exception ne sera donc pas attrapée par un 'catch(char*)' mais elle l'est par un 'catch(char const*)', un 'catch(void const*)' ou un 'catch(...)'.
Falk
Fabien LE LEZ wrote:
J'ai un peu de mal avec le type d'une chaîne littérale. Si j'écris
try
{
throw "foo";
}
catch (XXX)
{
}
quelles sont les valeurs de "XXX" qui feront que l'exception sera
attrapée ?
"foo" est du type 'char const[4]' qui d'après § 15.1/3 est ajusté
en 'char const*'. L'exception ne sera donc pas attrapée par un
'catch(char*)' mais elle l'est par un 'catch(char const*)', un
'catch(void const*)' ou un 'catch(...)'.
J'ai un peu de mal avec le type d'une chaîne littérale. Si j'écris
try { throw "foo"; } catch (XXX) { }
quelles sont les valeurs de "XXX" qui feront que l'exception sera attrapée ?
"foo" est du type 'char const[4]' qui d'après § 15.1/3 est ajusté en 'char const*'. L'exception ne sera donc pas attrapée par un 'catch(char*)' mais elle l'est par un 'catch(char const*)', un 'catch(void const*)' ou un 'catch(...)'.