C++相談室 part126at TECH
C++相談室 part126 - 暇つぶし2ch1:デフォルトの名無しさん
16/08/13 11:24:45.65 NPYsKJkE.net
次スレを立てる時は本文の1行目に以下を追加して下さい
!extend:on:vvvvv:1000:512
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレに
お願いします。
前スレ
C++相談室 part125
スレリンク(tech板)
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.99【環境依存OK】
スレリンク(tech板)
■長いソースを貼るときはここへ。■
 URLリンク(codepad.org)
 URLリンク(ideone.com)
[C++ FAQ]
URLリンク(isocpp.org)
URLリンク(www.bohyoh.com) (日本語)

2:デフォルトの名無しさん
16/08/13 16:09:56.09 DvcVUK7N.net
STLつかうと一気に実行ファイルサイズが10倍に?!
環境によるだろ。
俺はBorland-C++5.6.2に -D_RTLDLL オプションを指定して、極力
ランタイムを使用するようにして使っているが、例えばstd::vectorを
使っても使わない時と比べ10Kほどしか増えない
すげえ。ダイナミックリンクしといてファイルサイズが増えないとかいってるよ。この人。
C1010: プリコンパイル済みヘッダーの検索中に予期しない EOF を検出しました。
とかいうエラーが出るんだけどこれってどうすればいいの?
#include <stdafx.h>
後死ね。
言葉が悪いな。それで教えているつもりか。
まぁヒントぐらいにはなったな。
うむごくろう。
---- テンプレ ここまで ----

3:デフォルトの名無しさん
16/08/14 19:04:30.78 /ufxoGTJ.net
もう2のテンプレは要らない

4:デフォルトの名無しさん
16/08/14 19:48:31.49 jo5I4z3k.net
その時見てなかったから意味わかんないな。
恐らく誰かを晒しあげてんだろうなとは思うけど、いつまで粘着して書いてんだ気持ち悪いと思う。

5:デフォルトの名無しさん
16/08/14 22:26:13.71 TmMZaJrY.net
なんか異様に粘着性のやついるね

6:デフォルトの名無しさん
16/08/15 00:06:47.99 ojA5BmnI.net
変な奴は多いな
このスレの醍醐味

7:asgasgasg
16/08/21 11:29:17.36 NQK5qTs+.net
自作のWEBリクエスト システムを構築しています。HttpWebRequestを利用しています。
勉強の為、mixiへの自動ログインシステムを構築したのですが、うまくログインが出来ません。
■mixiのログイン構造
①トップページ URLリンク(mixi.jp) をGETする
---------
②ログインページ URLリンク(mixi.jp) へログイン情報をPOSTする
ポスト内容は以下の通り
next_url:/home.pl
post_key:①のレスポンス内容のinput hidden項目
postkey:空文字
email:ログインURL
password:ログインパスワード
sticky:on
以下のクッキーがセットされる
session
stamp
③ログイン後チェックページ URLリンク(mixi.jp) をGETする
②でセットされた以下クッキーでリクエストする
session
stamp
正常だと、HTTPステータス302のレスポンスヘッダーに Location:URLリンク(mixi.jp) があり
ログイン後トップ画面を表示する

8:デフォルトの名無しさん
16/08/21 22:19:10.60 IM0bL6CD.net
質問
double std::exp(double x)に与えてよいxの範囲を事前に知る方法は何か無いですか
std::log(std::numeric_limits<double>::max())とかでおk?ギリmaxを極められる?それとも危険性有り?
あるいはより洗練されてて確実な方法キボンヌ

9:デフォルトの名無しさん
16/08/21 23:08:26.81 FlxBKJll.net
exp(x) <= DBL_MAX
でexp(x)はeのx乗なんだから底がeのlogとって
log(exp(x)) <= log(DBL_MAX)
x <= log(DBL_MAX)
じゃろ…たぶん

10:デフォルトの名無しさん
16/08/22 00:54:07.85 BRaxQeMg.net
なんでCopy Constructorが呼ばれないんですか?
class A {
public:
A() { std::cout << "Constructor " << std::endl; }
A(const A &a) { std::cout << "Copy Constructor " << std::endl; }
~A() { std::cout << "Destructor " << std::endl; }
};
A create_A() {
A tmp;
return tmp;
}
int main() {
A a = create_A();
return 0;
}

11:デフォルトの名無しさん
16/08/22 00:59:08.93 FLDhgfD+.net
なんで呼ばれると思ってんの?

12:デフォルトの名無しさん
16/08/22 01:35:13.36 jYf9ISog.net
RVO,NRVOという最適化の仕組みが働いてコピーが省略される


13:から



14:デフォルトの名無しさん
16/08/22 01:40:27.00 BRaxQeMg.net
コピーが省略されたたらどうやって呼び出し元が値をうけとるのですか?

15:デフォルトの名無しさん
16/08/22 02:11:33.10 pkonYlZZ.net
呼び出し元のスタック上に戻り値が返される

16:デフォルトの名無しさん
16/08/22 02:19:39.81 jYf9ISog.net
mainはcreate_Aの返却値用の領域としてaを構築予定の領域を伝える(RVO)
create_Aではその返却値用の領域にtmpを構築してそのまま返却値として返す(NRVO)

17:デフォルトの名無しさん
16/08/22 07:22:17.99 BRaxQeMg.net
コピーが省略されてるとのことなのにどうやって伝える/返すのですか?

18:デフォルトの名無しさん
16/08/22 07:48:07.15 +lArBpqA.net
>>16
それで返ったことにする。

19:デフォルトの名無しさん
16/08/22 13:12:55.14 JD5nAQ8h.net
コピーが省略されてるのはAのコピーだけ
伝えるのは領域のアドレス
返すのは返却値用の領域の使用権・管理権

20:デフォルトの名無しさん
16/08/22 15:26:43.71 r/Rp/EFz.net
struct hoge
{
virtual ~hoge() = default;
};
virtualをこのように指定する事は可能ですか

21:デフォルトの名無しさん
16/08/22 16:46:53.55 PLWTluEf.net
>>19
やってみたらどうなんだ
gcc 19.cpp -std=c++14 -c
cl 19.cpp /EHsc /c

22:デフォルトの名無しさん
16/08/22 16:55:34.71 r/Rp/EFz.net
>>20
すでにやりました
規格的にどうかと聞いているんです

23:デフォルトの名無しさん
16/08/22 17:05:45.63 L/g35wNF.net
8.4.1/1
自分で調べろよ

24:デフォルトの名無しさん
16/08/22 17:48:37.29 GL87eYox.net
調べてわからないから聞いてるんです。
それに「8.4.1/1」ってなんですか、
企画の8.4.1を見たらわかるんですか。
もう少し実のある回答をお願いします。

25:デフォルトの名無しさん
16/08/22 17:54:52.35 PLWTluEf.net
>>21
規格でどうたらは今はじめて言ったんだろうが
無駄に答えさせたの謝ってからにしろ ぼけ

26:デフォルトの名無しさん
16/08/22 17:55:54.20 L/g35wNF.net
またこいつか
>企画の8.4.1を見たらわかるんですか。
企画じゃなくて「規格」な。そうに決まってるだろ
お前はここの誰かが適当なこと言ったらそれを信じるのか?
俺が該当箇所を親切にも教えてやったのに、何が「もう少し実のある回答をお願いします」だよ
規格を気にしてる人間にこれ以上実のある回答なんてないんだよハゲ

27:デフォルトの名無しさん
16/08/22 18:06:14.22 r/Rp/EFz.net
>>24
勝手にやってないことにされても困るので

28:デフォルトの名無しさん
16/08/22 18:31:25.03 PLWTluEf.net
>>26
やったかどうか19の時点で言わねえ
てめえの落ち度を棚に上げて勝手にとかぬかすなクズ

29:デフォルトの名無しさん
16/08/22 19:27:22.83 r/Rp/EFz.net
>>27
勝手に勘違いして逆ギレされても困りますけど

30:デフォルトの名無しさん
16/08/22 19:29:51.79 h7MtbrKQ.net
>>25
規格の8.4.1を読んだけどわかりませんでした
どこをどう読むと>>19の答えが読みとけるのか教えて下さい

31:デフォルトの名無しさん
16/08/22 20:32:32.48 L/g35wNF.net
>>29
8.4.1では関数定義における一般的な事について書かれていて
=defaultに関する特別なルールに関しては次の「8.4.2 Explicitly-defaulted functions」に書かれてる
から8.4.2を読んだほうが良い
本当に調べる気があるならとっくに読んでるだろうけど

32:デフォルトの名無しさん
16/08/22 20:35:38.43 h7MtbrKQ.net
で、>>19にあるvirtualとデストラクターと=defaultの組み合わせが禁止されて「いない」ことは
どこから読みとるのですか?

33:デフォルトの名無しさん
16/08/22 21:30:40.25 L/g35wNF.net
>>31 逆にどこで禁止されているんだよ? attribute-specifier-seqopt decl-specifier-seqopt declarator virt-specifier-seqopt = default ; に合致してて他で特別に禁止されてないなら、それは許可されてるんだって分かれよ



35:デフォルトの名無しさん
16/08/22 22:14:15.64 h7MtbrKQ.net
>逆にどこで禁止されているんだよ?
1358ページある規格のどこにも禁止されていないことを8.4.1のどこから読みとるのか
と聞いているのに、論理的思考のできない低能はどうしようもないな

36:デフォルトの名無しさん
16/08/22 22:38:44.27 PLWTluEf.net
>>28
勘違いじゃねえだろ
与えなかった情報がどっちに転ぶか
中間電位だのメタステーブルだのって状況を
おまえがわかってねえんだよ
言わなかったことは俺の都合よく取ってくれだろ?
甘やかされた金持ちボンボンによくあるんだが
家庭教師を雇う経済力はない親御さんのようだな

37:デフォルトの名無しさん
16/08/22 22:46:13.25 L/g35wNF.net
>>33
はあ?お前どんだけバカなんだよ
論理的(爆笑

38:デフォルトの名無しさん
16/08/22 22:53:13.58 PLWTluEf.net
禁止されて「いない」ことの証明を他力本願で祈りながら、
お寺の坊主にはお布施も渡さずに低脳よばわり
まあいいんじゃないか? ご利益なくて地獄に落ちるバカもいて

39:デフォルトの名無しさん
16/08/22 23:07:38.46 h7MtbrKQ.net
なんだ
結局>>25の『そうに決まってるだろ』は嘘だったのか

40:デフォルトの名無しさん
16/08/22 23:11:56.81 h7MtbrKQ.net
しかし>>19の質問が言語仕様の質問だと認識できない>>20は相当なアスペだな

41:デフォルトの名無しさん
16/08/22 23:15:20.32 L/g35wNF.net
>>37
キチガイにくれてやる餌はもうありませんよ

42:デフォルトの名無しさん
16/08/23 05:52:48.19 O4MU2HPR.net
規格に「○○と書くことができる」と明示されているなら
「規格書のこの場所を参照せよ」と教えられるけど、
「○○と書くことは禁止する」とか「○○と書いた場合の動作は未定義」とか、
どこにも書かれていないから許されるっていう論理展開の場合、
「規格書を隅から隅まで読め」としか言いようがないよな。
ところでC++の規格書にアクセスする方法を
スレッドのテンプレートにでも載せておくと便利かもね。
というか、タダで読める規格書を紹介してください。

43:デフォルトの名無しさん
16/08/23 06:53:40.84 Y0n1zcYL.net
>>34
特定のコンパイラに依存する話はしてないのだから規格の話であることは明確です
逆になぜコンパイラに依存すると思い込んだのか不明です
勘違いしたなら素直にそう言えばいいだけなのではないでしょうか見苦しいです

44:デフォルトの名無しさん
16/08/23 08:19:52.18 IvwXbhOy.net
>>41
おまえは可能かと聞いたんだ、いいか可能かだぞ
exportのように規格では可能でコンパイラでは不能なことや
結合指定の一致しない関数ポインタのように規格では不能でコンパイラでは可能なことだってある
おまえが脳内で勝手に決めたことなんざ
ぜんぜん明確じゃねえんだよバカ

45:デフォルトの名無しさん
16/08/23 08:26:02.57 qBPZWzjH.net
>>42
特定のコンパイラに依存する話など聞いていません
自分で勝手に前提を作ってその前提をもとに話しをしてそれを押し付けられてもこちらはそんな話はいらないとしか言えないです
申し訳ないですけど頭のおかしい人に見えます

46:デフォルトの名無しさん
16/08/23 08:31:31.66 qBPZWzjH.net
勘違いして恥ずかしいから自分を正当化するために相手が悪いという事にしたい気持ちはわかります
でもそれは余計恥ずかしい事なので恥の上塗りはや�


47:゚たほうがいいと思いますよ



48:デフォルトの名無しさん
16/08/23 08:43:12.87 uPhg+qti.net
>>19 みたいな初心者と勘違いされるような質問の仕方が悪い

49:デフォルトの名無しさん
16/08/23 08:49:04.54 DsF8a6WC.net
技術板なのに「自分の言い分が正しい」って言い合い続けるだけのバカ共が居座っているのか

50:デフォルトの名無しさん
16/08/23 08:49:55.28 3V8DlG7j.net
何だこの釣り堀は?

51:デフォルトの名無しさん
16/08/23 08:59:21.57 J0tT4d0S.net
でも2chはプロが話し合う場ではない、というのもまた真実なんだよな。
プログラム板はある意味異常。

52:デフォルトの名無しさん
16/08/23 09:18:16.76 IvwXbhOy.net
>>43
19の時点ではコンパイラとも規格とも
おまえはどちらとも言ってない
どうあがいてもこの事実は覆らない

53:デフォルトの名無しさん
16/08/23 09:25:17.91 qBPZWzjH.net
書いてないのに勝手にコンパイラの話に決めつけるのはおかしい事です
なぜコンパイラの話にしたのか意味不明でアホ過ぎます
しかもそれを指摘されると逆ギレするのはとてもみっともない事です

54:デフォルトの名無しさん
16/08/23 09:48:23.79 IvwXbhOy.net
ははは
規格の話だって主張を引っ込めたな

55:デフォルトの名無しさん
16/08/23 09:59:46.93 qBPZWzjH.net
コンパイラは指定してないのだから
コンパイラに依存しないつまり規格の話なのは言うまでも無いです
特定のコンパイラでできるかどうか聞いているのなら最初からそのように言うでしょう
なぜ勝手にコンパイラの話にしたのか思考がおかしいです
論理的では無いです。
しかもその勘違いを指摘してあげたのに逆ギレとは心外です

56:デフォルトの名無しさん
16/08/23 10:16:39.75 IvwXbhOy.net
いーや、おまえが "企画" と言い出したのは23からだ
歴史を捏造したり、嘘を100回言って本当にしようとしたり、
まるでどっかの国の告げ口おばさんだな

57:デフォルトの名無しさん
16/08/23 10:31:45.33 IvwXbhOy.net
あ、21だっけ
いずれにせよ遅きに失したことに変わりはないが

58:デフォルトの名無しさん
16/08/23 10:38:24.61 qBPZWzjH.net
企画とか言い出したのは別人です
c++のスレでコンパイラの話をしてないのに規格の話とは思わなかったというのは流石に無理があります

59:デフォルトの名無しさん
16/08/23 10:47:49.73 LgPC+ubP.net
規格を端から端まで読まないとわからないという結論が出た以上、無駄な議論をする時間で規格を読んではいかが?

60:デフォルトの名無しさん
16/08/23 11:09:33.65 vhBIERX9.net
どういう結論だよw
「8.4 Function definitions」とせいぜい「12.4 Destructors」を読めばいいだろ
ゆっくり読んでも5分もあれば十分

61:デフォルトの名無しさん
16/08/23 11:34:13.96 IvwXbhOy.net
>>56
>>42
あれはウリじゃないニダか、ははは

62:デフォルトの名無しさん
16/08/23 11:56:52.76 qBPZWzjH.net
勝手な思い込みでコンパイラの話と決めつけて他人を本人だと決めつけて
思い込みが激しい人なんですね
勘違いをして恥かいたのはしょうがない事です
それを人のせいにするのは小学生みたいで見苦しいですよ

63:デフォルトの名無しさん
16/08/23 12:05:27.02 J0tT4d0S.net
「俺はコンパイラの話と思った。理由はともかくその話をするぜ」ってスタンスでも別にいいし、
「理由もなくそんな話するのは頭おかしい」と断ずるのもどうかと思う。
ちゃんとした話はTwitterででもやれ。

64:デフォルトの名無しさん
16/08/23 12:31:02.84 IvwXbhOy.net
>>59
不自由な日本語で恥かいたのはあんただよ外人さん

65:デフォルトの名無しさん
16/08/23 12:47:10.45 qBPZWzjH.net
勘違いで恥をかいたのが悔しくて外人だの言い出すのはみっともないですよ
何度も言いますがコンパイラの話はしてないのに勝手にコンパイラの話と決めつけるのは愚かな事です。
逆ギレして罵りたいのはわかりますがどこまでいっても恥ずかしいだけです

66:デフォルトの名無しさん
16/08/23 12:49:07.79 qBPZWzjH.net
しかもちゃんと指摘してあげたのに
お前が悪いと人のせいにするあたりに人間性がよく現れていると思います

67:デフォルトの名無しさん
16/08/23 13:06:25.52 IvwXbhOy.net
>>63
おまえが悪いんだよ
誰もおまえを擁護しねえだろ
おまえのしたことは典型的な質問者の後出しだ
それだけでも無礼なのに態度もでかすぎ
どこまでも腐りきった根性曲がりはみんな大嫌いなんだよ

68:デフォルトの名無しさん
16/08/23 13:13:48.34 qBPZWzjH.net
残念ながら違います
言ってもいないことを勝手に解釈して決めつけることが悪いことです
さらに悪いのは間違いを指摘されたにも関わらず素直にそれを認めず人のせいにする
これこそが人間として最悪の事です
自分の間違いを認めたくないから人種などの話を持ち出して話をそらしたいのでしょう
それは卑怯者のすることです。

69:デフォルトの名無しさん
16/08/23 13:23:13.61 HFGMYFIt.net
スレのマナーを守らないNG推奨ID
ID:qBPZWzjH
ID:IvwXbhOy

70:デフォルトの名無しさん
16/08/23 13:31:03.89 IvwXbhOy.net
>>65
回答者がある程度エスパーするのが悪いこととか
まれに見るほど呆れ果てたクズ質問者だな

71:デフォルトの名無しさん
16/08/23 13:39:37.64 qBPZWzjH.net
>>67
間違うのは仕方がないことです
こちらは即座に間違いを指摘してさしあげました
ゴネる要素は何処にもないはずなのにあなたはゴネています
ここまでくると頭がおかしくていらっしゃるということしかできません

72:デフォルトの名無しさん
16/08/23 13:47:41.11 ksfCp0yK.net
後出し質問者vs似非エスパー回答者

73:デフォルトの名無しさん
16/08/23 14:12:56.77 IvwXbhOy.net
>>68
指摘じゃねえよ、後出し注文だクズ

74:デフォルトの名無しさん
16/08/23 14:21:52.19 qBPZWzjH.net
間違いを指摘されて悔しいのは理解できます
でもこちらがコンパイラの話を出していないのにコンパイラの話に決めつけるのはあまりに不自然で愚かしいです

75:デフォルトの名無しさん
16/08/23 14:37:43.79 IvwXbhOy.net
>>71
おまえは可能かと聞いたんだ
コンパイラ持ってないやつは自動的に不可能だろうが
おまえの中ではそれが不自然らしいなゴミ

76:デフォルトの名無しさん
16/08/23 14:51:18.14 qBPZWzjH.net
コンパイラの話をしてないのにコンパイラの話と決めつけるのは不自然です
コンパイラの話をしてないのだからコンパイラに依存する話ではないと判断するのは自然です
この程度の判断もできないのはちょっと困りますね
指摘してあげたのに間違いを認めず人のせいにするのはもっと困ります

77:デフォルトの名無しさん
16/08/23 15:00:09.95 F2Uig/g+.net
.   | 
.\   /       ____     , -‐……‐--. . . 、           \  |  /
\     /    /. : : : : : : : :ヽ-‐.: :_;. --- .._: : : : : : : :\       \      /
_  も  _  /, -‐==ミ: : : : _,ィニ-‐……ー-: 、`ヽ、: : : : ヽ、      _  争   _
_  っ  _     . .:´: : : : : : : ≠:7: : : : : : : : : : : : :ヽ、 ヽ| : i : : :,   _   え  _
_  と   _   /.: : : : -‐: :7´: : /:,ハ : : : :ヽ : : : ゝ-- :\ | : :! : : : ,  _   :  _
_ .争  _ /, -‐/.: : : : :i : : /ィ:爪: : :\ :\ : : :\: : :`ト : !: : : :′   _  :  _
   え    〃 /. : : : : : : |.:イ :ハ:| \: .、\: : xィ¬ト、: :| : : ! : : : : :,        
/  :   \ /:.: :/.: : : : /l : |/Гト、      / |_,ノ0:::ヽ : : :i : : : :     /      \
 / |  \.| .:/.:/. : : :i: i : | |ノ0:::ト :::::::::::::   |: :∩::::::ト: : : !: : : : : : :,   /  |  \
       ∨i: |: : : : |: :ヽ| |::∩::| ::::::::::::::::  !.::∪::::::| |: : :i : : : : : :        ,ィ /〉
         |: |: : i : :', : |  |::∪::| ::::::::::::::::  !: : : : : :||: : i : : : : : : :     / レ厶イ
          ヽハ: : :、: :ヽ|  l : : : |:::::  ,  ::::└―┘ ! : : i : : : : : : :    /   ⊂ニ、
           い、: :\/   ̄ ̄                 ', : : i : : : : : : : : , -‐'   ⊂ニ,´
  r 、  _       ヽ: :〈        <  ̄ フ         |: : : ! :: : : :,.-‐T _,. -‐'´ ̄
  くヾ; U|       | : \                   /| : : :i : :: :_, ‐' |  /
 r―'   ヽ        | : : : \               イ: : :| : : :i_,.-‐   |/
  `つ _ ̄ ̄Τ`ー-- L: : : : : `: : . . .  __    .:〔: : :|: : :r┬'       |

78:デフォルトの名無しさん
16/08/23 15:01:58.06 IvwXbhOy.net
おまえの中ではの話にすぎない
後出し注文が通らなくて困るのは俺にゃ関係ない

79:デフォルトの名無しさん
16/08/23 15:05:26.92 F2Uig/g+.net
.   | 
.\   /       ____     , -‐……‐--. . . 、           \  |  /
\     /    /. : : : : : : : :ヽ-‐.: :_;. --- .._: : : : : : : :\       \      /
_  も  _  /, -‐==ミ: : : : _,ィニ-‐……ー-: 、`ヽ、: : : : ヽ、      _  争   _
_  っ  _     . .:´: : : : : : : ≠:7: : : : : : : : : : : : :ヽ、 ヽ| : i : : :,   _   え  _
_  と   _   /.: : : : -‐: :7´: : /:,ハ : : : :ヽ : : : ゝ-- :\ | : :! : : : ,  _   :  _
_ .争  _ /, -‐/.: : : : :i : : /ィ:爪: : :\ :\ : : :\: : :`ト : !: : : :′   _  :  _
   え    〃 /. : : : : : : |.:イ :ハ:| \: .、\: : xィ¬ト、: :| : : ! : : : : :,        
/  :   \ /:.: :/.: : : : /l : |/Гト、      / |_,ノ0:::ヽ : : :i : : : :     /      \
 / |  \.| .:/.:/. : : :i: i : | |ノ0:::ト :::::::::::::   |: :∩::::::ト: : : !: : : : : : :,   /  |  \
       ∨i: |: : : : |: :ヽ| |::∩::| ::::::::::::::::  !.::∪::::::| |: : :i : : : : : :        ,ィ /〉
         |: |: : i : :', : |  |::∪::| ::::::::::::::::  !: : : : : :||: : i : : : : : : :     / レ厶イ
          ヽハ: : :、: :ヽ|  l : : : |:::::  ,  ::::└―┘ ! : : i : : : : : : :    /   ⊂ニ、
           い、: :\/   ̄ ̄                 ', : : i : : : : : : : : , -‐'   ⊂ニ,´
  r 、  _       ヽ: :〈        <  ̄ フ         |: : : ! :: : : :,.-‐T _,. -‐'´ ̄
  くヾ; U|       | : \                   /| : : :i : :: :_, ‐' |  /
 r―'   ヽ        | : : : \               イ: : :| : : :i_,.-‐   |/
  `つ _ ̄ ̄Τ`ー-- L: : : : : `: : . . .  __    .:〔: : :|: : :r┬'       |

80:デフォルトの名無しさん
16/08/23 15:07:26.73 qBPZWzjH.net
勝手にコンパイラの話にされた挙句
逆ギレして人のせいにされて困ってます
こういう横暴は控えるのが常識的な人間の態度かと存じます

81:デフォルトの名無しさん
16/08/23 15:16:57.13 F2Uig/g+.net
.   | 
.\   /       ____     , -‐……‐--. . . 、           \  |  /
\     /    /. : : : : : : : :ヽ-‐.: :_;. --- .._: : : : : : : :\       \      /
_  も  _  /, -‐==ミ: : : : _,ィニ-‐……ー-: 、`ヽ、: : : : ヽ、      _  争   _
_  っ  _     . .:´: : : : : : : ≠:7: : : : : : : : : : : : :ヽ、 ヽ| : i : : :,   _   え  _
_  と   _   /.: : : : -‐: :7´: : /:,ハ : : : :ヽ : : : ゝ-- :\ | : :! : : : ,  _   :  _
_ .争  _ /, -‐/.: : : : :i : : /ィ:爪: : :\ :\ : : :\: : :`ト : !: : : :′   _  :  _
   え    〃 /. : : : : : : |.:イ :ハ:| \: .、\: : xィ¬ト、: :| : : ! : : : : :,        
/  :   \ /:.: :/.: : : : /l : |/Гト、      / |_,ノ0:::ヽ : : :i : : : :     /      \
 / |  \.| .:/.:/. : : :i: i : | |ノ0:::ト :::::::::::::   |: :∩::::::ト: : : !: : : : : : :,   /  |  \
       ∨i: |: : : : |: :ヽ| |::∩::| ::::::::::::::::  !.::∪::::::| |: : :i : : : : : :        ,ィ /〉
         |: |: : i : :', : |  |::∪::| ::::::::::::::::  !: : : : : :||: : i : : : : : : :     / レ厶イ
          ヽハ: : :、: :ヽ|  l : : : |:::::  ,  ::::└―┘ ! : : i : : : : : : :    /   ⊂ニ、
           い、: :\/   ̄ ̄                 ', : : i : : : : : : : : , -‐'   ⊂ニ,´
  r 、  _       ヽ: :〈        <  ̄ フ         |: : : ! :: : : :,.-‐T _,. -‐'´ ̄
  くヾ; U|       | : \                   /| : : :i : :: :_, ‐' |  /
 r―'   ヽ        | : : : \               イ: : :| : : :i_,.-‐   |/
  `つ _ ̄ ̄Τ`ー-- L: : : : : `: : . . .  __    .:〔: : :|: : :r┬'       |

82:デフォルトの名無しさん
16/08/23 15:24:57.18 IvwXbhOy.net
だから勝手に困ってろよ
そんな個人的なことを発表にくるな
同情を引きたくて衆目の前でメソメソ泣いてるのと同じだぜおまえ

83:デフォルトの名無しさん
16/08/23 15:34:23.25 qBPZWzjH.net
勝手な勘違いで赤っ恥をかいたことを認めたくので
人に責任を押し付けてるわけですね
それは人間として最もみっともない行為ですよ

84:デフォルトの名無しさん
16/08/23 17:15:01.76 IvwXbhOy.net
やーい、困る困ると連呼してたのが止まったw

85:デフォルトの名無しさん
16/08/23 17:57:59.23 nfi0AMZ6.net
ID:qBPZWzjHは安定だな。討論で闘うポイントを抑えている。
ID:IvwXbhOyは潜在的にオツムが弱いタイプ

86:デフォルトの名無しさん
16/08/23 18:03:38.77 82e1JvbW.net
どっちも迷惑なタイプ
普通に質問すら出来ないバカと
最初の質問からそれを読み取ってスルーしないバカ

87:デフォルトの名無しさん
16/08/23 18:06:03.61 HFGMYFIt.net
昼間ずっとやっているとか手に負えんな
>>82
C++に関係ないディベートやるスレじゃねぇよ

88:デフォルトの名無しさん
16/08/23 18:11:19.74 nfi0AMZ6.net
<まっとうな者同士の会話>
このように指定する事は可能ですか
 ↓
やってみたらどうなんだ
 ↓
すでにやりました 規格的にどうかと聞いているんです
 ↓
あ、そうなの。失礼
<キチガイとの会話>
このように指定する事は可能ですか
 ↓
やってみたらどうなんだ
 ↓
すでにやりました 規格的にどうかと聞いているんです
 ↓
規格でどうたらは今はじめて言ったんだろうが
無駄に答えさせたの謝ってからにしろ ぼけ
後出し注文だクズ

89:デフォルトの名無しさん
16/08/23 18:13:49.00 IvwXbhOy.net
>>82
ありがとよ
俺がオツムが弱いのは事実なので別にいいし
それでもディベテクで誤魔化せる問題じゃなかったわけだ

90:デフォルトの名無しさん
16/08/23 18:15:21.36 IvwXbhOy.net
>>85
聞いてるんですという嘘が許せねえんだよ
聞きたいんですだろ

91:デフォルトの名無しさん
16/08/23 18:35:19.51 sEUAXxwa.net
>>40
アホか?
プログラミング言語の仕様書は形式言語で、書く事が出来る事は厳密に定義してるわ

92:デフォルトの名無しさん
16/08/23 18:43:08.31 nfi0AMZ6.net
そうか?
例えば8章だけだとコンストラクターはをvoid hoge (){}と書けそうだけど、
実際は12.1を読むとvoidが書けないことがわかるだろ。
局所的に8章だけ見てわかるだろ というのは変だと思うのだが。
特にC++は規格の3,7,8,9,12章をくまなく読んで確認しないと安心出来ない

93:デフォルトの名無しさん
16/08/23 21:17:04.88 PDPzOw0b.net
ラムダ式を関数に渡す場合はテンプレートで受け取るしかないのか?

94:デフォルトの名無しさん
16/08/23 21:34:59.86 fXfboly6.net
ディベートはC++でプログラムする

95:デフォルトの名無しさん
16/08/23 21:41:26.18 1HCV3l6R.net
>>90
std::function

96:デフォルトの名無しさん
16/08/23 23:08:28.87 nDdy5zri.net
>>92
いい加減な回答だな・・・
ラムダ式の型はコンパイラにしかわからないのに、なぜstd::function にコピーしてもいいのか?

97:デフォルトの名無しさん
16/08/23 23:25:19.49 2deJIJdD.net
同じシグネチャの関数ポインタの型にも渡せる

98:デフォルトの名無しさん
16/08/23 23:46:30.82 y4gmj8NB.net
キャプチャがなければね

99:デフォルトの名無しさん
16/08/23 23:49:50.40 nDdy5zri.net
>>94
auto lmd = [](){};
void (*pf)();
cout << sizeof(lmd) << endl;
cout << sizeof(pf) << endl;

100:デフォルトの名無しさん
16/08/24 01:27:40.47 e6LV9cko.net
>>96
何が言いたいんだよ

101:デフォルトの名無しさん
16/08/24 02:12:05.23 ui+t3Px2.net
>>96
そりゃあLambdaじゃサイズ違うが、それがなんなんだよ
コミュ障すぎる

102:デフォルトの名無しさん
16/08/24 02:31:42.60 sRbuKfy8.net
>>97
>>94,95の無キャプチャのクロージャは関数ポインタへ変換可能だという話に対して
sizeofの大きさが違うから渡せるはずないじゃんという無知からくる間違った『間違いの指摘』だろ

103:デフォルトの名無しさん
16/08/24 06:29:36.29 dZrohm6h.net
>>10
A() に explicit 付け忘れとるでよ

104:デフォルトの名無しさん
16/08/24 08:13:18.11 LiadQQJo.net
>>93
話を逸らしたところで
>>92>>90の求める答えになっていることに変わりはないぞ。
テンプレートを使用した技法を使っているかどうかじゃやくて
呼ばれる側(ラムダを受け取る側)のシグネチャー固定だからな

105:デフォルトの名無しさん
16/08/24 08:21:59.06 LiadQQJo.net
>>100
むしろどうしてこのクラスのA()に付けようと思った?

106:デフォルトの名無しさん
16/08/24 09:11:35.12 KdH0xAm4.net
ここってプログラムの依頼とかできますか?

107:デフォルトの名無しさん
16/08/24 09:14:38.48 zuAyaRZV.net
質問者のふりをして降ってみれば
喧嘩が始まってプログラムそっちのけになるかも

108:デフォルトの名無しさん
16/08/24 09:25:41.91 KdH0xAm4.net
よく見たら上がすでに喧嘩状態でしたね
じゃあ質問させていただきます。
今、ネプリーグのトロッコアドベンチャーを再現しようとしています。
動画のほうは完成しつつあるのですが、肝心の再生技術がありません。
やりたいこととしては
①クイズを5段階の難易度に分けて最初に指定
②本物のように左を選択したら、左用の動画が流れるような仕組みにしたい。
それもキーコマンドか何かで。
➂正解したら次の動画が再生され、失敗したらそこで動画が止まるような仕組み。
プログラム初心者なので、経験のある友人にやらせようかと思っています。
こうしたらいいんじゃね?っていう案をください。お願いします

109:デフォルトの名無しさん
16/08/24 09:28:02.77 zuAyaRZV.net
とりあえずC++じゃねえな
C++出できなくないけどやりたくない
つまりスレチ

110:デフォルトの名無しさん
16/08/24 09:28:58.95 KdH0xAm4.net
了解です。ありがとうございます

111:デフォルトの名無しさん
16/08/24 14:56:32.59 NR8vORkc.net
>>96
ちょっと楽しめた
cout << sizeof(&decltype(lmd)::operator()) << endl;
cout << sizeof((void(*)())lmd) << endl;

112:デフォルトの名無しさん
16/08/24 21:03:17.24 09YX4k7p.net
>>105
OpenCV使え

113:デフォルトの名無しさん
16/08/24 21:42:42.82 KdH0xAm4.net
>>109
なるほど、公開されているプログラム?の中に似たようなものがあるということですね。
探してみますありがとうございます。

114:デフォルトの名無しさん
16/08/24 23:56:13.09 SbVNGFmk.net
初めてboostで通信プログラム書くんだけれど、
void hpge()
{
boost::asio::ip::tcp::socket *sock;
boost::asio::io_service *service;
service = new io_service();
sock = new ip::tcp::socket(*service);
ip::tcp::acceptor acc(*service, ip::tcp::endpoint(ip::tcp::v4(), 2000));
acc.accept(*sock);
// 適当に送信
{
unsigned int a = 1234;
char b[4];
memcpy_s(b, 4, &a, 4);
sock->send(boost::asio::buffer(b));
}
delete sock; // (´・ω・`)はぁ?
}
なんでソケットがclose()やdeleteされないと送信が完了しないのか訳が分からない……
送受信のたびに毎回コネクトし直せとかそんな馬鹿げた仕様なわけあるまいし、どうやって使うもんなんですこれは?

115:デフォルトの名無しさん
16/08/25 00:06:36.64 fxoWtzfY.net
あっ、あとwinsockとか根本的に通信手段を変えろってダメなんです
具体的にはJVMTIでJVMを監視して、その情報を通信で飛ばしたい
その環境でwinsock使ったらそもそもコネクトすら出来んかった

116:デフォルトの名無しさん
16/08/25 00:13:11.38 HcIHj1Mt.net
>>111
サンプルぐらい読めよ

117:デフォルトの名無しさん
16/08/25 00:32:47.51 wUu3TQ4N.net
挙動に疑問があればまず公式資料で仕様を調べるだろ
URLリンク(www.boost.org)
> Remarks
> The send operation may not transmit all of the data to the peer. Consider using the write function if you need to ensure that all data is written before the blocking operation completes.

118:デフォルトの名無しさん
16/08/25 00:37:54.17 HcIHj1Mt.net
これが一番簡単な例な
URLリンク(www.boost.org)
あと、関係ないけど無意味にnewしてる所とかもうちょい基本的なC++の使い方学んだ方がいい気がする

119:デフォルトの名無しさん
16/08/25 00:47:16.73 aAEQc8xp.net
通信クラスだけは何故か必ずnewする奴いるわ

120:デフォルトの名無しさん
16/08/25 02:46:19.92 fxoWtzfY.net
ありがとうwriteでやってみたらいけそうな気がした
まだなんか挙動が怪しいけれど
newしてるのは自分で定義した通信専用クラス的なのにメンバとしてソケットを持たせようとしてるからなんだ
質問のソースでは1個の関数に収めちゃったけども

121:デフォルトの名無しさん
16/08/25 03:46:17.43 k3Y9C66L.net
>>105
openframeworksとか使えば一瞬でできる

122:デフォルトの名無しさん
16/08/25 04:26:26.59 bqd04CsU.net
boostなんて使う理由がわからん

123:デフォルトの名無しさん
16/08/25 08:14:37.95 cZABj4Tc.net
>その環境でwinsock使ったらそもそもコネクトすら出来んかった
自分のプログラムにバグがあるという発想には至らなかったようだ

124:デフォルトの名無しさん
16/08/25 09:04:55.17 EwnmxDlV.net
>newしてるのは自分で定義した通信専用クラス的なのにメンバとしてソケットを持たせようとしてるから
newする理由になってないぞ

125:デフォルトの名無しさん
16/08/25 10:22:03.81 87TtdhSG.net
おいあんましいじめるなよ

126:デフォルトの名無しさん
16/08/25 10:38:13.96 WECz9XA9.net
newするのは良くないってのはどこかでdeleteしたいときであって、そこを管理しなくていいならどんどんnewすればいい

127:デフォルトの名無しさん
16/08/25 12:16:43.61 j/BsZXzc.net
ナマポ使うなスマポ使えっていういつもの布教じゃろ

128:デフォルトの名無しさん
16/08/25 12:46:06.50 EwnmxDlV.net
スマポ使う必要もないということも分からんですかそうですか

129:デフォルトの名無しさん
16/08/25 17:40:44.14 fxoWtzfY.net
ええ?
じゃあ不勉強なもんでもうひとつ聞きたいんだけれど
class Tsushin
{
private:
boost::asio::ip::tcp::socket *sock;
}
っていうソケットを持ったクラスを作るとして、これをどうやってポインタを使わずに実装できるん?
boost::asio::io_serviceのインスタンスが無いとsocketのインスタンス作れないから、これ以外の方法が分からないんだけれども

130:デフォルトの名無しさん
16/08/25 17:55:50.29 fxoWtzfY.net
あっ自己解決しました
メンバイニシャライザっていうんかc++でこの書き方初めて知った

131:デフォルトの名無しさん
16/08/25 19:43:09.16 cZABj4Tc.net
一つ前のレスも読めないと�


132:ヘ どうしてこのスレはこうも文盲が多いのか



133:デフォルトの名無しさん
16/08/25 20:30:02.71 aAEQc8xp.net
メンバのクラスはコンストラクタが動かないからポインタで持たせるといいよと言ってる奴は結構いるから困る

134:デフォルトの名無しさん
16/08/25 20:45:21.63 HcIHj1Mt.net
>>129
そんなやつ見たことねー

135:デフォルトの名無しさん
16/08/25 20:54:49.89 dURn6wW4.net
そんな奴おらへんやろ~って漫才師、こだまひびきって言うのか。
今ググって分かった

136:デフォルトの名無しさん
16/08/25 21:19:05.54 aAEQc8xp.net
>>130
ガチだぞ
うちの会社のソースを見たらみんなポインタで持ってて、上司に何でこんなことをしているのかと聞いたらそうじゃないと使えないからとか返ってきた
しかも暗黙のコーディング規約になっているらしく初期化リストを使おうとしたら変な文法使うのやめてとか言い始めた

137:デフォルトの名無しさん
16/08/25 21:41:30.58 Auzyp/YA.net
c++書いちゃいけないレベルの奴が無理して書いてると一瞬でコードが負債化するな
こんな職場少なくないんだろうな
おとなしくゆとり向けのjavaかc#にしときゃいいのに

138:デフォルトの名無しさん
16/08/25 21:49:20.87 gyF7bTdS.net
>>132
おまおれ・・・つーか、もしかして知り合い?

139:デフォルトの名無しさん
16/08/25 21:50:34.75 rkw+skCq.net
怖いな
もちろんスマポも禁止でデストラクタでデリートしているのだろうな。

140:デフォルトの名無しさん
16/08/25 22:02:34.44 sWxqL1bB.net
コンストラクタで代入しているのはまだカワイイもんで、K&RのCとC++の区別すらついてないのがゴロゴロいるよ
固定長配列しか使えない
構造体、配列をmemsetで初期化
algorithmヘッダの関数を知らない
全部forでぐーるぐる
Cスタイルのキャストしか知らない
引数のconst参照渡しを知らない
コードにconstが一切出てこない
変数は関数の頭でまとめて宣言

141:デフォルトの名無しさん
16/08/25 23:01:19.36 aAEQc8xp.net
STL(標準ライブラリ全てのこと)は使わないでねと言われる、しかしMFCは使う
1人だけVS6.0を使っている
新しいバージョン使いましょうと言ったら、内部で新しいライブラリが読み込まれているかもしれないからバグが怖いと言って拒否される
君の書いたコードがコンパイルできないんだけどと言うから見に行ったら、古い仕様でfor文内の変数宣言が重複宣言扱いになってるせいだったが、これおかしくない?変数はfor文の外で宣言しないとダメだよとアドバイスされた
Gitは使いたくないらしく共有フォルダにzipで置いておかないと成果物として認められない
その処理は標準ライブラリで簡単にできると言っても使わなくてもできるでしょとと言って自力でやろうとする
GUIのクラスに様々な処理をべったりと書く
それぞれを部品と見なしてもっと抽象化するように書くと良いですよと説得しようとしたら理屈はいいからと言って一蹴される
C#に移行する案が出ると俺に勉強しろというのかと言って腹を立てる

142:デフォルトの名無しさん
16/08/25 23:08:56.49 bqd04CsU.net
stlおせーからな
そうりゃそうだろ
内もつかわねーよ

143:デフォルトの名無しさん
16/08/25 23:13:44.51 i0nCiEhg.net
え?

144:デフォルトの名無しさん
16/08/25 23:14:18.40 i0nCiEhg.net
凡人がSTLの開発効率と速度を超えるのは容易ではないと思うんだが。

145:デフォルトの名無しさん
16/08/25 23:30:57.44 sWxqL1bB.net
「STLが遅い」という人はほとんどの場合
「デバッグビルド時になんか知らんけどvectorが生配列に比べて遅い」
という意味でおっしゃっています

146:デフォルトの名無しさん
16/08/25 23:32:50.42 aAEQc8xp.net
>boostなんて使う理由がわからん
>stlおせーからな
自信過剰なのか使い方がわからないのか

147:デフォルトの名無しさん
16/08/25 23:39:01.25 bqd04CsU.net
>>140
STLのソースみてみろよ
アルゴリズムなんて偉そうに言ってるわりには単にループしてるだけじゃんw

148:デフォルトの名無しさん
16/08/25 23:43:44.66 i0nCiEhg.net
>>143
ループがアルゴリズムじゃなかったらなんなんだ?
STLのすごいところは手続きの一本化だと思ってるが。

149:デフォルトの名無しさん
16/08/26 00:00:25.29 5SQKnTXv.net
STLってがっかりしているポーズに見える

150:デフォルトの名無しさん
16/08/26 00:00:26.86 zzW4nWtw.net
テクい実装をすることや複雑な問題を解くことだけがすごいことらしい

151:デフォルトの名無しさん
16/08/26 00:14:11.18 XypgEzC7.net
count_if
なんてループで回して、比較してるだけじゃん
数十秒でかける処理をわけのわからんライブラリを使う理由がわからん

152:デフォルトの名無しさん
16/08/26 00:16:33.63 mRE0T9bN.net
>>147
訳が分かってないだけだ。
共通理解というものを重視しないんだなぁ。いやすぎ。

153:デフォルトの名無しさん
16/08/26 00:21:54.93 0ZeIadI8.net
>>147
標準ライブラリをわけのわからん呼ばわりするのは流石に笑う
printfはわけがわかるの?
atoiは?
標準ライブラリの使い方すら知らない人間が書いた関数はわけがわからんから使いたくないなぁ

154:デフォルトの名無しさん
16/08/26 00:21:58.15 zzW4nWtw.net
C++が使えるというのは標準ライブラリも知っているということでもあるからな
誰が見ても一行で何をしているか分かるということが重要だ

155:デフォルトの名無しさん
16/08/26 00:25:24.95 XypgEzC7.net
おまえらわけわか

156:デフォルトの名無しさん
16/08/26 00:29:45.40 mRE0T9bN.net
>>151
こっちから見ればなんで素養のわからんあんたのコードつかわにゃならんのだ。ってこと。
関数名見れば機能はわかるということを破棄してるあんたと仕事したくない。
共通理解って言葉が理解できないって恐ろしいことだ。

157:デフォルトの名無しさん
16/08/26 01:02:45.66 s3V0ZpLS.net
無駄に長くて読みにくいコード書いてそう

158:デフォルトの名無しさん
16/08/26 02:10:25.32 jGd0g2RH.net
コピペしまくりのコードとかまとめろってかんじ

159:デフォルトの名無しさん
16/08/26 02:40:37.07 mRE0T9bN.net
多分、>>152みて職場で無関係な奴に当たり散らすんだぜ。
盲目って怖い。

160:デフォルトの名無しさん
16/08/26 06:15:21.48 9s6WK35L.net
>>129
そんなこと言うお前はもちろん
メンバー初期化の順番が何によって決まるのかを
調べずに言えるんだろうな?

161:デフォルトの名無しさん
16/08/26 06:18:57.25 zQpNEvET.net
age

162:デフォルトの名無しさん
16/08/26 08:41:47.22 G0uj5hQB.net
>>156
あたかも自分は知ってるって感じのものの言い方だなw

163:デフォルトの名無しさん
16/08/26 08:51:08.73 Xz0onrQ7.net
クイズ好きだね

164:デフォルトの名無しさん
16/08/26 08:52:16.33 zYo2bKWf.net
まあゴテゴテに凝ったフレームを使うより単純な自分実装のが
良いこともあるわな。
釘打つのに巨大ハンマーは必要ないってこともある。

165:デフォルトの名無しさん
16/08/26 09:42:17.11 3Yp6hByU.net
std::使っておけばドキュメンテーション楽じゃん、とは思わないのかね?

166:デフォルトの名無しさん
16/08/26 09:44:55.75 ZYJ50bjn.net
標準ライブラリは巨大ハンマーと言うよりは、ネジとか家庭用電源差込口とかに近い、まさに規格化された共通部品じゃないかと思うんだけどな。

167:デフォルトの名無しさん
16/08/26 09:54:56.48 +34Dv1b8.net
自分実装のはずなのに、半年1年後
「誰だよこれやったのは?」って言いたくなる

168:デフォルトの名無しさん
16/08/26 09:57:17.75 G0uj5hQB.net
速いならいいがな
遅いのにあえてSTLを使う理由がわからん

169:デフォルトの名無しさん
16/08/26 09:58:29.62 3eEs1ucA.net
iostreamみたいなウンコ大作がネジとか何の冗談

170:デフォルトの名無しさん
16/08/26 10:00:15.98 3eEs1ucA.net
ああ、screwedにかけたのかw

171:デフォルトの名無しさん
16/08/26 10:01:25.74 3Yp6hByU.net
速いのがいいならsproutでも使えば

172:デフォルトの名無しさん
16/08/26 10:11:56.38 ZYJ50bjn.net
別に標準ライブラリと同じインタフェースにしといてくれれば、あとは勝手にしてくれていいんやで。

173:デフォルトの名無しさん
16/08/26 10:14:12.77 ZYJ50bjn.net
あと、標準ライブラリといったらiostremって発想もどうかと思う。
まあ、一番叩きやすいってのは確かだし、俺自身も使ってるないから擁護もできないのだけれども。

174:デフォルトの名無しさん
16/08/26 10:16:18.07 ZYJ50bjn.net
iostreamは確かに使いにくい。
あれならprintf使うのも仕方ない…

175:デフォルトの名無しさん
16/08/26 10:22:03.58 JmjWOqaY.net
printf > boost::format >>>>>>超えられない壁>>>>>> iostream

176:デフォルトの名無しさん
16/08/26 11:08:04.55 R92D0kaL.net
なぜいつまでたってもフォーマットを指定してstd::stringにするライブラリが標準入りしないのか

177:デフォルトの名無しさん
16/08/26 11:12:41.32 mRE0T9bN.net
putfって止まってるの?

178:デフォルトの名無しさん
16/08/26 12:40:42.69 3eEs1ucA.net
>>172
モウロクしたハゲがiostreamを否定されて屈辱的だとかスネちゃうからだろ

179:デフォルトの名無しさん
16/08/26 12:59:54.61 3Yp6hByU.net
>>174
「侮辱的だ」と繰り返すばかり

180:デフォルトの名無しさん
16/08/26 13:16:58.62 R92D0kaL.net
streamの何も考えずガンガン流し込めばいいというスタイルは悪くないと思う
ただ特に標準出力に関してはデータを整形したいケースが多いから噛み合ってない

181:デフォルトの名無しさん
16/08/26 13:22:39.50 FOeYYSc0.net
何も考えず?
iostreamってstd::size_tを流し込めること保証されてたっけ

182:デフォルトの名無しさん
16/08/26 13:28:03.42 XS8ZF2FO.net
std::cout << std::hex << std::setw(2) << std::setfill('0') << int('A');
printf("%02x", 'A');

183:デフォルトの名無しさん
16/08/26 18:00:13.51 ZiaxvSyE.net
URLリンク(t.co)
これわかる人いる?
deleteしたポインタにnullいれてないとおもったんだけど、それではないらしい…

184:デフォルトの名無しさん
16/08/26 18:10:38.59 PiJ4eTCv.net
ヌルポチェックの外でメンバ関数呼び出している。

185:デフォルトの名無しさん
16/08/26 18:21:32.60 RLEpnGOr.net
>>179
こんな超絶クソコード作る奴の頭がそもそも虫湧いてるので答えなんてないと思うよ
なんだよnewと対になっていないdeleteとか、しかもdeleteの前に無意味なnullチェックしてるし

186:デフォルトの名無しさん
16/08/26 18:23:08.82 RLEpnGOr.net
前提条件が曖昧すぎて問題にすらなっていない
マルチスレッド環境なら話にならないコードだし

187:デフォルトの名無しさん
16/08/26 18:26:56.70 3Yp6hByU.net
for (auto charactor はfor (auto& charactor でなくていいんだろうか?

188:デフォルトの名無しさん
16/08/26 18:35:20.55 RLEpnGOr.net
ViewPortのコンストラクタにnullptrが渡される可能性があるなら
ViewPort::Updateは何もする必要がないのであって、Updateの冒頭でnullチェックしてreturnすればいいだろ
とにかく問題作った奴が馬鹿丸出し過ぎてイライラする

189:デフォルトの名無しさん
16/08/26 18:36:33.86 ZiaxvSyE.net
色々思いつくけど >>180 が当たりっぽい
腑に落ちないw

190:デフォルトの名無しさん
16/08/26 18:52:19.14 wMnlcyg3.net
rule of three(five)を無視しといてバグとか語るなって感じだが
>>182のいうように想定してる不具合実演のサンプルコードなのか実用コードの一部なのかすら
わからんのではどうにもなあ

191:デフォルトの名無しさん
16/08/26 20:37:16.13 dDBcLzC2.net
>>178
これなw
いいかげん、正式な「1byte幅の整数型」が欲しいね。

192:デフォルトの名無しさん
16/08/26 20:45:01.75 Xz0onrQ7.net
参考にしたいからお前らの頭の良い実装を見せてくれ
これくらいなら数分で書き直せるだろ

193:デフォルトの名無しさん
16/08/26 23:13:22.52 mRE0T9bN.net
>>179
描画完了通知がNullチェックしてない??
>>187
現在策定中。

194:デフォルトの名無しさん
16/08/27 08:43:16.25 SmFG8gRK.net
      ク    ク || プ  //
      ス  ク ス  | | │ //
       / ス    | | ッ //   ク   ク  ||. プ  //
       /         //   ス ク ス _ | | │ //
         / ̄ ̄\     /  ス   ─ | | ッ //
       /  _ノ  .\     /         //
       |  ( >)(<)       ___
.        |  ⌒(__人__)     ./ ⌒  ⌒\
        |    ` Y⌒l    /  (>) (<)\
.         |    . 人__ ヽ /  ::::::⌒(__人__)⌒ \
        ヽ         }| | |        ` Y⌒ l__   |
         ヽ    ノ、| | \       人_ ヽ /
.         /^l       / /   ,─l       ヽ \

195:デフォルトの名無しさん
16/08/27 12:49:21.98 06SnK2FS.net
>>179
デストラクタでわざわざnull代入するかどうかよりdelete前にnullチェックしていることをつっこもうぜ

196:デフォルトの名無しさん
16/08/27 13:15:37.85 s3YfawhT.net
nullptrだったら描画開始しちゃダメなんじゃないの?

197:デフォルトの名無しさん
16/08/27 21:26:23.95 mslVqKaF.net
null をdelete しても無視されるから無駄って事かな

198:デフォルトの名無しさん
16/08/27 22:04:43.54 sEFObQol.net
>>189
ソースは?

199:デフォルトの名無しさん
16/08/27 22:19:45.68 nxWT+PHC.net
あってもなくても動作に影響しないものがあってもそこはバグとはいわないだろう

200:デフォルトの名無しさん
16/08/27 22:42:36.92 OFUg9SIZ.net
バグとは言われないがゴミコードとは言われるだろう。

201:デフォルトの名無しさん
16/08/28 01:03:52.09 IZ16EciY.net
>>194
URLリンク(cpplover.blogspot.jp)
上経由で知ったが、
URLリンク(www.open-std.org)
これだと思う。

202:デフォルトの名無しさん
16/08/28 01:09:59.02 3Myecdh+.net
delete前のnullptrチェックなあ
assertならわかるんだけどね

203:デフォルトの名無しさん
16/08/28 01:19:06.19 jX9FVgVh.net
お前らが理想のコードに書き直してくれるのを待ってるんだが

204:デフォルトの名無しさん
16/08/28 01:37:02.68 qNvxLYrv.net
お前らが知ったかぶりばかりなのが分かった。
別にdelete前にnullチェックするのは悪いことではないし、
newと対になってないdeleteとかも指摘としては噴飯もの。
まああえて言えばdelete後にnull代入しておくべきだが。
問題はforeachでautoになってるところだろ。
これだとvector内の要素ではなく、そのコピーに対して操作してることになる。
明らかに意図していない動作だろう。

205:デフォルトの名無しさん
16/08/28 01:39:40.85 IZ16EciY.net
バグは1つではない説。

206:デフォルトの名無しさん
16/08/28 01:39:43.61 60yVMOKI.net
>そのコピーに対して操作してることになる。
あの超絶クソコードの中では一番どうでもいい点だな

207:デフォルトの名無しさん
16/08/28 01:41:06.73 qNvxLYrv.net
他のはバグの温床にはなりえても、あのコードだけではバグとは言えない。
お前ら学校のテストの問題とかでもケチつけてたタイプだろ?w

208:デフォルトの名無しさん
16/08/28 01:45:52.06 7bU6M/B0.net
>>200
デストラクタ内でのdelete後にnullptrいれるのって何かメリットあるの?
通常の関数なら二重delete防止のためというのは分かるんだけど
デストラクタは複数回呼ばれないよね?

209:デフォルトの名無しさん
16/08/28 01:50:09.68 qNvxLYrv.net
>>204
デストラクタ以外のどこか別の場所でdeleteされる可能性があるからだろう。
viewObjは外から渡された変数だから、知らないところでdeleteされてる可能性もある。
そのための防止だね。徹底するならデストラクタ内でもちゃんとnull代入しなきゃだめだけど。

210:デフォルトの名無しさん
16/08/28 01:52:56.61 60yVMOKI.net
>>199
甘えてんじゃねーよこのウンコ量産野郎

211:デフォルトの名無しさん
16/08/28 01:53:52.21 7bU6M/B0.net
>>205
なるほど
この問題の場合はそうですね

212:デフォルトの名無しさん
16/08/28 01:54:04.96 60yVMOKI.net
>>205
バカですか?

213:デフォルトの名無しさん
16/08/28 01:54:21.49 lPJVAstL.net
>>205
別の場所でdeleteされてる可能性があるとするなら、null代入があってもなくてもダメでしょ?
何言ってんの?

214:デフォルトの名無しさん
16/08/28 01:55:42.67 60yVMOKI.net
デストラクタ以外のどこか別の場所でdeleteされてたなんてキチガイじみた状況に
nullチェックが役に立つとかどういう頭してんだよ

215:デフォルトの名無しさん
16/08/28 01:55:50.77 qNvxLYrv.net
>>209
ごめん。一定レベル未満の人には回答しないことにする。
そこまでは面倒見切れん。

216:デフォルトの名無しさん
16/08/28 01:56:03.58 Ux2eHzia.net
>>200
描画だけだから状態を変更しない可能性は高いし
vectorにいれてるくらいだからコピーコストは十分に低いんじゃないかと無理矢理

217:デフォルトの名無しさん
16/08/28 02:00:10.83 qNvxLYrv.net
>>212
もちろん値型やstringとかならコピーでも問題はないよ。
でも状態を持った型だってしつこいくらいアピールされてるでしょ。
notifyして状態切り替えてうんぬんの箇所はその根拠となるよう書かれたもの。
問題を読めれば難しくはないはず。

218:デフォルトの名無しさん
16/08/28 02:01:04.63 jX9FVgVh.net
デストラクタで解放することが分かってるのに他の場所で解放するのはクラスの使用者の責任ではないのか

219:デフォルトの名無しさん
16/08/28 02:01:08.18 60yVMOKI.net
こういうバカが次から次に湧いてくるからアプリケーション層ではnewもdeleteも書くなって言ってるの
あの糞コードみたいなnewとdeleteが対になっていないようなのはその設計思想自体がバグであって
論ずる必要などはなく、こういうことやるバカは速やかにプロジェクトから排除するべし

220:デフォルトの名無しさん
16/08/28 02:02:18.11 lPJVAstL.net
>>205
あ、クラス内の別の場所でdeleteを追加した場合にnull代入が要るって話してんのかな?
それだと>204への答えにはなってないし、>179の「問題」はクラス定義が全部見えてるのに、
コード追加でバグる可能性を考え始めたらきりがないでしょ。
コード変更による多重deleteの心配するなら、他の問題への対処も含めてunique_ptrを使えばいい話しだし。

221:デフォルトの名無しさん
16/08/28 02:04:40.29 qNvxLYrv.net
>>216
>>211

222:デフォルトの名無しさん
16/08/28 02:06:59.88 jX9FVgVh.net
ここまで1行も無し
やっぱり口だけか
他のフォーラムじゃあり得ないな

223:デフォルトの名無しさん
16/08/28 02:08:06.28 a4amypBO.net
最初からnullptrで渡されることがあるんじゃないの
nullptrチェックしても別の場所でdeleteされてるかどうかなんか判断出来なくない?
ポインタのポインタ使って他所でdeleteした時にnullptr入れてるならわかるけど

224:デフォルトの名無しさん
16/08/28 02:09:26.72 7bU6M/B0.net
デストラクタ内でdelete&nullptr代入しておけばデストラクタ呼び出し後に
外でdeleteされても大丈夫と理解しました
でも、デストラクタ呼び出しより先に外でdeleteされてnullptrが代入されてない場合はダメですね

225:デフォルトの名無しさん
16/08/28 02:27:55.51 lPJVAstL.net
>>220
大丈夫じゃないから、騙されないで。

226:デフォルトの名無しさん
16/08/28 02:50:59.20 a4amypBO.net
ポインタがコピーされてるから内部と外部じゃ別物だよ
片方にnullptr代入したってもう片方は変わらない
これnewして直でコンストラクタに入れるんかな
それならコピーでもされない限り外部で消されることは無いけど

227:デフォルトの名無しさん
16/08/28 02:56:39.81 jX9FVgVh.net
スマポだって外部でdeleteされることなんか考慮してない
正しい使い方をしない方に全ての責任があるから考慮する必要性がない

228:デフォルトの名無しさん
16/08/28 03:50:58.71 VK4fyJjM.net
まさかポインターのコピーがわかってない奴がいようとは驚きだ
それより例外安全が考慮されていないのが気になって仕方ない

229:デフォルトの名無しさん
16/08/28 03:54:18.30 d5NA/60H.net
また無意味な部分にツッコミを入れてるのか
バグを見つける為の例題なのであって
完全なコードを示してるわけではないってのが理解できないのかな

230:デフォルトの名無しさん
16/08/28 04:21:07.87 hSYh5tBq.net
>>225
簡略化したはずのコードに無意味なnullポインタチェックがあるのはなんでなん?
簡略化する前ですら冗長なのに

231:デフォルトの名無しさん
16/08/28 06:24:16.40 a4amypBO.net
速攻指摘されてるじゃん

232:デフォルトの名無しさん
16/08/28 06:32:42.06 VK4fyJjM.net
>>226
>>225の理屈だと、矛盾以外の不足は「完全なコードじゃないから」になってしまうらしいから
本当は開始・描画・終了の全てにチェックがあったのを一部省略してるだけだろう

233:デフォルトの名無しさん
16/08/28 07:20:04.01 ERRoyT16.net
>>197
論文見たら全てが策定中になっちゃうのかよ
おめでてーな

234:デフォルトの名無しさん
16/08/28 07:40:09.72 hSYh5tBq.net
>>228
デストラクタでdeleteする前にviewObjに対してなにかしてるって事?
もしそうならもっと糞コードやん。
viewObj自身で片付けろよと。

235:デフォルトの名無しさん
16/08/28 07:47:04.27 ERRoyT16.net
ビューポートがビューを破棄するクソ設計にこれ以上突っ込まないでw

236:デフォルトの名無しさん
16/08/28 08:20:20.55 lCXt6uga.net
>>200
>>183

237:デフォルトの名無しさん
16/08/28 21:30:38.37 NaGSjNyA.net
質問
実引数が2個以上必要なコンストラクタをexplicitにする意味ってある?

238:デフォルトの名無しさん
16/08/28 21:34:04.63 NaGSjNyA.net
自己解決しました。
すみません忘れて

239:デフォルトの名無しさん
16/08/30 08:09:06.98 ftymYuoJ.net
ハゲの好きそうなコード
f ( { p1, p2, p3 } ) // explicitだとエラー

240:デフォルトの名無しさん
16/08/30 15:46:08.79 0Xvfpf4x.net
ハゲの嫌いなことは、言語に機能を追加すること。
もともとC with classesとか始めた張本人がハゲなんだけど、
まあ今のC++を見てると気持ちはわかるね。

241:デフォルトの名無しさん
16/08/30 19:30:10.07 0Xvfpf4x.net
ハゲの論理を、ハゲロンという。
1価の陰イオンとなる第17族元素である。

242:デフォルトの名無しさん
16/08/30 23:18:33.93 lqTGpbVF.net
もっと増やせと言いたいところだがこれ以上大きく変えるような機能はあるのか?
C#みたいなプロパティは欲しいけど

243:デフォルトの名無しさん
16/08/30 23:37:14.11 ocxqe0WR.net
そんなんtemplateで書けばいいじゃん

244:デフォルトの名無しさん
16/08/30 23:42:07.71 xMG6EfaL.net
は?テンプレートでC#のようなプロパティどうやって実現するんだ?

245:デフォルトの名無しさん
16/08/31 00:35:52.45 ityOLHmm.net
それっぽいのは出来なくはなさそうだけど
プロパティの簡潔さには程遠いな

246:デフォルトの名無しさん
16/08/31 00:39:34.42 yHeo0PbI.net
C#を知らんやつにも分かるように説明汁

247:デフォルトの名無しさん
16/08/31 01:23:54.91 /ANAyxIk.net
こんな感じか?
きっちり書くと更に手間かかるな
URLリンク(ideone.com)
C#だとこう書ける
URLリンク(ideone.com)

248:デフォルトの名無しさん
16/08/31 01:38:11.88 1fkGDbVO.net
>>240
> は?テンプレートでC#のようなプロパティどうやって実現するんだ?
今年一の名言だなw

249:デフォルトの名無しさん
16/08/31 01:57:19.27 6ukDv4b6.net
>>243
ダッサ
お前C#のプロパティの便利さ全然理解してないね

250:デフォルトの名無しさん
16/08/31 01:59:51.36 j3ifnVdn.net
何が名言なのかさっぱり分からんのだが
こんな書き方で満足する人いるの?

251:デフォルトの名無しさん
16/08/31 02:07:02.38 BDrnIBJY.net
C++のstd::vector<bool>がクソ扱いされていることを
理解している気配は全く無いな

252:デフォルトの名無しさん
16/08/31 02:09:05.10 BDrnIBJY.net
むしろ今年一の名言は>>211

253:デフォルトの名無しさん
16/08/31 02:21:29.37 /ANAyxIk.net
>>245
アスペ

254:デフォルトの名無しさん
16/08/31 02:44:37.65 AgvBQXnk.net
プロパティって最初に採用されたのはVBっていうかCOMだよね確か。

255:デフォルトの名無しさん
16/08/31 09:31:40.10 +TzIiYAW.net
プロパティも欲しいけど簡単に使える部分配列も欲しいな

256:デフォルトの名無しさん
16/08/31 09:57:4


257:3.27 ID:WLaQrr/5.net



258:デフォルトの名無しさん
16/08/31 10:03:12.25 WLaQrr/5.net
こういうコードをC#のプロパティのように
テンプレートで実装する方法を書けっつってるのに、
なんであんなひねくれた例が出てくるんだよw
class employee
{
public:
employee(int id, std::string name);
int GetID();
void SetID(int id);
std::string GetName();
void SetName(std::string name);
private:
int id;
std::string name;
}

259:デフォルトの名無しさん
16/08/31 10:03:54.93 sRpVtXPN.net
ほならね

260:デフォルトの名無しさん
16/08/31 10:14:08.99 WLaQrr/5.net
上のダサい例だとgetterやsetter書くよりコードも複雑化してるじゃねーか。
意味ねーじゃん。

261:デフォルトの名無しさん
16/08/31 10:40:08.79 N4JrJ9XH.net
プロパティやりたいならC++Builder

262:デフォルトの名無しさん
16/08/31 11:12:33.68 utsO37AQ.net
お手本はよ

263:デフォルトの名無しさん
16/08/31 11:18:56.64 N4JrJ9XH.net
こういうコードをC#のプロパティのように
テンプレートで実装する方法を書けっつってるのに、
なんであんなひねくれた例が出てくるんだよw
class employee
{
public:
employee(int id, std::string name);
__property int ID = { read = GetID, write = SetID } ;
__property std::string Name = { read = GetName, write = SetName } ;
private:
int id;
std::string name;
int GetID();
void SetID(int id);
std::string GetName();
void SetName(std::string name);
}

264:デフォルトの名無しさん
16/08/31 11:20:17.85 N4JrJ9XH.net
うわw赤の他人のコメントまでコピペしてしもうたw
class employee
{
public:
employee(int id, std::string name);
__property int ID = { read = GetID, write = SetID } ;
__property std::string Name = { read = GetName, write = SetName } ;
private:
int id;
std::string name;
int GetID();
void SetID(int id);
std::string GetName();
void SetName(std::string name);
}

265:デフォルトの名無しさん
16/08/31 11:40:45.52 utsO37AQ.net
標準で頼む

266:デフォルトの名無しさん
16/08/31 11:53:46.21 N4JrJ9XH.net
標準じゃないけどめっちゃ便利やよ

267:デフォルトの名無しさん
16/08/31 12:18:33.24 XvHw9frf.net
教えてください。
Qt creatorで作成しており、GUIのボタンからwin7の拡大鏡(magnify.exe)を起動したいと思っています。
問題は、shellexecuteやQProcessで実行すると拡大鏡の画面が真っ黒になり適切に使用できません。
キーボードから、winと+のショートカットでで起動すると問題なく起動すると真っ黒になることはないので、これを行いたいです。
そこで、GUIのボタンクリックでキーボードのショートカットを実行するほうほうがあれば教えていただきたいです。
よろしくお願いします

268:デフォルトの名無しさん
16/08/31 13:33:26.19 6ukDv4b6.net
Qtスレに行ってください
スレリンク(tech板)

269:デフォルトの名無しさん
16/08/31 14:02:00.01 XvHw9frf.net
誘導ありがとうございます。
Qt抜きで、c++的には実現できないのでしょうか?

270:デフォルトの名無しさん
16/08/31 14:22:32.78 mqymnS7Z.net
Qt使ったこと無いけど呼び出し時の権限が足りないんじゃないかな

271:デフォルトの名無しさん
16/08/31 14:25:22.52 utsO37AQ.net
とりあえずsystem("magnify");して同じ症状なら別の問題

272:デフォルトの名無しさん
16/08/31 16:18:18.52 f/lfR+US.net
プロパティ標準で書いたらこんな感じ?
getを使う時c#にはない()がいるけど
URLリンク(ideone.com)

273:デフォルトの名無しさん
16/08/31 16:56:40.77 /MnV3wL6.net
リファレンサオブジェクトをpublicデータメンバで持てって?

274:デフォルトの名無しさん
16/08/31 17:50:46.05 WLaQrr/5.net
>>267
合格。絶対にこんなコード書かないけど、
プロパティの要件は一応満たしている。

275:デフォルトの名無しさん
16/08/31 18:02:51.48 N4JrJ9XH.net
vectorとかの配列リファレンサがこんな形だよな

276:デフォルトの名無しさん
16/08/31 18:55:44.77 gRHWeOr5.net
ここを見てるとC++のダメさ加減がよくわかる。

277:デフォルトの名無しさん
16/08/31 19:41:02.78 YUscqvM8.net
不要だからコア言語に追加されなかったんだろう

278:デフォルトの名無しさん
16/08/31 20:06:57.16 XvHw9frf.net
>>266のアドバイスで、使い方が間違っていなさそうだったので、違う拡大鏡ソフトを使用することで解決しました

279:デフォルトの名無しさん
16/08/31 20:41:02.91 +TzIiYAW.net
プロパティ不要とか苦行かよ

280:デフォルトの名無しさん
16/08/31 20:43:28.45 YUscqvM8.net
プロパティなんてあってもたいして使わない予感

281:デフォルトの名無しさん
16/08/31 20:54:10.62 /MnV3wL6.net
実感じゃねえのかよ

282:デフォルトの名無しさん
16/08/31 20:57:52.91 ntcwlW+6.net
プロパティ否定してる奴はエアプだってはっきりわかんだね

283:デフォルトの名無しさん
16/08/31 21:00:08.58 NSLbELcw.net
クラス書かないからわかんない。テヘペロ。

284:デフォルトの名無しさん
16/08/31 21:32:42.17 viOT3sew.net
Visual Studioだったら「共通言語ランタイム サポート」を有効にすればプロパティ使えるで(ゲス顔

285:デフォルトの名無しさん
16/08/31 21:48:33.01 MERKTov5.net
C++/CLIは別言語

286:デフォルトの名無しさん
16/08/31 21:59:28.02 /ANAyxIk.net
アクセス制限もいらないからな
余計なことして何が起こっても全て使用者の責任

287:デフォルトの名無しさん
16/08/31 22:34:19.56 xAEFTakh.net
全部グローバル変数にすると便利だよ

288:デフォルトの名無しさん
16/08/31 22:57:22.63 YUscqvM8.net
プロパティよく使うってひとは要するに属性を個別にコントロールすることが多いって事かね?

289:デフォルトの名無しさん
16/08/31 23:03:00.58 6ukDv4b6.net
>>283
そうかもね。設計が下手なんじゃないかな。
もっとも俺もC#ではプロパティ使いまくるけどね。大概のは{get; private set;}だな。

290:デフォルトの名無しさん
16/08/31 23:06:47.51 gUL/+EZq.net
は? 属性を個別にコントロールするのが設計の良し悪しとどう関係するんだ?
「C++で標準でできないことは出来る必要がないから、
 そもそも、やろうとする奴が悪いんだ」みたいな幼稚な思考だったらやめとけよ?
それは宗教だ。

291:デフォルトの名無しさん
16/08/31 23:10:36.99 YUscqvM8.net
>>285
俺は良し悪しは言ってないよ

292:デフォルトの名無しさん
16/08/31 23:23:15.94 YUscqvM8.net
まあ外部に
「このクラスは内部に属性A、属性B、属性Cを持ち、その状態とアクセスを管理します」
みたいな仕様を公開してるクラスだったらプロパティは使いたくなるだろうな。
でもどちらかというとそういうクラスは少ないような気がしたのさ。

293:デフォルトの名無しさん
16/08/31 23:36:37.26 mzwgRQN4.net
そんなほとんど起こらんようなケースについて抽象的な説明されてもよくわからんわ。

294:デフォルトの名無しさん
16/08/31 23:45:12.50 YUscqvM8.net
>>288
何が?

295:デフォルトの名無しさん
16/08/31 23:51:01.09 /MnV3wL6.net
>>287
普通にprivateデータメンバじゃん、それ

296:デフォルトの名無しさん
16/08/31 23:56:32.05 YUscqvM8.net
>>290
いや、それらの属性を持ってること自体を外部に公開してる。
privateメンバだったらそんなことは内部仕様にしか書かないでしょ。

297:デフォルトの名無しさん
16/09/01 00:14:02.16 PJEueDDa.net
簡潔に
「どんな属性を持ってるか自体を隠蔽するのが普通」
って書けばいいじゃん

298:デフォルトの名無しさん
16/09/01 00:31:43.23 8Xtys+zE.net
プロパティって、何が便利なん?
C#はGUI作成程度しか使わない俺的感性だと、setter/getterで十分じゃね?と思うんだが、メリットをトクトクと語ってくれ。

299:デフォルトの名無しさん
16/09/01 04:18:24.20 siIxmZ+U.net
プロパティは
classの実装とインターフェースの分離が容易にします
プログラムの字面の変更なしで
後から小細工ができます
言語仕様に内包されたパッチ機能?w
>>293
十分だと思います
後から改変するとき小細工が出来て便利なのかな?

300:デフォルトの名無しさん
16/09/01 06:05:34.36 quvSlm2c.net
いや、setterとgetterがめんどいからプロパティがあるんでしょw

301:デフォルトの名無しさん
16/09/01 07:26:09.87 8Xtys+zE.net
>>295
手間変わらなくね?

302:デフォルトの名無しさん
16/09/01 07:37:27.71 d6w4LGKM.net
>>296
C#のプロパティは超便利で手間が大きく違う
使ってみれば分かるよ
いまだにこんな便利なものが実装されていないJavaはゴミ

303:デフォルトの名無しさん
16/09/01 08:36:37.64 8Xtys+zE.net
>>297
いや、使った事あるんだけど…
その上でわからないからトクトクとお願いしてる。

304:デフォルトの名無しさん
16/09/01 08:44:04.42 7t+U5xjY.net
そもそもsetterとgetterが必要なのかって話でしょ

305:デフォルトの名無しさん
16/09/01 08:45:24.36 ZAvvKiiS.net
手間はさほど変わらんと思うけどあとで読んだ時に他のメッセージ転送に埋もれない気はする

306:デフォルトの名無しさん
16/09/01 08:51:59.38 8Xtys+zE.net
>>300
ああ、なるほどね。
意味論として、OOのメッセージとプロパティが、C#のメソッドとプロパティに相当するのか。
言われてみれば当然かも。
あざっす。

307:デフォルトの名無しさん
16/09/01 09:01:16.42 DsNIQM1p.net
超便利と書くからワケがわからなくなる
いちいちGetなんちゃらSetなんちゃらと書くよりも既読性が上がる

308:デフォルトの名無しさん
16/09/01 09:39:25.12 DsNIQM1p.net
既読性って何だ?w
可読性だったわw

309:デフォルトの名無しさん
16/09/01 09:52:32.53 oseS/uHr.net
引数0の関数は括弧省略できればいいんじゃないのか

310:デフォルトの名無しさん
16/09/01 10:08:05.72 d6w4LGKM.net
「超便利」が分かって貰えないとか
ほんとにC#のプロパティ使ったことあるんですかねえ(笑)

311:デフォルトの名無しさん
16/09/01 11:42:15.33 n+lE1LxE.net
使えば超便利、だがあまり使わない、って両立するけどな。

312:デフォルトの名無しさん
16/09/01 11:57:18.01 f8G6zOLb.net
listenerに出来るなら便利だけど、単なるsetter,getterじゃなあ
全部メソッドの方が統一感はあると思う。

313:デフォルトの名無しさん
16/09/01 12:08:36.30 n+lE1LxE.net
getter/setter(プロパティに相当するものを含む)を持つクラスと持たないクラスの比率ってどんなもん?
俺は1対5ぐらいだ。
だからあれば便利というのはわかる。

314:デフォルトの名無しさん
16/09/01 12:30:21.99 LcnNSect.net
>>296
手間は結構変わるよ。
まず、getter/setterを普通に定義するのより、
プロパティの方がコード量が単純に減る。
変数名と関数名の一致だとかも考慮しなくていいから、
保守もしやすい。
その上、利用時にはpublicメンバ変数のように使えるから、
呼び出し先のコードもすっきりする。
必須ではないから不要と思うなら使わなければいいけど。
便利機能ってだけだし。

315:デフォルトの名無しさん
16/09/01 12:31:26.62 LcnNSect.net
>>304
それはVBAとかそうだけど、ややこしいからやめてくれw

316:デフォルトの名無しさん
16/09/01 12:46:32.26 d6w4LGKM.net
>>298
単純な話こういうことを言ってるんだけど。。。
JavaやC++の場合
private int x;
public getX(){return x;}
public setX(int val) {x=val;}
C#の場合
public int X {get; set;}
手間は1/3以下になってる
ほんとに使ったことあるの?

317:デフォルトの名無しさん
16/09/01 13:12:08.94 +q6YP6fM.net
あんなのが欲しい、こんなのが欲しいと、
みんな口々に勝手なこと言うのを
あれもこれもと言語に取り込む
ということをするかしないかというポリシーは
言語が違えば違って当たり前
C#でどうだからC++もどうせよとか
C#でどうだからJavaはゴミとか
そんなにC#が好きならC#だけ使ってればいい

318:デフォルトの名無しさん
16/09/01 13:23:01.35 d6w4LGKM.net
うるせー(笑)なんだかんだ言っても一番好きなのはC++だよ
高速性が求められる場面ではほぼ唯一の選択肢だし
他の言語に比べて不便なところがあったとしても、かゆいところに手が届く感は最強だし

319:デフォルトの名無しさん
16/09/01 13:37:36.32 Zz5UEunk.net
public変数とgetter/setter付きのprivate変数って何が違うの?

320:デフォルトの名無しさん
16/09/01 13:52:30.49 d6w4LGKM.net
>>314
get/set時にコードが介入できる

321:デフォルトの名無しさん
16/09/01 14:51:04.12 nGqVI4Wr.net
public変数なんか使ったら、まともにプログラミング出来ない。
これは、あり得ない選択
変数は出来るだけ、狭いスコープに閉じ込めるのが基本

322:デフォルトの名無しさん
16/09/01 14:52:33.38 3wSPfZnR.net
>>314
昔見た理屈だと、ゲッターセッターは間に正規化とか突っ込めるからセーフティなんだと。

323:デフォルトの名無しさん
16/09/01 15:42:38.63 n+lE1LxE.net
>>316
上段も下段もそれぞれ正しい

324:デフォルトの名無しさん
16/09/01 16:38:25.17 f8G6zOLb.net
>>314
c++の場合、表記が違うので入れ替えが大変。

325:デフォルトの名無しさん
16/09/01 16:52:35.75 oseS/uHr.net
直接変数に対して入出力してるだけのセッターゲッターでも将来を見越してわざわざ作ってるってことか?

326:デフォルトの名無しさん
16/09/01 17:03:57.26 d6w4LGKM.net
>>320
そういう場合も多いかもしれないけど、.Net環境においてはpublicプロパティにすることによる恩恵は多々ある
例えばDataGridViewに内容を表示するときなど

327:デフォルトの名無しさん
16/09/01 18:10:45.91 3cPIMSrP.net
>>314
public変数じゃ、変更されたタイミングで描画をアップデートするみたいな処理がやりにくくなる
needUpdateViewみたいなフラグをtrueにできるだけでも、getter/setterはあったほうがいい
単なる構造体に近いようなクラスでも、データの不整合を起こさないようにバリデーションが行えるという意味では重要
後から値の範囲を制限したくなるとか、複数の変数間で整合性のとれないケースを排除したくなるということはよくある
例えば、Personクラスが初めは性別と名前しかなかったところを、そこに「父」「母」「息子」「娘」みたいな属性を付けたくなったら、性別女で「父」は弾きたくなる
public変数だったらこれはできないけど、setter経由であればできる
「親」「子」にして性別と合わせて計算すればいいとかいう話があるかもしれんが、余談だがその場合はgetterで男女+親子の属性で「父」とかを取り出すことができるね

328:デフォルトの名無しさん
16/09/01 18:27:41.58 zfFV4MMV.net
getterやsetterの関数呼び出しならまだしも、propertyでファイルアクセスやらネットワークのやら時間かかる処理入れられると嫌な感じ

329:デフォルトの名無しさん
16/09/01 18:41:33.44 L3a4bYLC.net
>>323
それは利用者の予期を裏切るような実装をするなって話であって、
ゲッタセッターならよくてプロパティーではだめだって話じゃないと思うけど

330:デフォルトの名無しさん
16/09/01 19:29:54.38 quvSlm2c.net
>>312
C++も11以降がんがん新しい要素取り入れてるんだから、
今の仕様が絶対的なものじゃないぞ。今の仕様を絶対視するのは宗教だ。

331:デフォルトの名無しさん
16/09/01 19:36:30.23 qC9ojyjS.net
>>322
同性婚の夫婦が養子をとった時に破綻する先見性のない設計ですね w

332:デフォルトの名無しさん
16/09/01 19:46:48.63 zfFV4MMV.net
メンバ変数ぽく使えるより、指示すればgetter,setterを自動生成してくれる方がいいな。
参照とって書き換える関数に渡したらどうなるんだとか考えると、変数っぽく使えるのは混乱招くだけのような。

333:デフォルトの名無しさん
16/09/01 20:02:06.91 f8G6zOLb.net
>>326
不要な汎用化じゃね?
必要になってから修正でいいだろ。

334:デフォルトの名無しさん
16/09/01 20:16:20.03 qC9ojyjS.net
>>328
ネタに突っ込むならもう少し面白いやつ頼むわ

335:デフォルトの名無しさん
16/09/01 20:31:55.38 n+lE1LxE.net
setter/gettrrが要る要らないの話題になるとpublic変数の話題に転びがちだな。
ちょっともにょもにょする。

336:デフォルトの名無しさん
16/09/01 20:40:39.28 n+lE1LxE.net
外部から属性を設定せざるを得ない状況がけっこうあって、なかなかリファクタリングも難しいってことか。

337:デフォルトの名無しさん
16/09/01 21:41:16.10 quvSlm2c.net
>>327
C++でプロパティ導入するなら、getterの戻り値は参照かconst参照のどちらかに制限すれば、
その辺の問題は解決しそう。

338:デフォルトの名無しさん
16/09/01 23:31:36.63 kyBhPm5k.net
そういや、パッと見は普通のフィールド(メンバ変数)なせいで
実行速度とか気にせずに気楽に使ってしまいやすい、なんて弊害も多少あるみたいね。

339:デフォルトの名無しさん
16/09/01 23:49:26.27 VuYRfyfh.net
てかgetter/setterでもプロパティカプセル化が弱くなるから原則使わないのが基本だろ
フラグをプロパティ化してどうのこうのとか言ってるやついたけど、参照透過性なくなって状態遷移図保守の雇用を産みだしてるだけ

340:デフォルトの名無しさん
16/09/01 23:55:31.16 quvSlm2c.net
それはおかしいだろ。メンバ変数を外から操作する必要性は普通にある。
例えばWindowクラスとかどうすんの。メンバ変数変えられないWindowクラスとか欠陥品でしょ。

341:デフォルトの名無しさん
16/09/01 23:55:52.32 oRYPM1bK.net
>>334
言いたいことはわかるが、 外からの属性アクセスをやめたとしても、
実際に内部状態が変化するなら参照透過ではないよな?

342:デフォルトの名無しさん
16/09/01 23:58:42.81 VuYRfyfh.net
>>335
お前がWindowクラスを書くのは自由だけど、C++なんだから数値計算ライブラリとかを想定して書けよ
>>336
もちろん

343:デフォルトの名無しさん
16/09/02 00:04:47.23 q6GNZ6RD.net
>>337
否定されてから急に話題を限定し出すってのは一番見苦しいパターンだぞw
素直に間違いを認めろよ。数値解析だっていくらでもそういう事例あるだろ。

344:デフォルトの名無しさん
16/09/02 00:23:31.33 dxT5btnL.net
あるかないかで言えばもちろんあるけど、外部主導の状態コントロールは避けたいので、
設計に時間をかけられるときはhetter/setterは減るだろう、ってだけ。

345:デフォルトの名無しさん
16/09/02 00:25:04.39 dxT5btnL.net
X hetter
〇 getter

346:デフォルトの名無しさん
16/09/02 00:32:46.64 wMSGanuZ.net
C++はプロパティないのでコード書くときは短く済ませたいんで
ゲッターはSize()、
セッターをSetSize()にして
Get省略してる

347:デフォルトの名無しさん
16/09/02 00:50:46.08 VaOayOrf.net
>>341
自分はSetも省略する
たまに引数の関係でできない時もあるけどさ

348:デフォルトの名無しさん
16/09/02 04:12:21.27 +CUdjKtm.net
俺はオーバーロードになると関数ポインタとるのが面倒になるからsetぐらいは省略しないな

349:デフォルトの名無しさん
16/09/02 04:38:51.30 17n5VyUh.net
メンバ関数ポインタってほとんど使わないから気にしたことなかった…

350:デフォルトの名無しさん
16/09/02 06:31:01.77 96M6CE+e.net
>>342
ああ、引数の違いを利用すればsetもgetも省略できるのか。
int value(int val); ... メンバvalueの値の設定
int value(); ... メンバvalueの値の参照
同じ関数名で機能の異なるものを作るのは危険、
ということから思いつきもしなかったけど、
この使い方なら便利で有用かも知れないな。

351:デフォルトの名無しさん
16/09/02 07:16:35.65 Vf4h0u1D.net
>>345
> int value(int val); ... メンバvalueの値の設定
なぜに戻り値?

352:345
16/09/02 07:33:47.21 96M6CE+e.net
>>346
値の範囲制限とかする場合に、
戻り値に「実際に格納された値」を入れて返す。
あと瑣末なことだけど、
cout << a.value(val) << endl;
みたいに格納しつつ値も使う、ができてちょい便利。

353:デフォルトの名無しさん
16/09/02 07:35:34.05 MC2dvnuP.net
そう言うの、以前の値を返すのも多いから紛らわしいな。

354:デフォルトの名無しさん
16/09/02 07:36:05.31 sd/G3GoC.net
std::exchange的な~?

355:デフォルトの名無しさん
16/09/02 07:49:11.95 Vf4h0u1D.net
>>347
> 戻り値に「実際に格納された値」を入れて返す。
こっちはまだわからなくもないが
> 格納しつつ値も使う、ができてちょい便利。
みたいな設計はどうかと思う

356:デフォルトの名無しさん
16/09/02 08:01:45.25 /uIui9G6.net
そうだな
(a = b) = c;
みたいな20世紀の設計思想だな

357:デフォルトの名無しさん
16/09/02 08:01:48.98 5Aji0+2+.net
*this


358:を返してしまう



359: ◆SEdFBOkLSw
16/09/02 08:29:24.90 Nu/77N8P.net
>>352
メソッドチェーン出来て便利だよね。

360:デフォルトの名無しさん
16/09/02 08:44:56.31 OksuLk+6.net
演算子のオーバーロードみたいな使い方のポリシーでは
a.val(b.val() + c.val()) みたいなやつ
というかどうしてもプロパティが欲しけりゃ演算子オーバーロードで真似っこできるじゃん

361:デフォルトの名無しさん
16/09/02 08:48:54.95 xzsbRhmn.net
は? 演算子オーバーロードでどうやってプロパティの代用すんだよw
プロパティ分かってない奴か? コードを示して見ろ。

362:デフォルトの名無しさん
16/09/02 09:12:04.14 +CUdjKtm.net
URLリンク(ideone.com)
こんな感じか?

363:デフォルトの名無しさん
16/09/02 09:14:47.55 OksuLk+6.net
>>355
ググれば普通に出るが?
なんでそんなに必死なの
URLリンク(boost.2283326.n4.nabble.com)

364:デフォルトの名無しさん
16/09/02 09:20:57.20 OksuLk+6.net
>>356
そうね、そういう感じ

365:デフォルトの名無しさん
16/09/02 10:36:49.94 AFnhG1K/.net
それじゃ仮想関数にできないじゃん。やり直し。
無理やりオーバーライドできるようにしなくていいよ。
既にコードも必要以上に複雑化しててgetter/setterの方がマシなレベルだし。

366:デフォルトの名無しさん
16/09/02 12:07:39.19 +CUdjKtm.net
>>359
NVIって知ってる?

367:デフォルトの名無しさん
16/09/02 12:09:10.62 rUpx5Cs1.net
結局、プロパティは要らんわな。
タイプ量の問題ならマクロで解決出来るし。

368:デフォルトの名無しさん
16/09/02 12:26:51.71 6Qab/oE8.net
これからのC++にプロパティーは必須だな。
これからもどんどん新しい機能を取り入れてどんどん
わけがわからなくなるといい。

369:デフォルトの名無しさん
16/09/02 12:41:00.31 1fpVQ5H8.net
マクロは入力補完できないし衝突の可能性がある

370:デフォルトの名無しさん
16/09/02 12:49:08.18 6Qab/oE8.net
C++はマクロで出来ることをどんどん機能として取り込んで来たのに
いまさら後戻りはできない。

371:デフォルトの名無しさん
16/09/02 18:00:48.43 96M6CE+e.net
C#の「プロパティ」って機能がどんなのか知らないけど、
現在C++にないから不要な機能だ、と突っ張るのは危険かも知れないよ。
いつか「次の規格から『C#のプロパティ』と同様の機能が追加」と
発表されるかもしれない。これまでもそうやって肥大化してるじゃない。

372:デフォルトの名無しさん
16/09/02 18:28:49.74 qjeLwgBZ.net
Javaでもそうだけどgetter/setterは言語的には単なるメソッドでしかないが
C#のプロパティは言語的にメソッドとは違うものとして認識出来るようになっている
そこから様々な便利さが出てきている

373:デフォルトの名無しさん
16/09/02 19:27:06.33 nL/2u0CX.net
>>364
マクロで出来ることではなく、
マクロに頼っていたことを、
マクロを使わずに出来るようにしてきたんだよ。
スコープに従わないオブジェクト指向の敵との戦いだ

374:デフォルトの名無しさん
16/09/02 19:37:33.13 XrGCfAOV.net
C++のテンプレートってポストプロセッサといっていいよね。
マクロみたいなもん。

375:デフォルトの名無しさん
16/09/02 20:24:08.55 8Rlh5aGL.net
↓テンプレートとマクロは全く違うもの

376:デフォルトの名無しさん
16/09/02 20:41:05.83 Wj/juS31.net
ソースコードの書き換えという点では同じ。

377:デフォルトの名無しさん
16/09/02 20:49:32.19 W5XwdQxs.net
テンプレートはテキスト置換じゃないよ。
あれはコンパイルタイムに計算してるんだよ。

378:デフォルトの名無しさん
16/09/02 20:49:47.52 1fpVQ5H8.net
テンプレートが単なる置き換えだと思ってるのか

379:デフォルトの名無しさん
16/09/02 20:50:16.78 BGbCtBYN.net
マクロの親玉だ

380:デフォルトの名無しさん
16/09/02 20:52:42.81 W5XwdQxs.net
テンプレートもconstexprもある種の計算機のサブセットだからなぁ。

381:デフォルトの名無しさん
16/09/02 22:57:15.93 Q3H4IaZb.net
コンパイル時に計算できることなんてたかが知れてるし、使い道ないんだよな

382:デフォルトの名無しさん
16/09/02 22:59:57.14 3Xz3H/8a.net
いやいや…型チェックとかのなくすべき実行時オーバーヘッドがなくせるってだけで意味大有りだろ

383:デフォルトの名無しさん
16/09/02 23:04:13.81 W5XwdQxs.net
PURE関数が入ったら、constexprなんかは関数がハッシュに置き換わってそこから値置換になるかも。
コードを全部どけて数字一個になる日も近い。

384:デフォルトの名無しさん
16/09/02 23:12:20.33 1fpVQ5H8.net
まともにC++使ってて使い道無いとかどうやったらそう解釈できるんだ

385:デフォルトの名無しさん
16/09/02 23:30:26.24 Q3H4IaZb.net
コンパイル時に決まってるなら計算する必要ないじゃん

386:デフォルトの名無しさん
16/09/02 23:32:54.48 1fpVQ5H8.net
手動で計算してくれ

387:デフォルトの名無しさん
16/09/02 23:35:19.44 W5XwdQxs.net
そしてたどり着くのだ。42に。

388:デフォルトの名無しさん
16/09/03 00:45:41.77 WTZrMZ5J.net
テンプレートなしだとマクロとvoid*でやりくりすることになるのかな
<algorithm>の中身がおそろしいことになりそう

389:デフォルトの名無しさん
16/09/03 02:05:00.69 VnUB3qPQ.net
>>381
43ですが

390:デフォルトの名無しさん
16/09/03 02:08:56.14 VnUB3qPQ.net
templateなんてデブなブタに過ぎんからな

391:デフォルトの名無しさん
16/09/03 02:12:17.57 qWYFFL/S.net
>>383
なんすかそれ。

392:デフォルトの名無しさん
16/09/03 07:03:39.80 ZkDRxv2v.net
>>375
最適化を否定するのか?

393:デフォルトの名無しさん
16/09/03 07:04:51.23 ZkDRxv2v.net
>>382
bsearchみたいにな

394:デフォルトの名無しさん
16/09/03 09:55:01.98 MIqeGybs.net
templateなんて実際に使えるレベルものを書ける人なんてほとんどいないだろ
使うことはあっても、書くことはないだろ

395:デフォルトの名無しさん
16/09/03 10:03:25.99 2vnq4BB3.net
ライブラリを作っていれば嫌でも使うが

396:デフォルトの名無しさん
16/09/03 11:15:11.07 NvcWw3DB.net
>>388
キミの周りではそうかもしれないけど、templateみたいな便利なものを使えないようじゃ現代のプログラマとしては失格だと思います
てかテンプレートってそんなに難しいか?

397:デフォルトの名無しさん
16/09/03 11:47:23.77 KpYZ86nt.net
標準コンテナくらいバカでも使える。
それだけでテンプレートのメリットは十分に享受できる。

398:デフォルトの名無しさん
16/09/03 11:48:35.81 2vnq4BB3.net
boost並みの実装ができないと書けていることにならないらしい

399:デフォルトの名無しさん
16/09/03 12:11:48.21 NXr2sGOM.net
>>388
汎用性があって他人も実際に使えるレベルとなると難しいかもしれんが、自分が使う範囲内では普通に書くだろう。
はじめからtemplateを書くんじゃなくて自分用のユーティリティとかをtemplate化することも含めればけっこうある。

400:デフォルトの名無しさん
16/09/03 12:23:53.61 ZkDRxv2v.net
>>390
ほんこれ

401:デフォルトの名無しさん
16/09/03 12:35:37.51 UwaIhkeW.net
くだらねえな
もっと為になる話をしろやカス

402:デフォルトの名無しさん
16/09/03 12:54:22.03 e++gk4lZ.net
Boost並に使いこなせるか?って聞かれたら
謝るしか無いわ、ホントごめん

403:デフォルトの名無しさん
16/09/03 12:56:30.19 2vnq4BB3.net
為になる本ならたくさんある

404:デフォルトの名無しさん
16/09/03 13:22:16.46 xlYZjvy0.net
メソッドA->B->C->D->Eと呼ばれる階層が深い構造のシステムがあって、
Eの計算結果をAで取りたい要望が新しくでてきたときってみんなならどう実装する?
条件としては、
・AはwhileループでBを呼び出し続ける
・Eの最新の計算結果はループで毎回使う
・CがDをnewしてるから、単純なgetterとかじゃ取れない
1. 引数が増えるのは仕方ないが、A~Eに全て引数を追加する
2. Eでstaticなグローバル変数を作る。Aからはgetterで取得する
一応思いつくのはこのあたりなんだけど、もっとスマートなやり方ってあるかな?

405:デフォルトの名無しさん
16/09/03 13:25:09.63 WhBzeO8K.net
>>398
メソッドDをCがnewする?なんか説明が胡散臭いんだけど、普通に戻り値で返すのはダメなん?

406:デフォルトの名無しさん
16/09/03 13:31:49.96 ftE9LPfh.net
そんなことしてたら「この計算結果もほしいんだけど」ってなった時に
また


407:困ることになる。 Contextクラスを追加して、計算に必要な情報はそこに集約させろ。 そうすればどの階層からでも必要な情報を取れる。



408:デフォルトの名無しさん
16/09/03 13:34:05.21 xlYZjvy0.net
>>399
すまん、説明が適当だった
CはDメソッドがあるクラスをnewしてるってこと
DClass dClass = new DClass()
C() {
dClass->d();

409:デフォルトの名無しさん
16/09/03 13:36:43.61 xlYZjvy0.net
>>399
ごめん、途中で送信しちゃった、
CはDメソッドがあるクラスをnewしてるってこと
C() {
DClass dClass = new DClass()
dClass->d();
}
戻り値はEから外部システムに送信が成功したかどうかを表すbool値がすでに返されてるんだ
>>400
Contextクラスか・・自分は使ったことないし、よく理解できてないからググってみるわ
ありがとう

410:デフォルトの名無しさん
16/09/03 13:40:54.20 2vnq4BB3.net
説明の意味が全く分からない
hoge B::get_E(){
  D *d = c.create_D();

411:デフォルトの名無しさん
16/09/03 13:47:29.68 e++gk4lZ.net
今後パラメータが増える可能性があるようなら、それらをクラスなり構造体なりにまとめて、
何らかの方法で渡すようにすれば、最小限のコード修正で済むよってことじゃない?

412:デフォルトの名無しさん
16/09/03 13:51:40.11 2vnq4BB3.net
>>402
そのCの戻り値にDの戻り値のEを入れてBが受ければいいんじゃないのか

413:デフォルトの名無しさん
16/09/03 13:58:09.73 Px0qkqVR.net
>>398
引数を追加する方法を取るとして、楽するならば
一旦引数を構造体にして、後で追加したい場合構造体のメンバーを追加する形にする
全部の関数はその構造体を引数にしていれば、好きな構造体メンバーを追加しても形は変わらない

414:デフォルトの名無しさん
16/09/03 13:58:29.96 Px0qkqVR.net
>>404
おれはや

415:デフォルトの名無しさん
16/09/03 13:59:56.32 e++gk4lZ.net
>>405
既に戻り値は他で使われてるらしいし
そのやり方だと、参照渡しなんかが現実的じゃない?

416:デフォルトの名無しさん
16/09/03 14:00:12.38 WhBzeO8K.net
>>402
「全て引数を追加する」がContextかなんかの参照引数を渡してまわる方法だと思ったんだけど、違ったんかな?
戻り値を変えたくないならそうするしかないと思うよ。

417:デフォルトの名無しさん
16/09/03 14:01:01.19 ZkDRxv2v.net
>>395
気がついたやつがやれ
指図すんなクレクレ厨め

418:デフォルトの名無しさん
16/09/03 14:05:10.90 2vnq4BB3.net
>>408
戻り値なんてpairなりtupleなりでいくらでも増やせばいいじゃん
周囲に影響を出したくないならそこから特定の値だけを取り出す関数でも噛ませればいい

419:デフォルトの名無しさん
16/09/03 14:14:55.80 4FUmxt1N.net
コンポジションじゃ駄目なん?

420: ◆SEdFBOkLSw
16/09/03 14:20:00.21 WfmCkwdk.net
Eの結果がどう欲しいかによるとは思うな。
Aだけが知りたいなら素直にEがログ残せば良いと思う。
中間層が知りたいなら返してやらなきゃならんだろうけど、B→Eが他の部分で使われてたら関連するのビルドし直しだしテストし直しだし、出し直さないといかんのでは?

421:デフォルトの名無しさん
16/09/03 15:45:28.04 KoWGZcqO.net
はいはい池沼は去れ

422:デフォルトの名無しさん
16/09/04 06:52:12.75 5SDmlLW2.net
URLリンク(www.embarcadero.com)
現在、RAD Studio(Delphi、C++Builderのセット)が無料でダウンロード可能ですよ
右側のStarter Edition100% Offをクリックするとダウンロードページに飛べます。
(無料ダウンロードは、2016年8月22日から9月9日までの期間限定)

423:デフォルトの名無しさん
16/09/04 06:58:26.93 5SDmlLW2.net
すいません、C++Builderはこっちです
URLリンク(www.embarcadero.com)
現在、C++Builderが無料でダウンロード可能
右側のStarter Edition100% Offをクリックするとダウンロードページに飛べます
(無料ダウンロードは、2016年8月22日から9月9日までの期間限定)
DelphiとC++Buiderは別個にダウンロードが必要な模様
(無料ダウンロードは、2016年8月22日から9月9日までの期間限定)

424:デフォルトの名無しさん
16/09/04 07:03:58.75 5SDmlLW2.net
>>415はDelphiのみでした

425:デフォルトの名無しさん
16/09/04 07:28:40.73 uvifPYcj.net
リンク先ページを見たけど、これでダウンロードできるのは
「30日間だけ無料で使えます」バージョンじゃないのかな。
"Try C++Builder FREE for 30 days" って
ダウンロードできる期間が30日間、じゃないよね。
>>415-416 に出てる期間は30日には足りないし。

426:デフォルトの名無しさん
16/09/04 09:09:03.52 xp6EP8jq.net
スターターエディションの方じゃね?
C++ Builder
URLリンク(www.embarcadero.com)
Delphi
URLリンク(www.embarcadero.com)

427:デフォルトの名無しさん
16/09/04 09:17:51.17 ZU1xzEkS.net
>>390
簡単だと言い張って可読性の低いバギーなもん作ってよこす奴が多いから
テンプレートは嫌いなんだよ。
STLで十分。

428:デフォルトの名無しさん
16/09/04 09:56:16.37 ZZxj7Xyl.net
無能の言い訳にしか聞こえないな

429:デフォルトの名無しさん
16/09/04 10:13:47.98 xp6EP8jq.net
>>420
> 簡単だと言い張って可読性の低いバギーなもん作ってよこす奴が多いから
理由になってなくて笑た

430:デフォルトの名無しさん
16/09/04 10:22:29.27 GcCwBDUy.net
>>420
特定の人間でなく周りに多いのなら受けるお前の方に問題があるんじゃないか?


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch