関数型プログラミング言語は、不変のデータ構造で機能することがよくありますが、構造を共有することで効率を維持します。たとえば、情報のマップで作業している場合、要素を挿入すると、既存のマップを変更せずに、新しい更新バージョンを作成します。大量のコピーとメモリ使用量を回避するために、マップは両方のインスタンス間で変更されていないデータを(可能な限り)共有します。
C++のデータ構造のようなマップを提供するテンプレートライブラリが存在するかどうか興味があります。少し検索しても、LLVMの内部クラス以外には何も見つかりませんでした。