Odpověď na názor

Odpovídáte na názor ke článku Destructive Move v C++?.

  • 5. 7. 2025 11:17

    Petr Golich

    Článek jsem pouze prolétl, ale pár poznámek:
    1. Současné ABI a standardy jako POSIX mají za sebou cca půl století, myslím si, že by stálo za to navrhnout nějakou verzi 2.0, kde by se zohlednily současné poznaky.
    2. C++ předpokládá design tříd jako std::vector, potom move sémantika probíhá tak, že se vytvoří nový handle s bez obsahu, zkopíruje(swap) se hodnota adresy na obsah z původního handlu, původní handle se může jen tak uvolnit, protože nemá žádný obsah. Jedná se o sadu triviálních operací.
    3. Jak bylo v článku zmíněno, move sémtantika prošla od své první standardizace vývojem a je možné, že se bude leštit nadále. Celkem zajímavý je v principu návrh Herba Suttera - in, out, inout, což by snížilo složitost kódu, ale jedná se o generickou záležitost, což se momentálně řeší tak, že se vygenerují všechny možnosti a překladač sám vybere tu nejvhodnější - move, copy, reference, const reference.