W kontekście programowania użycie słowa "możliwe" powoduje u mnie dziwny niepokój
Przykład:
QList<int> list1 = {1, 2, 3, 4};
QList<int> list2 = list1; // list1 i list2 współdzielą pamięć
qDebug() << list1.isSharedWith(list2); // Wydrukuje: true
for (auto i : list1) { // c++11 range-loop might detach Qt container (QList) [clazy-range-loop-detach]
qDebug() << i;
}
qDebug() << list1.isSharedWith(list2); // Możliwe, że teraz będzie false, bo mogło nastąpić odłączenie!
Jak to jest możliwe , ja wolałbym mieć pewność , a nawet jestem pewny ze zawsze chciałbym wiedzieć jak zachowa sie program.
Jaka jest główna zaleta COW Copy-on-Write ?
Bo nie dostrzegam piekna tej konstrukcji