>>438
それは繰り返しにしかならないが、以下の通り。

原理的な話なら、抽象化された変数領域しか持たない言語(C#,Java)では、アドレスというものがそもそも見えない。
だから、4GBの壁がそもそもユーザーに見えない。
これに対して、C/C++では4GBの壁がユーザーに丸見えだ。

>>432のように、ポインタをユーザーがラップして全てint**とかにした場合、それは「ユーザーがそう記述した」という。---(A)
そうではなくて、ユーザーが通常通り int* のまま使っていて、
それをコンパイラだけで int* のネイティブにするのか、int** のJava的参照ポインタにするのかをコンパイルオプションで切り換えられるのなら、 ---(B)
それは「コンパイラで4GBの壁を越えた」という。
いずれにしても、C/C++言語自体で4GBの壁を越えたというのは言い過ぎだ。

ところで、Emscriptenは(B)のどちらなのか、知っていたら教えてくれ。
(ユーザ側で int** と意識して書く必要があるのか、
もしかしてユーザーは int* のままで書いてもEmscriptenが int** に完全に変換できるのか)