「値」と「参照」の続きです。
変数に格納される要素として値と参照以外に式が入るパターンもあるな、と思ったので書きました。
値に式が入ることもある
さらにややこしいことに、箱の中身には何かしらの「作業命令」が入っているパターンもあります。
上記の状態の時、「E2」の値は(文字列として解釈するなら)「C2+D2」ですが
その「C2+D2」を値でななく式として解釈すると
『「C2」の値と「D2」の値を足せ』という命令になり、結果として「23」という値を抽出することができます。
この時、「E2」の値は式となります。
上記をC++で表現
※要c++11コンパイル
#include <iostream>
#include <string>
using namespace std;
int c2 = 10;
int d2 = 13;
auto e2 = []{
return c2 + d2;
};
int main()
{
cout << to_string(e2()) << endl;
return 0;
}
変数e2は値ではなく、処理自体を代入しています。
そして、e2呼び出し時に中の処理を実行し、出力内容は計算結果である「23」となります。