Giriş
Açıklaması şöyle.
Şöyle yaparız.
C++14 ile return() farklı anlama geldiği için decltype anlam değiştirebiliyor. Şöyle yaparız.
Açıklaması şöyle.
The wording for decltype(auto) says that auto is replaced with the expression in the initializer.Örnek
Şöyle yaparız.
decltype(a) b = a;
ÖrnekC++14 ile return() farklı anlama geldiği için decltype anlam değiştirebiliyor. Şöyle yaparız.
int var1 = 42;
decltype(auto) func1() { return var1; } // return type is int, same as decltype(var1)
decltype(auto) func1() { return(var1); } // return type is int&, same as decltype((var1))
Aynı şekilde local değişkene referans döndüğümüz için kod çöker. Şöyle yaparız.#include <iostream>
decltype(auto) fun()
{
std::string str = "In fun";
return (str); // Why not working??
}
int main()
{
std::cout << fun() << std::endl;
}
Hiç yorum yok:
Yorum Gönder