Giriş
İmzası şöyle.
C++11'den sonra bu metod da null terminated bellek alanı dönmeye başladı. Açıklaması şöyle
Elimizde şöyle bir kod olsun. C++11 ve C++17 ile farkı metodlar çağrılır.
Şöyle yaparız.
İmzası şöyle.
const charT* data() const noexcept;
C++17'den sonra bu metod kaldırılarak const olmayan metod haline getirildi. İmzası şöylecharT* data() noexcept;
C++11'den sonra bu metod da null terminated bellek alanı dönmeye başladı. Açıklaması şöyle
Previously that was std::string::c_str()'s job, but as of C++11, data() also provides it...Örnek
Elimizde şöyle bir kod olsun. C++11 ve C++17 ile farkı metodlar çağrılır.
void func(char* data)
{
cout << data << " is not const\n";
}
void func(const char* data)
{
cout << data << " is const\n";
}
int main()
{
string s = "xyz";
func(s.data());
}
Açıklaması şöyleThe return type of string::data changes from const char* to char* in C++ 17. That could certainly make a differenceÖrnek
...
A bit contrived but this legal program would change its output going from C++14 to C++17.
Şöyle yaparız.
std::string buff = ...;
const char* dst_ptr = buff.data();
Hiç yorum yok:
Yorum Gönder