Neden hiç kimse C ++ 'da, Boost Tuple Kitaplığı veya TR1 için standart kitaplık kullanmıyor gibi görünüyor ? Çok fazla C ++ kodu okudum ve çok nadiren tuple kullanımını görüyorum, ancak çoğu zaman tupleların birçok sorunu çözebileceği birçok yer görüyorum (genellikle işlevlerden birden çok değer döndürür).
Tuples, bunun gibi her türlü harika şeyi yapmanıza izin verir:
tie(a,b) = make_tuple(b,a); //swap a and b
Bu kesinlikle bundan daha iyi:
temp=a;
a=b;
b=temp;
Tabii ki bunu her zaman yapabilirsiniz:
swap(a,b);
Peki ya üç değeri döndürmek isterseniz? Bunu tuple ile yapabilirsiniz:
tie(a,b,c) = make_tuple(b,c,a);
Tuples ayrıca, bir işlevden birden çok değişkeni döndürmeyi çok daha kolaylaştırır, bu muhtemelen değerleri değiştirmekten çok daha yaygın bir durumdur. Değerleri döndürmek için referans kullanmak kesinlikle çok şık değil.
Tuple'ların benim düşünmediğim büyük dezavantajları var mı? Değilse, neden nadiren kullanılıyorlar? Daha yavaşlar mı? Yoksa sadece insanlar onlara alışkın değil mi? Tuple kullanmak iyi bir fikir mi?
a = a ^ b; b = a ^ b; a = a ^ b;