Thread overview
decltype
Mar 13, 2018
hsencan
Mar 13, 2018
kerdemdemir
March 14, 2018

Herkese merhaba,

decltype keywordu ne ise yarıyor ?
Bir kaç makale okudum. Ama anlayamadım yine :)
Yine bu güzel foruma geliyim dedim.

Şimdiden teşekkür ediyorum.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

March 14, 2018

Ali Abi

Acaba bunun(decltype) D 'deki karsiligini "typeof" 'un C++ gore bir artisi veya eksisi var mi acaba?

Erdemdem

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

March 14, 2018

Bir ifadenin türünü veren typeof işleci C++'ta hep eksikti; derleyiciler sunar ama dil standardında yoktur.

decltype o eksikliği gideriyor: bir ifadenin türü ne ise o tür haline geliyor ve böylece "falanca ifadenin türü ne ise bu da ondan olsun" diyebiliyoruz:

   decltype(foo.bar()) i;

Örneğin, foo nesnesinin bar üye işlevinin dönüş türü int ise, i de int olur. (foo.bar() çağrılmaz; yalnızca türünün ne olduğuna bakılır.) Gereksiz gibi gelse de şablon (template) veya isimsiz işlev (lambda) kullanırken çok yararlı olabilir.

decltype'ın bir özelliği, türü ifadenin çeşidine göre farklı belirlemesiymiş: lvalue ise T&, prvalue ise T, xvalue ise T&&. (Ne olduklarını sormayın; öğretmen bize yalnızca lvalue ve rvalue'yu anlattı. :) )

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

March 14, 2018

Belki fark vardır; ben bilmiyorum. Ama typeof'un yetersizliğinden şikayet edildiğini de duymadım. Herhalde aynıdırlar. :) C++'takine başka isim verilmesinin nedeni de herhalde typeof'un derleyiciler tarafından zaten sunuluyor olmasıdır.

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]