私はタプルに頭を悩ませようとしています(@litbに感謝します)。タプルの使用に関する一般的な提案は、> 1の値を返す関数です。
これは私が通常構造体を使用するものであり、この場合のタプルの利点を理解できません.末期の怠惰な人にとってはエラーが発生しやすいアプローチのようです.
例を借りて、これを使用します
struct divide_result {
int quotient;
int remainder;
};
タプルを使用すると、
typedef boost::tuple<int, int> divide_result;
しかし、呼び出している関数のコード (または、信頼できるほどばかげている場合はコメント) を読まなければ、どの int が商であり、その逆かはわかりません。むしろ…のようです。
struct divide_result {
int results[2]; // 0 is quotient, 1 is remainder, I think
};
...これでは自信が持てません。
では、あいまいさを補う構造体に対するタプルの利点は何でしょうか?