Skip to content

reference

KOYAMA Youichi edited this page Aug 31, 2016 · 13 revisions

C++ の参照について

XcodeML の仕様の問題として、 Var と varAddr を使って変数とポインタを表していることがある。 この思想に沿うなら、 C++ の参照も varAddr として表現することになるが、

int &f();

のような関数の返すリファレンスをつかって

f() = 1;

と書ける状況を varAddr で表現するのは果たして可能か、可能だとして適切か?

同様に

struct Foo { int x; int y; }; Foo &g();

のような関数の返すリファレンスをつかって

g().x = 1;

と書ける状況をどう表現するか?

これらをどう解決するか次第で typeTable 上での扱いも変わる。

Clone this wiki locally