try 〜 catchで、
・throwされる型のコピー/ムーブ コンストラクタ/代入演算子がアクセス不能な場合
・同じ型のreference, const referenceが同時にcatchされている場合
の挙動がよくわからん。
とりあえず
・コピーもムーブも可能な場合
(copy constructible, copy assignable, move constructible, move assignable)
同じ型のreference, const referenceが同時にcatchされていても上の方で
catchされる
→ まぁこれはわかる
・コピーができない場合(move constructible, move assignable)
値渡しのcatchがあるとコンパイルエラー
referenceのcatchとconst referenceのcatch両方あると上の方でcatchされる
catchされるときにムーブコンストラクタ/代入演算子は呼ばれていない
→ これもわかる
・コピーもムーブもできない場合
値渡しのcatchは当然コンパイルエラー
referenceのcatchとconst referenceのcatchもコンパイルエラーになる
→これがわからない。
 ムーブのみ可能なときにムーブコンストラクタ/代入演算子呼ばれてないのに
 なんでムーブ禁止するとコンパイルエラーになるねん。
C++標準でどう決まっているとか詳しい説明できる方いませんか。
なお上記実験で使ったコンパイラはclang。