C++相談室 part132

■ このスレッドは過去ログ倉庫に格納されています
2017/10/10(火) 00:11:34.01ID:nc/5PI4P0
次スレを立てる時は本文の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
2017/10/21(土) 06:37:35.81ID:PyeytVxV0
EndSession(SendData(WaitConnect(ConnectTCP(Handle, ...)), ...));

Handle.ConnectTCP(...).WaitConnect().SendData(...).EndSession();
と書けるようにしたいと、そんな感じか?

元ネタの言語はなんだ?お兄さん怒らないから正直に申告しなさいw
2017/10/21(土) 07:18:06.90ID:fkuXV6f/0
まあSettionとか言う奴のレベルはこんなもんだ
111デフォルトの名無しさん (ワッチョイ 4d80-9ZeW)
垢版 |
2017/10/21(土) 07:40:07.85ID:NrRI2kzj0
>>109
そう書きたいなら最初からそういうAPIにすればいいだけなんだよな
2017/10/21(土) 07:54:28.52ID:uavAERV80
タイムアウトとか再試行とか異常系コードがてんこもりに入るんだからどうせ分解して書く。
そういう書き方をしたがる人は実務では一切コードを書いてない人だろう。
2017/10/21(土) 08:13:32.79ID:SZJ3Irjn0
>>112
異常系を入れる場所も階層も選ばないとか昭和初期のプログラマーーカヨ;
ていうか>>109の書式のどっちも分けて書こうと思えば書けるし…
2017/10/21(土) 08:21:55.02ID:uavAERV80
おれはこういう悪意ある黒魔術師と戦っている。
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++;だと足されません
これはなぜでしょうか?
117デフォルトの名無しさん (ワッチョイ a57f-0GSP)
垢版 |
2017/10/21(土) 09:37:24.91ID:IwpIepkb0
(*a)++;
*(a++);
下の方になってね
118デフォルトの名無しさん (ワッチョイ 5504-gh9y)
垢版 |
2017/10/21(土) 09:42:55.21ID:K7BlTjWw0
なるほど!
カッコを付けてあげれば良いのですね
ありがとうございました。
119デフォルトの名無しさん (ワッチョイ 0aeb-bcII)
垢版 |
2017/10/21(土) 11:19:52.01ID:uaVA6cYp0
本質を理解しないと だめだぞ。
2017/10/21(土) 12:50:25.52ID:bOloMtFq0
本質ってなんや?
2017/10/21(土) 12:59:49.25ID:OLnfmZiv0
基本解ってないバカはC言語からやり直せ
C++なんぞ十年早いわ
2017/10/21(土) 13:50:17.85ID:RIH/f2PJ0
>>120
演算子には結合の優先順位があるからそれを理解しておけということかと。
2017/10/21(土) 13:53:20.33ID:SZJ3Irjn0
次はきっと評価順序に依存性がある複数の副作用を同じ式の中でやって泣く
2017/10/21(土) 14:08:40.10ID:b0s0lkOv0
本質と口走る人間は信用しないようにしている
2017/10/21(土) 14:27:26.13ID:duVZds/m0
2chは信用しているのかw
126デフォルトの名無しさん (ワッチョイ ddb3-0MKJ)
垢版 |
2017/10/21(土) 14:35:07.96ID:PVB7G2Ex0
ここは5chだが。
2017/10/21(土) 14:50:08.83ID:fkuXV6f/0
>>126
俺はまだ2chから見てる
http://mevius.2ch.net/test/read.cgi/tech/1507561894/126
2017/10/21(土) 19:41:59.47ID:I0YX3jVB0
よし、>>116 からの流れを一言でまとめてやるぞ
必要なときはカッコつけなさい
こうだ
129デフォルトの名無しさん (ワッチョイ f9d6-1OZr)
垢版 |
2017/10/21(土) 19:48:36.37ID:LO7dvffl0
>>117
おまえ病院に行ったほうがいい
変数aの定義でとち狂っている>>116より重症だぞ
2017/10/21(土) 20:09:03.62ID:NGOzoqth0
>>109
Dにもあるらしいけど、元ネタは没になったペーパー。
2017/10/21(土) 20:11:00.84ID:RIH/f2PJ0
>>129
初心者が質問でおかしな書き方したが、周りはその意味が分かって会話が通じているんだから、そんなつまらない攻撃的なツッコミする必要ないのでは?
132デフォルトの名無しさん (ワッチョイ f9d6-1OZr)
垢版 |
2017/10/21(土) 20:36:40.01ID:LO7dvffl0
>>131
意味わかった気になってるのは陽性症状だよ
幻視でint *a=+1;が見えた禁治産者がなに必死こいてんだ?
2017/10/21(土) 20:43:36.23ID:bW2z389o0
またすげえ病的なのが現れたな
2017/10/21(土) 21:07:43.36ID:MOgwtCLBH
妖精症状かは不明だが『周りはその意味が分かって会話が通じている』という決め付けは危険だし
なにより相手に対して何の説得力も無い
2017/10/21(土) 21:08:16.87ID:Hb3Ud/Wn0
++*aでいいだろ
136デフォルトの名無しさん (ワッチョイ f9d6-1OZr)
垢版 |
2017/10/21(土) 21:37:44.98ID:LO7dvffl0
>>135
よくねえよ
int ++*a; で何を宣言できるんだ
2017/10/21(土) 21:46:20.40ID:RIH/f2PJ0
誰も変数の宣言を問題にしてないと思うよ。君を除いて。
138デフォルトの名無しさん (スップ Sd7a-s5BS)
垢版 |
2017/10/21(土) 21:47:40.59ID:vcAgy2myd
知恵袋とかでよく見る質問者に説教してる奴まんまだwww
2017/10/21(土) 22:22:59.67ID:fkuXV6f/0
周りがわかってるかどうかはわからんけど>>117はわかって質問者の>>116と会話できてるからいいんじゃね?
2017/10/21(土) 22:29:56.31ID:uaVA6cYp0
俺が余計なこと言わなきゃよかったんだ
2017/10/21(土) 22:47:24.45ID:PyeytVxV0
よし、みんな大好きコンセプトの話しようぜw
2017/10/21(土) 23:16:03.82ID:ov3vGz/Dr
>>141
requires { typename T::type{} }
は文法的に正しいですか?
143名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ a127-1OZr)
垢版 |
2017/10/22(日) 07:02:44.44ID:dj2Vz85u0
>>137
それが本当なら揃いも揃って阿呆ばっかりということだ
int *a+=1;で何が起きるのかを論じてこそC++の話だ
スレ違いの阿呆どもは出て行け
2017/10/22(日) 10:10:22.77ID:ZvWpZB8L0
スレを私物化しててワロタwwwwwwwwwwwwwwwwwww
2017/10/22(日) 10:29:24.17ID:euCeLmcjM
>>143
そんなの使うな、で終わり。
議論する価値は無い。
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/0
>>144
私物化はおまえだ
C++の話をしろボケ
148名無しさん@そうだ選挙に行こう! 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人)はこれ以下の阿呆だ
2017/10/22(日) 12:23:06.98ID:fUpU+dpH0
レベル低い手本だな
2017/10/22(日) 19:28:43.25ID:O4jMcQm7d
typedefとdefineの違いすらわかってないのが俺

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だ
2017/10/22(日) 19:38:18.60ID:rLWliBun0
>>150
#defineはソースコードのテキストを字面だけで置き換えるだけ。
typedef相当のこと以外にも色々な使い方ができるが、トリッキーなことをして分かりにくくなったり弊害が大きいので、言語仕様が拡充された現在では、なるべく使用すべきでないという風潮になっている。
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;
とすることで短くできる
2017/10/22(日) 19:42:10.58ID:O4jMcQm7d
>>151
>>152
>>153
defineは俺の認識であってると思ってるけど
typedefの名前変更ってなんなんだ

defineでもint hage ってしちゃうと名前変更にならない?
2017/10/22(日) 19:49:02.84ID:rLWliBun0
typedefで導入した識別子の名称は、型の名前としてコンパイラが字句解析、意味解析する際に適切に扱ってくれるけど、defineの方は字面を置き換えただけだから文脈によっては意図した通りにならないケースがある。

具体例はすぐに思いつかない…
誰か詳しい人が書いてくれるかも。
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; }
157デフォルトの名無しさん (ワッチョイ 163e-v1IO)
垢版 |
2017/10/22(日) 20:29:43.27ID:KI+QlBvW0
>>150
#defineは、厳密にはコンパイラの機能では無いんだよね。
ただのテキスト置換なんで、様々なチェックが働かない。
置換後のテキストに対してコンパイルを行うから、エラーも難解になったりする。

対してtypedefはコンパイラの機能。
型に対してのみ別名を付ける事しか出来ないけど、ちゃんと型チェックが行われる。
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::を削れるぐらいだと思う
159デフォルトの名無しさん (ワッチョイ a57f-0GSP)
垢版 |
2017/10/22(日) 21:07:07.30ID:Nihr2kgP0
そのusingではなく
using hoge = int;
のusingだろ
160デフォルトの名無しさん (ワッチョイ c578-+Jsc)
垢版 |
2017/10/22(日) 21:50:12.47ID:DuSJV2Ke0
変数宣言に関してはC++03は苦行の極みだったな
2017/10/22(日) 22:37:08.77ID:gV0xEv2nr
typedef名が無いとintのデストラクターが呼べない
using T = int;
int{}.~T();

typedef名が無いと関数ポインターへの変換関数が書けない(たぶん)
using F = void ();
operator F *() {return nullptr;}
2017/10/22(日) 22:44:21.85ID:gV0xEv2nr
typedef名が無いと関数型をメンバーポインター型に変形させることができない
using MF = void () const;
MF class_type::* mp;

そして何より、関数内で#defineしたものは関数外に漏れる
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) {
 ...
}
2017/10/23(月) 00:28:15.86ID:WKKpeTI2r
>usingでは多分std::を削れるぐらいだと思う
 ↓
>型推論でいいだろ

これがアスペというやつだな
165デフォルトの名無しさん (ワッチョイ 4d80-9ZeW)
垢版 |
2017/10/23(月) 00:38:49.98ID:a4CoBhRy0
>>164
俺も思ったからアスペだわ
2017/10/23(月) 01:19:27.04ID:E0HRfOuJ0
>>164がアスペという可能性も微レ存
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
2017/10/23(月) 06:00:11.73ID:tsKHL/vaM
>>164
はあ?
なに言ってるんだこいつ w
2017/10/23(月) 07:39:17.13ID:FnrJWB1+0
CPUはアスペルガー
アスペルガーはプログラミング対象としては正しい
2017/10/23(月) 11:48:03.94ID:L0yyts890
そもそも>>158>>163もコード間違ってるし
バカってなんで要らんところでnew使おうとするかね
2017/10/23(月) 11:49:59.55ID:L0yyts890
あっそうかジャヴァカコーダー上がりか
2017/10/23(月) 12:28:15.79ID:L0yyts890
ヴァカ+auto→地獄
174デフォルトの名無しさん (ワッチョイ 4d80-9ZeW)
垢版 |
2017/10/23(月) 15:37:17.98ID:a4CoBhRy0
>>171
>>165 でアスペ認定された俺も思ったからお前もだな。
2017/10/23(月) 20:39:12.10ID:FnrJWB1+0
newはちょっと手が滑っただけ;
もちろんスマポとセットで無いとnewとか滅多に使わない
2017/10/23(月) 21:07:31.46ID:/BPh9WwQM
auto知らなかった老害が暴れてるのか w
2017/10/23(月) 22:09:17.50ID:L0yyts890
>>176
糞ヴァカは二度と書き込むな
w付けたってお前のヴァカさ加減が軽減されることはないからこのカス
178デフォルトの名無しさん (ワッチョイ cee7-LaKm)
垢版 |
2017/10/23(月) 22:27:44.44ID:D0YLsnUF0
C言語の知識があるんだけどC++も応用できる?
179デフォルトの名無しさん (ワッチョイ 163e-v1IO)
垢版 |
2017/10/23(月) 22:37:44.10ID:/pLbKGxJ0
できる!
2017/10/23(月) 22:38:51.33ID:aoVPN+Cqd
>>178
まずはデストラクターの便利さを学んでね。
2017/10/24(火) 00:14:32.80ID:HCv33Y/ud
auto pointerのこと?
あれいつ見ても使うタイミングわかんないや

define typedefこたえてくれたひとありがとう
>>156のAのやつがなぜこうなるのか頭のなかでさっぱり理解できんけどがんばる
2017/10/24(火) 01:23:29.92ID:6ceRFBNE0
オートポインターは廃止になった。
スマポ使おう。
2017/10/24(火) 01:26:01.20ID:grT3veHx0
>>181
Aの場合はint * const x の間違いだろう。
int*型という1つの型全体にconstがかかっている。
184デフォルトの名無しさん (ワッチョイ ddb3-0MKJ)
垢版 |
2017/10/24(火) 03:02:15.07ID:Od9TZRLJ0
ポインタは型なのだろうか。
2017/10/24(火) 03:19:16.91ID:F7KgZr1H0
コードの書かない奴ほどC++をやっつけスクリプト言語化しようとする。

auto馬鹿どもを駆逐せよ。
2017/10/24(火) 07:17:33.32ID:4VNEc1KXM
>>177, >>185
動的型付けと型推論の違いも理解できない老害ははやくくたばればいいのに
2017/10/24(火) 08:02:35.16ID:/FFLOfov0
ヴァカが精一杯頑張って吐き出したクッサイ唾がこれ↑
2017/10/24(火) 08:42:18.81ID:4VNEc1KXM
> 動的型付けと型推論の違いも理解できない老害
は否定できないんだ w
189デフォルトの名無しさん (スプッッ Sd7a-6gne)
垢版 |
2017/10/24(火) 10:20:18.72ID:kyzMRAwBd
>>186
autoのことをanyやvariantと勘違いしてるとか?
2017/10/24(火) 12:37:21.38ID:/FFLOfov0
そんな勘違いしてるとなんで思い込むか全く分からんわ
まあヴァカの考えることなんて分かったら大変だけど
2017/10/24(火) 12:42:47.65ID:/FFLOfov0
こいつの脳内には「動的型付けと型推論の違いも理解できない老害 」
とやらが住んでいてるんだろうな。
それ少し前のお前自身の姿だからゲラゲラ
192デフォルトの名無しさん (ワッチョイ ddb3-0MKJ)
垢版 |
2017/10/24(火) 12:43:32.89ID:Od9TZRLJ0
世の中バカばかり、自分だけがよくわかっている。
ってことでしょうか。
2017/10/24(火) 16:53:21.77ID:RCW9qhL70
こいつプログラミング板荒らしまわってる某コテハンと同じ臭いがする
2017/10/24(火) 17:21:11.13ID:xOeS6ucYM
まぁ、もうそろそろNG設定かね。俺は設定した。

大した技術持って無さそうだし。
2017/10/24(火) 17:41:23.62ID:+CxSIN/Vd
2ちゃんねるのコテハンにはろくなヤツがいないって、戦後生まれのじっちゃんが言っていた。
2017/10/24(火) 18:40:29.57ID:+CxSIN/Vd
そろそろ仕事やめて、めしにしようぜ

カレーライスとお子様ランチのどっちがいい?
2017/10/24(火) 18:53:07.38ID:+CxSIN/Vd
ギロッポンでめしにすっべ
今日は俺のおごりだ
2017/10/24(火) 20:33:42.55ID:4VNEc1KXM
>>190
いきなりスクリプトとか言い出した理由書いてみ
どんな言い訳が見れるのか楽しみだよ w
2017/10/24(火) 20:44:02.68ID:yRLde5ii0
>>176
左様
autoを見て嘔吐
2017/10/24(火) 20:53:50.44ID:YuTKkjXTr
auto jug_array = std::vector<std::vector<int>>(5000);
という書き方は2012年ごろにさっちんとメイヤーが広めようとしていた
C++17でこの書き方が広まったら>>185はもう出家するしかない
2017/10/24(火) 20:55:00.66ID:FyKtaGrZ0
autoに関して応答なさそうですね
2017/10/24(火) 20:56:05.26ID:YuTKkjXTr
昭和のアロマが強烈
2017/10/24(火) 21:14:49.95ID:yRLde5ii0
良く考えずに書いたが良く考えたら普通は
std::vector<std::vector<int>> jug_array(5000);
と書くところだったなあ…
204デフォルトの名無しさん (ワッチョイ bab3-QZhF)
垢版 |
2017/10/24(火) 21:50:21.25ID:018tmIsf0
UWPスレとか毛色が違うみたいだし、C++/CLIスレとか落ちてるんでここで教えて下さい

VS2017のC++/WinRTで新しいプロジェクトを作成
(Visual C++ → Windowsユニバーサル → 単体テストアプリ)
実行すると TEST APP 、Unit Test 、Tests Running の3つの文字が出てくるウィンドウが出てきます
しかし、UnitTestApp.xaml の Application要素の中身は、空っぽです
新しくブランクページを作ると、Page要素になって、デザインできる上にボタン等を貼り付けると
Page要素の中に要素が作られます

Application要素の中身は一体どこにあるのでしょう?
2017/10/24(火) 22:02:36.84ID:hjkLVxi70
>>204
Xamarin Part6
http://mevius.5ch.net/test/read.cgi/tech/1508367307/
2017/10/24(火) 22:15:38.33ID:018tmIsf0
>>205
そっちになるんですね、失礼しました、>>204は取り下げて移動します
207デフォルトの名無しさん (ワッチョイ e5b3-2TAP)
垢版 |
2017/10/25(水) 18:49:27.48ID:qOXOqU1a0
c++でダックタイピングのようなものをやりたいです。
void型で受け取ったクラスを自前で用意したインターフェースクラスにキャストして関数を呼び出すって可能ですか?
やり方や参考になるサイトなどあれば教えて欲しいです。
templateでの型消去はコンパイル段階でクラスを知らないせいで弾かれてしまっているようです……
2017/10/25(水) 19:02:03.57ID:16XMr+7o0
vfptrの実装状況によるから、未知の抽象クラスのメソッドって
呼べないと思うんだが
209デフォルトの名無しさん (ワッチョイ e5b3-2TAP)
垢版 |
2017/10/25(水) 19:20:07.39ID:qOXOqU1a0
>>208
ありがとうございます
やっぱクラスの構成わかんなきゃアクセスしようがないですよね……
exeのlibに依存せずになんとかdll開発できないかと考えてたんですが無理そうですね
諦めます
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況