eurox
-
İçerik sayısı
16 -
Katılım
-
Son ziyaret
-
Puan
1,432 [ Bağış Yap ]
İletiler : eurox
-
-
Böyle paylaşımların olması çok güzel
-
Teşekkürler
-
Teşekkürler
-
Teşekkürler
-
Teşekkürler
-
Teşekkürler
-
Teşekkürler
-
Teşekkürler
-
Teşekkürler
-
Teşekkürler
-
tesekkurler
-
tesekkurler
-
-
teşekkürler
String Trim C++ using STL & Boost Library
Forum C++
tarihinde gönderildi
Verdiğin gerekçe doğru değil.
void func1(std::string str);
void func1(std::string &str);
Bu iki fonksiyonun amaçları farklı. Ancak eğer heapte olmayan bir değişkeni bu fonksiyonlara gönderirsen, stl sınıfların move constructorları olduğu için bu fonksiyonlara verilen değişkenler zaten taşınır hiç bir farkları yok.
Yine aynı şekilde,
std::string func1(std::string str);
std::string& func1(std::string &str);
Bu iki fonksiyondan referance dönen hatalı kullanım zaten. Eğer ki fonksiyon içinde stackte yarratığın değişkenin referansını dönersen explicit olarak move etmezsen zaten undefined behaviour sonucuyla karşılaşırsın.
Burada en doğru kullanım birincisi eğer ki stackte trim yapılmış obje dönülecekse. Çünkü birincisinde stl sınıfın move constructor ı kopyalama yapmaz, stackteki değişkeni move eder.