5 Aralık 2018 Çarşamba

decltype auto Return Type

Giriş
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;
Örnek
C++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