içinde dönüştürülür:işlev adı bu kodu (geçerli C++ 11) ile garip bir şekilde
#include <stdio.h>
#include <typeinfo>
bool my_awesome_func(int param) {
return (param > 1);
}
int main(int argc, char const *argv[]) {
fprintf(stderr, "type of my_awesome_func: %s\n",
typeid(my_awesome_func).name());
if (my_awesome_func) {
fprintf(stderr, "WHAT???\n");
}
return 0;
}
soru if
deyimi içinde.bana FbiE
(işlev türü için gcc dili olduğunu düşünüyorum) gibi bir şey döndürürken, bu türün neden örtülü olarak bool
'a dönüştürüldüğünü anlamıyorum (yalnızca bir örnek, int
ile çalışır).
Neden if
ifadesi derleniyor ve doğru değerlendiriyor?
İşlev adı, bu işleve bir gösterici için bozulur ve imleçler, aksi takdirde "true" ise "false" işleviyle "bool" değerine dolaylı olarak dönüştürülebilir. –
@ T.C. Teşekkürler! İşaretçiye dönüştüğünü öğrendiğimde, o zaman ne olduğunu anlıyorum. – niosus
Size biraz * ibadet * vermek, heh. – Quentin