C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ
C++相談室 part149
https://mevius.5ch.net/test/read.cgi/tech/1581974381/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.105【環境依存OK】
http://mevius.5ch.net/test/read.cgi/tech/1556142878/
■長いソースを貼るときはここへ。■
http://codepad.org/
https://ideone.com/
[C++ FAQ]
https://isocpp.org/wiki/faq/
http://www.bohyoh.com/CandCPP/FAQ/ (日本語)
テンプレここまで
探検
C++相談室 part150
■ このスレッドは過去ログ倉庫に格納されています
2020/03/24(火) 00:04:33.93ID:YFRNwZnv
2020/03/24(火) 02:17:13.57ID:9OEj9KSc
「ちんちんプラプラソーセージ」という言い伝えがあるがの、
それは、「C + + 双生児」、つまり、C++と双璧をなす言語の出現を予言したものだったのだよ。
それは、「C + + 双生児」、つまり、C++と双璧をなす言語の出現を予言したものだったのだよ。
2020/03/24(火) 13:19:52.34ID:j37mJqK4
STLつかうと一気に実行ファイルサイズが10倍に?!
環境によるだろ。
俺はBorland-C++5.6.2に -D_RTLDLL オプションを指定して、極力
ランタイムを使用するようにして使っているが、例えばstd::vectorを
使っても使わない時と比べ10Kほどしか増えない
すげえ。ダイナミックリンクしといてファイルサイズが増えないとかいってるよ。この人。
C1010: プリコンパイル済みヘッダーの検索中に予期しない EOF を検出しました。
とかいうエラーが出るんだけどこれってどうすればいいの?
#include <stdafx.h>
後死ね。
言葉が悪いな。それで教えているつもりか。
まぁヒントぐらいにはなったな。
うむごくろう。
---- テンプレ ここまで ----
環境によるだろ。
俺はBorland-C++5.6.2に -D_RTLDLL オプションを指定して、極力
ランタイムを使用するようにして使っているが、例えばstd::vectorを
使っても使わない時と比べ10Kほどしか増えない
すげえ。ダイナミックリンクしといてファイルサイズが増えないとかいってるよ。この人。
C1010: プリコンパイル済みヘッダーの検索中に予期しない EOF を検出しました。
とかいうエラーが出るんだけどこれってどうすればいいの?
#include <stdafx.h>
後死ね。
言葉が悪いな。それで教えているつもりか。
まぁヒントぐらいにはなったな。
うむごくろう。
---- テンプレ ここまで ----
2020/03/24(火) 14:30:36.92ID:dZNjE6fy
すげーSTLで外出しされると思ってる馬鹿がいるぞ
https://mevius.5ch.net/test/read.cgi/tech/1581974381/937
https://ideone.com/Jso95a
江添さんが間違って「末尾再帰である」と断定した記述方法 f() を、
正しく末尾再帰で記述すると g() になります。
これを最適化して h() とするのには、関数 g() を特別に解析することなく機械的に変換するだけでいいのです
最適化に機械的に変換するだけでいい、というのが末尾再帰の本質です
したがって >>934 の制限は妥当でしょうね
https://ideone.com/Jso95a
江添さんが間違って「末尾再帰である」と断定した記述方法 f() を、
正しく末尾再帰で記述すると g() になります。
これを最適化して h() とするのには、関数 g() を特別に解析することなく機械的に変換するだけでいいのです
最適化に機械的に変換するだけでいい、というのが末尾再帰の本質です
したがって >>934 の制限は妥当でしょうね
2020/03/25(水) 07:20:29.52ID:2w2fR+tZ
941 自分:デフォルトの名無しさん[sage] 投稿日:2020/03/21(土) 19:59:14.68 ID:uResqVEz [3/3]
「末尾再帰」という情報処理用語を定義しているJIS規格票もしくは
"tail recursion" という情報処理用語を定義しているISO規格票の
条項を出せるやついるの?
これだけ上から目線でマウント取っといて
あげくオレ用語だったら恥ずかしいぞ
「末尾再帰」という情報処理用語を定義しているJIS規格票もしくは
"tail recursion" という情報処理用語を定義しているISO規格票の
条項を出せるやついるの?
これだけ上から目線でマウント取っといて
あげくオレ用語だったら恥ずかしいぞ
7はちみつ餃子 ◆8X2XSCHEME
2020/03/25(水) 17:42:48.23ID:lGt7vmdl JIS X 0007 に「再帰」に関連するいくつかの用語があるけど、
その周辺に「末尾再帰」は書かれていないので情報処理用語の規格として
定義されたものはたぶんないんだろうと思う。
用語として定義されてはいないけど、
DSSSL の規格 (JISX4153) に「実装は、正しく末尾再帰を扱えなければならない」という文言として
現れているのは見つけた。
DSSSL がベースにしているのが R4RS (← Scheme の規格の第4版の通称) であることも書いてあるから
ここでいう末尾再帰は R4RS が言う末尾再帰だと考えていいと思う。
だけど R4RS だとどういう場合が末尾再帰なのかようわからんのよなぁ。
(形式的意味論で書いてあるところを読み解ける人にはわかるのかもしれない。)
R5RS 以降だとだいぶん分かりやすく書いてあるんだけど。
その周辺に「末尾再帰」は書かれていないので情報処理用語の規格として
定義されたものはたぶんないんだろうと思う。
用語として定義されてはいないけど、
DSSSL の規格 (JISX4153) に「実装は、正しく末尾再帰を扱えなければならない」という文言として
現れているのは見つけた。
DSSSL がベースにしているのが R4RS (← Scheme の規格の第4版の通称) であることも書いてあるから
ここでいう末尾再帰は R4RS が言う末尾再帰だと考えていいと思う。
だけど R4RS だとどういう場合が末尾再帰なのかようわからんのよなぁ。
(形式的意味論で書いてあるところを読み解ける人にはわかるのかもしれない。)
R5RS 以降だとだいぶん分かりやすく書いてあるんだけど。
2020/03/25(水) 18:35:34.29ID:iLx6+8HG
8コアマシンでninja -j4 -l4すると固まるんだけどninja何してんの
2020/03/25(水) 19:58:22.06ID:qvXjJ9lz
汚いことに決まってんだろ
2020/03/25(水) 21:43:33.64ID:JWtS3Wj0
アイエエエエエ
2020/03/25(水) 21:45:30.88ID:uGR4bFBq
ninjaずるい
2020/03/25(水) 21:50:47.15ID:lUBLXJbP
ninjaだいすき
2020/03/26(木) 00:08:16.23ID:fd5gxTEt
忍者だが、電車に乗っていたら下痢したのでそおっと席を立ち駅に向かったらしい
2020/03/26(木) 03:05:23.06ID:7mWqVwqc
汚いなさすが忍者きたない
15デフォルトの名無しさん
2020/03/27(金) 12:47:40.21ID:yDbWAejo 禿げや江添さん見て分かる通り。
禿げてる。
禿げてる。
2020/03/27(金) 21:04:21.22ID:MA/4mtFY
禿が作った言語は長生きするんだっけ?
2020/03/27(金) 22:52:04.36ID:eQxgR1y2
ウルセー ハゲハダマッテロ
∧___∧ / / / /
⊂( ・∀・) 、,Jし // パン
(几と ノ ) て.彡⌒ ミ
//'|ヽソ 彡 Y⌒Y( ´;ω;`)
/ノ / | \ 彡 l r Y i|
ヽ/、/ヽ/ ヽ/ U>>3|:_|j
∧___∧ / / / /
⊂( ・∀・) 、,Jし // パン
(几と ノ ) て.彡⌒ ミ
//'|ヽソ 彡 Y⌒Y( ´;ω;`)
/ノ / | \ 彡 l r Y i|
ヽ/、/ヽ/ ヽ/ U>>3|:_|j
2020/03/28(土) 02:01:55.47ID:8uQkqVES
髭だろ
ハゲが作った言語なんてc++しか思い浮かばない
ハゲが作った言語なんてc++しか思い浮かばない
19デフォルトの名無しさん
2020/03/28(土) 09:50:32.23ID:laMmnOq7 ハゲが作った移動通信会社なんて知らない
20デフォルトの名無しさん
2020/03/28(土) 16:10:38.05ID:jYzb+dLM Visual Studio C++ 2019 にて、パフォーマンスプロファイラーを使うと、
__CheckForDebuggerJustMyCode
という関数が呼び出されていて結構な負荷になっています。
デバッグ時にこれをOFFにしたいのですが、どうやって消せばよろしいのでしょうか?
__CheckForDebuggerJustMyCode
という関数が呼び出されていて結構な負荷になっています。
デバッグ時にこれをOFFにしたいのですが、どうやって消せばよろしいのでしょうか?
21はちみつ餃子 ◆8X2XSCHEME
2020/03/28(土) 16:39:28.55ID:FOAUxWzd >>20
私は Visual Studio を導入していないので試してないけど公式な情報があるやが。
https://docs.microsoft.com/ja-jp/cpp/build/reference/jmc?view=vs-2019
私は Visual Studio を導入していないので試してないけど公式な情報があるやが。
https://docs.microsoft.com/ja-jp/cpp/build/reference/jmc?view=vs-2019
22デフォルトの名無しさん
2020/03/28(土) 17:20:15.83ID:jYzb+dLM 江添氏 C++ 入門にまた誤りを見つけました
https://ezoeryou.github.io/cpp-intro/#nannot-a-number
> int main() {
> double NaN = std::numeric_limits<double>::quiet_NaN() ;
> // true
> bool b = NaN != 0.0 ;
> // false
> bool a = NaN == 0.0 ;
> bool c = NaN == NaN ;
> bool d = NaN != NaN ;
> bool e = NaN < 0.0 ;
>}
こちらで試してみると、bool c = NaN != NaN の値は true でした。
https://ideone.com/dzmyeq
>整数であれば、'a == b'がfalseであるならば、'a != b'なのだと仮定してもよいが、こと浮動小数点数の場合、NaNの存在があるために必ずしもそうとは限らない。
残念ながら、a, b, のいずれかまたは両方が Nan であっても、a == b が false ならば a != b true であることを確かめました
江添さん、だいじょうぶですかね?
https://ezoeryou.github.io/cpp-intro/#nannot-a-number
> int main() {
> double NaN = std::numeric_limits<double>::quiet_NaN() ;
> // true
> bool b = NaN != 0.0 ;
> // false
> bool a = NaN == 0.0 ;
> bool c = NaN == NaN ;
> bool d = NaN != NaN ;
> bool e = NaN < 0.0 ;
>}
こちらで試してみると、bool c = NaN != NaN の値は true でした。
https://ideone.com/dzmyeq
>整数であれば、'a == b'がfalseであるならば、'a != b'なのだと仮定してもよいが、こと浮動小数点数の場合、NaNの存在があるために必ずしもそうとは限らない。
残念ながら、a, b, のいずれかまたは両方が Nan であっても、a == b が false ならば a != b true であることを確かめました
江添さん、だいじょうぶですかね?
失礼
×bool c = NaN != NaN の値は true でした。
○bool d = NaN != NaN の値は true でした。
訂正箇所は他にはなく、「a == b が false ならば a != b true であることは、double a, b が NaN であってもいえる」
×bool c = NaN != NaN の値は true でした。
○bool d = NaN != NaN の値は true でした。
訂正箇所は他にはなく、「a == b が false ならば a != b true であることは、double a, b が NaN であってもいえる」
2020/03/28(土) 23:03:59.81ID:TAn8n6A3
3/14は円周率の日
とくに2015年はアメリカ式日付表記で3/14/15なので100年に1回だったという、
■ Googleの円周率31兆4000億桁までの計算について、きちんと解説
https://www.blog.umentu.work/google-circle-3-14/
■ 多倍長計算の技法(3章)
http://www.kurims.kyoto-u.ac.jp/~ooura/pi04.pdf
とくに2015年はアメリカ式日付表記で3/14/15なので100年に1回だったという、
■ Googleの円周率31兆4000億桁までの計算について、きちんと解説
https://www.blog.umentu.work/google-circle-3-14/
■ 多倍長計算の技法(3章)
http://www.kurims.kyoto-u.ac.jp/~ooura/pi04.pdf
2020/03/28(土) 23:04:23.60ID:TAn8n6A3
誤爆すたorz
2020/03/29(日) 00:16:32.66ID:t2YV962W
江添のことはほっといてやれよ。。
2020/03/29(日) 01:26:13.46ID:sawiSEmu
>>23-24 少しでも被害者を減らすために issue 立てといてもらえませんかね?
2020/03/29(日) 01:55:28.30ID:tSgWoZoj
村上原野が死亡。
Sprout はど〜なっちゃうの〜
Sprout はど〜なっちゃうの〜
30デフォルトの名無しさん
2020/03/29(日) 01:57:11.38ID:KAJzXRPk デザインパターンのブリッジパターンやストラテジパターンのようなケースで
インターフェースクラスを継承して実装クラスを作る場合、
class If() /* interface */
{
public:
If() {}
virtual ~If*( {}
virtual void func() {}
};
class Impl() : public If
{
public:
Impl() {}
~Impl() {}
void func() {}
};
のようにすると思いますが、Implクラスをさらに基底クラス(ImplBase)と2種類の派生クラス(ImplA, ImplB)に分けたい場合、
多重継承以外でやるには、どうするのが良いでしょうか?
まず If を ImplBase に継承させて、次に ImplBase を ImplA と ImplB に継承させる事になるでしょうか?
その場合、純粋仮想関数func()はどのように書くべきでしょうか? ImplBase も virtual void func()としておいて
ImplA で実装するのでしょうか?
インターフェースクラスを継承して実装クラスを作る場合、
class If() /* interface */
{
public:
If() {}
virtual ~If*( {}
virtual void func() {}
};
class Impl() : public If
{
public:
Impl() {}
~Impl() {}
void func() {}
};
のようにすると思いますが、Implクラスをさらに基底クラス(ImplBase)と2種類の派生クラス(ImplA, ImplB)に分けたい場合、
多重継承以外でやるには、どうするのが良いでしょうか?
まず If を ImplBase に継承させて、次に ImplBase を ImplA と ImplB に継承させる事になるでしょうか?
その場合、純粋仮想関数func()はどのように書くべきでしょうか? ImplBase も virtual void func()としておいて
ImplA で実装するのでしょうか?
2020/03/29(日) 02:19:11.85ID:p3fh4h77
constexprの中二女子亡くなってたのか・・・
2020/03/29(日) 02:26:21.63ID:p3fh4h77
2020/03/29(日) 08:26:45.65ID:zFUy7lJg
>>29
え、持病でもあったの?
え、持病でもあったの?
2020/03/29(日) 09:05:51.82ID:GFdzppn9
中二で死ぬって早すぎないか
2020/03/29(日) 10:02:27.83ID:+/sFre8I
>>23
NaNが「不定」を意味するなら、理論的には
> // false
> bool c = NaN == NaN ;
> bool d = NaN != NaN ;
が正しいんだろう
仕様は上のようになってて、実装依存ということはないか?
NaNが「不定」を意味するなら、理論的には
> // false
> bool c = NaN == NaN ;
> bool d = NaN != NaN ;
が正しいんだろう
仕様は上のようになってて、実装依存ということはないか?
2020/03/29(日) 10:26:02.28ID:zyhHBMyS
NaNとの!=以外の比較演算は常にfalse、!=は常にtrue
ってするのが普通みたいだけど
ってするのが普通みたいだけど
2020/03/29(日) 10:36:40.12ID:oQB7eLYm
そもそも非数に「等しい」なんて場合があるのか?
数学的におかしくね?
数学的におかしくね?
2020/03/29(日) 10:49:11.16ID:+/sFre8I
本来は「非数」なら「等しくない」も議論できない気がするのでなんとも
0/0->NaNなら「不定」と解釈してもおかしくないし、その場合、
NaN!=NaNは「ほとんどの場合に正しい」としか言えない
0/0->NaNなら「不定」と解釈してもおかしくないし、その場合、
NaN!=NaNは「ほとんどの場合に正しい」としか言えない
2020/03/29(日) 11:12:19.09ID:CNNBvMSR
!=は==の否定だから、NaN == NaNはfalseなので
NaN != NaN -> !(NaN == NaN) はtrue
ほかの等値比較の意味論に合わせてるんだと
NaN != NaN -> !(NaN == NaN) はtrue
ほかの等値比較の意味論に合わせてるんだと
2020/03/29(日) 11:22:58.32ID:sawiSEmu
>>35
std::numeric_limits<T>::is_iec559 (IEEE 754) の場合は NaN!=NaN に定まる模様。
https://stackoverflow.com/questions/38798791/nan-comparison-rule-in-c-c
> I read the IEEE-754 rules on NaN, which states:
>> The comparisons EQ, GT, GE, LT, and LE, when either or both operands is NaN returns FALSE.
>> The comparison NE, when either or both operands is NaN returns TRUE.
C++の規定はこう。
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/n4849.pdf [expr.eq]
(C++14でも同じ https://timsong-cpp.github.io/cppwp/n4140/expr.eq#5 )
> If two operands compare equal, the result is true for the == operator
> and false for the != operator. If two operands compare unequal,
> the result is false for the == operator and true for the != operator.
> Otherwise, the result of each of the operators is unspecified.
これだけなら「equalでもunequalでもない」として結果を不定とする実装もあり得る。
ただしCの規定には以下のものがある。
http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2454.pdf Equality operators
> The == (equal to) and != (not equal to) operators are ...
> For any pair of operands, exactly one of the relations is true.
これによれば NaN==NaN, NaN!=NaN を両方 false とするCの実装は許されない。
わざわざこれに反するようなC++の実装が作られる理由は無さそうだし、受け入れられることも無さそう。
std::numeric_limits<T>::is_iec559 (IEEE 754) の場合は NaN!=NaN に定まる模様。
https://stackoverflow.com/questions/38798791/nan-comparison-rule-in-c-c
> I read the IEEE-754 rules on NaN, which states:
>> The comparisons EQ, GT, GE, LT, and LE, when either or both operands is NaN returns FALSE.
>> The comparison NE, when either or both operands is NaN returns TRUE.
C++の規定はこう。
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/n4849.pdf [expr.eq]
(C++14でも同じ https://timsong-cpp.github.io/cppwp/n4140/expr.eq#5 )
> If two operands compare equal, the result is true for the == operator
> and false for the != operator. If two operands compare unequal,
> the result is false for the == operator and true for the != operator.
> Otherwise, the result of each of the operators is unspecified.
これだけなら「equalでもunequalでもない」として結果を不定とする実装もあり得る。
ただしCの規定には以下のものがある。
http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2454.pdf Equality operators
> The == (equal to) and != (not equal to) operators are ...
> For any pair of operands, exactly one of the relations is true.
これによれば NaN==NaN, NaN!=NaN を両方 false とするCの実装は許されない。
わざわざこれに反するようなC++の実装が作られる理由は無さそうだし、受け入れられることも無さそう。
2020/03/29(日) 13:05:33.90ID:0VKwdtls
ieee754の書き方が難しすぎて何処をどう読めばNaN!=NaNになるのか分からん…
2020/03/29(日) 13:28:15.35ID:oQB7eLYm
現実は>>39なんだろうけど
原理主義的にはNaNの比較は例外を投げるべき
原理主義的にはNaNの比較は例外を投げるべき
43デフォルトの名無しさん
2020/03/29(日) 13:57:09.44ID:vg0TAzW0 NaNを無限と言い換えて数学的な議論をするしかない
2020/03/29(日) 15:32:11.50ID:nDbo81n4
みんな大好き超準解析、
2020/03/29(日) 15:32:36.22ID:CNNBvMSR
2020/03/29(日) 16:10:11.53ID:p3fh4h77
江添が悪い
たぶんx==xが常に真になるとは限らない(xがNaNの場合)って話を間違えて覚えてたんだろ
たぶんx==xが常に真になるとは限らない(xがNaNの場合)って話を間違えて覚えてたんだろ
2020/03/29(日) 17:54:48.32ID:oQB7eLYm
江添氏はブログを立てて不特定多数の一般人からの指摘を待っている
誤りの指摘はそこでやれ、それが「被害者を減らす」ことにつながる
江添が見ている保証のないこんなところで正義面しても
そういう筋が何もわかっちゃいないやつというだけだ
誤りの指摘はそこでやれ、それが「被害者を減らす」ことにつながる
江添が見ている保証のないこんなところで正義面しても
そういう筋が何もわかっちゃいないやつというだけだ
51はちみつ餃子 ◆8X2XSCHEME
2020/03/29(日) 18:27:59.62ID:tSgWoZoj 本当に間違っているという確信がなくて事前に相談するってのならまあそれもいいんじゃないの。
52デフォルトの名無しさん
2020/03/29(日) 18:41:01.14ID:xWXht+2h 江添さんに聞くのが一番速い。
2020/03/29(日) 22:23:18.41ID:6MT5MhMu
ここ見てそうだしな
2020/03/30(月) 00:19:48.36ID:DkauJosI
あの人もうスノボに夢中でC++に興味なさそう
2020/03/30(月) 01:01:09.51ID:PZnOEjGK
C++なんかやってるのにスノボもやってるのか異端だな
2020/03/30(月) 09:52:17.47ID:6jBFblvz
githubのissue放置してるじゃん
2020/03/30(月) 13:41:16.50ID:hh56tBZl
ベクトルが二つあって重複部分を差分取得になるように結合したいです
in
1,2,3,4
3,4,5,6
out
1,2,3,4,5,6
重複がなければそのまま結合でいいです
in
1,2,3,4
3,4,5,6
out
1,2,3,4,5,6
重複がなければそのまま結合でいいです
58デフォルトの名無しさん
2020/03/30(月) 19:24:54.69ID:ubfGsS+F std::sort
std::unique
std::set_union
std::unique
std::set_union
2020/03/30(月) 19:28:43.95ID:Oymj8mf6
>>57
その程度なら、ネットで検索して見つからないようなら、手で書いたほうが早いね。
2つの列を共にソートしたあと、マージソートの様に左端から順に比較して同じなら
1つ分だけ dest にコピーするようにすれば良いだけ。
その程度なら、ネットで検索して見つからないようなら、手で書いたほうが早いね。
2つの列を共にソートしたあと、マージソートの様に左端から順に比較して同じなら
1つ分だけ dest にコピーするようにすれば良いだけ。
2020/03/30(月) 19:44:49.89ID:UMPMfaDu
標準委員から無視されていじけてるんだろう。ショーもねー奴だよ。
2020/03/31(火) 00:16:01.43ID:FylkZaNQ
new, deleteとか手動でやるのはもう古すぎて使わない?スマートポインタ使うのが普通?
2020/03/31(火) 01:00:25.49ID:oKg2nb+1
必要な時は使えばいいと思うけど自分は全く使わなくなった
2020/03/31(火) 01:34:17.99ID:s0jfH2wf
初めてクラスを使ったのですが、forループの中で関数のように使う場合には
1. 毎回デフォルトコンストラクタに引数を食わせて初期化してからgetterで計算する
2. 初期化はループの外でして置いてループ内ではsetterなどで引数を読み込ませてからgetterで計算する
どちらの方が良いんですかね?
あと、あるメンバ変数に連動したメンバ変数みたいなものって作れますか?
int _a
int _b = _a / 2みたいなものです
1. 毎回デフォルトコンストラクタに引数を食わせて初期化してからgetterで計算する
2. 初期化はループの外でして置いてループ内ではsetterなどで引数を読み込ませてからgetterで計算する
どちらの方が良いんですかね?
あと、あるメンバ変数に連動したメンバ変数みたいなものって作れますか?
int _a
int _b = _a / 2みたいなものです
2020/03/31(火) 01:43:07.29ID:oKg2nb+1
後半の方はint getHalfA()みたいなメンバ関数を設ければいい
前半は関数オブジェクトのこと?何言ってんのかわからん
前半は関数オブジェクトのこと?何言ってんのかわからん
2020/03/31(火) 03:22:08.29ID:Yt3qMdaP
>>63
1,2は、速度面以外ではどちらでもいいが、速度を重視するなら2。
なお、getter, setter は元々、巨大なプログラムでバグを減らすために発明されたようなものだから、小さいプログラムでは特に使う必要は無い。
1,2は、速度面以外ではどちらでもいいが、速度を重視するなら2。
なお、getter, setter は元々、巨大なプログラムでバグを減らすために発明されたようなものだから、小さいプログラムでは特に使う必要は無い。
2020/03/31(火) 03:28:43.09ID:Yt3qMdaP
>>65
C#では、getter, setter を凄く高頻度で使ってもいいような設計思想なのかもしれないが、かなり意見が分かれるところ。
クラスを保護する目的では使っても良いが、普通の代入とは動作を変えてしまいすぎる
ようなものは想定した動作との勘違いによる逆にバグの元になる可能性があるのでお勧めしない。
使い道があるのは、代入箇所や読み取り箇所の動作の変更を手作業や grep 置換に頼らずに確実に行いたいような場合だと思うが、小規模なプログラムでは単純に手作業や grep 置換で直した方がよい。
新しい機能は大宣伝されるので初心者が飛び付きがちだが、実は余り普段は使わないほうが良い機能であることもかなり多いので注意。
C#では、getter, setter を凄く高頻度で使ってもいいような設計思想なのかもしれないが、かなり意見が分かれるところ。
クラスを保護する目的では使っても良いが、普通の代入とは動作を変えてしまいすぎる
ようなものは想定した動作との勘違いによる逆にバグの元になる可能性があるのでお勧めしない。
使い道があるのは、代入箇所や読み取り箇所の動作の変更を手作業や grep 置換に頼らずに確実に行いたいような場合だと思うが、小規模なプログラムでは単純に手作業や grep 置換で直した方がよい。
新しい機能は大宣伝されるので初心者が飛び付きがちだが、実は余り普段は使わないほうが良い機能であることもかなり多いので注意。
67デフォルトの名無しさん
2020/03/31(火) 08:10:50.56ID:Zjo4xAEk2020/03/31(火) 10:02:16.71ID:OTxurRkT
>>63
そういう問題を自分が求めるパフォーマンスレベルに最適化できる(やらなきゃならん)のがc++だぞ。
そういう問題を自分が求めるパフォーマンスレベルに最適化できる(やらなきゃならん)のがc++だぞ。
69はちみつ餃子 ◆8X2XSCHEME
2020/03/31(火) 10:16:06.05ID:Ow5tuxOJ >>63
デフォルトコンストラクタは引数をとらないコンストラクタのことなのでなんか勘違いしてるぞ。
実行コストか抽象化の都合でどうしても事前にしなければならないことがあるなら 2 の選択肢しかないし、
そうでないときはクラスにする意味がないので普通の関数で書けばよくねって思う。
そのふたつの選択肢の間で迷わなければならない場面というのが既になんかおかしい状態に入り込んでる気がする。
デフォルトコンストラクタは引数をとらないコンストラクタのことなのでなんか勘違いしてるぞ。
実行コストか抽象化の都合でどうしても事前にしなければならないことがあるなら 2 の選択肢しかないし、
そうでないときはクラスにする意味がないので普通の関数で書けばよくねって思う。
そのふたつの選択肢の間で迷わなければならない場面というのが既になんかおかしい状態に入り込んでる気がする。
2020/03/31(火) 10:34:43.57ID:6MgwCPiX
c++使いなら速度を追求しろ
速度こそ正義だ
速度こそ正義だ
2020/03/31(火) 12:31:40.67ID:b6kPBFRe
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「もうキモくてキモくて…」29歳女性が語る“おぢアタック”の実態。「俺ならイケるかも」年下女性を狙う勘違い中年男性に共通点が★2 [Hitzeschleier★]
- 日本語が話せない「外国籍」の子が急増中、授業がストップ、教室から脱走も…先生にも大きな負担「日本語支援」追いつかず [七波羅探題★]
- 【女子カーリング】五輪出場決定!女子日本代表の「フォルティウス」チーム名は「より強く」の意味 [征夷大将軍★]
- 自ら「パンセクシュアル」だと明かし、東由貴・東京都議(立憲民主)が「パートナーシップ」施策の充実求める:東京新聞 [少考さん★]
- 「暖房が使えない」「食費が高くて子どもの栄養が…」 物価高に苦しむ子育て世帯、政府に期待する支援は [蚤の市★]
- パワフル女性世界3位に高市首相 米誌フォーブス選出 [蚤の市★]
- 高市を支持する日本人さんはなにが理由なの?円安進行、国債金利爆上げ、最大貿易国との摩擦とたった1ヶ月で国益を棄損してるのに [472617201]
- エナジードリンク、危険だった。飲酒喫煙もせずランニングが趣味の54歳の若者が毎日たった8本飲むだけで脳卒中に [742348415]
- (´・ω・`)お!ま!え!ら!ぁ~!!!
- Twitter医師ら「死ぬほど勉強して博愛精神求められるとかそらみんな美容外科なるわ。嫌なら普通の医療も保険診療廃止しろ!」 [762037879]
- 高市「野党はもう債権とか為替の話はしないで!よく分からないから答えない!」 [884040186]
- 在宅なのにここ見てる奴wwwwwwwwwwww
