データ内の文字列をすべて大文字に変更できる std::transform(data.begin(), data.end(), data.begin(), ::toupper) の使用法に精通しています。ただし、ソースを変更せずに文字列のすべて大文字のバージョンを取得できるクリーンなソリューションがあるかどうか疑問に思っていますか? ソースのコピーを作成し、そのコピーに対して std::transform を呼び出してからコピーを返すという回避策は、少し面倒に思えます。より効率的でエレガントな解決策があるかどうか疑問に思っています。
私は純粋な C++11 ソリューションを探しています...ブーストなどの広く利用可能な C++ ライブラリにも依存しません。