回答編集履歴
4
削除したかった
test
CHANGED
@@ -8,4 +8,4 @@
|
|
8
8
|
|
9
9
|
|
10
10
|
|
11
|
-
!!x ではなく
|
11
|
+
!!x ではなく x != 0 がよい書き方ですね。xがbool型なら x != false 、xがポインタ型なら x != nullptr でしょうが。
|
3
削除したかった
test
CHANGED
@@ -1,3 +1,11 @@
|
|
1
1
|
C++はよく知らないのでこんな難しい議論を完全に理解はできないですが。
|
2
2
|
|
3
3
|
C言語では、私は(値が0,1のどちらかとは限らない)変数xをブール値に返還するとき !!x と書いたことが多かったです(整数型やポインタ型に対して)が、C++ではせっかくboolが使えるのに、コンパイラは「「!」がオーバーロードされているかもしれない」と最適化してくれなさそうなところが気がかりです。
|
4
|
+
|
5
|
+
|
6
|
+
|
7
|
+
削除したかったのですが、削除できない仕様だそうなので。
|
8
|
+
|
9
|
+
|
10
|
+
|
11
|
+
!!x ではなく X != false がよい書き方ですね。
|
2
余計なコメントを削除しました。
test
CHANGED
@@ -1,13 +1,3 @@
|
|
1
1
|
C++はよく知らないのでこんな難しい議論を完全に理解はできないですが。
|
2
2
|
|
3
3
|
C言語では、私は(値が0,1のどちらかとは限らない)変数xをブール値に返還するとき !!x と書いたことが多かったです(整数型やポインタ型に対して)が、C++ではせっかくboolが使えるのに、コンパイラは「「!」がオーバーロードされているかもしれない」と最適化してくれなさそうなところが気がかりです。
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
クラスAの代入演算子のオーバーロードをやった後、別のオーバーロードとして
|
8
|
-
|
9
|
-
const A& operator=( const A& a ) const;
|
10
|
-
|
11
|
-
てのが作れる、と知ったときは驚きました。
|
12
|
-
|
13
|
-
「代入」というイメージを壊してはいけないので、 thisで初期化される A * const pseudothis というメンバを作って *pseudothis に代入する処理を書けば何とかなります。
|
1
誤字訂正+追記
test
CHANGED
@@ -6,6 +6,8 @@
|
|
6
6
|
|
7
7
|
クラスAの代入演算子のオーバーロードをやった後、別のオーバーロードとして
|
8
8
|
|
9
|
-
A& operator=( const A& a ) const;
|
9
|
+
const A& operator=( const A& a ) const;
|
10
10
|
|
11
|
-
|
11
|
+
てのが作れる、と知ったときは驚きました。
|
12
|
+
|
13
|
+
「代入」というイメージを壊してはいけないので、 thisで初期化される A * const pseudothis というメンバを作って *pseudothis に代入する処理を書けば何とかなります。
|