次スレを立てる時は本文の1行目に以下を追加して下さい
!extend:on:vvvvv:1000:512
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ
C++相談室 part131
http://mevius.2ch.net/test/read.cgi/tech/1501295308/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.101【環境依存OK】
http://mevius.2ch.net/test/read.cgi/tech/1500329247/
■長いソースを貼るときはここへ。■
http://codepad.org/
https://ideone.com/
[C++ FAQ]
https://isocpp.org/wiki/faq/
http://www.bohyoh.com/CandCPP/FAQ/ (日本語)
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
探検
C++相談室 part132
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん 転載ダメ (ワッチョイ faeb-wbjw)
2017/10/10(火) 00:11:34.01ID:nc/5PI4P078デフォルトの名無しさん (ブーイモ MM0d-Hl19)
2017/10/16(月) 20:49:20.76ID:EBMdtAZpM cli「もしかして俺の時代?」
79デフォルトの名無しさん (ドコグロ MM63-itUa)
2017/10/16(月) 20:54:28.42ID:D6Ozm2TBM >>76
誰が使うんだよ?
誰が使うんだよ?
80デフォルトの名無しさん (ワッチョイ 8b8a-qami)
2017/10/16(月) 22:26:22.71ID:uaY9uFi3081デフォルトの名無しさん (ワッチョイ 41a5-Yjam)
2017/10/16(月) 23:19:12.53ID:7Byc8Q4r0 GC要求が発生する前にプロセスが完了すりゃいいだけだろ
82デフォルトの名無しさん (ワッチョイ 1183-B6a6)
2017/10/17(火) 00:26:06.58ID:hVetZd8l0 最近は異常なほど高級言語志向が強いな。
83デフォルトの名無しさん (ドコグロ MM33-itUa)
2017/10/17(火) 06:56:31.57ID:BJIvhub9M >>81
それGC要らんだろ w
それGC要らんだろ w
84デフォルトの名無しさん (スプッッ Sd65-E+Ow)
2017/10/18(水) 06:24:43.21ID:syxw9nR/d スレッド間の変数の共有って
・pthread時に引数与える
・シングルトン
・グローバル変数
これ以外に何かあるかな?
・pthread時に引数与える
・シングルトン
・グローバル変数
これ以外に何かあるかな?
85デフォルトの名無しさん (ワッチョイ 8bab-EwbT)
2017/10/18(水) 08:44:17.01ID:qJuCX/Qy0 C++を最近学び始めた者なんですが
ファイルへの保存で質問があるんですが良いでしょうか
テキストに保存するのと、バイナリに保存するので
文字列を保存するとバイナリが僅かに小さくなるんですが
vectorを保存すると逆にバイナリのほうがサイズが大きくなるのは
普通のことなんでしょうか?
ファイルへの保存で質問があるんですが良いでしょうか
テキストに保存するのと、バイナリに保存するので
文字列を保存するとバイナリが僅かに小さくなるんですが
vectorを保存すると逆にバイナリのほうがサイズが大きくなるのは
普通のことなんでしょうか?
86デフォルトの名無しさん (ワッチョイ 8bab-EwbT)
2017/10/18(水) 08:46:30.49ID:qJuCX/Qy0 vectorの二次元配列を、forの二重ループで
テキストへは outputfile << data[i][j] << "\t";
バイナリへは outputfile.write((const char*)&data[i][j], sizeof(data[i][j]));
で書き込んでみてるのですが・・・・・・
100×100の配列を書き込むと
テキストが29キロバイト、バイナリが40キロバイトに
配列を大きくすればするほどバイナリが大きくなってしまいます
テキストへは outputfile << data[i][j] << "\t";
バイナリへは outputfile.write((const char*)&data[i][j], sizeof(data[i][j]));
で書き込んでみてるのですが・・・・・・
100×100の配列を書き込むと
テキストが29キロバイト、バイナリが40キロバイトに
配列を大きくすればするほどバイナリが大きくなってしまいます
87デフォルトの名無しさん (ブーイモ MM5d-Hl19)
2017/10/18(水) 09:34:34.48ID:lDu9kW4oM >>84
同一アドレス空間である以上、アドレスさえ取れればどんな方法でも共有できると思うよ。
同一アドレス空間である以上、アドレスさえ取れればどんな方法でも共有できると思うよ。
88デフォルトの名無しさん (ワッチョイ 1334-7k5d)
2017/10/18(水) 09:40:31.86ID:+1GvmKA80 >>86
改行かな?
改行かな?
89デフォルトの名無しさん (ワッチョイ 138a-13gS)
2017/10/18(水) 09:41:02.33ID:MOIHjDBn0 >>86
どんなデータかによる。intを保存しようとしててデータが全部一桁ならバイナリの方が大きくなることもあるかもしれない。
まずキャストの使い方が間違ってるので、さっくり消してみよう。
次に読み取り部分を作って正常に読み取れるか見てみよう。
どんなデータかによる。intを保存しようとしててデータが全部一桁ならバイナリの方が大きくなることもあるかもしれない。
まずキャストの使い方が間違ってるので、さっくり消してみよう。
次に読み取り部分を作って正常に読み取れるか見てみよう。
90デフォルトの名無しさん (ワッチョイ 912d-0Wb2)
2017/10/18(水) 09:45:31.83ID:4annDJqp0 >>85
dataの型が解ればもう少し推測できるけど
char data[100][100][MAX_STR_LEN];
だとして
data[0][0] = "data\0qwe"; // "qwe"はゴミ
みたいにnull terminated後の不要なゴミも書き込んでるんじゃない?
バイナリエディタでバイナリファイル覗いてみれば解るかと
サイズから推測するとMAX_STR_LENは4かな
dataの型が解ればもう少し推測できるけど
char data[100][100][MAX_STR_LEN];
だとして
data[0][0] = "data\0qwe"; // "qwe"はゴミ
みたいにnull terminated後の不要なゴミも書き込んでるんじゃない?
バイナリエディタでバイナリファイル覗いてみれば解るかと
サイズから推測するとMAX_STR_LENは4かな
91デフォルトの名無しさん (ワッチョイ 138a-13gS)
2017/10/18(水) 09:57:25.60ID:MOIHjDBn0 あ、ofstreamのwriteって引数const char*なのか
ゴメン間違ってるってほどじゃないわ
せいぜいC++っぽくreinterpret_castに変えるくらいか
ゴメン間違ってるってほどじゃないわ
せいぜいC++っぽくreinterpret_castに変えるくらいか
92デフォルトの名無しさん (ブーイモ MM0d-qY8G)
2017/10/18(水) 11:54:38.42ID:hNmHHI30M93デフォルトの名無しさん (ワッチョイ 8bab-EwbT)
2017/10/18(水) 11:56:58.03ID:qJuCX/Qy0 レス有難うございます。dataはintのvector二次元配列で
int a=100;
int b=100;
vector< vector<int> > data(a, vector<int>(b));
このdataに、forで
data[i][j] = rand() % 100;
の数字をいれている配列なんです
バイナリ保存したデータを、FavBinEditというものでみてみると
数字と数字のあいだに間隔があいてるので
これがサイズが大きくなってる理由なのかと思うんですが
int a=100;
int b=100;
vector< vector<int> > data(a, vector<int>(b));
このdataに、forで
data[i][j] = rand() % 100;
の数字をいれている配列なんです
バイナリ保存したデータを、FavBinEditというものでみてみると
数字と数字のあいだに間隔があいてるので
これがサイズが大きくなってる理由なのかと思うんですが
94デフォルトの名無しさん (ブーイモ MM0d-uYMh)
2017/10/18(水) 12:47:08.44ID:J7UI6pACM >>93
int型の100*100配列なら約40K byteなんだから、バイナリファイルは正しいと思うよ。
で、テキストも間違っているとは言いきれない。
例えば一桁の数字が多いなら、バイナリファイルより小さくなるよね?
サイズの違いはあって当然だと思うけど。
int型の100*100配列なら約40K byteなんだから、バイナリファイルは正しいと思うよ。
で、テキストも間違っているとは言いきれない。
例えば一桁の数字が多いなら、バイナリファイルより小さくなるよね?
サイズの違いはあって当然だと思うけど。
95デフォルトの名無しさん (ワッチョイ 8bab-EwbT)
2017/10/18(水) 13:00:53.38ID:qJuCX/Qy0 そういうものなのですか
ネット上に、バイナリに保存するとサイズが小さくなる
という話が多いのでそう思い込んでました
自分には関係無いような、複雑なデータを扱うと小さくなるのかな
ネット上に、バイナリに保存するとサイズが小さくなる
という話が多いのでそう思い込んでました
自分には関係無いような、複雑なデータを扱うと小さくなるのかな
96デフォルトの名無しさん (ワッチョイ 912d-0Wb2)
2017/10/18(水) 13:06:46.43ID:4annDJqp0 そういうもんですね 自分もintなら納得です
「rand() % 100」なら文字列にしたとき"0"(=0x30)から"99"(=0x3939)と2byteで収まり
"\t"を付けても 常に4byte(=sizeof(int) システム依存)より小さいですから
バイナリだと0を0x00000000, 99を0x63000000(リトルエンディアン)で保存してます
試しに「rand() % 100」を「10000」とか
"文字列にしたとき'\t'も含めて4文字を越える大きさ"にすれば
サイズが逆転するのが観察できるはずです
・扱う数字が小さいからテキストの方が短くて済んでる
・バイナリなら数字が大きく(当然intの最大値を越えないこと)なってもサイズが一定で済む
余談ながら
バイナリで保存するならバイトオーダー(エンディアン)には注意しとかないと
万が一エンディアンの違うシステムで動作する必要があるときに死ねます
「rand() % 100」なら文字列にしたとき"0"(=0x30)から"99"(=0x3939)と2byteで収まり
"\t"を付けても 常に4byte(=sizeof(int) システム依存)より小さいですから
バイナリだと0を0x00000000, 99を0x63000000(リトルエンディアン)で保存してます
試しに「rand() % 100」を「10000」とか
"文字列にしたとき'\t'も含めて4文字を越える大きさ"にすれば
サイズが逆転するのが観察できるはずです
・扱う数字が小さいからテキストの方が短くて済んでる
・バイナリなら数字が大きく(当然intの最大値を越えないこと)なってもサイズが一定で済む
余談ながら
バイナリで保存するならバイトオーダー(エンディアン)には注意しとかないと
万が一エンディアンの違うシステムで動作する必要があるときに死ねます
97デフォルトの名無しさん (アークセー Sx45-jnAP)
2017/10/18(水) 16:31:39.68ID:8P8HMOssx 質問です。
とあるクラスのヘッダーに定義している文字列変数(CString)の文字列だけを変更し、ビルドしても、変更が反映されないのですがこれは仕様でしょうか?リビルドすると反映されます。
環境はVisualStudio2015 VC++です。
とあるクラスのヘッダーに定義している文字列変数(CString)の文字列だけを変更し、ビルドしても、変更が反映されないのですがこれは仕様でしょうか?リビルドすると反映されます。
環境はVisualStudio2015 VC++です。
9897 (アークセー Sx45-jnAP)
2017/10/18(水) 16:50:26.75ID:8P8HMOssx 自己レス。最小リビルドを無効にしたら解決しました
99デフォルトの名無しさん (ワッチョイ 41a5-PxAS)
2017/10/18(水) 20:07:45.40ID:3bYwz/rX0100デフォルトの名無しさん (ブーイモ MM71-v1IO)
2017/10/19(木) 12:49:02.40ID:LAmWAPnYM >>95
テキスト形式は、装飾次第で肥大化しやすいってだけだよ。
カンマやタブや改行も装飾の一部。
一桁の数字でも、スペース等で桁合わせしたら、それだけで肥大化するしね。
実際のところは、どういうフォーマットで出力してるか次第だけど。
最小桁で出力していて、rand 出力が正規分布に従うと考えれば、計算上約29k byteになるよ。
テキスト形式は、装飾次第で肥大化しやすいってだけだよ。
カンマやタブや改行も装飾の一部。
一桁の数字でも、スペース等で桁合わせしたら、それだけで肥大化するしね。
実際のところは、どういうフォーマットで出力してるか次第だけど。
最小桁で出力していて、rand 出力が正規分布に従うと考えれば、計算上約29k byteになるよ。
101デフォルトの名無しさん (ワッチョイ c183-bcII)
2017/10/19(木) 21:31:04.86ID:4jS9VIw90 XMLは糞。ゲイツは正しかった。
102デフォルトの名無しさん (ワッチョイ 5580-U5aN)
2017/10/21(土) 01:43:03.05ID:20SzWA3c0 無名名前空間内の変数にstaticがついたものを見かけました
このstaticにはどのような意味があるんでしょうか?それぞれ同じような意味だと思い込んでいたのですが・・・
このstaticにはどのような意味があるんでしょうか?それぞれ同じような意味だと思い込んでいたのですが・・・
103デフォルトの名無しさん (ワッチョイ a504-h3yZ)
2017/10/21(土) 03:20:47.47ID:NGOzoqth0 ユニファイドコールシンタックスまだー!?
104デフォルトの名無しさん (ワッチョイ 4d80-9ZeW)
2017/10/21(土) 05:36:54.09ID:NrRI2kzj0 >>103
要らねえよ
要らねえよ
105デフォルトの名無しさん (ワッチョイ a504-h3yZ)
2017/10/21(土) 05:39:44.45ID:NGOzoqth0106デフォルトの名無しさん (ワッチョイ a504-h3yZ)
2017/10/21(土) 05:49:37.85ID:NGOzoqth0 auto R = Handle.ConnectTCP(...).WaitConnect().SendData(...).EndSettion();
auto A = Array.Map(...).Reduse(...).get();
こんな感じのことができるようになる。上は適当。
入ってくれー。
auto A = Array.Map(...).Reduse(...).get();
こんな感じのことができるようになる。上は適当。
入ってくれー。
107デフォルトの名無しさん (ワッチョイ c183-bcII)
2017/10/21(土) 06:01:20.72ID:uavAERV80 糞化しようとする勢力に悪意があるな。
108デフォルトの名無しさん (ワッチョイ a504-h3yZ)
2017/10/21(土) 06:15:26.00ID:NGOzoqth0 一体何と戦っているんだ。
109デフォルトの名無しさん (ワッチョイ 4aeb-U5aN)
2017/10/21(土) 06:37:35.81ID:PyeytVxV0 EndSession(SendData(WaitConnect(ConnectTCP(Handle, ...)), ...));
を
Handle.ConnectTCP(...).WaitConnect().SendData(...).EndSession();
と書けるようにしたいと、そんな感じか?
元ネタの言語はなんだ?お兄さん怒らないから正直に申告しなさいw
を
Handle.ConnectTCP(...).WaitConnect().SendData(...).EndSession();
と書けるようにしたいと、そんな感じか?
元ネタの言語はなんだ?お兄さん怒らないから正直に申告しなさいw
110デフォルトの名無しさん (ワッチョイ 7ab3-RYXs)
2017/10/21(土) 07:18:06.90ID:fkuXV6f/0 まあSettionとか言う奴のレベルはこんなもんだ
111デフォルトの名無しさん (ワッチョイ 4d80-9ZeW)
2017/10/21(土) 07:40:07.85ID:NrRI2kzj0 >>109
そう書きたいなら最初からそういうAPIにすればいいだけなんだよな
そう書きたいなら最初からそういうAPIにすればいいだけなんだよな
112デフォルトの名無しさん (ワッチョイ c183-bcII)
2017/10/21(土) 07:54:28.52ID:uavAERV80 タイムアウトとか再試行とか異常系コードがてんこもりに入るんだからどうせ分解して書く。
そういう書き方をしたがる人は実務では一切コードを書いてない人だろう。
そういう書き方をしたがる人は実務では一切コードを書いてない人だろう。
113デフォルトの名無しさん (ワッチョイ 7abd-GnHq)
2017/10/21(土) 08:13:32.79ID:SZJ3Irjn0114デフォルトの名無しさん (ワッチョイ c183-bcII)
2017/10/21(土) 08:21:55.02ID:uavAERV80 おれはこういう悪意ある黒魔術師と戦っている。
115デフォルトの名無しさん (ワッチョイ 7ab3-RYXs)
2017/10/21(土) 09:17:17.25ID:fkuXV6f/0 ちょっとしたスクリプトとかの書き捨てならワンライナーって言うのもわからなくはないけどC++には要らんわな
116デフォルトの名無しさん (ワッチョイ 5504-gh9y)
2017/10/21(土) 09:28:17.64ID:K7BlTjWw0 質問です。
int型のポインタが指す値に1を足したいのですが
int *a+=1;と書くと足されるのですが
int *a++;だと足されません
これはなぜでしょうか?
int型のポインタが指す値に1を足したいのですが
int *a+=1;と書くと足されるのですが
int *a++;だと足されません
これはなぜでしょうか?
117デフォルトの名無しさん (ワッチョイ a57f-0GSP)
2017/10/21(土) 09:37:24.91ID:IwpIepkb0 (*a)++;
*(a++);
下の方になってね
*(a++);
下の方になってね
118デフォルトの名無しさん (ワッチョイ 5504-gh9y)
2017/10/21(土) 09:42:55.21ID:K7BlTjWw0 なるほど!
カッコを付けてあげれば良いのですね
ありがとうございました。
カッコを付けてあげれば良いのですね
ありがとうございました。
119デフォルトの名無しさん (ワッチョイ 0aeb-bcII)
2017/10/21(土) 11:19:52.01ID:uaVA6cYp0 本質を理解しないと だめだぞ。
120デフォルトの名無しさん (ワッチョイ 4afb-+cZg)
2017/10/21(土) 12:50:25.52ID:bOloMtFq0 本質ってなんや?
121デフォルトの名無しさん (ワッチョイ 7a34-HQAI)
2017/10/21(土) 12:59:49.25ID:OLnfmZiv0 基本解ってないバカはC言語からやり直せ
C++なんぞ十年早いわ
C++なんぞ十年早いわ
122デフォルトの名無しさん (ワッチョイ daf9-3CFD)
2017/10/21(土) 13:50:17.85ID:RIH/f2PJ0 >>120
演算子には結合の優先順位があるからそれを理解しておけということかと。
演算子には結合の優先順位があるからそれを理解しておけということかと。
123デフォルトの名無しさん (ワッチョイ 7abd-GnHq)
2017/10/21(土) 13:53:20.33ID:SZJ3Irjn0 次はきっと評価順序に依存性がある複数の副作用を同じ式の中でやって泣く
124デフォルトの名無しさん (ワッチョイ fa12-bcII)
2017/10/21(土) 14:08:40.10ID:b0s0lkOv0 本質と口走る人間は信用しないようにしている
125デフォルトの名無しさん (ワッチョイ 5581-/wYC)
2017/10/21(土) 14:27:26.13ID:duVZds/m0 2chは信用しているのかw
126デフォルトの名無しさん (ワッチョイ ddb3-0MKJ)
2017/10/21(土) 14:35:07.96ID:PVB7G2Ex0 ここは5chだが。
127デフォルトの名無しさん (ワッチョイ 7ab3-RYXs)
2017/10/21(土) 14:50:08.83ID:fkuXV6f/0128デフォルトの名無しさん (ワッチョイ c5b3-PvcH)
2017/10/21(土) 19:41:59.47ID:I0YX3jVB0129デフォルトの名無しさん (ワッチョイ f9d6-1OZr)
2017/10/21(土) 19:48:36.37ID:LO7dvffl0130デフォルトの名無しさん (ワッチョイ a504-h3yZ)
2017/10/21(土) 20:09:03.62ID:NGOzoqth0 >>109
Dにもあるらしいけど、元ネタは没になったペーパー。
Dにもあるらしいけど、元ネタは没になったペーパー。
131デフォルトの名無しさん (ワッチョイ daf9-3CFD)
2017/10/21(土) 20:11:00.84ID:RIH/f2PJ0 >>129
初心者が質問でおかしな書き方したが、周りはその意味が分かって会話が通じているんだから、そんなつまらない攻撃的なツッコミする必要ないのでは?
初心者が質問でおかしな書き方したが、周りはその意味が分かって会話が通じているんだから、そんなつまらない攻撃的なツッコミする必要ないのでは?
132デフォルトの名無しさん (ワッチョイ f9d6-1OZr)
2017/10/21(土) 20:36:40.01ID:LO7dvffl0133デフォルトの名無しさん (ワッチョイ 867f-ms5P)
2017/10/21(土) 20:43:36.23ID:bW2z389o0 またすげえ病的なのが現れたな
134デフォルトの名無しさん (JP 0H85-+cZg)
2017/10/21(土) 21:07:43.36ID:MOgwtCLBH 妖精症状かは不明だが『周りはその意味が分かって会話が通じている』という決め付けは危険だし
なにより相手に対して何の説得力も無い
なにより相手に対して何の説得力も無い
135デフォルトの名無しさん (ワッチョイ 19a5-FNU/)
2017/10/21(土) 21:08:16.87ID:Hb3Ud/Wn0 ++*aでいいだろ
136デフォルトの名無しさん (ワッチョイ f9d6-1OZr)
2017/10/21(土) 21:37:44.98ID:LO7dvffl0137デフォルトの名無しさん (ワッチョイ daf9-3CFD)
2017/10/21(土) 21:46:20.40ID:RIH/f2PJ0 誰も変数の宣言を問題にしてないと思うよ。君を除いて。
138デフォルトの名無しさん (スップ Sd7a-s5BS)
2017/10/21(土) 21:47:40.59ID:vcAgy2myd 知恵袋とかでよく見る質問者に説教してる奴まんまだwww
139デフォルトの名無しさん (ワッチョイ 7ab3-RYXs)
2017/10/21(土) 22:22:59.67ID:fkuXV6f/0140デフォルトの名無しさん (ワッチョイ 0aeb-bcII)
2017/10/21(土) 22:29:56.31ID:uaVA6cYp0 俺が余計なこと言わなきゃよかったんだ
141デフォルトの名無しさん (ワッチョイ 4aeb-U5aN)
2017/10/21(土) 22:47:24.45ID:PyeytVxV0 よし、みんな大好きコンセプトの話しようぜw
142デフォルトの名無しさん (オッペケ Sr85-+cZg)
2017/10/21(土) 23:16:03.82ID:ov3vGz/Dr143名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ a127-1OZr)
2017/10/22(日) 07:02:44.44ID:dj2Vz85u0144名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ 0aeb-bcII)
2017/10/22(日) 10:10:22.77ID:ZvWpZB8L0 スレを私物化しててワロタwwwwwwwwwwwwwwwwwww
145名無しさん@そうだ選挙に行こう! Go to vote! (ドコグロ MMe2-hejz)
2017/10/22(日) 10:29:24.17ID:euCeLmcjM146名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ e5b3-+cZg)
2017/10/22(日) 11:13:45.90ID:Bsg7QecN0 うむ、これで>>116の話は終わりだな
めでたしめでたし
めでたしめでたし
147名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ a1cc-1OZr)
2017/10/22(日) 12:06:12.78ID:W+EQ/H9/0148名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ a1cc-1OZr)
2017/10/22(日) 12:09:53.87ID:W+EQ/H9/0 ひとつ手本を見せてやる
#define a aa{nullptr}; aa
int *a+=1;
#undef a
#define aa a
おまえら(たぶん1人)はこれ以下の阿呆だ
#define a aa{nullptr}; aa
int *a+=1;
#undef a
#define aa a
おまえら(たぶん1人)はこれ以下の阿呆だ
149名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ 7a34-HQAI)
2017/10/22(日) 12:23:06.98ID:fUpU+dpH0 レベル低い手本だな
150名無しさん@そうだ選挙に行こう! Go to vote! (スプッッ Sd7a-7kQB)
2017/10/22(日) 19:28:43.25ID:O4jMcQm7d typedefとdefineの違いすらわかってないのが俺
define A BだとAをBとする
typedef B AだとAをBとする
こうなるだけ?
define A BだとAをBとする
typedef B AだとAをBとする
こうなるだけ?
151名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ a108-1OZr)
2017/10/22(日) 19:37:19.87ID:bXoG3HvV0 typedefなんかもう使うな
これからはusingだ
これからはusingだ
152名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ daf9-3CFD)
2017/10/22(日) 19:38:18.60ID:rLWliBun0 >>150
#defineはソースコードのテキストを字面だけで置き換えるだけ。
typedef相当のこと以外にも色々な使い方ができるが、トリッキーなことをして分かりにくくなったり弊害が大きいので、言語仕様が拡充された現在では、なるべく使用すべきでないという風潮になっている。
#defineはソースコードのテキストを字面だけで置き換えるだけ。
typedef相当のこと以外にも色々な使い方ができるが、トリッキーなことをして分かりにくくなったり弊害が大きいので、言語仕様が拡充された現在では、なるべく使用すべきでないという風潮になっている。
153名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ f9c3-6Gfg)
2017/10/22(日) 19:38:36.42ID:NTIGbrlN0 defineは置き換えでtypedefは名前変更
#define SIZE 50, 200
void SetSize(int w, int h)をSetSize(SIZE)って呼ぶことができる
typedefはtypedef std::vector<MyLonglongClassName> MyVector;
とすることで短くできる
#define SIZE 50, 200
void SetSize(int w, int h)をSetSize(SIZE)って呼ぶことができる
typedefはtypedef std::vector<MyLonglongClassName> MyVector;
とすることで短くできる
154名無しさん@そうだ選挙に行こう! Go to vote! (スプッッ Sd7a-7kQB)
2017/10/22(日) 19:42:10.58ID:O4jMcQm7d155名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ daf9-3CFD)
2017/10/22(日) 19:49:02.84ID:rLWliBun0 typedefで導入した識別子の名称は、型の名前としてコンパイラが字句解析、意味解析する際に適切に扱ってくれるけど、defineの方は字面を置き換えただけだから文脈によっては意図した通りにならないケースがある。
具体例はすぐに思いつかない…
誰か詳しい人が書いてくれるかも。
具体例はすぐに思いつかない…
誰か詳しい人が書いてくれるかも。
156デフォルトの名無しさん (ワッチョイ 3aa2-0GSP)
2017/10/22(日) 20:24:28.58ID:cygPpIjv0 typedef int *IntPointer; //A
#define IntPointer int* //B
//Aの場合: int x * const の意味となり、*xは変更可能
//Bの場合: const int *x と展開され、*xは変更不可能のためコンパイルエラー
void f(const IntPointer x) { *x = 0; }
#define IntPointer int* //B
//Aの場合: int x * const の意味となり、*xは変更可能
//Bの場合: const int *x と展開され、*xは変更不可能のためコンパイルエラー
void f(const IntPointer x) { *x = 0; }
157デフォルトの名無しさん (ワッチョイ 163e-v1IO)
2017/10/22(日) 20:29:43.27ID:KI+QlBvW0 >>150
#defineは、厳密にはコンパイラの機能では無いんだよね。
ただのテキスト置換なんで、様々なチェックが働かない。
置換後のテキストに対してコンパイルを行うから、エラーも難解になったりする。
対してtypedefはコンパイラの機能。
型に対してのみ別名を付ける事しか出来ないけど、ちゃんと型チェックが行われる。
#defineは、厳密にはコンパイラの機能では無いんだよね。
ただのテキスト置換なんで、様々なチェックが働かない。
置換後のテキストに対してコンパイルを行うから、エラーも難解になったりする。
対してtypedefはコンパイラの機能。
型に対してのみ別名を付ける事しか出来ないけど、ちゃんと型チェックが行われる。
158デフォルトの名無しさん (ワッチョイ 7abd-GnHq)
2017/10/22(日) 21:05:01.87ID:eZyQD2ui0 typedefを一切使うなというのは無理ゲーすぐる…
std::vector<std::vector<int> > jug_array = new std::vector<std::vector<int> >(5000);
for (std::vector<std::vector<int> >::const_iterator it = jug_array.begin(); it != jug_array.end(); ++it) {
...
}
とかゆうのはusingでは多分std::を削れるぐらいだと思う
std::vector<std::vector<int> > jug_array = new std::vector<std::vector<int> >(5000);
for (std::vector<std::vector<int> >::const_iterator it = jug_array.begin(); it != jug_array.end(); ++it) {
...
}
とかゆうのはusingでは多分std::を削れるぐらいだと思う
159デフォルトの名無しさん (ワッチョイ a57f-0GSP)
2017/10/22(日) 21:07:07.30ID:Nihr2kgP0 そのusingではなく
using hoge = int;
のusingだろ
using hoge = int;
のusingだろ
160デフォルトの名無しさん (ワッチョイ c578-+Jsc)
2017/10/22(日) 21:50:12.47ID:DuSJV2Ke0 変数宣言に関してはC++03は苦行の極みだったな
161デフォルトの名無しさん (オッペケ Sr85-+cZg)
2017/10/22(日) 22:37:08.77ID:gV0xEv2nr typedef名が無いとintのデストラクターが呼べない
using T = int;
int{}.~T();
typedef名が無いと関数ポインターへの変換関数が書けない(たぶん)
using F = void ();
operator F *() {return nullptr;}
using T = int;
int{}.~T();
typedef名が無いと関数ポインターへの変換関数が書けない(たぶん)
using F = void ();
operator F *() {return nullptr;}
162デフォルトの名無しさん (オッペケ Sr85-+cZg)
2017/10/22(日) 22:44:21.85ID:gV0xEv2nr typedef名が無いと関数型をメンバーポインター型に変形させることができない
using MF = void () const;
MF class_type::* mp;
そして何より、関数内で#defineしたものは関数外に漏れる
using MF = void () const;
MF class_type::* mp;
そして何より、関数内で#defineしたものは関数外に漏れる
163デフォルトの名無しさん (ワッチョイ 7ab3-RYXs)
2017/10/22(日) 23:08:06.76ID:V6KHSGcm0 >>158
型推論でいいだろ
auto jug_array = new std::vector<std::vector<int> >(5000);
for(auto it = jug_array.begin(); it != jug_array.end(); ++it) {
...
}
型推論でいいだろ
auto jug_array = new std::vector<std::vector<int> >(5000);
for(auto it = jug_array.begin(); it != jug_array.end(); ++it) {
...
}
164デフォルトの名無しさん (オッペケ Sr85-+cZg)
2017/10/23(月) 00:28:15.86ID:WKKpeTI2r >usingでは多分std::を削れるぐらいだと思う
↓
>型推論でいいだろ
これがアスペというやつだな
↓
>型推論でいいだろ
これがアスペというやつだな
165デフォルトの名無しさん (ワッチョイ 4d80-9ZeW)
2017/10/23(月) 00:38:49.98ID:a4CoBhRy0 >>164
俺も思ったからアスペだわ
俺も思ったからアスペだわ
166デフォルトの名無しさん (ワッチョイ 7a8a-Jp9u)
2017/10/23(月) 01:19:27.04ID:E0HRfOuJ0 >>164がアスペという可能性も微レ存
167デフォルトの名無しさん (ワッチョイ fa23-976O)
2017/10/23(月) 02:33:22.14ID:4YhCJR4W0 アスペかどうかはわからないけど話の流れを追わないで字面で反応する人いるよね
168デフォルトの名無しさん (ワッチョイ ddb3-0GSP)
2017/10/23(月) 05:45:22.43ID:iFI38Dlw0 %%%%1000%%%%
000-[HUM%58*73.1\%]/2I/3NM/61.3SNMK%?%3%51.22222222222221%
001-[[[%6/4$17.6135412α3]]]]+DOM+SIL+7%
002-UML7%[61.2[31.5[!%32∂LM17.36%!16.3!%<<<%!HSTOL7%!Q!S!=3m=<2TOL<3Q9A<2.1GHz%,DOK,HAOARA,
003-[[[HEMLOT47[<\41.2%Q,===>[MLS<DPNO<\2.3>#ESOLA!5%!3MLA!>LTOSA>7TONSA>%>%end
000-[HUM%58*73.1\%]/2I/3NM/61.3SNMK%?%3%51.22222222222221%
001-[[[%6/4$17.6135412α3]]]]+DOM+SIL+7%
002-UML7%[61.2[31.5[!%32∂LM17.36%!16.3!%<<<%!HSTOL7%!Q!S!=3m=<2TOL<3Q9A<2.1GHz%,DOK,HAOARA,
003-[[[HEMLOT47[<\41.2%Q,===>[MLS<DPNO<\2.3>#ESOLA!5%!3MLA!>LTOSA>7TONSA>%>%end
169デフォルトの名無しさん (ドコグロ MMe2-RYXs)
2017/10/23(月) 06:00:11.73ID:tsKHL/vaM170デフォルトの名無しさん (ワッチョイ 7abd-GnHq)
2017/10/23(月) 07:39:17.13ID:FnrJWB1+0 CPUはアスペルガー
アスペルガーはプログラミング対象としては正しい
アスペルガーはプログラミング対象としては正しい
171デフォルトの名無しさん (ワッチョイ d68a-AUSJ)
2017/10/23(月) 11:48:03.94ID:L0yyts890172デフォルトの名無しさん (ワッチョイ d68a-AUSJ)
2017/10/23(月) 11:49:59.55ID:L0yyts890 あっそうかジャヴァカコーダー上がりか
173デフォルトの名無しさん (ワッチョイ d68a-AUSJ)
2017/10/23(月) 12:28:15.79ID:L0yyts890 ヴァカ+auto→地獄
174デフォルトの名無しさん (ワッチョイ 4d80-9ZeW)
2017/10/23(月) 15:37:17.98ID:a4CoBhRy0175デフォルトの名無しさん (ワッチョイ 7abd-GnHq)
2017/10/23(月) 20:39:12.10ID:FnrJWB1+0 newはちょっと手が滑っただけ;
もちろんスマポとセットで無いとnewとか滅多に使わない
もちろんスマポとセットで無いとnewとか滅多に使わない
176デフォルトの名無しさん (ドコグロ MMb5-RYXs)
2017/10/23(月) 21:07:31.46ID:/BPh9WwQM auto知らなかった老害が暴れてるのか w
177デフォルトの名無しさん (ワッチョイ d68a-AUSJ)
2017/10/23(月) 22:09:17.50ID:L0yyts890178デフォルトの名無しさん (ワッチョイ cee7-LaKm)
2017/10/23(月) 22:27:44.44ID:D0YLsnUF0 C言語の知識があるんだけどC++も応用できる?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「中国人の訪日熱は冷めた」 人気旅行先から日本外れる 14日で自粛呼びかけ1カ月 ★2 [蚤の市★]
- クリスマスの「予定なし」54% [少考さん★]
- 最新版Z級クソ映画ランキングが決定! [牛丼★]
- 【STARTO ENTERTAINMENT】SUPER EIGHTの横山裕、フジ『ドッキリGP』ロケで全治2ヶ月の重傷 [Ailuropoda melanoleuca★]
- 「1800万円の売り上げゼロに…」中国インバウンドに特化の宿の今 ★2 [蚤の市★]
- 公用車カーナビのNHK受信料「全額免除を」 千葉市議会、国に制度創設求める意見書可決 [少考さん★]
- 【実況】博衣こよりのえちえち機動戦士ガンダム逆襲のシャア🧪★5
- 茶ぁしばこうや··· ( ¨̮ )︎︎𖠚ᐝ3
- 【朗報】南鳥島のレアアース、中国産の「20倍の純度」青山繁晴氏「日本は資源大国」日本復活のファンファーレが鳴り響く! [673057929]
- 【悲報】巨人駒田3軍監督、不満爆発WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
- 愛国者「釘を使わない日本独自の伝統工法スゴイ!」X民「それ中国起源ですよ」→批判殺到 [834922174]
- お前ら 寒さ対策どうしてるの [769050516]
