Jump to content
Araştır
  • Diğer seçenekler ...
Sonuçları bul ...
Sonuçları bul ...

eurox

Üye
  • İçerik sayısı

    16
  • Katılım

  • Son ziyaret

  • Puan

    1,432 [ Bağış Yap ]

İletiler : eurox


  1. Alıntı


    Bir de şurada dikkate etmeniz gereken bir husus var.
    Server dosyalarında kullanılan rtrim ve ltrim fonksiyonları hem geriye string değer döndürüyor hem de parametre olarak string değeri convert ediyor.
    Bu yüzden std::string & rtrim yerine void rtrim kullanmanız daha mantıklı olacaktır.



    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.
×
×
  • Yeni Oluştur...