SlideShare a Scribd company logo
2014/9/20 Cryolite 
Boost.勉強会#16 大阪 
1 
左と右の話
2 
左と右の区別は大事です 
※画像はイメージです
3 
左辺値・右辺値とは何か? 
i = 42; 
左辺値右辺値 
式の値を格納した場所 
Cf. “Location value” 
式の値
i 
int &f(); f() 全て規格に 
4 
左辺値・右辺値とは 
全ての式がおのおの持つ属性 
左辺値となる式 
右辺値となる式 
42, i + j 
int g(); g() 
MyClass(arg) 
書いてある
5 
代入演算子における 
左辺値・右辺値の例 
i = 42; 
変数“i” からなる式 
“i” の値を格納した場所(左辺値)
6 
代入演算子における 
左辺値・右辺値の例 
i = 42; 
リテラル“42” からなる式 
“42” の値(右辺値)
7 
代入演算子における 
左辺値・右辺値の例 
i = 42; 
“i” という式の値を格納した場所 
(左辺値)に, “42” という式の値 
(右辺値)を代入する
8 
代入演算子における 
左辺値・右辺値の例 
i = 42; 
“i = 42” という式の値を 
格納した場所(左辺値)
9 
代入演算子の右辺に 
左辺値が来たらどうなるの? 
j = i 
“j” という式の値を格納した場所 
(左辺値)に, “i” という式の値を 
格納した場所(左辺値)を代入する?
10 
代入演算子の右辺に 
左辺値が来たらどうなるの? 
j = i 
“j” という式の値を格納した場所 
(左辺値)に, “i” という式の値を 
格納した場所(左辺値)を代入する?
11 
代入演算子は 
右辺に右辺値が欲しい! 
= 
右辺には右辺値が欲しい 
左辺には左辺値が欲しい
12 
代入演算子は 
右辺に右辺値が欲しい! 
左辺に期待通り左辺値が来た!問題無し! 
j =
13 
代入演算子は 
右辺に右辺値が欲しい! 
右辺に右辺値が欲しいのに左辺値が来た! 
欲しいのと違う! 
j = i
14 
代入演算子は 
右辺に右辺値が欲しい! 
右辺に右辺値が欲しいのに左辺値が来た! 
欲しいのと違う! 
j = i 
左辺値を右辺値として解釈しなおそう! 
j = i
左辺値から 
右辺値への変換 
lvalue-to-rvalue 
15 
代入演算子は 
右辺に右辺値が欲しい! 
右辺に右辺値が欲しいのに左辺値が来た! 
欲しいのと違う! 
j = i 
左辺値を右辺値として解釈しなおそう! 
j = i 
conversion
値が格納された場所(左辺値) 
から値(右辺値)を取り出す 
左辺値から 
右辺値への変換 
lvalue-to-rvalue 
16 
代入演算子は 
右辺に右辺値が欲しい! 
右辺に右辺値が欲しいのに左辺値が来た! 
欲しいのと違う! 
j = i 
左辺値を右辺値として解釈しなおそう! 
j = i 
conversion
“j” という式の値を格納した場所 
(左辺値)に, “i” という式の値 
(右辺値)を代入する 
左辺値から 
右辺値への変換 
lvalue-to-rvalue 
17 
代入演算子は 
右辺に右辺値が欲しい! 
j = i 
j = i 
conversion
他の組み込み演算子, statement 
等は左右どちらが欲しい? 
R + R -R &L L = R 
int i = R; 
全て規格に 
int &ri = L; 
書いてある 
if (R) {… 
18
ある式が,出現する文脈で左辺値・右辺値の 
19 
式の左辺値・右辺値に 
関する2つの視点 
式自身が左辺値なのか右辺値なのか 
i 42 
どちらであることを要求されるのか 
左辺値が欲しい= 
右辺値が欲しい
20 
式の左辺値・右辺値に関する 
2つの視点とL-to-R 変換 
ある式が左辺値 
である 
右辺値 
である 
出現して 
いる文脈 
で 
左辺値である 
ことが要求さ 
れている 
そのま 
まで 
O.K. 
コンパ 
イルエ 
ラー 
右辺値である 
ことが要求さ 
れている 
L-to-R 
変換が 
起きる 
そのま 
まで 
O.K.
21 
式の左辺値・右辺値に関する 
2つの視点とL-to-R 変換 
ある式が左辺値 
である 
右辺値 
である 
出現して 
いる文脈 
で 
左辺値である 
ことが要求さ 
れている 
そのま 
まで 
O.K. 
コンパ 
イルエ 
ラー 
右辺値である 
ことが要求さ 
れている 
L-to-R 
変換が 
起きる 
そのま 
まで 
O.K. 
&42 
42=0
22 
全ては規格のシナリオ通りに 
• 式自身が左辺値か右辺値か 
⇒全て規格に書いてある 
• 個々の文脈で式に左辺値・ 
右辺値のどちらが要求されるか 
⇒全て規格に書いてある 
• いつ左辺値から右辺値への 
変換が起きるか 
⇒全て上2つから判断できる
左辺値から右辺値への変換が 
起きる場所は全て規格に書いてある 
23
全てのコーナーケースは 
左辺値から右辺値への変換に通ず 
24
全てのコーナーケースは 
左辺値から右辺値への変換に通ず 
25
例:オブジェクトが未構築な 
領域にどんな操作が許されるか? 
26 
オブジェクトに対して左辺値から 
右辺値への変換が起きたらアウト 
void *p = std::malloc(sizeof(int 
int &ri = *p; 
セーフ 
&ri; 
ri + 1; 
アウト 
int *pi = new (p) int(42);
27 
例:未初期化な変数に 
どんな操作が許されるか? 
変数に対して左辺値から右辺値への 
変換が起きないようにすればセーフ 
void f(int &); 
void g(int); 
int i; 
f(i); 
セーフ 
g(i);アウト
28 
例:型の完全な定義が 
いつ必要になるか? 
左辺値から右辺値への変換が起きた 
オブジェクトの型は完全でなければならない 
class X; 
void f(X &x) { 
セーフ 
&x; 
static_cast<X>(x); 
} アウト
29 
例:変数の定義がいつ必要に 
なる(odr-usedされる)か? 
変数がコード中に出現すればodr-used 
ただし,変数がconstant expression であり 
即座にL-to-R 変換が起きる場合は対象外 
Template<typename T> 
struct X { 
static constexpr int i = 42; 
}; 
int j = i + 1; 
int *p = &i; 
アウト 
セーフ
xvalue, prvalue, 
glvalue の話はどこに行った? 
現在のC++ の左辺値・右辺値の 
区別は実は3種類 
• lvalue 
• xvalue 
• prvalue
xvalue, prvalue, 
glvalue の話はどこに行った? 
“Location” の 
意味を持つか 
寿命が短い 
lvaue Yes No 
xvalue Yes Yes 
prvalue No Yes
xvalue, prvalue, 
glvalue の話はどこに行った? 
“Location” の 
意味を持つか 
寿命が短い 
lvaue Yes No 
xvalue Yes Yes 
prvalue No Yes 
今日の発表の 
左と右の境界
xvalue, prvalue, 
glvalue の話はどこに行った? 
“Location” の 
意味を持つか 
寿命が短い 
lvaue Yes No 
xvalue Yes Yes 
prvalue No Yes 
move semantics, 右辺値参照で 
重要な左と右の境界
まとめ: 
• 左辺値とは何か,右辺値とは何か 
• 左辺値から右辺値への変換とは何か,それは 
いつ起きるのか 
• 左辺値から右辺値への変換がいつ起きるのか 
は様々なコーナーケースでの判断に重要 
• 左辺値と右辺値の区別はmove semantics, 
右辺値参照の話でも重要だが,本発表での左 
辺値と右辺値の区別の場合と境界線が異なる 
34

More Related Content

What's hot (20)

Boost.勉強会 #21 札幌「C++1zにstring_viewが導入されてうれしいので紹介します」
Boost.勉強会 #21 札幌「C++1zにstring_viewが導入されてうれしいので紹介します」Boost.勉強会 #21 札幌「C++1zにstring_viewが導入されてうれしいので紹介します」
Boost.勉強会 #21 札幌「C++1zにstring_viewが導入されてうれしいので紹介します」
Hiro H.
 
できる!並列・並行プログラミング
できる!並列・並行プログラミングできる!並列・並行プログラミング
できる!並列・並行プログラミング
Preferred Networks
 
C++ マルチスレッド 入門
C++ マルチスレッド 入門C++ マルチスレッド 入門
C++ マルチスレッド 入門
京大 マイコンクラブ
 
C#メタプログラミング概略 in 2021
C#メタプログラミング概略 in 2021C#メタプログラミング概略 in 2021
C#メタプログラミング概略 in 2021
Atsushi Nakamura
 
オブジェクト指向できていますか?
オブジェクト指向できていますか?オブジェクト指向できていますか?
オブジェクト指向できていますか?
Moriharu Ohzu
 
こわくない Git
こわくない Gitこわくない Git
こわくない Git
Kota Saito
 
すごい constexpr たのしくレイトレ!
すごい constexpr たのしくレイトレ!すごい constexpr たのしくレイトレ!
すごい constexpr たのしくレイトレ!
Genya Murakami
 
Docker道場「Dockerの基本概念」0825インフラ勉強会資料
Docker道場「Dockerの基本概念」0825インフラ勉強会資料Docker道場「Dockerの基本概念」0825インフラ勉強会資料
Docker道場「Dockerの基本概念」0825インフラ勉強会資料
Masahito Zembutsu
 
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
Takuya Akiba
 
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
Atsushi Nakamura
 
何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門
masayoshi takahashi
 
冬のLock free祭り safe
冬のLock free祭り safe冬のLock free祭り safe
冬のLock free祭り safe
Kumazaki Hiroki
 
UniTask入門
UniTask入門UniTask入門
UniTask入門
torisoup
 
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノビット エンジン
 
Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]
Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]
Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]
DeNA
 
サイボウズの CI/CD 事情 〜Jenkins おじさんは CircleCI おじさんにしんかした!〜
サイボウズの CI/CD 事情 〜Jenkins おじさんは CircleCI おじさんにしんかした!〜サイボウズの CI/CD 事情 〜Jenkins おじさんは CircleCI おじさんにしんかした!〜
サイボウズの CI/CD 事情 〜Jenkins おじさんは CircleCI おじさんにしんかした!〜
Jumpei Miyata
 
UE4のスレッドの流れとInput Latency改善の仕組み
UE4のスレッドの流れとInput Latency改善の仕組みUE4のスレッドの流れとInput Latency改善の仕組み
UE4のスレッドの流れとInput Latency改善の仕組み
エピック・ゲームズ・ジャパン Epic Games Japan
 
大容量ファイルもGitで管理。 Git LFSの使い方
大容量ファイルもGitで管理。 Git LFSの使い方大容量ファイルもGitで管理。 Git LFSの使い方
大容量ファイルもGitで管理。 Git LFSの使い方
hibiki443
 
Pythonと型チェッカー
Pythonと型チェッカーPythonと型チェッカー
Pythonと型チェッカー
Tetsuya Morimoto
 
DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較
Akihiro Suda
 
Boost.勉強会 #21 札幌「C++1zにstring_viewが導入されてうれしいので紹介します」
Boost.勉強会 #21 札幌「C++1zにstring_viewが導入されてうれしいので紹介します」Boost.勉強会 #21 札幌「C++1zにstring_viewが導入されてうれしいので紹介します」
Boost.勉強会 #21 札幌「C++1zにstring_viewが導入されてうれしいので紹介します」
Hiro H.
 
できる!並列・並行プログラミング
できる!並列・並行プログラミングできる!並列・並行プログラミング
できる!並列・並行プログラミング
Preferred Networks
 
C#メタプログラミング概略 in 2021
C#メタプログラミング概略 in 2021C#メタプログラミング概略 in 2021
C#メタプログラミング概略 in 2021
Atsushi Nakamura
 
オブジェクト指向できていますか?
オブジェクト指向できていますか?オブジェクト指向できていますか?
オブジェクト指向できていますか?
Moriharu Ohzu
 
こわくない Git
こわくない Gitこわくない Git
こわくない Git
Kota Saito
 
すごい constexpr たのしくレイトレ!
すごい constexpr たのしくレイトレ!すごい constexpr たのしくレイトレ!
すごい constexpr たのしくレイトレ!
Genya Murakami
 
Docker道場「Dockerの基本概念」0825インフラ勉強会資料
Docker道場「Dockerの基本概念」0825インフラ勉強会資料Docker道場「Dockerの基本概念」0825インフラ勉強会資料
Docker道場「Dockerの基本概念」0825インフラ勉強会資料
Masahito Zembutsu
 
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
Takuya Akiba
 
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
Atsushi Nakamura
 
何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門
masayoshi takahashi
 
冬のLock free祭り safe
冬のLock free祭り safe冬のLock free祭り safe
冬のLock free祭り safe
Kumazaki Hiroki
 
UniTask入門
UniTask入門UniTask入門
UniTask入門
torisoup
 
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノビット エンジン
 
Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]
Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]
Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]
DeNA
 
サイボウズの CI/CD 事情 〜Jenkins おじさんは CircleCI おじさんにしんかした!〜
サイボウズの CI/CD 事情 〜Jenkins おじさんは CircleCI おじさんにしんかした!〜サイボウズの CI/CD 事情 〜Jenkins おじさんは CircleCI おじさんにしんかした!〜
サイボウズの CI/CD 事情 〜Jenkins おじさんは CircleCI おじさんにしんかした!〜
Jumpei Miyata
 
大容量ファイルもGitで管理。 Git LFSの使い方
大容量ファイルもGitで管理。 Git LFSの使い方大容量ファイルもGitで管理。 Git LFSの使い方
大容量ファイルもGitで管理。 Git LFSの使い方
hibiki443
 
Pythonと型チェッカー
Pythonと型チェッカーPythonと型チェッカー
Pythonと型チェッカー
Tetsuya Morimoto
 
DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較
Akihiro Suda
 

Viewers also liked (15)

家に帰るまでが遠足です
家に帰るまでが遠足です家に帰るまでが遠足です
家に帰るまでが遠足です
Cryolite
 
コルーチンの使い方
コルーチンの使い方コルーチンの使い方
コルーチンの使い方
Naohiro Yoshikawa
 
Allocators@C++11
Allocators@C++11Allocators@C++11
Allocators@C++11
Cryolite
 
Lambda in template_final
Lambda in template_finalLambda in template_final
Lambda in template_final
Cryolite
 
二分探索法で作る再帰呼び出しできるCプリプロセッサマクロ
二分探索法で作る再帰呼び出しできるCプリプロセッサマクロ二分探索法で作る再帰呼び出しできるCプリプロセッサマクロ
二分探索法で作る再帰呼び出しできるCプリプロセッサマクロ
digitalghost
 
C++が仲間になりたそうにこちらを見ている
C++が仲間になりたそうにこちらを見ているC++が仲間になりたそうにこちらを見ている
C++が仲間になりたそうにこちらを見ている
fjnl
 
Unity入門講座その3
Unity入門講座その3Unity入門講座その3
Unity入門講座その3
spi8823
 
クソザコ鳥頭が非順序連想コンテナに入門してみた
クソザコ鳥頭が非順序連想コンテナに入門してみたクソザコ鳥頭が非順序連想コンテナに入門してみた
クソザコ鳥頭が非順序連想コンテナに入門してみた
Mitsuru Kariya
 
普段C#を使っている僕から見たKotlin
普段C#を使っている僕から見たKotlin普段C#を使っている僕から見たKotlin
普段C#を使っている僕から見たKotlin
Ryota Murohoshi
 
Unity入門講座その1
Unity入門講座その1Unity入門講座その1
Unity入門講座その1
spi8823
 
個人開発でゲーム一本完成させるまでの苦難の道のり 〜企画編〜
個人開発でゲーム一本完成させるまでの苦難の道のり 〜企画編〜個人開発でゲーム一本完成させるまでの苦難の道のり 〜企画編〜
個人開発でゲーム一本完成させるまでの苦難の道のり 〜企画編〜
narumi_
 
【 #Unity会 】このUnityがすごい2015年版
【 #Unity会 】このUnityがすごい2015年版【 #Unity会 】このUnityがすごい2015年版
【 #Unity会 】このUnityがすごい2015年版
ui nyan
 
家に帰るまでが遠足です
家に帰るまでが遠足です家に帰るまでが遠足です
家に帰るまでが遠足です
Cryolite
 
Allocators@C++11
Allocators@C++11Allocators@C++11
Allocators@C++11
Cryolite
 
Lambda in template_final
Lambda in template_finalLambda in template_final
Lambda in template_final
Cryolite
 
二分探索法で作る再帰呼び出しできるCプリプロセッサマクロ
二分探索法で作る再帰呼び出しできるCプリプロセッサマクロ二分探索法で作る再帰呼び出しできるCプリプロセッサマクロ
二分探索法で作る再帰呼び出しできるCプリプロセッサマクロ
digitalghost
 
C++が仲間になりたそうにこちらを見ている
C++が仲間になりたそうにこちらを見ているC++が仲間になりたそうにこちらを見ている
C++が仲間になりたそうにこちらを見ている
fjnl
 
Unity入門講座その3
Unity入門講座その3Unity入門講座その3
Unity入門講座その3
spi8823
 
クソザコ鳥頭が非順序連想コンテナに入門してみた
クソザコ鳥頭が非順序連想コンテナに入門してみたクソザコ鳥頭が非順序連想コンテナに入門してみた
クソザコ鳥頭が非順序連想コンテナに入門してみた
Mitsuru Kariya
 
普段C#を使っている僕から見たKotlin
普段C#を使っている僕から見たKotlin普段C#を使っている僕から見たKotlin
普段C#を使っている僕から見たKotlin
Ryota Murohoshi
 
Unity入門講座その1
Unity入門講座その1Unity入門講座その1
Unity入門講座その1
spi8823
 
個人開発でゲーム一本完成させるまでの苦難の道のり 〜企画編〜
個人開発でゲーム一本完成させるまでの苦難の道のり 〜企画編〜個人開発でゲーム一本完成させるまでの苦難の道のり 〜企画編〜
個人開発でゲーム一本完成させるまでの苦難の道のり 〜企画編〜
narumi_
 
【 #Unity会 】このUnityがすごい2015年版
【 #Unity会 】このUnityがすごい2015年版【 #Unity会 】このUnityがすごい2015年版
【 #Unity会 】このUnityがすごい2015年版
ui nyan
 

More from Cryolite (7)

A Fast and Space-Efficient Algorithm for Calculating Deficient Numbers (a.k.a...
A Fast and Space-Efficient Algorithm for Calculating Deficient Numbers (a.k.a...A Fast and Space-Efficient Algorithm for Calculating Deficient Numbers (a.k.a...
A Fast and Space-Efficient Algorithm for Calculating Deficient Numbers (a.k.a...
Cryolite
 
A Fast and Space-Efficient Algorithm for Calculating Deficient Numbers (a.k.a...
A Fast and Space-Efficient Algorithm for Calculating Deficient Numbers (a.k.a...A Fast and Space-Efficient Algorithm for Calculating Deficient Numbers (a.k.a...
A Fast and Space-Efficient Algorithm for Calculating Deficient Numbers (a.k.a...
Cryolite
 
Destructive Call
Destructive CallDestructive Call
Destructive Call
Cryolite
 
Boost.PropertyMap (.pptx)
Boost.PropertyMap (.pptx)Boost.PropertyMap (.pptx)
Boost.PropertyMap (.pptx)
Cryolite
 
Boost.PropertyMap (.pdf)
Boost.PropertyMap (.pdf)Boost.PropertyMap (.pdf)
Boost.PropertyMap (.pdf)
Cryolite
 
shared_ptr & weak_ptr (ppt 第2版, DL 専用)
shared_ptr & weak_ptr (ppt 第2版, DL 専用)shared_ptr & weak_ptr (ppt 第2版, DL 専用)
shared_ptr & weak_ptr (ppt 第2版, DL 専用)
Cryolite
 
shared_ptr & weak_ptr (ppt 初版, DL 専用)
shared_ptr & weak_ptr (ppt 初版, DL 専用)shared_ptr & weak_ptr (ppt 初版, DL 専用)
shared_ptr & weak_ptr (ppt 初版, DL 専用)
Cryolite
 
A Fast and Space-Efficient Algorithm for Calculating Deficient Numbers (a.k.a...
A Fast and Space-Efficient Algorithm for Calculating Deficient Numbers (a.k.a...A Fast and Space-Efficient Algorithm for Calculating Deficient Numbers (a.k.a...
A Fast and Space-Efficient Algorithm for Calculating Deficient Numbers (a.k.a...
Cryolite
 
A Fast and Space-Efficient Algorithm for Calculating Deficient Numbers (a.k.a...
A Fast and Space-Efficient Algorithm for Calculating Deficient Numbers (a.k.a...A Fast and Space-Efficient Algorithm for Calculating Deficient Numbers (a.k.a...
A Fast and Space-Efficient Algorithm for Calculating Deficient Numbers (a.k.a...
Cryolite
 
Destructive Call
Destructive CallDestructive Call
Destructive Call
Cryolite
 
Boost.PropertyMap (.pptx)
Boost.PropertyMap (.pptx)Boost.PropertyMap (.pptx)
Boost.PropertyMap (.pptx)
Cryolite
 
Boost.PropertyMap (.pdf)
Boost.PropertyMap (.pdf)Boost.PropertyMap (.pdf)
Boost.PropertyMap (.pdf)
Cryolite
 
shared_ptr & weak_ptr (ppt 第2版, DL 専用)
shared_ptr & weak_ptr (ppt 第2版, DL 専用)shared_ptr & weak_ptr (ppt 第2版, DL 専用)
shared_ptr & weak_ptr (ppt 第2版, DL 専用)
Cryolite
 
shared_ptr & weak_ptr (ppt 初版, DL 専用)
shared_ptr & weak_ptr (ppt 初版, DL 専用)shared_ptr & weak_ptr (ppt 初版, DL 専用)
shared_ptr & weak_ptr (ppt 初版, DL 専用)
Cryolite
 

左と右の話