はじめに 気を付けていても、ふとした瞬間に右辺値参照の寿命を切らすことがあります。 これはコンパイラの種別・バージョン・最適化オプションによって、たまたま動いたり動かなかったりするので結構しんどい問題です。 今回、平成最後のアドベントカレンダーということもあり、いや関係ないですが、恥を忍んで実際に寿命を切らしてしまった事例と対策を紹介します。 事例1: std::minmax で殺られた auto mm = std::minmax(5, 6); std::cout << "min:" << mm.first << " max:" << mm.second << std::endl;