たとえば、一般的な連結リスト ( で表す) を作成するとき、どこかで a を使用し、別の場所で aを使用すると、実際にはコンパイラーは の 2 つの異なる実装(1 つは を使用し、もう1 つは を使用) を生成するList<T>
と言われました。それは私には理にかなっており、 SGLIBが C でどのように機能するかを思い出させてくれます。List<int>
List<short>
List
int
short
しかし、コンパイルされたさまざまなモジュールを使用するときにプロセスがどのように機能するかわかりません。つまり、 を使用してライブラリを作成した場合List<T>
、コードがどのように消費されるかを知ることが不可能な場合、どのコードが生成されるのでしょうか? のコードは、 のコードとはList<char>
まったく異なる方法でコンパイルさList<int>
れます。では、ここで何が起こっているのでしょうか?