1 :
デフォルトの名無しさん
2016/08/13(土) 11:24:45.65 ID:NPYsKJkE
2 :
デフォルトの名無しさん
2016/08/13(土) 16:09:56.09 ID:DvcVUK7N
STLつかうと一気に実行ファイルサイズが10倍に?!
環境によるだろ。
俺はBorland-C++5.6.2に -D_RTLDLL オプションを指定して、極力
ランタイムを使用するようにして使っているが、例えばstd::vectorを
使っても使わない時と比べ10Kほどしか増えない
すげえ。ダイナミックリンクしといてファイルサイズが増えないとかいってるよ。この人。
C1010: プリコンパイル済みヘッダーの検索中に予期しない EOF を検出しました。
とかいうエラーが出るんだけどこれってどうすればいいの?
#include <stdafx.h>
後死ね。
言葉が悪いな。それで教えているつもりか。
まぁヒントぐらいにはなったな。
うむごくろう。
---- テンプレ ここまで ----
3 :
デフォルトの名無しさん
2016/08/14(日) 19:04:30.78 ID:/ufxoGTJ
もう2のテンプレは要らない
4 :
デフォルトの名無しさん
2016/08/14(日) 19:48:31.49 ID:jo5I4z3k
その時見てなかったから意味わかんないな。
恐らく誰かを晒しあげてんだろうなとは思うけど、いつまで粘着して書いてんだ気持ち悪いと思う。
5 :
デフォルトの名無しさん
2016/08/14(日) 22:26:13.71 ID:TmMZaJrY
なんか異様に粘着性のやついるね
6 :
デフォルトの名無しさん
2016/08/15(月) 00:06:47.99 ID:ojA5BmnI
変な奴は多いな
このスレの醍醐味
7 :
asgasgasg
2016/08/21(日) 11:29:17.36 ID:NQK5qTs+
8 :
デフォルトの名無しさん
2016/08/21(日) 22:19:10.60 ID:IM0bL6CD
質問
double std::exp(double x)に与えてよいxの範囲を事前に知る方法は何か無いですか
std::log(std::numeric_limits<double>::max())とかでおk?ギリmaxを極められる?それとも危険性有り?
あるいはより洗練されてて確実な方法キボンヌ
9 :
デフォルトの名無しさん
2016/08/21(日) 23:08:26.81 ID:FlxBKJll
exp(x) <= DBL_MAX
でexp(x)はeのx乗なんだから底がeのlogとって
log(exp(x)) <= log(DBL_MAX)
x <= log(DBL_MAX)
じゃろ…たぶん
10 :
デフォルトの名無しさん
2016/08/22(月) 00:54:07.85 ID:BRaxQeMg
なんで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 :
デフォルトの名無しさん
2016/08/22(月) 00:59:08.93 ID:FLDhgfD+
なんで呼ばれると思ってんの?
12 :
デフォルトの名無しさん
2016/08/22(月) 01:35:13.36 ID:jYf9ISog
RVO,NRVOという最適化の仕組みが働いてコピーが省略されるから
13 :
デフォルトの名無しさん
2016/08/22(月) 01:40:27.00 ID:BRaxQeMg
コピーが省略されたたらどうやって呼び出し元が値をうけとるのですか?
14 :
デフォルトの名無しさん
2016/08/22(月) 02:11:33.10 ID:pkonYlZZ
呼び出し元のスタック上に戻り値が返される
15 :
デフォルトの名無しさん
2016/08/22(月) 02:19:39.81 ID:jYf9ISog
mainはcreate_Aの返却値用の領域としてaを構築予定の領域を伝える(RVO)
create_Aではその返却値用の領域にtmpを構築してそのまま返却値として返す(NRVO)
16 :
デフォルトの名無しさん
2016/08/22(月) 07:22:17.99 ID:BRaxQeMg
コピーが省略されてるとのことなのにどうやって伝える/返すのですか?
17 :
デフォルトの名無しさん
2016/08/22(月) 07:48:07.15 ID:+lArBpqA
18 :
デフォルトの名無しさん
2016/08/22(月) 13:12:55.14 ID:JD5nAQ8h
コピーが省略されてるのはAのコピーだけ
伝えるのは領域のアドレス
返すのは返却値用の領域の使用権・管理権
19 :
デフォルトの名無しさん
2016/08/22(月) 15:26:43.71 ID:r/Rp/EFz
struct hoge
{
virtual ~hoge() = default;
};
virtualをこのように指定する事は可能ですか
20 :
デフォルトの名無しさん
2016/08/22(月) 16:46:53.55 ID:PLWTluEf
>>19 やってみたらどうなんだ
gcc 19.cpp -std=c++14 -c
cl 19.cpp /EHsc /c
21 :
デフォルトの名無しさん
2016/08/22(月) 16:55:34.71 ID:r/Rp/EFz
>>20 すでにやりました
規格的にどうかと聞いているんです
22 :
デフォルトの名無しさん
2016/08/22(月) 17:05:45.63 ID:L/g35wNF
8.4.1/1
自分で調べろよ
23 :
デフォルトの名無しさん
2016/08/22(月) 17:48:37.29 ID:GL87eYox
調べてわからないから聞いてるんです。
それに「8.4.1/1」ってなんですか、
企画の8.4.1を見たらわかるんですか。
もう少し実のある回答をお願いします。
24 :
デフォルトの名無しさん
2016/08/22(月) 17:54:52.35 ID:PLWTluEf
>>21 規格でどうたらは今はじめて言ったんだろうが
無駄に答えさせたの謝ってからにしろ ぼけ
25 :
デフォルトの名無しさん
2016/08/22(月) 17:55:54.20 ID:L/g35wNF
またこいつか
>企画の8.4.1を見たらわかるんですか。
企画じゃなくて「規格」な。そうに決まってるだろ
お前はここの誰かが適当なこと言ったらそれを信じるのか?
俺が該当箇所を親切にも教えてやったのに、何が「もう少し実のある回答をお願いします」だよ
規格を気にしてる人間にこれ以上実のある回答なんてないんだよハゲ
26 :
デフォルトの名無しさん
2016/08/22(月) 18:06:14.22 ID:r/Rp/EFz
27 :
デフォルトの名無しさん
2016/08/22(月) 18:31:25.03 ID:PLWTluEf
>>26 やったかどうか19の時点で言わねえ
てめえの落ち度を棚に上げて勝手にとかぬかすなクズ
28 :
デフォルトの名無しさん
2016/08/22(月) 19:27:22.83 ID:r/Rp/EFz
>>27 勝手に勘違いして逆ギレされても困りますけど
29 :
デフォルトの名無しさん
2016/08/22(月) 19:29:51.79 ID:h7MtbrKQ
>>25 規格の8.4.1を読んだけどわかりませんでした
どこをどう読むと
>>19の答えが読みとけるのか教えて下さい
30 :
デフォルトの名無しさん
2016/08/22(月) 20:32:32.48 ID:L/g35wNF
>>29 8.4.1では関数定義における一般的な事について書かれていて
=defaultに関する特別なルールに関しては次の「8.4.2 Explicitly-defaulted functions」に書かれてる
から8.4.2を読んだほうが良い
本当に調べる気があるならとっくに読んでるだろうけど
31 :
デフォルトの名無しさん
2016/08/22(月) 20:35:38.43 ID:h7MtbrKQ
で、
>>19にあるvirtualとデストラクターと=defaultの組み合わせが禁止されて「いない」ことは
どこから読みとるのですか?
32 :
デフォルトの名無しさん
2016/08/22(月) 21:30:40.25 ID:L/g35wNF
>>31 逆にどこで禁止されているんだよ?
attribute-specifier-seqopt decl-specifier-seqopt declarator virt-specifier-seqopt = default ;
に合致してて他で特別に禁止されてないなら、それは許可されてるんだって分かれよ
33 :
デフォルトの名無しさん
2016/08/22(月) 22:14:15.64 ID:h7MtbrKQ
>逆にどこで禁止されているんだよ?
1358ページある規格のどこにも禁止されていないことを8.4.1のどこから読みとるのか
と聞いているのに、論理的思考のできない低能はどうしようもないな
34 :
デフォルトの名無しさん
2016/08/22(月) 22:38:44.27 ID:PLWTluEf
>>28 勘違いじゃねえだろ
与えなかった情報がどっちに転ぶか
中間電位だのメタステーブルだのって状況を
おまえがわかってねえんだよ
言わなかったことは俺の都合よく取ってくれだろ?
甘やかされた金持ちボンボンによくあるんだが
家庭教師を雇う経済力はない親御さんのようだな
35 :
デフォルトの名無しさん
2016/08/22(月) 22:46:13.25 ID:L/g35wNF
>>33 はあ?お前どんだけバカなんだよ
論理的(爆笑
36 :
デフォルトの名無しさん
2016/08/22(月) 22:53:13.58 ID:PLWTluEf
禁止されて「いない」ことの証明を他力本願で祈りながら、
お寺の坊主にはお布施も渡さずに低脳よばわり
まあいいんじゃないか? ご利益なくて地獄に落ちるバカもいて
37 :
デフォルトの名無しさん
2016/08/22(月) 23:07:38.46 ID:h7MtbrKQ
なんだ
結局
>>25の『そうに決まってるだろ』は嘘だったのか
38 :
デフォルトの名無しさん
2016/08/22(月) 23:11:56.81 ID:h7MtbrKQ
39 :
デフォルトの名無しさん
2016/08/22(月) 23:15:20.32 ID:L/g35wNF
>>37 キチガイにくれてやる餌はもうありませんよ
40 :
デフォルトの名無しさん
2016/08/23(火) 05:52:48.19 ID:O4MU2HPR
規格に「○○と書くことができる」と明示されているなら
「規格書のこの場所を参照せよ」と教えられるけど、
「○○と書くことは禁止する」とか「○○と書いた場合の動作は未定義」とか、
どこにも書かれていないから許されるっていう論理展開の場合、
「規格書を隅から隅まで読め」としか言いようがないよな。
ところでC++の規格書にアクセスする方法を
スレッドのテンプレートにでも載せておくと便利かもね。
というか、タダで読める規格書を紹介してください。
41 :
デフォルトの名無しさん
2016/08/23(火) 06:53:40.84 ID:Y0n1zcYL
>>34 特定のコンパイラに依存する話はしてないのだから規格の話であることは明確です
逆になぜコンパイラに依存すると思い込んだのか不明です
勘違いしたなら素直にそう言えばいいだけなのではないでしょうか見苦しいです
42 :
デフォルトの名無しさん
2016/08/23(火) 08:19:52.18 ID:IvwXbhOy
>>41 おまえは可能かと聞いたんだ、いいか可能かだぞ
exportのように規格では可能でコンパイラでは不能なことや
結合指定の一致しない関数ポインタのように規格では不能でコンパイラでは可能なことだってある
おまえが脳内で勝手に決めたことなんざ
ぜんぜん明確じゃねえんだよバカ
43 :
デフォルトの名無しさん
2016/08/23(火) 08:26:02.57 ID:qBPZWzjH
>>42 特定のコンパイラに依存する話など聞いていません
自分で勝手に前提を作ってその前提をもとに話しをしてそれを押し付けられてもこちらはそんな話はいらないとしか言えないです
申し訳ないですけど頭のおかしい人に見えます
44 :
デフォルトの名無しさん
2016/08/23(火) 08:31:31.66 ID:qBPZWzjH
勘違いして恥ずかしいから自分を正当化するために相手が悪いという事にしたい気持ちはわかります
でもそれは余計恥ずかしい事なので恥の上塗りはやめたほうがいいと思いますよ
45 :
デフォルトの名無しさん
2016/08/23(火) 08:43:12.87 ID:uPhg+qti
>>19 みたいな初心者と勘違いされるような質問の仕方が悪い
46 :
デフォルトの名無しさん
2016/08/23(火) 08:49:04.54 ID:DsF8a6WC
技術板なのに「自分の言い分が正しい」って言い合い続けるだけのバカ共が居座っているのか
47 :
デフォルトの名無しさん
2016/08/23(火) 08:49:55.28 ID:3V8DlG7j
何だこの釣り堀は?
48 :
デフォルトの名無しさん
2016/08/23(火) 08:59:21.57 ID:J0tT4d0S
でも2chはプロが話し合う場ではない、というのもまた真実なんだよな。
プログラム板はある意味異常。
49 :
デフォルトの名無しさん
2016/08/23(火) 09:18:16.76 ID:IvwXbhOy
>>43 19の時点ではコンパイラとも規格とも
おまえはどちらとも言ってない
どうあがいてもこの事実は覆らない
50 :
デフォルトの名無しさん
2016/08/23(火) 09:25:17.91 ID:qBPZWzjH
書いてないのに勝手にコンパイラの話に決めつけるのはおかしい事です
なぜコンパイラの話にしたのか意味不明でアホ過ぎます
しかもそれを指摘されると逆ギレするのはとてもみっともない事です
51 :
デフォルトの名無しさん
2016/08/23(火) 09:48:23.79 ID:IvwXbhOy
ははは
規格の話だって主張を引っ込めたな
52 :
デフォルトの名無しさん
2016/08/23(火) 09:59:46.93 ID:qBPZWzjH
コンパイラは指定してないのだから
コンパイラに依存しないつまり規格の話なのは言うまでも無いです
特定のコンパイラでできるかどうか聞いているのなら最初からそのように言うでしょう
なぜ勝手にコンパイラの話にしたのか思考がおかしいです
論理的では無いです。
しかもその勘違いを指摘してあげたのに逆ギレとは心外です
53 :
デフォルトの名無しさん
2016/08/23(火) 10:16:39.75 ID:IvwXbhOy
いーや、おまえが "企画" と言い出したのは23からだ
歴史を捏造したり、嘘を100回言って本当にしようとしたり、
まるでどっかの国の告げ口おばさんだな
54 :
デフォルトの名無しさん
2016/08/23(火) 10:31:45.33 ID:IvwXbhOy
あ、21だっけ
いずれにせよ遅きに失したことに変わりはないが
55 :
デフォルトの名無しさん
2016/08/23(火) 10:38:24.61 ID:qBPZWzjH
企画とか言い出したのは別人です
c++のスレでコンパイラの話をしてないのに規格の話とは思わなかったというのは流石に無理があります
56 :
デフォルトの名無しさん
2016/08/23(火) 10:47:49.73 ID:LgPC+ubP
規格を端から端まで読まないとわからないという結論が出た以上、無駄な議論をする時間で規格を読んではいかが?
57 :
デフォルトの名無しさん
2016/08/23(火) 11:09:33.65 ID:vhBIERX9
どういう結論だよw
「8.4 Function definitions」とせいぜい「12.4 Destructors」を読めばいいだろ
ゆっくり読んでも5分もあれば十分
58 :
デフォルトの名無しさん
2016/08/23(火) 11:34:13.96 ID:IvwXbhOy
59 :
デフォルトの名無しさん
2016/08/23(火) 11:56:52.76 ID:qBPZWzjH
勝手な思い込みでコンパイラの話と決めつけて他人を本人だと決めつけて
思い込みが激しい人なんですね
勘違いをして恥かいたのはしょうがない事です
それを人のせいにするのは小学生みたいで見苦しいですよ
60 :
デフォルトの名無しさん
2016/08/23(火) 12:05:27.02 ID:J0tT4d0S
「俺はコンパイラの話と思った。理由はともかくその話をするぜ」ってスタンスでも別にいいし、
「理由もなくそんな話するのは頭おかしい」と断ずるのもどうかと思う。
ちゃんとした話はTwitterででもやれ。
61 :
デフォルトの名無しさん
2016/08/23(火) 12:31:02.84 ID:IvwXbhOy
>>59 不自由な日本語で恥かいたのはあんただよ外人さん
62 :
デフォルトの名無しさん
2016/08/23(火) 12:47:10.45 ID:qBPZWzjH
勘違いで恥をかいたのが悔しくて外人だの言い出すのはみっともないですよ
何度も言いますがコンパイラの話はしてないのに勝手にコンパイラの話と決めつけるのは愚かな事です。
逆ギレして罵りたいのはわかりますがどこまでいっても恥ずかしいだけです
63 :
デフォルトの名無しさん
2016/08/23(火) 12:49:07.79 ID:qBPZWzjH
しかもちゃんと指摘してあげたのに
お前が悪いと人のせいにするあたりに人間性がよく現れていると思います
64 :
デフォルトの名無しさん
2016/08/23(火) 13:06:25.52 ID:IvwXbhOy
>>63 おまえが悪いんだよ
誰もおまえを擁護しねえだろ
おまえのしたことは典型的な質問者の後出しだ
それだけでも無礼なのに態度もでかすぎ
どこまでも腐りきった根性曲がりはみんな大嫌いなんだよ
65 :
デフォルトの名無しさん
2016/08/23(火) 13:13:48.34 ID:qBPZWzjH
残念ながら違います
言ってもいないことを勝手に解釈して決めつけることが悪いことです
さらに悪いのは間違いを指摘されたにも関わらず素直にそれを認めず人のせいにする
これこそが人間として最悪の事です
自分の間違いを認めたくないから人種などの話を持ち出して話をそらしたいのでしょう
それは卑怯者のすることです。
66 :
デフォルトの名無しさん
2016/08/23(火) 13:23:13.61 ID:HFGMYFIt
スレのマナーを守らないNG推奨ID
ID:qBPZWzjH
ID:IvwXbhOy
67 :
デフォルトの名無しさん
2016/08/23(火) 13:31:03.89 ID:IvwXbhOy
>>65 回答者がある程度エスパーするのが悪いこととか
まれに見るほど呆れ果てたクズ質問者だな
68 :
デフォルトの名無しさん
2016/08/23(火) 13:39:37.64 ID:qBPZWzjH
>>67 間違うのは仕方がないことです
こちらは即座に間違いを指摘してさしあげました
ゴネる要素は何処にもないはずなのにあなたはゴネています
ここまでくると頭がおかしくていらっしゃるということしかできません
69 :
デフォルトの名無しさん
2016/08/23(火) 13:47:41.11 ID:ksfCp0yK
後出し質問者vs似非エスパー回答者
70 :
デフォルトの名無しさん
2016/08/23(火) 14:12:56.77 ID:IvwXbhOy
71 :
デフォルトの名無しさん
2016/08/23(火) 14:21:52.19 ID:qBPZWzjH
間違いを指摘されて悔しいのは理解できます
でもこちらがコンパイラの話を出していないのにコンパイラの話に決めつけるのはあまりに不自然で愚かしいです
72 :
デフォルトの名無しさん
2016/08/23(火) 14:37:43.79 ID:IvwXbhOy
>>71 おまえは可能かと聞いたんだ
コンパイラ持ってないやつは自動的に不可能だろうが
おまえの中ではそれが不自然らしいなゴミ
73 :
デフォルトの名無しさん
2016/08/23(火) 14:51:18.14 ID:qBPZWzjH
コンパイラの話をしてないのにコンパイラの話と決めつけるのは不自然です
コンパイラの話をしてないのだからコンパイラに依存する話ではないと判断するのは自然です
この程度の判断もできないのはちょっと困りますね
指摘してあげたのに間違いを認めず人のせいにするのはもっと困ります
74 :
デフォルトの名無しさん
2016/08/23(火) 15:00:09.95 ID:F2Uig/g+
. |
.\ / ____ , -‐……‐--. . . 、 \ | /
\ / /. : : : : : : : :ヽ-‐.: :_;. --- .._: : : : : : : :\ \ /
_ も _ /, -‐==ミ: : : : _,ィニ-‐……ー-: 、`ヽ、: : : : ヽ、 _ 争 _
_ っ _ . .:´: : : : : : : ≠: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┬' |
75 :
デフォルトの名無しさん
2016/08/23(火) 15:01:58.06 ID:IvwXbhOy
おまえの中ではの話にすぎない
後出し注文が通らなくて困るのは俺にゃ関係ない
76 :
デフォルトの名無しさん
2016/08/23(火) 15:05:26.92 ID:F2Uig/g+
. |
.\ / ____ , -‐……‐--. . . 、 \ | /
\ / /. : : : : : : : :ヽ-‐.: :_;. --- .._: : : : : : : :\ \ /
_ も _ /, -‐==ミ: : : : _,ィニ-‐……ー-: 、`ヽ、: : : : ヽ、 _ 争 _
_ っ _ . .:´: : : : : : : ≠: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┬' |
77 :
デフォルトの名無しさん
2016/08/23(火) 15:07:26.73 ID:qBPZWzjH
勝手にコンパイラの話にされた挙句
逆ギレして人のせいにされて困ってます
こういう横暴は控えるのが常識的な人間の態度かと存じます
78 :
デフォルトの名無しさん
2016/08/23(火) 15:16:57.13 ID:F2Uig/g+
. |
.\ / ____ , -‐……‐--. . . 、 \ | /
\ / /. : : : : : : : :ヽ-‐.: :_;. --- .._: : : : : : : :\ \ /
_ も _ /, -‐==ミ: : : : _,ィニ-‐……ー-: 、`ヽ、: : : : ヽ、 _ 争 _
_ っ _ . .:´: : : : : : : ≠: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┬' |
79 :
デフォルトの名無しさん
2016/08/23(火) 15:24:57.18 ID:IvwXbhOy
だから勝手に困ってろよ
そんな個人的なことを発表にくるな
同情を引きたくて衆目の前でメソメソ泣いてるのと同じだぜおまえ
80 :
デフォルトの名無しさん
2016/08/23(火) 15:34:23.25 ID:qBPZWzjH
勝手な勘違いで赤っ恥をかいたことを認めたくので
人に責任を押し付けてるわけですね
それは人間として最もみっともない行為ですよ
81 :
デフォルトの名無しさん
2016/08/23(火) 17:15:01.76 ID:IvwXbhOy
やーい、困る困ると連呼してたのが止まったw
82 :
デフォルトの名無しさん
2016/08/23(火) 17:57:59.23 ID:nfi0AMZ6
ID:qBPZWzjHは安定だな。討論で闘うポイントを抑えている。
ID:IvwXbhOyは潜在的にオツムが弱いタイプ
83 :
デフォルトの名無しさん
2016/08/23(火) 18:03:38.77 ID:82e1JvbW
どっちも迷惑なタイプ
普通に質問すら出来ないバカと
最初の質問からそれを読み取ってスルーしないバカ
84 :
デフォルトの名無しさん
2016/08/23(火) 18:06:03.61 ID:HFGMYFIt
昼間ずっとやっているとか手に負えんな
>>82 C++に関係ないディベートやるスレじゃねぇよ
85 :
デフォルトの名無しさん
2016/08/23(火) 18:11:19.74 ID:nfi0AMZ6
<まっとうな者同士の会話>
このように指定する事は可能ですか
↓
やってみたらどうなんだ
↓
すでにやりました 規格的にどうかと聞いているんです
↓
あ、そうなの。失礼
<キチガイとの会話>
このように指定する事は可能ですか
↓
やってみたらどうなんだ
↓
すでにやりました 規格的にどうかと聞いているんです
↓
規格でどうたらは今はじめて言ったんだろうが
無駄に答えさせたの謝ってからにしろ ぼけ
後出し注文だクズ
86 :
デフォルトの名無しさん
2016/08/23(火) 18:13:49.00 ID:IvwXbhOy
>>82 ありがとよ
俺がオツムが弱いのは事実なので別にいいし
それでもディベテクで誤魔化せる問題じゃなかったわけだ
87 :
デフォルトの名無しさん
2016/08/23(火) 18:15:21.36 ID:IvwXbhOy
>>85 聞いてるんですという嘘が許せねえんだよ
聞きたいんですだろ
88 :
デフォルトの名無しさん
2016/08/23(火) 18:35:19.51 ID:sEUAXxwa
>>40 アホか?
プログラミング言語の仕様書は形式言語で、書く事が出来る事は厳密に定義してるわ
89 :
デフォルトの名無しさん
2016/08/23(火) 18:43:08.31 ID:nfi0AMZ6
そうか?
例えば8章だけだとコンストラクターはをvoid hoge (){}と書けそうだけど、
実際は12.1を読むとvoidが書けないことがわかるだろ。
局所的に8章だけ見てわかるだろ というのは変だと思うのだが。
特にC++は規格の3,7,8,9,12章をくまなく読んで確認しないと安心出来ない
90 :
デフォルトの名無しさん
2016/08/23(火) 21:17:04.88 ID:PDPzOw0b
ラムダ式を関数に渡す場合はテンプレートで受け取るしかないのか?
91 :
デフォルトの名無しさん
2016/08/23(火) 21:34:59.86 ID:fXfboly6
ディベートはC++でプログラムする
92 :
デフォルトの名無しさん
2016/08/23(火) 21:41:26.18 ID:1HCV3l6R
93 :
デフォルトの名無しさん
2016/08/23(火) 23:08:28.87 ID:nDdy5zri
>>92 いい加減な回答だな・・・
ラムダ式の型はコンパイラにしかわからないのに、なぜstd::function にコピーしてもいいのか?
94 :
デフォルトの名無しさん
2016/08/23(火) 23:25:19.49 ID:2deJIJdD
同じシグネチャの関数ポインタの型にも渡せる
95 :
デフォルトの名無しさん
2016/08/23(火) 23:46:30.82 ID:y4gmj8NB
キャプチャがなければね
96 :
デフォルトの名無しさん
2016/08/23(火) 23:49:50.40 ID:nDdy5zri
>>94 auto lmd = [](){};
void (*pf)();
cout << sizeof(lmd) << endl;
cout << sizeof(pf) << endl;
97 :
デフォルトの名無しさん
2016/08/24(水) 01:27:40.47 ID:e6LV9cko
98 :
デフォルトの名無しさん
2016/08/24(水) 02:12:05.23 ID:ui+t3Px2
>>96 そりゃあLambdaじゃサイズ違うが、それがなんなんだよ
コミュ障すぎる
99 :
デフォルトの名無しさん
2016/08/24(水) 02:31:42.60 ID:sRbuKfy8
>>97 >>94,95の無キャプチャのクロージャは関数ポインタへ変換可能だという話に対して
sizeofの大きさが違うから渡せるはずないじゃんという無知からくる間違った『間違いの指摘』だろ
100 :
デフォルトの名無しさん
2016/08/24(水) 06:29:36.29 ID:dZrohm6h
>>10 A() に explicit 付け忘れとるでよ
101 :
デフォルトの名無しさん
2016/08/24(水) 08:13:18.11 ID:LiadQQJo
>>93 話を逸らしたところで
>>92が
>>90の求める答えになっていることに変わりはないぞ。
テンプレートを使用した技法を使っているかどうかじゃやくて
呼ばれる側(ラムダを受け取る側)のシグネチャー固定だからな
102 :
デフォルトの名無しさん
2016/08/24(水) 08:21:59.06 ID:LiadQQJo
>>100 むしろどうしてこのクラスのA()に付けようと思った?
103 :
デフォルトの名無しさん
2016/08/24(水) 09:11:35.12 ID:KdH0xAm4
ここってプログラムの依頼とかできますか?
104 :
デフォルトの名無しさん
2016/08/24(水) 09:14:38.48 ID:zuAyaRZV
質問者のふりをして降ってみれば
喧嘩が始まってプログラムそっちのけになるかも
105 :
デフォルトの名無しさん
2016/08/24(水) 09:25:41.91 ID:KdH0xAm4
よく見たら上がすでに喧嘩状態でしたね
じゃあ質問させていただきます。
今、ネプリーグのトロッコアドベンチャーを再現しようとしています。
動画のほうは完成しつつあるのですが、肝心の再生技術がありません。
やりたいこととしては
①クイズを5段階の難易度に分けて最初に指定
②本物のように左を選択したら、左用の動画が流れるような仕組みにしたい。
それもキーコマンドか何かで。
➂正解したら次の動画が再生され、失敗したらそこで動画が止まるような仕組み。
プログラム初心者なので、経験のある友人にやらせようかと思っています。
こうしたらいいんじゃね?っていう案をください。お願いします
106 :
デフォルトの名無しさん
2016/08/24(水) 09:28:02.77 ID:zuAyaRZV
とりあえずC++じゃねえな
C++出できなくないけどやりたくない
つまりスレチ
107 :
デフォルトの名無しさん
2016/08/24(水) 09:28:58.95 ID:KdH0xAm4
了解です。ありがとうございます
108 :
デフォルトの名無しさん
2016/08/24(水) 14:56:32.59 ID:NR8vORkc
>>96 ちょっと楽しめた
cout << sizeof(&decltype(lmd)::operator()) << endl;
cout << sizeof((void(*)())lmd) << endl;
109 :
デフォルトの名無しさん
2016/08/24(水) 21:03:17.24 ID:09YX4k7p
110 :
デフォルトの名無しさん
2016/08/24(水) 21:42:42.82 ID:KdH0xAm4
>>109 なるほど、公開されているプログラム?の中に似たようなものがあるということですね。
探してみますありがとうございます。
111 :
デフォルトの名無しさん
2016/08/24(水) 23:56:13.09 ID:SbVNGFmk
初めて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されないと送信が完了しないのか訳が分からない……
送受信のたびに毎回コネクトし直せとかそんな馬鹿げた仕様なわけあるまいし、どうやって使うもんなんですこれは?
112 :
デフォルトの名無しさん
2016/08/25(木) 00:06:36.64 ID:fxoWtzfY
あっ、あとwinsockとか根本的に通信手段を変えろってダメなんです
具体的にはJVMTIでJVMを監視して、その情報を通信で飛ばしたい
その環境でwinsock使ったらそもそもコネクトすら出来んかった
113 :
デフォルトの名無しさん
2016/08/25(木) 00:13:11.38 ID:HcIHj1Mt
114 :
デフォルトの名無しさん
2016/08/25(木) 00:32:47.51 ID:wUu3TQ4N
115 :
デフォルトの名無しさん
2016/08/25(木) 00:37:54.17 ID:HcIHj1Mt
116 :
デフォルトの名無しさん
2016/08/25(木) 00:47:16.73 ID:aAEQc8xp
通信クラスだけは何故か必ずnewする奴いるわ
117 :
デフォルトの名無しさん
2016/08/25(木) 02:46:19.92 ID:fxoWtzfY
ありがとうwriteでやってみたらいけそうな気がした
まだなんか挙動が怪しいけれど
newしてるのは自分で定義した通信専用クラス的なのにメンバとしてソケットを持たせようとしてるからなんだ
質問のソースでは1個の関数に収めちゃったけども
118 :
デフォルトの名無しさん
2016/08/25(木) 03:46:17.43 ID:k3Y9C66L
>>105 openframeworksとか使えば一瞬でできる
119 :
デフォルトの名無しさん
2016/08/25(木) 04:26:26.59 ID:bqd04CsU
boostなんて使う理由がわからん
120 :
デフォルトの名無しさん
2016/08/25(木) 08:14:37.95 ID:cZABj4Tc
>その環境でwinsock使ったらそもそもコネクトすら出来んかった
自分のプログラムにバグがあるという発想には至らなかったようだ
121 :
デフォルトの名無しさん
2016/08/25(木) 09:04:55.17 ID:EwnmxDlV
>newしてるのは自分で定義した通信専用クラス的なのにメンバとしてソケットを持たせようとしてるから
newする理由になってないぞ
122 :
デフォルトの名無しさん
2016/08/25(木) 10:22:03.81 ID:87TtdhSG
おいあんましいじめるなよ
123 :
デフォルトの名無しさん
2016/08/25(木) 10:38:13.96 ID:WECz9XA9
newするのは良くないってのはどこかでdeleteしたいときであって、そこを管理しなくていいならどんどんnewすればいい
124 :
デフォルトの名無しさん
2016/08/25(木) 12:16:43.61 ID:j/BsZXzc
ナマポ使うなスマポ使えっていういつもの布教じゃろ
125 :
デフォルトの名無しさん
2016/08/25(木) 12:46:06.50 ID:EwnmxDlV
スマポ使う必要もないということも分からんですかそうですか
126 :
デフォルトの名無しさん
2016/08/25(木) 17:40:44.14 ID:fxoWtzfY
ええ?
じゃあ不勉強なもんでもうひとつ聞きたいんだけれど
class Tsushin
{
private:
boost::asio::ip::tcp::socket *sock;
}
っていうソケットを持ったクラスを作るとして、これをどうやってポインタを使わずに実装できるん?
boost::asio::io_serviceのインスタンスが無いとsocketのインスタンス作れないから、これ以外の方法が分からないんだけれども
127 :
デフォルトの名無しさん
2016/08/25(木) 17:55:50.29 ID:fxoWtzfY
あっ自己解決しました
メンバイニシャライザっていうんかc++でこの書き方初めて知った
128 :
デフォルトの名無しさん
2016/08/25(木) 19:43:09.16 ID:cZABj4Tc
一つ前のレスも読めないとは
どうしてこのスレはこうも文盲が多いのか
129 :
デフォルトの名無しさん
2016/08/25(木) 20:30:02.71 ID:aAEQc8xp
メンバのクラスはコンストラクタが動かないからポインタで持たせるといいよと言ってる奴は結構いるから困る
130 :
デフォルトの名無しさん
2016/08/25(木) 20:45:21.63 ID:HcIHj1Mt
131 :
デフォルトの名無しさん
2016/08/25(木) 20:54:49.89 ID:dURn6wW4
そんな奴おらへんやろ~って漫才師、こだまひびきって言うのか。
今ググって分かった
132 :
デフォルトの名無しさん
2016/08/25(木) 21:19:05.54 ID:aAEQc8xp
>>130 ガチだぞ
うちの会社のソースを見たらみんなポインタで持ってて、上司に何でこんなことをしているのかと聞いたらそうじゃないと使えないからとか返ってきた
しかも暗黙のコーディング規約になっているらしく初期化リストを使おうとしたら変な文法使うのやめてとか言い始めた
133 :
デフォルトの名無しさん
2016/08/25(木) 21:41:30.58 ID:Auzyp/YA
c++書いちゃいけないレベルの奴が無理して書いてると一瞬でコードが負債化するな
こんな職場少なくないんだろうな
おとなしくゆとり向けのjavaかc#にしときゃいいのに
134 :
デフォルトの名無しさん
2016/08/25(木) 21:49:20.87 ID:gyF7bTdS
>>132 おまおれ・・・つーか、もしかして知り合い?
135 :
デフォルトの名無しさん
2016/08/25(木) 21:50:34.75 ID:rkw+skCq
怖いな
もちろんスマポも禁止でデストラクタでデリートしているのだろうな。
136 :
デフォルトの名無しさん
2016/08/25(木) 22:02:34.44 ID:sWxqL1bB
コンストラクタで代入しているのはまだカワイイもんで、K&RのCとC++の区別すらついてないのがゴロゴロいるよ
固定長配列しか使えない
構造体、配列をmemsetで初期化
algorithmヘッダの関数を知らない
全部forでぐーるぐる
Cスタイルのキャストしか知らない
引数のconst参照渡しを知らない
コードにconstが一切出てこない
変数は関数の頭でまとめて宣言
137 :
デフォルトの名無しさん
2016/08/25(木) 23:01:19.36 ID:aAEQc8xp
STL(標準ライブラリ全てのこと)は使わないでねと言われる、しかしMFCは使う
1人だけVS6.0を使っている
新しいバージョン使いましょうと言ったら、内部で新しいライブラリが読み込まれているかもしれないからバグが怖いと言って拒否される
君の書いたコードがコンパイルできないんだけどと言うから見に行ったら、古い仕様でfor文内の変数宣言が重複宣言扱いになってるせいだったが、これおかしくない?変数はfor文の外で宣言しないとダメだよとアドバイスされた
Gitは使いたくないらしく共有フォルダにzipで置いておかないと成果物として認められない
その処理は標準ライブラリで簡単にできると言っても使わなくてもできるでしょとと言って自力でやろうとする
GUIのクラスに様々な処理をべったりと書く
それぞれを部品と見なしてもっと抽象化するように書くと良いですよと説得しようとしたら理屈はいいからと言って一蹴される
C#に移行する案が出ると俺に勉強しろというのかと言って腹を立てる
138 :
デフォルトの名無しさん
2016/08/25(木) 23:08:56.49 ID:bqd04CsU
stlおせーからな
そうりゃそうだろ
内もつかわねーよ
139 :
デフォルトの名無しさん
2016/08/25(木) 23:13:44.51 ID:i0nCiEhg
え?
140 :
デフォルトの名無しさん
2016/08/25(木) 23:14:18.40 ID:i0nCiEhg
凡人がSTLの開発効率と速度を超えるのは容易ではないと思うんだが。
141 :
デフォルトの名無しさん
2016/08/25(木) 23:30:57.44 ID:sWxqL1bB
「STLが遅い」という人はほとんどの場合
「デバッグビルド時になんか知らんけどvectorが生配列に比べて遅い」
という意味でおっしゃっています
142 :
デフォルトの名無しさん
2016/08/25(木) 23:32:50.42 ID:aAEQc8xp
>boostなんて使う理由がわからん
>stlおせーからな
自信過剰なのか使い方がわからないのか
143 :
デフォルトの名無しさん
2016/08/25(木) 23:39:01.25 ID:bqd04CsU
>>140 STLのソースみてみろよ
アルゴリズムなんて偉そうに言ってるわりには単にループしてるだけじゃんw
144 :
デフォルトの名無しさん
2016/08/25(木) 23:43:44.66 ID:i0nCiEhg
>>143 ループがアルゴリズムじゃなかったらなんなんだ?
STLのすごいところは手続きの一本化だと思ってるが。
145 :
デフォルトの名無しさん
2016/08/26(金) 00:00:25.29 ID:5SQKnTXv
STLってがっかりしているポーズに見える
146 :
デフォルトの名無しさん
2016/08/26(金) 00:00:26.86 ID:zzW4nWtw
テクい実装をすることや複雑な問題を解くことだけがすごいことらしい
147 :
デフォルトの名無しさん
2016/08/26(金) 00:14:11.18 ID:XypgEzC7
count_if
なんてループで回して、比較してるだけじゃん
数十秒でかける処理をわけのわからんライブラリを使う理由がわからん
148 :
デフォルトの名無しさん
2016/08/26(金) 00:16:33.63 ID:mRE0T9bN
>>147 訳が分かってないだけだ。
共通理解というものを重視しないんだなぁ。いやすぎ。
149 :
デフォルトの名無しさん
2016/08/26(金) 00:21:54.93 ID:0ZeIadI8
>>147 標準ライブラリをわけのわからん呼ばわりするのは流石に笑う
printfはわけがわかるの?
atoiは?
標準ライブラリの使い方すら知らない人間が書いた関数はわけがわからんから使いたくないなぁ
150 :
デフォルトの名無しさん
2016/08/26(金) 00:21:58.15 ID:zzW4nWtw
C++が使えるというのは標準ライブラリも知っているということでもあるからな
誰が見ても一行で何をしているか分かるということが重要だ
151 :
デフォルトの名無しさん
2016/08/26(金) 00:25:24.95 ID:XypgEzC7
おまえらわけわか
152 :
デフォルトの名無しさん
2016/08/26(金) 00:29:45.40 ID:mRE0T9bN
>>151 こっちから見ればなんで素養のわからんあんたのコードつかわにゃならんのだ。ってこと。
関数名見れば機能はわかるということを破棄してるあんたと仕事したくない。
共通理解って言葉が理解できないって恐ろしいことだ。
153 :
デフォルトの名無しさん
2016/08/26(金) 01:02:45.66 ID:s3V0ZpLS
無駄に長くて読みにくいコード書いてそう
154 :
デフォルトの名無しさん
2016/08/26(金) 02:10:25.32 ID:jGd0g2RH
コピペしまくりのコードとかまとめろってかんじ
155 :
デフォルトの名無しさん
2016/08/26(金) 02:40:37.07 ID:mRE0T9bN
多分、
>>152みて職場で無関係な奴に当たり散らすんだぜ。
盲目って怖い。
156 :
デフォルトの名無しさん
2016/08/26(金) 06:15:21.48 ID:9s6WK35L
>>129 そんなこと言うお前はもちろん
メンバー初期化の順番が何によって決まるのかを
調べずに言えるんだろうな?
157 :
デフォルトの名無しさん
2016/08/26(金) 06:18:57.25 ID:zQpNEvET
age
158 :
デフォルトの名無しさん
2016/08/26(金) 08:41:47.22 ID:G0uj5hQB
>>156 あたかも自分は知ってるって感じのものの言い方だなw
159 :
デフォルトの名無しさん
2016/08/26(金) 08:51:08.73 ID:Xz0onrQ7
クイズ好きだね
160 :
デフォルトの名無しさん
2016/08/26(金) 08:52:16.33 ID:zYo2bKWf
まあゴテゴテに凝ったフレームを使うより単純な自分実装のが
良いこともあるわな。
釘打つのに巨大ハンマーは必要ないってこともある。
161 :
デフォルトの名無しさん
2016/08/26(金) 09:42:17.11 ID:3Yp6hByU
std::使っておけばドキュメンテーション楽じゃん、とは思わないのかね?
162 :
デフォルトの名無しさん
2016/08/26(金) 09:44:55.75 ID:ZYJ50bjn
標準ライブラリは巨大ハンマーと言うよりは、ネジとか家庭用電源差込口とかに近い、まさに規格化された共通部品じゃないかと思うんだけどな。
163 :
デフォルトの名無しさん
2016/08/26(金) 09:54:56.48 ID:+34Dv1b8
自分実装のはずなのに、半年1年後
「誰だよこれやったのは?」って言いたくなる
164 :
デフォルトの名無しさん
2016/08/26(金) 09:57:17.75 ID:G0uj5hQB
速いならいいがな
遅いのにあえてSTLを使う理由がわからん
165 :
デフォルトの名無しさん
2016/08/26(金) 09:58:29.62 ID:3eEs1ucA
iostreamみたいなウンコ大作がネジとか何の冗談
166 :
デフォルトの名無しさん
2016/08/26(金) 10:00:15.98 ID:3eEs1ucA
ああ、screwedにかけたのかw
167 :
デフォルトの名無しさん
2016/08/26(金) 10:01:25.74 ID:3Yp6hByU
速いのがいいならsproutでも使えば
168 :
デフォルトの名無しさん
2016/08/26(金) 10:11:56.38 ID:ZYJ50bjn
別に標準ライブラリと同じインタフェースにしといてくれれば、あとは勝手にしてくれていいんやで。
169 :
デフォルトの名無しさん
2016/08/26(金) 10:14:12.77 ID:ZYJ50bjn
あと、標準ライブラリといったらiostremって発想もどうかと思う。
まあ、一番叩きやすいってのは確かだし、俺自身も使ってるないから擁護もできないのだけれども。
170 :
デフォルトの名無しさん
2016/08/26(金) 10:16:18.07 ID:ZYJ50bjn
iostreamは確かに使いにくい。
あれならprintf使うのも仕方ない…
171 :
デフォルトの名無しさん
2016/08/26(金) 10:22:03.58 ID:JmjWOqaY
printf > boost::format >>>>>>超えられない壁>>>>>> iostream
172 :
デフォルトの名無しさん
2016/08/26(金) 11:08:04.55 ID:R92D0kaL
なぜいつまでたってもフォーマットを指定してstd::stringにするライブラリが標準入りしないのか
173 :
デフォルトの名無しさん
2016/08/26(金) 11:12:41.32 ID:mRE0T9bN
putfって止まってるの?
174 :
デフォルトの名無しさん
2016/08/26(金) 12:40:42.69 ID:3eEs1ucA
>>172 モウロクしたハゲがiostreamを否定されて屈辱的だとかスネちゃうからだろ
175 :
デフォルトの名無しさん
2016/08/26(金) 12:59:54.61 ID:3Yp6hByU
176 :
デフォルトの名無しさん
2016/08/26(金) 13:16:58.62 ID:R92D0kaL
streamの何も考えずガンガン流し込めばいいというスタイルは悪くないと思う
ただ特に標準出力に関してはデータを整形したいケースが多いから噛み合ってない
177 :
デフォルトの名無しさん
2016/08/26(金) 13:22:39.50 ID:FOeYYSc0
何も考えず?
iostreamってstd::size_tを流し込めること保証されてたっけ
178 :
デフォルトの名無しさん
2016/08/26(金) 13:28:03.42 ID:XS8ZF2FO
std::cout << std::hex << std::setw(2) << std::setfill('0') << int('A');
printf("%02x", 'A');
179 :
デフォルトの名無しさん
2016/08/26(金) 18:00:13.51 ID:ZiaxvSyE
180 :
デフォルトの名無しさん
2016/08/26(金) 18:10:38.59 ID:PiJ4eTCv
ヌルポチェックの外でメンバ関数呼び出している。
181 :
デフォルトの名無しさん
2016/08/26(金) 18:21:32.60 ID:RLEpnGOr
>>179 こんな超絶クソコード作る奴の頭がそもそも虫湧いてるので答えなんてないと思うよ
なんだよnewと対になっていないdeleteとか、しかもdeleteの前に無意味なnullチェックしてるし
182 :
デフォルトの名無しさん
2016/08/26(金) 18:23:08.82 ID:RLEpnGOr
前提条件が曖昧すぎて問題にすらなっていない
マルチスレッド環境なら話にならないコードだし
183 :
デフォルトの名無しさん
2016/08/26(金) 18:26:56.70 ID:3Yp6hByU
for (auto charactor はfor (auto& charactor でなくていいんだろうか?
184 :
デフォルトの名無しさん
2016/08/26(金) 18:35:20.55 ID:RLEpnGOr
ViewPortのコンストラクタにnullptrが渡される可能性があるなら
ViewPort::Updateは何もする必要がないのであって、Updateの冒頭でnullチェックしてreturnすればいいだろ
とにかく問題作った奴が馬鹿丸出し過ぎてイライラする
185 :
デフォルトの名無しさん
2016/08/26(金) 18:36:33.86 ID:ZiaxvSyE
色々思いつくけど
>>180 が当たりっぽい
腑に落ちないw
186 :
デフォルトの名無しさん
2016/08/26(金) 18:52:19.14 ID:wMnlcyg3
rule of three(five)を無視しといてバグとか語るなって感じだが
>>182のいうように想定してる不具合実演のサンプルコードなのか実用コードの一部なのかすら
わからんのではどうにもなあ
187 :
デフォルトの名無しさん
2016/08/26(金) 20:37:16.13 ID:dDBcLzC2
>>178 これなw
いいかげん、正式な「1byte幅の整数型」が欲しいね。
188 :
デフォルトの名無しさん
2016/08/26(金) 20:45:01.75 ID:Xz0onrQ7
参考にしたいからお前らの頭の良い実装を見せてくれ
これくらいなら数分で書き直せるだろ
189 :
デフォルトの名無しさん
2016/08/26(金) 23:13:22.52 ID:mRE0T9bN
190 :
デフォルトの名無しさん
2016/08/27(土) 08:43:16.25 ID:SmFG8gRK
ク ク || プ //
ス ク ス | | │ //
/ ス | | ッ // ク ク ||. プ //
/ // ス ク ス _ | | │ //
/ ̄ ̄\ / ス ─ | | ッ //
/ _ノ .\ / //
| ( >)(<) ___
. | ⌒(__人__) ./ ⌒ ⌒\
| ` Y⌒l / (>) (<)\
. | . 人__ ヽ / ::::::⌒(__人__)⌒ \
ヽ }| | | ` Y⌒ l__ |
ヽ ノ、| | \ 人_ ヽ /
. /^l / / ,─l ヽ \
191 :
デフォルトの名無しさん
2016/08/27(土) 12:49:21.98 ID:06SnK2FS
>>179 デストラクタでわざわざnull代入するかどうかよりdelete前にnullチェックしていることをつっこもうぜ
192 :
デフォルトの名無しさん
2016/08/27(土) 13:15:37.85 ID:s3YfawhT
nullptrだったら描画開始しちゃダメなんじゃないの?
193 :
デフォルトの名無しさん
2016/08/27(土) 21:26:23.95 ID:mslVqKaF
null をdelete しても無視されるから無駄って事かな
194 :
デフォルトの名無しさん
2016/08/27(土) 22:04:43.54 ID:sEFObQol
195 :
デフォルトの名無しさん
2016/08/27(土) 22:19:45.68 ID:nxWT+PHC
あってもなくても動作に影響しないものがあってもそこはバグとはいわないだろう
196 :
デフォルトの名無しさん
2016/08/27(土) 22:42:36.92 ID:OFUg9SIZ
バグとは言われないがゴミコードとは言われるだろう。
197 :
デフォルトの名無しさん
2016/08/28(日) 01:03:52.09 ID:IZ16EciY
198 :
デフォルトの名無しさん
2016/08/28(日) 01:09:59.02 ID:3Myecdh+
delete前のnullptrチェックなあ
assertならわかるんだけどね
199 :
デフォルトの名無しさん
2016/08/28(日) 01:19:06.19 ID:jX9FVgVh
お前らが理想のコードに書き直してくれるのを待ってるんだが
200 :
デフォルトの名無しさん
2016/08/28(日) 01:37:02.68 ID:qNvxLYrv
お前らが知ったかぶりばかりなのが分かった。
別にdelete前にnullチェックするのは悪いことではないし、
newと対になってないdeleteとかも指摘としては噴飯もの。
まああえて言えばdelete後にnull代入しておくべきだが。
問題はforeachでautoになってるところだろ。
これだとvector内の要素ではなく、そのコピーに対して操作してることになる。
明らかに意図していない動作だろう。
201 :
デフォルトの名無しさん
2016/08/28(日) 01:39:40.85 ID:IZ16EciY
バグは1つではない説。
202 :
デフォルトの名無しさん
2016/08/28(日) 01:39:43.61 ID:60yVMOKI
>そのコピーに対して操作してることになる。
あの超絶クソコードの中では一番どうでもいい点だな
203 :
デフォルトの名無しさん
2016/08/28(日) 01:41:06.73 ID:qNvxLYrv
他のはバグの温床にはなりえても、あのコードだけではバグとは言えない。
お前ら学校のテストの問題とかでもケチつけてたタイプだろ?w
204 :
デフォルトの名無しさん
2016/08/28(日) 01:45:52.06 ID:7bU6M/B0
>>200 デストラクタ内でのdelete後にnullptrいれるのって何かメリットあるの?
通常の関数なら二重delete防止のためというのは分かるんだけど
デストラクタは複数回呼ばれないよね?
205 :
デフォルトの名無しさん
2016/08/28(日) 01:50:09.68 ID:qNvxLYrv
>>204 デストラクタ以外のどこか別の場所でdeleteされる可能性があるからだろう。
viewObjは外から渡された変数だから、知らないところでdeleteされてる可能性もある。
そのための防止だね。徹底するならデストラクタ内でもちゃんとnull代入しなきゃだめだけど。
206 :
デフォルトの名無しさん
2016/08/28(日) 01:52:56.61 ID:60yVMOKI
207 :
デフォルトの名無しさん
2016/08/28(日) 01:53:52.21 ID:7bU6M/B0
208 :
デフォルトの名無しさん
2016/08/28(日) 01:54:04.96 ID:60yVMOKI
209 :
デフォルトの名無しさん
2016/08/28(日) 01:54:21.49 ID:lPJVAstL
>>205 別の場所でdeleteされてる可能性があるとするなら、null代入があってもなくてもダメでしょ?
何言ってんの?
210 :
デフォルトの名無しさん
2016/08/28(日) 01:55:42.67 ID:60yVMOKI
デストラクタ以外のどこか別の場所でdeleteされてたなんてキチガイじみた状況に
nullチェックが役に立つとかどういう頭してんだよ
211 :
デフォルトの名無しさん
2016/08/28(日) 01:55:50.77 ID:qNvxLYrv
>>209 ごめん。一定レベル未満の人には回答しないことにする。
そこまでは面倒見切れん。
212 :
デフォルトの名無しさん
2016/08/28(日) 01:56:03.58 ID:Ux2eHzia
>>200 描画だけだから状態を変更しない可能性は高いし
vectorにいれてるくらいだからコピーコストは十分に低いんじゃないかと無理矢理
213 :
デフォルトの名無しさん
2016/08/28(日) 02:00:10.83 ID:qNvxLYrv
>>212 もちろん値型やstringとかならコピーでも問題はないよ。
でも状態を持った型だってしつこいくらいアピールされてるでしょ。
notifyして状態切り替えてうんぬんの箇所はその根拠となるよう書かれたもの。
問題を読めれば難しくはないはず。
214 :
デフォルトの名無しさん
2016/08/28(日) 02:01:04.63 ID:jX9FVgVh
デストラクタで解放することが分かってるのに他の場所で解放するのはクラスの使用者の責任ではないのか
215 :
デフォルトの名無しさん
2016/08/28(日) 02:01:08.18 ID:60yVMOKI
こういうバカが次から次に湧いてくるからアプリケーション層ではnewもdeleteも書くなって言ってるの
あの糞コードみたいなnewとdeleteが対になっていないようなのはその設計思想自体がバグであって
論ずる必要などはなく、こういうことやるバカは速やかにプロジェクトから排除するべし
216 :
デフォルトの名無しさん
2016/08/28(日) 02:02:18.11 ID:lPJVAstL
>>205 あ、クラス内の別の場所でdeleteを追加した場合にnull代入が要るって話してんのかな?
それだと>204への答えにはなってないし、>179の「問題」はクラス定義が全部見えてるのに、
コード追加でバグる可能性を考え始めたらきりがないでしょ。
コード変更による多重deleteの心配するなら、他の問題への対処も含めてunique_ptrを使えばいい話しだし。
217 :
デフォルトの名無しさん
2016/08/28(日) 02:04:40.29 ID:qNvxLYrv
218 :
デフォルトの名無しさん
2016/08/28(日) 02:06:59.88 ID:jX9FVgVh
ここまで1行も無し
やっぱり口だけか
他のフォーラムじゃあり得ないな
219 :
デフォルトの名無しさん
2016/08/28(日) 02:08:06.28 ID:a4amypBO
最初からnullptrで渡されることがあるんじゃないの
nullptrチェックしても別の場所でdeleteされてるかどうかなんか判断出来なくない?
ポインタのポインタ使って他所でdeleteした時にnullptr入れてるならわかるけど
220 :
デフォルトの名無しさん
2016/08/28(日) 02:09:26.72 ID:7bU6M/B0
デストラクタ内でdelete&nullptr代入しておけばデストラクタ呼び出し後に
外でdeleteされても大丈夫と理解しました
でも、デストラクタ呼び出しより先に外でdeleteされてnullptrが代入されてない場合はダメですね
221 :
デフォルトの名無しさん
2016/08/28(日) 02:27:55.51 ID:lPJVAstL
222 :
デフォルトの名無しさん
2016/08/28(日) 02:50:59.20 ID:a4amypBO
ポインタがコピーされてるから内部と外部じゃ別物だよ
片方にnullptr代入したってもう片方は変わらない
これnewして直でコンストラクタに入れるんかな
それならコピーでもされない限り外部で消されることは無いけど
223 :
デフォルトの名無しさん
2016/08/28(日) 02:56:39.81 ID:jX9FVgVh
スマポだって外部でdeleteされることなんか考慮してない
正しい使い方をしない方に全ての責任があるから考慮する必要性がない
224 :
デフォルトの名無しさん
2016/08/28(日) 03:50:58.71 ID:VK4fyJjM
まさかポインターのコピーがわかってない奴がいようとは驚きだ
それより例外安全が考慮されていないのが気になって仕方ない
225 :
デフォルトの名無しさん
2016/08/28(日) 03:54:18.30 ID:d5NA/60H
また無意味な部分にツッコミを入れてるのか
バグを見つける為の例題なのであって
完全なコードを示してるわけではないってのが理解できないのかな
226 :
デフォルトの名無しさん
2016/08/28(日) 04:21:07.87 ID:hSYh5tBq
>>225 簡略化したはずのコードに無意味なnullポインタチェックがあるのはなんでなん?
簡略化する前ですら冗長なのに
227 :
デフォルトの名無しさん
2016/08/28(日) 06:24:16.40 ID:a4amypBO
速攻指摘されてるじゃん
228 :
デフォルトの名無しさん
2016/08/28(日) 06:32:42.06 ID:VK4fyJjM
>>226 >>225の理屈だと、矛盾以外の不足は「完全なコードじゃないから」になってしまうらしいから
本当は開始・描画・終了の全てにチェックがあったのを一部省略してるだけだろう
229 :
デフォルトの名無しさん
2016/08/28(日) 07:20:04.01 ID:ERRoyT16
>>197 論文見たら全てが策定中になっちゃうのかよ
おめでてーな
230 :
デフォルトの名無しさん
2016/08/28(日) 07:40:09.72 ID:hSYh5tBq
>>228 デストラクタでdeleteする前にviewObjに対してなにかしてるって事?
もしそうならもっと糞コードやん。
viewObj自身で片付けろよと。
231 :
デフォルトの名無しさん
2016/08/28(日) 07:47:04.27 ID:ERRoyT16
ビューポートがビューを破棄するクソ設計にこれ以上突っ込まないでw
232 :
デフォルトの名無しさん
2016/08/28(日) 08:20:20.55 ID:lCXt6uga
233 :
デフォルトの名無しさん
2016/08/28(日) 21:30:38.37 ID:NaGSjNyA
質問
実引数が2個以上必要なコンストラクタをexplicitにする意味ってある?
234 :
デフォルトの名無しさん
2016/08/28(日) 21:34:04.63 ID:NaGSjNyA
自己解決しました。
すみません忘れて
235 :
デフォルトの名無しさん
2016/08/30(火) 08:09:06.98 ID:ftymYuoJ
ハゲの好きそうなコード
f ( { p1, p2, p3 } ) // explicitだとエラー
236 :
デフォルトの名無しさん
2016/08/30(火) 15:46:08.79 ID:0Xvfpf4x
ハゲの嫌いなことは、言語に機能を追加すること。
もともとC with classesとか始めた張本人がハゲなんだけど、
まあ今のC++を見てると気持ちはわかるね。
237 :
デフォルトの名無しさん
2016/08/30(火) 19:30:10.07 ID:0Xvfpf4x
ハゲの論理を、ハゲロンという。
1価の陰イオンとなる第17族元素である。
238 :
デフォルトの名無しさん
2016/08/30(火) 23:18:33.93 ID:lqTGpbVF
もっと増やせと言いたいところだがこれ以上大きく変えるような機能はあるのか?
C#みたいなプロパティは欲しいけど
239 :
デフォルトの名無しさん
2016/08/30(火) 23:37:14.11 ID:ocxqe0WR
そんなんtemplateで書けばいいじゃん
240 :
デフォルトの名無しさん
2016/08/30(火) 23:42:07.71 ID:xMG6EfaL
は?テンプレートでC#のようなプロパティどうやって実現するんだ?
241 :
デフォルトの名無しさん
2016/08/31(水) 00:35:52.45 ID:ityOLHmm
それっぽいのは出来なくはなさそうだけど
プロパティの簡潔さには程遠いな
242 :
デフォルトの名無しさん
2016/08/31(水) 00:39:34.42 ID:yHeo0PbI
C#を知らんやつにも分かるように説明汁
243 :
デフォルトの名無しさん
2016/08/31(水) 01:23:54.91 ID:/ANAyxIk
244 :
デフォルトの名無しさん
2016/08/31(水) 01:38:11.88 ID:1fkGDbVO
>>240 > は?テンプレートでC#のようなプロパティどうやって実現するんだ?
今年一の名言だなw
245 :
デフォルトの名無しさん
2016/08/31(水) 01:57:19.27 ID:6ukDv4b6
>>243 ダッサ
お前C#のプロパティの便利さ全然理解してないね
246 :
デフォルトの名無しさん
2016/08/31(水) 01:59:51.36 ID:j3ifnVdn
何が名言なのかさっぱり分からんのだが
こんな書き方で満足する人いるの?
247 :
デフォルトの名無しさん
2016/08/31(水) 02:07:02.38 ID:BDrnIBJY
C++のstd::vector<bool>がクソ扱いされていることを
理解している気配は全く無いな
248 :
デフォルトの名無しさん
2016/08/31(水) 02:09:05.10 ID:BDrnIBJY
249 :
デフォルトの名無しさん
2016/08/31(水) 02:21:29.37 ID:/ANAyxIk
250 :
デフォルトの名無しさん
2016/08/31(水) 02:44:37.65 ID:AgvBQXnk
プロパティって最初に採用されたのはVBっていうかCOMだよね確か。
251 :
デフォルトの名無しさん
2016/08/31(水) 09:31:40.10 ID:+TzIiYAW
プロパティも欲しいけど簡単に使える部分配列も欲しいな
252 :
デフォルトの名無しさん
2016/08/31(水) 09:57:43.27 ID:WLaQrr/5
>>243 なんじゃこりゃ。全然違うじゃん。
これをC#のプロパティと思ってるの?
もっと普通のケース(各メンバ変数にgetメソッドとsetメソッド)
で例示してくれよ。
253 :
デフォルトの名無しさん
2016/08/31(水) 10:03:12.25 ID:WLaQrr/5
こういうコードを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;
}
254 :
デフォルトの名無しさん
2016/08/31(水) 10:03:54.93 ID:sRpVtXPN
ほならね
255 :
デフォルトの名無しさん
2016/08/31(水) 10:14:08.99 ID:WLaQrr/5
上のダサい例だとgetterやsetter書くよりコードも複雑化してるじゃねーか。
意味ねーじゃん。
256 :
デフォルトの名無しさん
2016/08/31(水) 10:40:08.79 ID:N4JrJ9XH
プロパティやりたいならC++Builder
257 :
デフォルトの名無しさん
2016/08/31(水) 11:12:33.68 ID:utsO37AQ
お手本はよ
258 :
デフォルトの名無しさん
2016/08/31(水) 11:18:56.64 ID:N4JrJ9XH
こういうコードを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);
}
259 :
デフォルトの名無しさん
2016/08/31(水) 11:20:17.85 ID:N4JrJ9XH
うわ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);
}
260 :
デフォルトの名無しさん
2016/08/31(水) 11:40:45.52 ID:utsO37AQ
標準で頼む
261 :
デフォルトの名無しさん
2016/08/31(水) 11:53:46.21 ID:N4JrJ9XH
標準じゃないけどめっちゃ便利やよ
262 :
デフォルトの名無しさん
2016/08/31(水) 12:18:33.24 ID:XvHw9frf
教えてください。
Qt creatorで作成しており、GUIのボタンからwin7の拡大鏡(magnify.exe)を起動したいと思っています。
問題は、shellexecuteやQProcessで実行すると拡大鏡の画面が真っ黒になり適切に使用できません。
キーボードから、winと+のショートカットでで起動すると問題なく起動すると真っ黒になることはないので、これを行いたいです。
そこで、GUIのボタンクリックでキーボードのショートカットを実行するほうほうがあれば教えていただきたいです。
よろしくお願いします
263 :
デフォルトの名無しさん
2016/08/31(水) 13:33:26.19 ID:6ukDv4b6
264 :
デフォルトの名無しさん
2016/08/31(水) 14:02:00.01 ID:XvHw9frf
誘導ありがとうございます。
Qt抜きで、c++的には実現できないのでしょうか?
265 :
デフォルトの名無しさん
2016/08/31(水) 14:22:32.78 ID:mqymnS7Z
Qt使ったこと無いけど呼び出し時の権限が足りないんじゃないかな
266 :
デフォルトの名無しさん
2016/08/31(水) 14:25:22.52 ID:utsO37AQ
とりあえずsystem("magnify");して同じ症状なら別の問題
267 :
デフォルトの名無しさん
2016/08/31(水) 16:18:18.52 ID:f/lfR+US
268 :
デフォルトの名無しさん
2016/08/31(水) 16:56:40.77 ID:/MnV3wL6
リファレンサオブジェクトをpublicデータメンバで持てって?
269 :
デフォルトの名無しさん
2016/08/31(水) 17:50:46.05 ID:WLaQrr/5
>>267 合格。絶対にこんなコード書かないけど、
プロパティの要件は一応満たしている。
270 :
デフォルトの名無しさん
2016/08/31(水) 18:02:51.48 ID:N4JrJ9XH
vectorとかの配列リファレンサがこんな形だよな
271 :
デフォルトの名無しさん
2016/08/31(水) 18:55:44.77 ID:gRHWeOr5
ここを見てるとC++のダメさ加減がよくわかる。
272 :
デフォルトの名無しさん
2016/08/31(水) 19:41:02.78 ID:YUscqvM8
不要だからコア言語に追加されなかったんだろう
273 :
デフォルトの名無しさん
2016/08/31(水) 20:06:57.16 ID:XvHw9frf
>>266のアドバイスで、使い方が間違っていなさそうだったので、違う拡大鏡ソフトを使用することで解決しました
274 :
デフォルトの名無しさん
2016/08/31(水) 20:41:02.91 ID:+TzIiYAW
プロパティ不要とか苦行かよ
275 :
デフォルトの名無しさん
2016/08/31(水) 20:43:28.45 ID:YUscqvM8
プロパティなんてあってもたいして使わない予感
276 :
デフォルトの名無しさん
2016/08/31(水) 20:54:10.62 ID:/MnV3wL6
実感じゃねえのかよ
277 :
デフォルトの名無しさん
2016/08/31(水) 20:57:52.91 ID:ntcwlW+6
プロパティ否定してる奴はエアプだってはっきりわかんだね
278 :
デフォルトの名無しさん
2016/08/31(水) 21:00:08.58 ID:NSLbELcw
クラス書かないからわかんない。テヘペロ。
279 :
デフォルトの名無しさん
2016/08/31(水) 21:32:42.17 ID:viOT3sew
Visual Studioだったら「共通言語ランタイム サポート」を有効にすればプロパティ使えるで(ゲス顔
280 :
デフォルトの名無しさん
2016/08/31(水) 21:48:33.01 ID:MERKTov5
C++/CLIは別言語
281 :
デフォルトの名無しさん
2016/08/31(水) 21:59:28.02 ID:/ANAyxIk
アクセス制限もいらないからな
余計なことして何が起こっても全て使用者の責任
282 :
デフォルトの名無しさん
2016/08/31(水) 22:34:19.56 ID:xAEFTakh
全部グローバル変数にすると便利だよ
283 :
デフォルトの名無しさん
2016/08/31(水) 22:57:22.63 ID:YUscqvM8
プロパティよく使うってひとは要するに属性を個別にコントロールすることが多いって事かね?
284 :
デフォルトの名無しさん
2016/08/31(水) 23:03:00.58 ID:6ukDv4b6
>>283 そうかもね。設計が下手なんじゃないかな。
もっとも俺もC#ではプロパティ使いまくるけどね。大概のは{get; private set;}だな。
285 :
デフォルトの名無しさん
2016/08/31(水) 23:06:47.51 ID:gUL/+EZq
は? 属性を個別にコントロールするのが設計の良し悪しとどう関係するんだ?
「C++で標準でできないことは出来る必要がないから、
そもそも、やろうとする奴が悪いんだ」みたいな幼稚な思考だったらやめとけよ?
それは宗教だ。
286 :
デフォルトの名無しさん
2016/08/31(水) 23:10:36.99 ID:YUscqvM8
287 :
デフォルトの名無しさん
2016/08/31(水) 23:23:15.94 ID:YUscqvM8
まあ外部に
「このクラスは内部に属性A、属性B、属性Cを持ち、その状態とアクセスを管理します」
みたいな仕様を公開してるクラスだったらプロパティは使いたくなるだろうな。
でもどちらかというとそういうクラスは少ないような気がしたのさ。
288 :
デフォルトの名無しさん
2016/08/31(水) 23:36:37.26 ID:mzwgRQN4
そんなほとんど起こらんようなケースについて抽象的な説明されてもよくわからんわ。
289 :
デフォルトの名無しさん
2016/08/31(水) 23:45:12.50 ID:YUscqvM8
290 :
デフォルトの名無しさん
2016/08/31(水) 23:51:01.09 ID:/MnV3wL6
>>287 普通にprivateデータメンバじゃん、それ
291 :
デフォルトの名無しさん
2016/08/31(水) 23:56:32.05 ID:YUscqvM8
>>290 いや、それらの属性を持ってること自体を外部に公開してる。
privateメンバだったらそんなことは内部仕様にしか書かないでしょ。
292 :
デフォルトの名無しさん
2016/09/01(木) 00:14:02.16 ID:PJEueDDa
簡潔に
「どんな属性を持ってるか自体を隠蔽するのが普通」
って書けばいいじゃん
293 :
デフォルトの名無しさん
2016/09/01(木) 00:31:43.23 ID:8Xtys+zE
プロパティって、何が便利なん?
C#はGUI作成程度しか使わない俺的感性だと、setter/getterで十分じゃね?と思うんだが、メリットをトクトクと語ってくれ。
294 :
デフォルトの名無しさん
2016/09/01(木) 04:18:24.20 ID:siIxmZ+U
プロパティは
classの実装とインターフェースの分離が容易にします
プログラムの字面の変更なしで
後から小細工ができます
言語仕様に内包されたパッチ機能?w
>>293 十分だと思います
後から改変するとき小細工が出来て便利なのかな?
295 :
デフォルトの名無しさん
2016/09/01(木) 06:05:34.36 ID:quvSlm2c
いや、setterとgetterがめんどいからプロパティがあるんでしょw
296 :
デフォルトの名無しさん
2016/09/01(木) 07:26:09.87 ID:8Xtys+zE
297 :
デフォルトの名無しさん
2016/09/01(木) 07:37:27.71 ID:d6w4LGKM
>>296 C#のプロパティは超便利で手間が大きく違う
使ってみれば分かるよ
いまだにこんな便利なものが実装されていないJavaはゴミ
298 :
デフォルトの名無しさん
2016/09/01(木) 08:36:37.64 ID:8Xtys+zE
>>297 いや、使った事あるんだけど…
その上でわからないからトクトクとお願いしてる。
299 :
デフォルトの名無しさん
2016/09/01(木) 08:44:04.42 ID:7t+U5xjY
そもそもsetterとgetterが必要なのかって話でしょ
300 :
デフォルトの名無しさん
2016/09/01(木) 08:45:24.36 ID:ZAvvKiiS
手間はさほど変わらんと思うけどあとで読んだ時に他のメッセージ転送に埋もれない気はする
301 :
デフォルトの名無しさん
2016/09/01(木) 08:51:59.38 ID:8Xtys+zE
>>300 ああ、なるほどね。
意味論として、OOのメッセージとプロパティが、C#のメソッドとプロパティに相当するのか。
言われてみれば当然かも。
あざっす。
302 :
デフォルトの名無しさん
2016/09/01(木) 09:01:16.42 ID:DsNIQM1p
超便利と書くからワケがわからなくなる
いちいちGetなんちゃらSetなんちゃらと書くよりも既読性が上がる
303 :
デフォルトの名無しさん
2016/09/01(木) 09:39:25.12 ID:DsNIQM1p
既読性って何だ?w
可読性だったわw
304 :
デフォルトの名無しさん
2016/09/01(木) 09:52:32.53 ID:oseS/uHr
引数0の関数は括弧省略できればいいんじゃないのか
305 :
デフォルトの名無しさん
2016/09/01(木) 10:08:05.72 ID:d6w4LGKM
「超便利」が分かって貰えないとか
ほんとにC#のプロパティ使ったことあるんですかねえ(笑)
306 :
デフォルトの名無しさん
2016/09/01(木) 11:42:15.33 ID:n+lE1LxE
使えば超便利、だがあまり使わない、って両立するけどな。
307 :
デフォルトの名無しさん
2016/09/01(木) 11:57:18.01 ID:f8G6zOLb
listenerに出来るなら便利だけど、単なるsetter,getterじゃなあ
全部メソッドの方が統一感はあると思う。
308 :
デフォルトの名無しさん
2016/09/01(木) 12:08:36.30 ID:n+lE1LxE
getter/setter(プロパティに相当するものを含む)を持つクラスと持たないクラスの比率ってどんなもん?
俺は1対5ぐらいだ。
だからあれば便利というのはわかる。
309 :
デフォルトの名無しさん
2016/09/01(木) 12:30:21.99 ID:LcnNSect
>>296 手間は結構変わるよ。
まず、getter/setterを普通に定義するのより、
プロパティの方がコード量が単純に減る。
変数名と関数名の一致だとかも考慮しなくていいから、
保守もしやすい。
その上、利用時にはpublicメンバ変数のように使えるから、
呼び出し先のコードもすっきりする。
必須ではないから不要と思うなら使わなければいいけど。
便利機能ってだけだし。
310 :
デフォルトの名無しさん
2016/09/01(木) 12:31:26.62 ID:LcnNSect
>>304 それはVBAとかそうだけど、ややこしいからやめてくれw
311 :
デフォルトの名無しさん
2016/09/01(木) 12:46:32.26 ID:d6w4LGKM
>>298 単純な話こういうことを言ってるんだけど。。。
JavaやC++の場合
private int x;
public getX(){return x;}
public setX(int val) {x=val;}
C#の場合
public int X {get; set;}
手間は1/3以下になってる
ほんとに使ったことあるの?
312 :
デフォルトの名無しさん
2016/09/01(木) 13:12:08.94 ID:+q6YP6fM
あんなのが欲しい、こんなのが欲しいと、
みんな口々に勝手なこと言うのを
あれもこれもと言語に取り込む
ということをするかしないかというポリシーは
言語が違えば違って当たり前
C#でどうだからC++もどうせよとか
C#でどうだからJavaはゴミとか
そんなにC#が好きならC#だけ使ってればいい
313 :
デフォルトの名無しさん
2016/09/01(木) 13:23:01.35 ID:d6w4LGKM
うるせー(笑)なんだかんだ言っても一番好きなのはC++だよ
高速性が求められる場面ではほぼ唯一の選択肢だし
他の言語に比べて不便なところがあったとしても、かゆいところに手が届く感は最強だし
314 :
デフォルトの名無しさん
2016/09/01(木) 13:37:36.32 ID:Zz5UEunk
public変数とgetter/setter付きのprivate変数って何が違うの?
315 :
デフォルトの名無しさん
2016/09/01(木) 13:52:30.49 ID:d6w4LGKM
316 :
デフォルトの名無しさん
2016/09/01(木) 14:51:04.12 ID:nGqVI4Wr
public変数なんか使ったら、まともにプログラミング出来ない。
これは、あり得ない選択
変数は出来るだけ、狭いスコープに閉じ込めるのが基本
317 :
デフォルトの名無しさん
2016/09/01(木) 14:52:33.38 ID:3wSPfZnR
>>314 昔見た理屈だと、ゲッターセッターは間に正規化とか突っ込めるからセーフティなんだと。
318 :
デフォルトの名無しさん
2016/09/01(木) 15:42:38.63 ID:n+lE1LxE
319 :
デフォルトの名無しさん
2016/09/01(木) 16:38:25.17 ID:f8G6zOLb
>>314 c++の場合、表記が違うので入れ替えが大変。
320 :
デフォルトの名無しさん
2016/09/01(木) 16:52:35.75 ID:oseS/uHr
直接変数に対して入出力してるだけのセッターゲッターでも将来を見越してわざわざ作ってるってことか?
321 :
デフォルトの名無しさん
2016/09/01(木) 17:03:57.26 ID:d6w4LGKM
>>320 そういう場合も多いかもしれないけど、.Net環境においてはpublicプロパティにすることによる恩恵は多々ある
例えばDataGridViewに内容を表示するときなど
322 :
デフォルトの名無しさん
2016/09/01(木) 18:10:45.91 ID:3cPIMSrP
>>314 public変数じゃ、変更されたタイミングで描画をアップデートするみたいな処理がやりにくくなる
needUpdateViewみたいなフラグをtrueにできるだけでも、getter/setterはあったほうがいい
単なる構造体に近いようなクラスでも、データの不整合を起こさないようにバリデーションが行えるという意味では重要
後から値の範囲を制限したくなるとか、複数の変数間で整合性のとれないケースを排除したくなるということはよくある
例えば、Personクラスが初めは性別と名前しかなかったところを、そこに「父」「母」「息子」「娘」みたいな属性を付けたくなったら、性別女で「父」は弾きたくなる
public変数だったらこれはできないけど、setter経由であればできる
「親」「子」にして性別と合わせて計算すればいいとかいう話があるかもしれんが、余談だがその場合はgetterで男女+親子の属性で「父」とかを取り出すことができるね
323 :
デフォルトの名無しさん
2016/09/01(木) 18:27:41.58 ID:zfFV4MMV
getterやsetterの関数呼び出しならまだしも、propertyでファイルアクセスやらネットワークのやら時間かかる処理入れられると嫌な感じ
324 :
デフォルトの名無しさん
2016/09/01(木) 18:41:33.44 ID:L3a4bYLC
>>323 それは利用者の予期を裏切るような実装をするなって話であって、
ゲッタセッターならよくてプロパティーではだめだって話じゃないと思うけど
325 :
デフォルトの名無しさん
2016/09/01(木) 19:29:54.38 ID:quvSlm2c
>>312 C++も11以降がんがん新しい要素取り入れてるんだから、
今の仕様が絶対的なものじゃないぞ。今の仕様を絶対視するのは宗教だ。
326 :
デフォルトの名無しさん
2016/09/01(木) 19:36:30.23 ID:qC9ojyjS
>>322 同性婚の夫婦が養子をとった時に破綻する先見性のない設計ですね w
327 :
デフォルトの名無しさん
2016/09/01(木) 19:46:48.63 ID:zfFV4MMV
メンバ変数ぽく使えるより、指示すればgetter,setterを自動生成してくれる方がいいな。
参照とって書き換える関数に渡したらどうなるんだとか考えると、変数っぽく使えるのは混乱招くだけのような。
328 :
デフォルトの名無しさん
2016/09/01(木) 20:02:06.91 ID:f8G6zOLb
>>326 不要な汎用化じゃね?
必要になってから修正でいいだろ。
329 :
デフォルトの名無しさん
2016/09/01(木) 20:16:20.03 ID:qC9ojyjS
>>328 ネタに突っ込むならもう少し面白いやつ頼むわ
330 :
デフォルトの名無しさん
2016/09/01(木) 20:31:55.38 ID:n+lE1LxE
setter/gettrrが要る要らないの話題になるとpublic変数の話題に転びがちだな。
ちょっともにょもにょする。
331 :
デフォルトの名無しさん
2016/09/01(木) 20:40:39.28 ID:n+lE1LxE
外部から属性を設定せざるを得ない状況がけっこうあって、なかなかリファクタリングも難しいってことか。
332 :
デフォルトの名無しさん
2016/09/01(木) 21:41:16.10 ID:quvSlm2c
>>327 C++でプロパティ導入するなら、getterの戻り値は参照かconst参照のどちらかに制限すれば、
その辺の問題は解決しそう。
333 :
デフォルトの名無しさん
2016/09/01(木) 23:31:36.63 ID:kyBhPm5k
そういや、パッと見は普通のフィールド(メンバ変数)なせいで
実行速度とか気にせずに気楽に使ってしまいやすい、なんて弊害も多少あるみたいね。
334 :
デフォルトの名無しさん
2016/09/01(木) 23:49:26.27 ID:VuYRfyfh
てかgetter/setterでもプロパティカプセル化が弱くなるから原則使わないのが基本だろ
フラグをプロパティ化してどうのこうのとか言ってるやついたけど、参照透過性なくなって状態遷移図保守の雇用を産みだしてるだけ
335 :
デフォルトの名無しさん
2016/09/01(木) 23:55:31.16 ID:quvSlm2c
それはおかしいだろ。メンバ変数を外から操作する必要性は普通にある。
例えばWindowクラスとかどうすんの。メンバ変数変えられないWindowクラスとか欠陥品でしょ。
336 :
デフォルトの名無しさん
2016/09/01(木) 23:55:52.32 ID:oRYPM1bK
>>334 言いたいことはわかるが、 外からの属性アクセスをやめたとしても、
実際に内部状態が変化するなら参照透過ではないよな?
337 :
デフォルトの名無しさん
2016/09/01(木) 23:58:42.81 ID:VuYRfyfh
>>335 お前がWindowクラスを書くのは自由だけど、C++なんだから数値計算ライブラリとかを想定して書けよ
>>336 もちろん
338 :
デフォルトの名無しさん
2016/09/02(金) 00:04:47.23 ID:q6GNZ6RD
>>337 否定されてから急に話題を限定し出すってのは一番見苦しいパターンだぞw
素直に間違いを認めろよ。数値解析だっていくらでもそういう事例あるだろ。
339 :
デフォルトの名無しさん
2016/09/02(金) 00:23:31.33 ID:dxT5btnL
あるかないかで言えばもちろんあるけど、外部主導の状態コントロールは避けたいので、
設計に時間をかけられるときはhetter/setterは減るだろう、ってだけ。
340 :
デフォルトの名無しさん
2016/09/02(金) 00:25:04.39 ID:dxT5btnL
X hetter
〇 getter
341 :
デフォルトの名無しさん
2016/09/02(金) 00:32:46.64 ID:wMSGanuZ
C++はプロパティないのでコード書くときは短く済ませたいんで
ゲッターはSize()、
セッターをSetSize()にして
Get省略してる
342 :
デフォルトの名無しさん
2016/09/02(金) 00:50:46.08 ID:VaOayOrf
>>341 自分はSetも省略する
たまに引数の関係でできない時もあるけどさ
343 :
デフォルトの名無しさん
2016/09/02(金) 04:12:21.27 ID:+CUdjKtm
俺はオーバーロードになると関数ポインタとるのが面倒になるからsetぐらいは省略しないな
344 :
デフォルトの名無しさん
2016/09/02(金) 04:38:51.30 ID:17n5VyUh
メンバ関数ポインタってほとんど使わないから気にしたことなかった…
345 :
デフォルトの名無しさん
2016/09/02(金) 06:31:01.77 ID:96M6CE+e
>>342 ああ、引数の違いを利用すればsetもgetも省略できるのか。
int value(int val); ... メンバvalueの値の設定
int value(); ... メンバvalueの値の参照
同じ関数名で機能の異なるものを作るのは危険、
ということから思いつきもしなかったけど、
この使い方なら便利で有用かも知れないな。
346 :
デフォルトの名無しさん
2016/09/02(金) 07:16:35.65 ID:Vf4h0u1D
>>345 > int value(int val); ... メンバvalueの値の設定
なぜに戻り値?
347 :
345
2016/09/02(金) 07:33:47.21 ID:96M6CE+e
>>346 値の範囲制限とかする場合に、
戻り値に「実際に格納された値」を入れて返す。
あと瑣末なことだけど、
cout << a.value(val) << endl;
みたいに格納しつつ値も使う、ができてちょい便利。
348 :
デフォルトの名無しさん
2016/09/02(金) 07:35:34.05 ID:MC2dvnuP
そう言うの、以前の値を返すのも多いから紛らわしいな。
349 :
デフォルトの名無しさん
2016/09/02(金) 07:36:05.31 ID:sd/G3GoC
std::exchange的な~?
350 :
デフォルトの名無しさん
2016/09/02(金) 07:49:11.95 ID:Vf4h0u1D
>>347 > 戻り値に「実際に格納された値」を入れて返す。
こっちはまだわからなくもないが
> 格納しつつ値も使う、ができてちょい便利。
みたいな設計はどうかと思う
351 :
デフォルトの名無しさん
2016/09/02(金) 08:01:45.25 ID:/uIui9G6
そうだな
(a = b) = c;
みたいな20世紀の設計思想だな
352 :
デフォルトの名無しさん
2016/09/02(金) 08:01:48.98 ID:5Aji0+2+
*thisを返してしまう
353 :
◆SEdFBOkLSw
2016/09/02(金) 08:29:24.90 ID:Nu/77N8P
354 :
デフォルトの名無しさん
2016/09/02(金) 08:44:56.31 ID:OksuLk+6
演算子のオーバーロードみたいな使い方のポリシーでは
a.val(b.val() + c.val()) みたいなやつ
というかどうしてもプロパティが欲しけりゃ演算子オーバーロードで真似っこできるじゃん
355 :
デフォルトの名無しさん
2016/09/02(金) 08:48:54.95 ID:xzsbRhmn
は? 演算子オーバーロードでどうやってプロパティの代用すんだよw
プロパティ分かってない奴か? コードを示して見ろ。
356 :
デフォルトの名無しさん
2016/09/02(金) 09:12:04.14 ID:+CUdjKtm
357 :
デフォルトの名無しさん
2016/09/02(金) 09:14:47.55 ID:OksuLk+6
358 :
デフォルトの名無しさん
2016/09/02(金) 09:20:57.20 ID:OksuLk+6
359 :
デフォルトの名無しさん
2016/09/02(金) 10:36:49.94 ID:AFnhG1K/
それじゃ仮想関数にできないじゃん。やり直し。
無理やりオーバーライドできるようにしなくていいよ。
既にコードも必要以上に複雑化しててgetter/setterの方がマシなレベルだし。
360 :
デフォルトの名無しさん
2016/09/02(金) 12:07:39.19 ID:+CUdjKtm
361 :
デフォルトの名無しさん
2016/09/02(金) 12:09:10.62 ID:rUpx5Cs1
結局、プロパティは要らんわな。
タイプ量の問題ならマクロで解決出来るし。
362 :
デフォルトの名無しさん
2016/09/02(金) 12:26:51.71 ID:6Qab/oE8
これからのC++にプロパティーは必須だな。
これからもどんどん新しい機能を取り入れてどんどん
わけがわからなくなるといい。
363 :
デフォルトの名無しさん
2016/09/02(金) 12:41:00.31 ID:1fpVQ5H8
マクロは入力補完できないし衝突の可能性がある
364 :
デフォルトの名無しさん
2016/09/02(金) 12:49:08.18 ID:6Qab/oE8
C++はマクロで出来ることをどんどん機能として取り込んで来たのに
いまさら後戻りはできない。
365 :
デフォルトの名無しさん
2016/09/02(金) 18:00:48.43 ID:96M6CE+e
C#の「プロパティ」って機能がどんなのか知らないけど、
現在C++にないから不要な機能だ、と突っ張るのは危険かも知れないよ。
いつか「次の規格から『C#のプロパティ』と同様の機能が追加」と
発表されるかもしれない。これまでもそうやって肥大化してるじゃない。
366 :
デフォルトの名無しさん
2016/09/02(金) 18:28:49.74 ID:qjeLwgBZ
Javaでもそうだけどgetter/setterは言語的には単なるメソッドでしかないが
C#のプロパティは言語的にメソッドとは違うものとして認識出来るようになっている
そこから様々な便利さが出てきている
367 :
デフォルトの名無しさん
2016/09/02(金) 19:27:06.33 ID:nL/2u0CX
>>364 マクロで出来ることではなく、
マクロに頼っていたことを、
マクロを使わずに出来るようにしてきたんだよ。
スコープに従わないオブジェクト指向の敵との戦いだ
368 :
デフォルトの名無しさん
2016/09/02(金) 19:37:33.13 ID:XrGCfAOV
C++のテンプレートってポストプロセッサといっていいよね。
マクロみたいなもん。
369 :
デフォルトの名無しさん
2016/09/02(金) 20:24:08.55 ID:8Rlh5aGL
↓テンプレートとマクロは全く違うもの
370 :
デフォルトの名無しさん
2016/09/02(金) 20:41:05.83 ID:Wj/juS31
ソースコードの書き換えという点では同じ。
371 :
デフォルトの名無しさん
2016/09/02(金) 20:49:32.19 ID:W5XwdQxs
テンプレートはテキスト置換じゃないよ。
あれはコンパイルタイムに計算してるんだよ。
372 :
デフォルトの名無しさん
2016/09/02(金) 20:49:47.52 ID:1fpVQ5H8
テンプレートが単なる置き換えだと思ってるのか
373 :
デフォルトの名無しさん
2016/09/02(金) 20:50:16.78 ID:BGbCtBYN
マクロの親玉だ
374 :
デフォルトの名無しさん
2016/09/02(金) 20:52:42.81 ID:W5XwdQxs
テンプレートもconstexprもある種の計算機のサブセットだからなぁ。
375 :
デフォルトの名無しさん
2016/09/02(金) 22:57:15.93 ID:Q3H4IaZb
コンパイル時に計算できることなんてたかが知れてるし、使い道ないんだよな
376 :
デフォルトの名無しさん
2016/09/02(金) 22:59:57.14 ID:3Xz3H/8a
いやいや…型チェックとかのなくすべき実行時オーバーヘッドがなくせるってだけで意味大有りだろ
377 :
デフォルトの名無しさん
2016/09/02(金) 23:04:13.81 ID:W5XwdQxs
PURE関数が入ったら、constexprなんかは関数がハッシュに置き換わってそこから値置換になるかも。
コードを全部どけて数字一個になる日も近い。
378 :
デフォルトの名無しさん
2016/09/02(金) 23:12:20.33 ID:1fpVQ5H8
まともにC++使ってて使い道無いとかどうやったらそう解釈できるんだ
379 :
デフォルトの名無しさん
2016/09/02(金) 23:30:26.24 ID:Q3H4IaZb
コンパイル時に決まってるなら計算する必要ないじゃん
380 :
デフォルトの名無しさん
2016/09/02(金) 23:32:54.48 ID:1fpVQ5H8
手動で計算してくれ
381 :
デフォルトの名無しさん
2016/09/02(金) 23:35:19.44 ID:W5XwdQxs
そしてたどり着くのだ。42に。
382 :
デフォルトの名無しさん
2016/09/03(土) 00:45:41.77 ID:WTZrMZ5J
テンプレートなしだとマクロとvoid*でやりくりすることになるのかな
<algorithm>の中身がおそろしいことになりそう
383 :
デフォルトの名無しさん
2016/09/03(土) 02:05:00.69 ID:VnUB3qPQ
384 :
デフォルトの名無しさん
2016/09/03(土) 02:08:56.14 ID:VnUB3qPQ
templateなんてデブなブタに過ぎんからな
385 :
デフォルトの名無しさん
2016/09/03(土) 02:12:17.57 ID:qWYFFL/S
386 :
デフォルトの名無しさん
2016/09/03(土) 07:03:39.80 ID:ZkDRxv2v
387 :
デフォルトの名無しさん
2016/09/03(土) 07:04:51.23 ID:ZkDRxv2v
388 :
デフォルトの名無しさん
2016/09/03(土) 09:55:01.98 ID:MIqeGybs
templateなんて実際に使えるレベルものを書ける人なんてほとんどいないだろ
使うことはあっても、書くことはないだろ
389 :
デフォルトの名無しさん
2016/09/03(土) 10:03:25.99 ID:2vnq4BB3
ライブラリを作っていれば嫌でも使うが
390 :
デフォルトの名無しさん
2016/09/03(土) 11:15:11.07 ID:NvcWw3DB
>>388 キミの周りではそうかもしれないけど、templateみたいな便利なものを使えないようじゃ現代のプログラマとしては失格だと思います
てかテンプレートってそんなに難しいか?
391 :
デフォルトの名無しさん
2016/09/03(土) 11:47:23.77 ID:KpYZ86nt
標準コンテナくらいバカでも使える。
それだけでテンプレートのメリットは十分に享受できる。
392 :
デフォルトの名無しさん
2016/09/03(土) 11:48:35.81 ID:2vnq4BB3
boost並みの実装ができないと書けていることにならないらしい
393 :
デフォルトの名無しさん
2016/09/03(土) 12:11:48.21 ID:NXr2sGOM
>>388 汎用性があって他人も実際に使えるレベルとなると難しいかもしれんが、自分が使う範囲内では普通に書くだろう。
はじめからtemplateを書くんじゃなくて自分用のユーティリティとかをtemplate化することも含めればけっこうある。
394 :
デフォルトの名無しさん
2016/09/03(土) 12:23:53.61 ID:ZkDRxv2v
395 :
デフォルトの名無しさん
2016/09/03(土) 12:35:37.51 ID:UwaIhkeW
くだらねえな
もっと為になる話をしろやカス
396 :
デフォルトの名無しさん
2016/09/03(土) 12:54:22.03 ID:e++gk4lZ
Boost並に使いこなせるか?って聞かれたら
謝るしか無いわ、ホントごめん
397 :
デフォルトの名無しさん
2016/09/03(土) 12:56:30.19 ID:2vnq4BB3
為になる本ならたくさんある
398 :
デフォルトの名無しさん
2016/09/03(土) 13:22:16.46 ID:xlYZjvy0
メソッドA->B->C->D->Eと呼ばれる階層が深い構造のシステムがあって、
Eの計算結果をAで取りたい要望が新しくでてきたときってみんなならどう実装する?
条件としては、
・AはwhileループでBを呼び出し続ける
・Eの最新の計算結果はループで毎回使う
・CがDをnewしてるから、単純なgetterとかじゃ取れない
1. 引数が増えるのは仕方ないが、A~Eに全て引数を追加する
2. Eでstaticなグローバル変数を作る。Aからはgetterで取得する
一応思いつくのはこのあたりなんだけど、もっとスマートなやり方ってあるかな?
399 :
デフォルトの名無しさん
2016/09/03(土) 13:25:09.63 ID:WhBzeO8K
>>398 メソッドDをCがnewする?なんか説明が胡散臭いんだけど、普通に戻り値で返すのはダメなん?
400 :
デフォルトの名無しさん
2016/09/03(土) 13:31:49.96 ID:ftE9LPfh
そんなことしてたら「この計算結果もほしいんだけど」ってなった時に
また困ることになる。
Contextクラスを追加して、計算に必要な情報はそこに集約させろ。
そうすればどの階層からでも必要な情報を取れる。
401 :
デフォルトの名無しさん
2016/09/03(土) 13:34:05.21 ID:xlYZjvy0
>>399 すまん、説明が適当だった
CはDメソッドがあるクラスをnewしてるってこと
DClass dClass = new DClass()
C() {
dClass->d();
402 :
デフォルトの名無しさん
2016/09/03(土) 13:36:43.61 ID:xlYZjvy0
>>399 ごめん、途中で送信しちゃった、
CはDメソッドがあるクラスをnewしてるってこと
C() {
DClass dClass = new DClass()
dClass->d();
}
戻り値はEから外部システムに送信が成功したかどうかを表すbool値がすでに返されてるんだ
>>400 Contextクラスか・・自分は使ったことないし、よく理解できてないからググってみるわ
ありがとう
403 :
デフォルトの名無しさん
2016/09/03(土) 13:40:54.20 ID:2vnq4BB3
説明の意味が全く分からない
hoge B::get_E(){
D *d = c.create_D();
404 :
デフォルトの名無しさん
2016/09/03(土) 13:47:29.68 ID:e++gk4lZ
今後パラメータが増える可能性があるようなら、それらをクラスなり構造体なりにまとめて、
何らかの方法で渡すようにすれば、最小限のコード修正で済むよってことじゃない?
405 :
デフォルトの名無しさん
2016/09/03(土) 13:51:40.11 ID:2vnq4BB3
>>402 そのCの戻り値にDの戻り値のEを入れてBが受ければいいんじゃないのか
406 :
デフォルトの名無しさん
2016/09/03(土) 13:58:09.73 ID:Px0qkqVR
>>398 引数を追加する方法を取るとして、楽するならば
一旦引数を構造体にして、後で追加したい場合構造体のメンバーを追加する形にする
全部の関数はその構造体を引数にしていれば、好きな構造体メンバーを追加しても形は変わらない
407 :
デフォルトの名無しさん
2016/09/03(土) 13:58:29.96 ID:Px0qkqVR
408 :
デフォルトの名無しさん
2016/09/03(土) 13:59:56.32 ID:e++gk4lZ
>>405 既に戻り値は他で使われてるらしいし
そのやり方だと、参照渡しなんかが現実的じゃない?
409 :
デフォルトの名無しさん
2016/09/03(土) 14:00:12.38 ID:WhBzeO8K
>>402 「全て引数を追加する」がContextかなんかの参照引数を渡してまわる方法だと思ったんだけど、違ったんかな?
戻り値を変えたくないならそうするしかないと思うよ。
410 :
デフォルトの名無しさん
2016/09/03(土) 14:01:01.19 ID:ZkDRxv2v
>>395 気がついたやつがやれ
指図すんなクレクレ厨め
411 :
デフォルトの名無しさん
2016/09/03(土) 14:05:10.90 ID:2vnq4BB3
>>408 戻り値なんてpairなりtupleなりでいくらでも増やせばいいじゃん
周囲に影響を出したくないならそこから特定の値だけを取り出す関数でも噛ませればいい
412 :
デフォルトの名無しさん
2016/09/03(土) 14:14:55.80 ID:4FUmxt1N
コンポジションじゃ駄目なん?
413 :
◆SEdFBOkLSw
2016/09/03(土) 14:20:00.21 ID:WfmCkwdk
Eの結果がどう欲しいかによるとは思うな。
Aだけが知りたいなら素直にEがログ残せば良いと思う。
中間層が知りたいなら返してやらなきゃならんだろうけど、B→Eが他の部分で使われてたら関連するのビルドし直しだしテストし直しだし、出し直さないといかんのでは?
414 :
デフォルトの名無しさん
2016/09/03(土) 15:45:28.04 ID:KoWGZcqO
はいはい池沼は去れ
415 :
デフォルトの名無しさん
2016/09/04(日) 06:52:12.75 ID:5SDmlLW2
416 :
デフォルトの名無しさん
2016/09/04(日) 06:58:26.93 ID:5SDmlLW2
417 :
デフォルトの名無しさん
2016/09/04(日) 07:03:58.75 ID:5SDmlLW2
418 :
デフォルトの名無しさん
2016/09/04(日) 07:28:40.73 ID:uvifPYcj
リンク先ページを見たけど、これでダウンロードできるのは
「30日間だけ無料で使えます」バージョンじゃないのかな。
"Try C++Builder FREE for 30 days" って
ダウンロードできる期間が30日間、じゃないよね。
>>415-416 に出てる期間は30日には足りないし。
419 :
デフォルトの名無しさん
2016/09/04(日) 09:09:03.52 ID:xp6EP8jq
420 :
デフォルトの名無しさん
2016/09/04(日) 09:17:51.17 ID:ZU1xzEkS
>>390 簡単だと言い張って可読性の低いバギーなもん作ってよこす奴が多いから
テンプレートは嫌いなんだよ。
STLで十分。
421 :
デフォルトの名無しさん
2016/09/04(日) 09:56:16.37 ID:ZZxj7Xyl
無能の言い訳にしか聞こえないな
422 :
デフォルトの名無しさん
2016/09/04(日) 10:13:47.98 ID:xp6EP8jq
>>420 > 簡単だと言い張って可読性の低いバギーなもん作ってよこす奴が多いから
理由になってなくて笑た
423 :
デフォルトの名無しさん
2016/09/04(日) 10:22:29.27 ID:GcCwBDUy
>>420 特定の人間でなく周りに多いのなら受けるお前の方に問題があるんじゃないか?
424 :
デフォルトの名無しさん
2016/09/04(日) 10:39:20.02 ID:GZCXAM8t
類友なのに自分は違うって思ってるパティーン
最も傑作でおめでたい人種
425 :
デフォルトの名無しさん
2016/09/04(日) 12:40:13.35 ID:+mIHXAwk
昔のオブジェクト指向と似たような議論だな。
別にフルに使いこなせなくても恩恵は受けられるだろうにw
426 :
デフォルトの名無しさん
2016/09/04(日) 13:31:30.85 ID:u29z8UDZ
難しいから使うなって一生使えるようにならないよね
そういう進歩を捨てた人間は技術者とは認めてないわ
427 :
デフォルトの名無しさん
2016/09/04(日) 13:58:48.62 ID:6rO3xNqX
>>420 最後の2行は2016年度最強の名言だな
428 :
デフォルトの名無しさん
2016/09/04(日) 14:05:26.02 ID:VQnaPYaY
429 :
デフォルトの名無しさん
2016/09/04(日) 14:05:45.23 ID:X6kuqpOw
べつに嫌いな機能が有ってもおかしくはないな。
プリプロセッサーが嫌いな人とか、iostreamが嫌いな人とか人それぞれ
430 :
デフォルトの名無しさん
2016/09/04(日) 14:06:53.24 ID:6rO3xNqX
オブジェクト指向www
久しぶりに聞いたな
431 :
デフォルトの名無しさん
2016/09/04(日) 14:07:38.02 ID:OnzMHuuE
>>420 まずはSTLが何の略語なのか調べてみよう!
432 :
デフォルトの名無しさん
2016/09/04(日) 14:17:00.28 ID:xp6EP8jq
433 :
デフォルトの名無しさん
2016/09/04(日) 14:45:42.58 ID:bYyi8Nkm
C++を使う理由の90%がテンプレートでしょう
使わないならCでもやっててください
434 :
デフォルトの名無しさん
2016/09/04(日) 14:52:46.08 ID:VQnaPYaY
C言語しか出来ない50代くらいのジジイたくさん居る
で、なぜかえばっている
435 :
デフォルトの名無しさん
2016/09/04(日) 14:54:45.23 ID:Zvr3allz
便利だと言い張って可読性の低い醜悪なもん作ってよこす奴が多いからCPPは嫌いなんだよ。
テンプレートは最高。
436 :
デフォルトの名無しさん
2016/09/04(日) 15:16:44.85 ID:9+LtAjSl
stlっていっても、実装見たら初学者でも書けるようなものがほとんどでしょ。
forで回して、比較してるだけとかwww
積極的に使う理由がない
437 :
デフォルトの名無しさん
2016/09/04(日) 15:23:23.36 ID:u29z8UDZ
コピペすんな
438 :
デフォルトの名無しさん
2016/09/04(日) 15:58:19.56 ID:dwel9f30
おいら最近はC#のほうが多くてC++はご無沙汰になってるんだけど
C++のテンプレートが使えたらなあって思うことはたまにある
439 :
デフォルトの名無しさん
2016/09/04(日) 16:51:50.12 ID:1H4SDZ6a
は? C#にも名前は違うけどあるだろボケ
440 :
デフォルトの名無しさん
2016/09/04(日) 17:03:58.61 ID:u29z8UDZ
ねえよ
441 :
デフォルトの名無しさん
2016/09/04(日) 17:05:46.48 ID:dwel9f30
>>439 似たようなのはあるし、大体はそれで問題ないんだけど
テンプレートとは根本的な仕組みが違うので、特殊化とか微妙に出来ることに差があるのよね
442 :
デフォルトの名無しさん
2016/09/04(日) 17:12:09.12 ID:UDXdUcTk
C#のジェネリックはCLIを一個しか生成せずに、型の違うオブジェクトが与えられたら
JITコンパイル時に生成してるもんな
だからサイズは小さいけどC++のtemplateとは根本的に考え方が異なる
おまけにオブジェクト同士を演算しようとするとコンパイルエラーになるので
dynamic、つまりリフレクションを使うしかないという
443 :
デフォルトの名無しさん
2016/09/04(日) 18:39:26.39 ID:c++wF4a4
IDがC++だー
444 :
デフォルトの名無しさん
2016/09/04(日) 18:54:35.76 ID:ZZxj7Xyl
445 :
デフォルトの名無しさん
2016/09/04(日) 19:14:14.87 ID:1H4SDZ6a
>>442 言語機構が違うから実装も異なるのは当たり前。
それがどう実用上影響するのかを書けよ。
当たり前だが、俺はC#のジェネリックと
C++のテンプレートの機能上の様々な相違点(例えばintを引数に取れないとか)は知った上で、
おまえさんの教育のために質問してるからな?
勘違いするなよ。
446 :
デフォルトの名無しさん
2016/09/04(日) 19:16:44.51 ID:1H4SDZ6a
intを取れないってのは_
C++でできるtemplate<int N>
みたいなのがC#ではできないって意味な。
馬鹿が勘違いするといけないから。
447 :
デフォルトの名無しさん
2016/09/04(日) 19:25:27.22 ID:OnzMHuuE
448 :
デフォルトの名無しさん
2016/09/04(日) 21:25:33.06 ID:pHvOGCAw
>>439 > は? C#にも名前は違うけどあるだろボケ
ジェネリックとテンプレートが同じだといいたいのかな?
ガチなアフォ登場したなwww
449 :
デフォルトの名無しさん
2016/09/04(日) 21:27:10.35 ID:dwel9f30
>>448 C++分かる人に使い方の説明しろと言われたら間違いなく
真っ先に「テンプレートです」って言うけどな
450 :
デフォルトの名無しさん
2016/09/04(日) 21:37:35.91 ID:ZdgSZwYz
テンプレートはコンパイルタイム、ジェネリックはランタイムだ。
451 :
デフォルトの名無しさん
2016/09/04(日) 21:37:38.20 ID:xp6EP8jq
452 :
デフォルトの名無しさん
2016/09/04(日) 21:48:56.88 ID:I3Tx/JDs
コンパイルタイムのくせにいちいち
typenameをつけまくらないといけない
クソ言語。
テンプレートパラメーターごとに特殊化が作られるんだから
その辺テキトーでもいいはずなのに。
453 :
デフォルトの名無しさん
2016/09/04(日) 21:54:49.52 ID:LHkeQq2D
つか、型なんてコンパイル時なんて遅すぎだろ
普通は設計終わった段階で全て決定してるし。
454 :
デフォルトの名無しさん
2016/09/04(日) 21:58:44.17 ID:I3Tx/JDs
まじかよ
俺今日vector<int>って書いたけど
vectorの設計後にインスタンス化しちゃったぜよ
455 :
デフォルトの名無しさん
2016/09/04(日) 22:00:39.11 ID:+mIHXAwk
細かい違いはあれどジェネリックはC#版のテンプレートだろ
456 :
デフォルトの名無しさん
2016/09/04(日) 22:16:41.22 ID:LHkeQq2D
ジェネリックはC#版のテンプレート
名言頂きました
457 :
デフォルトの名無しさん
2016/09/04(日) 22:18:59.30 ID:ItsH+W+6
ジェネリクスは汎化で、テンプレートはコンパイルタイムで、全くの別物じゃないの?
458 :
デフォルトの名無しさん
2016/09/04(日) 22:23:32.00 ID:r5JTAWNt
言語機能の目的は似ているな
目的を理解せず仕組みを語りたがる中学生には違うらしいけど
459 :
デフォルトの名無しさん
2016/09/04(日) 22:24:22.75 ID:u29z8UDZ
ジェネリックは基本的に算術演算子を使えないしメンバ関数も使えないからな
インターフェイスを定義してようやく特定の型のみ対応できる
460 :
デフォルトの名無しさん
2016/09/04(日) 22:27:35.01 ID:+mIHXAwk
>>457 それは相違点の1つだろ。
テンプレートにせよジェネリックにせよ一番の本質は
「型引数を受け取って特化型を生成すること」だからな。
461 :
デフォルトの名無しさん
2016/09/04(日) 22:52:01.38 ID:r5JTAWNt
>ジェネリックは基本的に算術演算子を使えないしメンバ関数も使えないからな
へー、初耳だ
462 :
デフォルトの名無しさん
2016/09/04(日) 23:38:59.65 ID:c++wF4a4
>>444,447,451
ありがとう
これを機にC++erになります
463 :
デフォルトの名無しさん
2016/09/05(月) 01:54:37.65 ID:Zffp85C6
>>461 おい、お前試してみてから言ってるんだろうな?
464 :
デフォルトの名無しさん
2016/09/05(月) 10:51:16.59 ID:ece9l1SB
>>458 目的が同じなら方法の違いは関係ないとでも?
465 :
デフォルトの名無しさん
2016/09/05(月) 13:56:45.07 ID:4eC9RGW3
>>433 それは60代から上のCOBOL世代
50代はC++バリバリ使うぞ
TCPL初版当時の若燕をなめんな
466 :
デフォルトの名無しさん
2016/09/05(月) 14:43:22.97 ID:5jAupIQr
「COBOLerがテンプレート目的でC++を使う」
「」
467 :
デフォルトの名無しさん
2016/09/05(月) 15:38:04.05 ID:4eC9RGW3
TCPL初版を見たこともないやつが
煽るつもりで自分の無知を晒しているなあw
468 :
デフォルトの名無しさん
2016/09/05(月) 16:00:17.35 ID:NFX2QcZC
C++(ベターC)
469 :
デフォルトの名無しさん
2016/09/05(月) 16:25:11.01 ID:M0OvRWnI
TCPL?
素直にターボCのこと?
470 :
デフォルトの名無しさん
2016/09/05(月) 16:35:11.86 ID:4eC9RGW3
the C programming languageのことじゃね
いいよ、そう思ってろ
471 :
デフォルトの名無しさん
2016/09/05(月) 16:42:54.97 ID:/PewDBDd
老害
472 :
デフォルトの名無しさん
2016/09/05(月) 16:50:33.58 ID:S/r0zM88
473 :
デフォルトの名無しさん
2016/09/05(月) 16:51:54.71 ID:S/r0zM88
474 :
デフォルトの名無しさん
2016/09/05(月) 19:14:07.88 ID:5F1Hp9JO
TCPL なんて初めてみたわ
475 :
デフォルトの名無しさん
2016/09/05(月) 19:40:32.27 ID:ZL7Oa3Lb
きかんな
476 :
デフォルトの名無しさん
2016/09/05(月) 19:46:24.46 ID:Oj+RV/HM
>>467 東京コンテンツプロデューサーズ・ラボとか出てきたんだけどw
検索ですぐヒットしないような用語使うのは止めてくれよ
477 :
デフォルトの名無しさん
2016/09/05(月) 19:56:37.92 ID:NFX2QcZC
Effective C++3冊を読んでいないやつは老害
478 :
デフォルトの名無しさん
2016/09/05(月) 20:36:14.34 ID:1ue4xWo4
三冊もあんの?一冊にしてくれよ
479 :
デフォルトの名無しさん
2016/09/05(月) 20:38:07.50 ID:MPm038QF
>>470 普通K&Rって言わね?
何処の田舎モンよ?
480 :
デフォルトの名無しさん
2016/09/05(月) 20:46:21.19 ID:32FGf11f
>>478 Effective STLを含めれば4冊もあるぞ
481 :
デフォルトの名無しさん
2016/09/05(月) 20:48:51.10 ID:1ue4xWo4
STL何それうまいの?
482 :
デフォルトの名無しさん
2016/09/05(月) 20:51:36.83 ID:IQvMB0/c
仮に TCPL が『プログラミング言語C』(K&R)のことだとしても、
いきなりC++のスレッドで出てくると違和感があるのだが。
483 :
デフォルトの名無しさん
2016/09/05(月) 20:56:18.25 ID:zRA0QsUX
53ページを暗記する奴?
484 :
デフォルトの名無しさん
2016/09/05(月) 21:02:31.55 ID:1ue4xWo4
蟹チャーハン何それうまいの?
読んだことはないけど20世紀に信者がウザかった記憶だけはあるな
ANSIで標準化されたことを自分のレーゾンデートルを奪われたと勘違いして幻覚を見たかのような必死さが伺えた
485 :
デフォルトの名無しさん
2016/09/05(月) 22:01:52.55 ID:4eC9RGW3
486 :
デフォルトの名無しさん
2016/09/05(月) 22:02:46.08 ID:4eC9RGW3
487 :
デフォルトの名無しさん
2016/09/05(月) 22:06:39.74 ID:32FGf11f
おじさんくやしがりすぎやろ…
488 :
デフォルトの名無しさん
2016/09/05(月) 22:18:16.67 ID:zRA0QsUX
TCPLなんて検索しても全くヒットしないじゃん
SICPくらいヒットするように頑張ってからドヤ顔するんだな
489 :
デフォルトの名無しさん
2016/09/05(月) 23:01:37.47 ID:4eC9RGW3
かつて通用してて曖昧性が指摘されて後に死語化したものがヒットするわけねーだろ
こういうのは検索だけがソースなやつにはわかるわけがない
490 :
デフォルトの名無しさん
2016/09/05(月) 23:03:21.14 ID:4eC9RGW3
禿が、言語はそいつが何を考えることが出来るかを決めてしまう、
というのと同様、検索によって何を知ることが出来るかを決められてしまってるやつw
491 :
デフォルトの名無しさん
2016/09/05(月) 23:04:11.29 ID:g7jOSJ0B
the c++ program language
492 :
デフォルトの名無しさん
2016/09/05(月) 23:05:08.72 ID:9BGJMvFR
真っ赤になって弁明、無意味な連投、あとは草大量に生やせばパーフェクト
493 :
デフォルトの名無しさん
2016/09/06(火) 00:08:40.53 ID:F5fS/nn6
おいおい、自分で老害認定してるジジイをあんまりいじめるなよw
494 :
デフォルトの名無しさん
2016/09/06(火) 02:59:46.82 ID:bgQCWsty
死語をドヤ顔で使う老害なんて早く死ねば良いのに
495 :
デフォルトの名無しさん
2016/09/06(火) 06:24:00.28 ID:AN+xYaOm
TCPL って "The C++ Programming Language" のことなのかな?
++ がない方の書名(K&R)と紛らわしいわね。
…すると
>>467 と
>>470 はID被りの別人だったのか。
"Learning Standard C++ as a New Language"「標準C++を新しい言語として学ぶ」や
『プログラミング言語C++』(TCPL?)第4版の中で、ハゲ先生は
「新しい規格で便利な機能を使え」と言ってたはずで、
そこからすると「古い参考書を読んだことがある方が偉い」って
主張はなかなか賛成しにくいなぁ。
496 :
デフォルトの名無しさん
2016/09/06(火) 07:12:19.22 ID:JRdVpVwV
祝 void_t 標準入り
497 :
デフォルトの名無しさん
2016/09/06(火) 08:22:00.35 ID:7VUHkvW+
そういうのは規格化されてから言え
お前の脳内の標準などどうでもいい
498 :
デフォルトの名無しさん
2016/09/06(火) 08:40:04.46 ID:0OEY122r
void_tは決まったんじゃないのか
499 :
デフォルトの名無しさん
2016/09/06(火) 08:50:04.45 ID:ewg0kDeB
>>497 「次期C++1zでの標準化がほぼ確定したので・・・」
と細々と書かないと通じないのか?
500 :
デフォルトの名無しさん
2016/09/06(火) 10:05:09.80 ID:ScDQQjzO
>>495 偉いとか言ってねえぜ
相対評価ではなく絶対評価で
シッタカはクソ以下だつってるだけだ
501 :
デフォルトの名無しさん
2016/09/06(火) 10:11:45.27 ID:F5fS/nn6
502 :
デフォルトの名無しさん
2016/09/06(火) 10:42:23.06 ID:yUThNKeL
TPPみたいになんでも略し杉w
503 :
デフォルトの名無しさん
2016/09/06(火) 10:44:47.41 ID:ScDQQjzO
あとからそうなったんだよ
ガキが知らないのは仕方ない
知らねーなら知らねーなりにしとくぶんには可愛げあるんだよ
それを尻が青いくせにジジイのふりをするからバカにしか見えないってだけさ
504 :
デフォルトの名無しさん
2016/09/06(火) 11:17:08.98 ID:F5fS/nn6
505 :
デフォルトの名無しさん
2016/09/06(火) 11:20:23.27 ID:ScDQQjzO
>>504 おまえが死ね
今からダンプに轢かれに出かけろ
506 :
デフォルトの名無しさん
2016/09/06(火) 11:37:06.01 ID:ewg0kDeB
略語ってどこまで通じるのか不安になるな。
sfineaやRAIIは大丈夫としても、TMPとかCPPとかって一般的なんだろうか?
507 :
デフォルトの名無しさん
2016/09/06(火) 12:39:46.48 ID:bgQCWsty
>>504 死語って言うより死産だよな
TCPL w
508 :
デフォルトの名無しさん
2016/09/06(火) 12:58:22.50 ID:ScDQQjzO
あー、禿のWebページでしばらく使ってたのも知らないわけね
そういうのはいくら検索しても出るわきゃねえしガキにゃ厳しいな
509 :
デフォルトの名無しさん
2016/09/06(火) 13:49:15.29 ID:IyJPjQ2g
必死で検索したようだが出てこなかったのかw
残念だったなw
510 :
デフォルトの名無しさん
2016/09/06(火) 13:56:51.77 ID:ScDQQjzO
おまえがな
511 :
デフォルトの名無しさん
2016/09/06(火) 15:01:29.03 ID:sQOv13Gi
512 :
デフォルトの名無しさん
2016/09/06(火) 15:55:19.22 ID:ScDQQjzO
デタラメとかぬかしてたクソガキ、息してるか?
513 :
デフォルトの名無しさん
2016/09/06(火) 18:43:34.22 ID:R7REkw4z
ハゲが自分のホムペで紹介した俺用語をさも普遍的な用語であるかのように語られても困るな
514 :
デフォルトの名無しさん
2016/09/06(火) 19:48:01.80 ID:1XSUlqoQ
>>508 で、使ってたと言う証拠は?
脳内にしかないとか言わないよな w
515 :
デフォルトの名無しさん
2016/09/06(火) 19:54:58.70 ID:YAp6qqUR
ここ相談室なんだけどみんな何の相談してるの
516 :
デフォルトの名無しさん
2016/09/06(火) 19:59:18.61 ID:lMZiI53V
自分の病気の症状についての相談
517 :
デフォルトの名無しさん
2016/09/06(火) 20:18:59.06 ID:PHkuODAN
void_t は何に使うの
518 :
デフォルトの名無しさん
2016/09/06(火) 21:50:12.78 ID:ScDQQjzO
>>514 あー、すまんな
俺んとこでは魚拓は脳内だけだ
だからお前は未来永劫見ることができない
いやーすまんすまん
519 :
デフォルトの名無しさん
2016/09/06(火) 21:57:58.50 ID:VCItaBw6
>>515 ここ見るとC++に関わる奴はどこか頭おかしいってわかるだろ?
つまりそういうことだ
520 :
デフォルトの名無しさん
2016/09/06(火) 22:51:35.93 ID:EdXevder
頭がおかしい(髪が変)
521 :
デフォルトの名無しさん
2016/09/06(火) 23:12:54.88 ID:JRdVpVwV
522 :
デフォルトの名無しさん
2016/09/06(火) 23:26:52.58 ID:sQOv13Gi
void_tはSFINAEの定番パターンを標準化しただけ
523 :
デフォルトの名無しさん
2016/09/07(水) 05:00:10.45 ID:MZvlar21
>>518 要するに、単なる妄想だったってことかよ w
524 :
デフォルトの名無しさん
2016/09/07(水) 08:16:26.88 ID:4YmObOwP
いや現実だよ
おまえが物心つく前か生まれる前か知らんが
歴史上そういう事実があった
過ぎてしまった歴史がぎゃんぎゃん吠えることで変わるとでも思っているなら
それは隣国のメンタリティだね
525 :
デフォルトの名無しさん
2016/09/07(水) 08:27:48.44 ID:W2drX/qt
で、その歴史的事実が共有できる資料は?
526 :
デフォルトの名無しさん
2016/09/07(水) 08:34:32.44 ID:uFAnWK01
ただの事実と歴史とじゃ重要性が違う。
要するに記憶に留めるべき事実が歴史というわけだ。
逆に「そんなもん知らん」と一蹴されてしまう事実もありうる。
527 :
デフォルトの名無しさん
2016/09/07(水) 09:00:25.57 ID:4YmObOwP
528 :
デフォルトの名無しさん
2016/09/07(水) 09:05:41.79 ID:WoQJVoSd
いや、資料がないのに歴史だって主張して
それを共有できないって言うと歴史修正主義だって言う姿が
それこそおとなりさんぽいなあって思ってw
529 :
デフォルトの名無しさん
2016/09/07(水) 09:06:18.84 ID:zaGYBHu2
それはどこの国の歴史なんだろう?
tcpl "the c programming language"
でググると、中国系、朝鮮系では使われてるらしい
530 :
デフォルトの名無しさん
2016/09/07(水) 09:40:41.09 ID:4YmObOwP
>>528 別に主張なんかしてねえよ
事実を偽りなく述べているだけだ
魚拓の有無で変わったりしねえことだ
自分が見られないからってヤダジタすんなガキ
531 :
デフォルトの名無しさん
2016/09/07(水) 10:32:53.78 ID:P2AyoRLU
自分より年下と思われる人間をガキ呼ばわりしてるけど、年上が偉いという考え?
それって儒教っぽいな
儒教といえばお隣の国…あっ(察し
532 :
デフォルトの名無しさん
2016/09/07(水) 10:39:46.68 ID:/D7wbjXh
ここの住人がスルー力0なのは間違いないな
533 :
デフォルトの名無しさん
2016/09/07(水) 11:24:34.86 ID:prfLhh2R
ソースは脳内
そんな恥ずかしい主張ができちゃうなんてもしかして教育を受けてないのかな?
534 :
デフォルトの名無しさん
2016/09/07(水) 11:50:26.76 ID:G0adIbkV
暇つぶしが目的だから、スルーしたらつまらないんだろ
535 :
デフォルトの名無しさん
2016/09/07(水) 12:09:49.06 ID:Z3ZB/oVu
煽る暇人は2chだからどうしようもないが煽られて何日も踊っているのはさすがにバカだな
536 :
デフォルトの名無しさん
2016/09/07(水) 12:41:12.31 ID:pAK1tPG0
暇つぶしなのではなくお互い必死なんだよ
クールを装ってさもどうでもいいように演じてるけどお互い顔真っ赤だよ
537 :
デフォルトの名無しさん
2016/09/07(水) 12:54:37.05 ID:4YmObOwP
>>531 なんだおまえ、ガキって書いてあるのを見るたびに自分が卑しく思うのかw
>>533 記録を俺んとこでは残していないってだけだ
誰かが証拠を持ってきたときにもボロが出ないように言ってるぞ
そんときゃおまえが恥ずかしくて出てこれないわけだが
538 :
デフォルトの名無しさん
2016/09/07(水) 12:55:16.53 ID:Ur9IZRDe
なんかスレ伸びてると思ったらまーたゴミどうしの罵り合いかよ
くだらないことで熱くなる奴は脳みそ壊れていくんだというのが如実に分かるよ
539 :
デフォルトの名無しさん
2016/09/07(水) 13:08:27.65 ID:prfLhh2R
>>537 俺になんか恥ずかしい要素あったか?
スレ違いの書き込みしたことくらいかな
540 :
デフォルトの名無しさん
2016/09/07(水) 13:11:15.34 ID:v93B1UIW
誰かが証拠を持ってきたときw
自分の無能を示しておいてなんとも思わんのだな
541 :
デフォルトの名無しさん
2016/09/07(水) 13:58:33.58 ID:LPRQdItN
バーカ
542 :
デフォルトの名無しさん
2016/09/07(水) 15:57:42.39 ID:4YmObOwP
>>540 禿のWebページの魚拓をログ化していなかったのを無能と言ってくれるのか
さぞかし有能なおまえさんなら持ってるだろうからさっさと出せ
543 :
デフォルトの名無しさん
2016/09/07(水) 19:25:39.09 ID:OYvFv6+r
ソースは脳内というのは日常会話の殆どだな。
だから「アナタは私と異なる認識をお持ちなんですね」でしかない。
それを「アナタは証明できないからそれは嘘です」にすり替えるのは詭弁
544 :
デフォルトの名無しさん
2016/09/07(水) 20:06:01.39 ID:1kliuuT7
>>542 俺超有能だけどそんな資料なかったよ
つまり君の言ってたことは全部君の妄想ね
はい終了
545 :
デフォルトの名無しさん
2016/09/07(水) 20:12:54.95 ID:2w88FCBz
>>508 > あー、禿のWebページでしばらく使ってたのも知らないわけね
が正しいとしてもここにいる人が知らないような略語をどや顔で出すのは頭おかしい
まあどうみても
>>511 辺りを間違えて出しちゃって引っ込みつかなくなってるだけだろ w
546 :
デフォルトの名無しさん
2016/09/07(水) 20:34:12.89 ID:4YmObOwP
>>545 では、つかってよいりゃくごをあんたはどうやってはんだんしてるんだ?
あたまおかしいとまでおおきくでるならそれなりのきじゅんはあるんだろうな?
さいじゅうどのていのうにあわせるのがぴーじーのしめいとでもかんがえているなら
あふぉだなくそだなだんぷにひかれてしねばいい
547 :
デフォルトの名無しさん
2016/09/07(水) 22:13:15.14 ID:Ur9IZRDe
何日続ければ気が済むんだよこのゴミどもは
548 :
デフォルトの名無しさん
2016/09/07(水) 22:37:17.77 ID:YLqxd+vc
自己反映なメタ表現とは高度な技を
549 :
デフォルトの名無しさん
2016/09/07(水) 22:47:20.81 ID:Mf7TDnfn
そんなことよりvoid_tの話をしようぜ。
SFINAEの話だけど。
SFINAEってconcept的な使い方以外にどんな使い方があるの?
550 :
デフォルトの名無しさん
2016/09/07(水) 23:19:03.95 ID:LPRQdItN
知らねえよバーカ
551 :
デフォルトの名無しさん
2016/09/07(水) 23:20:48.09 ID:YLqxd+vc
ワードサラダにマジレス
552 :
デフォルトの名無しさん
2016/09/07(水) 23:29:54.18 ID:yR890zwI
>>549 concept的な使い方ってどんなの?
漠然とパターンマッチ的なものをイメージすればいいのかな
553 :
デフォルトの名無しさん
2016/09/08(木) 00:02:15.19 ID:w601usbW
良くあるのがメンバーの有無で処理を変えるパターンかな。
俺も良くわからんが。
554 :
デフォルトの名無しさん
2016/09/08(木) 00:12:42.51 ID:sU4tW1UK
enable_ifと組み合わせて使うんじゃない?
555 :
デフォルトの名無しさん
2016/09/08(木) 01:13:18.16 ID:NYidnx0p
int と longの違いって何ですか?
556 :
デフォルトの名無しさん
2016/09/08(木) 01:15:30.19 ID:p3dWf/BM
歴史?
557 :
デフォルトの名無しさん
2016/09/08(木) 02:02:44.82 ID:NonfcYWK
>>555 データモデルによりサイズが異なる(かもしれない)
558 :
デフォルトの名無しさん
2016/09/08(木) 04:16:44.74 ID:6JK6uF4x
>>546 正論を言われて反論できなくなったら子供じみた態度でひねくれる
ガキだなw
559 :
デフォルトの名無しさん
2016/09/08(木) 04:47:35.75 ID:rBeNUfmR
アルツハイマーの症状の一つの幼児化だね
560 :
デフォルトの名無しさん
2016/09/08(木) 05:23:55.94 ID:vt8xUZJ5
酢を飲め
561 :
デフォルトの名無しさん
2016/09/08(木) 06:23:15.75 ID:siaRBrBq
>>546 つかってみてだれもしらなさそうならおとなしくひっこめろ、ばーか
562 :
デフォルトの名無しさん
2016/09/08(木) 07:39:36.05 ID:TmgW3MRN
>>561 やだね
C++スレでC++関連の用語を知らない無知野郎に合わせる必要はない
563 :
デフォルトの名無しさん
2016/09/08(木) 07:54:49.83 ID:P8D+cYPH
まじかよ
お前ひとりでつらいだろ?
564 :
デフォルトの名無しさん
2016/09/08(木) 08:11:01.20 ID:cE384uJ3
ガイジ
565 :
デフォルトの名無しさん
2016/09/08(木) 08:36:52.70 ID:QwMnHPC3
用語とか言い出しちゃったよ、この人 w
566 :
デフォルトの名無しさん
2016/09/08(木) 09:31:44.41 ID:y1qiR/+w
[[deprecated]]
567 :
デフォルトの名無しさん
2016/09/08(木) 11:11:48.25 ID:BaIwaWl+
このスレ的にはK&R初版でC学んだことを自慢してる奴より AT&T cfont のレファレンスでC++学んだ俺の方が偉いはず
568 :
デフォルトの名無しさん
2016/09/08(木) 11:25:42.94 ID:ik/GfLoL
なんでその程度でエラぶれるの?w
569 :
デフォルトの名無しさん
2016/09/08(木) 12:08:58.27 ID:TmgW3MRN
cfrontは俺も使っていたが
cfontて何だ? Courier Newか何かか?
570 :
デフォルトの名無しさん
2016/09/08(木) 12:28:42.58 ID:NCg12FAS
古ければ古いほど劣っているからな?
古参が全く自慢にならない世界だぞ
571 :
デフォルトの名無しさん
2016/09/08(木) 12:44:06.52 ID:TmgW3MRN
プログラムのバージョンと
プログラマの経験年数を
一緒にするのかよ
572 :
デフォルトの名無しさん
2016/09/08(木) 12:47:14.04 ID:P8D+cYPH
経験年数と優秀さを一緒にしてはいけない
経験年数10年と20年では10年の方が優秀なことが多い
573 :
デフォルトの名無しさん
2016/09/08(木) 12:48:47.71 ID:NCg12FAS
574 :
デフォルトの名無しさん
2016/09/08(木) 12:53:20.28 ID:TmgW3MRN
575 :
デフォルトの名無しさん
2016/09/08(木) 14:10:36.68 ID:P8D+cYPH
ソースは俺の観察
576 :
デフォルトの名無しさん
2016/09/08(木) 14:11:54.76 ID:p2bVgJ9p
自分のソースは脳内だけど人にはソースを求める白痴
577 :
デフォルトの名無しさん
2016/09/08(木) 15:27:51.19 ID:TmgW3MRN
>>576 脳内じゃない
ここは誰が何と言おうとおまえが間違っている
おまえそもそも事実を知らないんだろ
だから俺の言うことのどこがどう間違っているのか具体的な指摘ができない
もっとも知ってたら指摘するところがないはずなんだが
578 :
デフォルトの名無しさん
2016/09/08(木) 16:46:16.67 ID:vI60taJg
経験十年積めば大抵のことはできるし対応できるだろうが
経験二十年にはかなわないだろう
579 :
デフォルトの名無しさん
2016/09/08(木) 16:59:40.04 ID:rBeNUfmR
archiveから探してこいよ、認知症のジジイ
580 :
デフォルトの名無しさん
2016/09/08(木) 17:00:00.79 ID:y1qiR/+w
んなこたあない
581 :
デフォルトの名無しさん
2016/09/08(木) 17:59:18.64 ID:P8D+cYPH
>ここは誰が何と言おうとおまえが間違っている
真実を知っているのがこの世で自分だけだなんて
もう生きててつらいだろうな
582 :
デフォルトの名無しさん
2016/09/08(木) 18:09:20.62 ID:Ig68v84V
プログラムの経験年数なんて関係ない。
重要なのはどれだけトラブルの経験を積んだかだ。
女性経験が豊富なのと同じだ プw
583 :
デフォルトの名無しさん
2016/09/08(木) 18:15:13.55 ID:TmgW3MRN
>>581 逆だ
知らないのがおまえくらいなんだよ
当時を知っている人が身近にいたら聞いてみろ
>>582 童貞乙
584 :
デフォルトの名無しさん
2016/09/08(木) 18:21:23.76 ID:p2bVgJ9p
>>583 当時を知ってる人が身近にいたから聞いてみたけどそんなことはなかったってみんな言ってる。
つまり嘘つきはお前。はい論破。
585 :
デフォルトの名無しさん
2016/09/08(木) 18:23:14.02 ID:Ou19mRgF
何日も平日の昼間にくだらんいい争いしなきゃならないとか仕事かよ
586 :
デフォルトの名無しさん
2016/09/08(木) 18:25:06.25 ID:Ig68v84V
プログラミングを半年もやらなかったら、けっこうな部分を忘れる世界だし、
進化も激しい世界だから、経験を引き継いで発揮できるのはせいぜい五年くらいだろう。
587 :
デフォルトの名無しさん
2016/09/08(木) 18:30:38.43 ID:P8D+cYPH
年を取ると物忘れが激しくなる。
「誰が何と言おうと」と自覚しておきながら3時間後に
「知らないのがおまえくらい」と言い出しちゃうぐらい
だから
>>584はもう責めないでw
588 :
デフォルトの名無しさん
2016/09/08(木) 19:01:10.30 ID:aq+STl42
相談室っていうか病室だな・・・
589 :
デフォルトの名無しさん
2016/09/08(木) 19:09:24.56 ID:69NbtRcU
大抵、経験20年とかになってくると老眼とかで大量の情報を高速に見るとかが出来なくなってそう
経験10年なのに目が悪くなってきて辛いです
590 :
デフォルトの名無しさん
2016/09/08(木) 19:34:58.14 ID:y1qiR/+w
void_tの話を聞くほうが建設的だ。
591 :
デフォルトの名無しさん
2016/09/08(木) 19:40:42.54 ID:ik/GfLoL
だからさ、型名に_t付けるなよ
システムハンガリアンかよ
592 :
デフォルトの名無しさん
2016/09/08(木) 19:48:21.97 ID:y1qiR/+w
>>591 using ***_t = ***::type;
ってパターンもダメ?
593 :
デフォルトの名無しさん
2016/09/08(木) 19:56:47.42 ID:ZGDN5kDf
594 :
デフォルトの名無しさん
2016/09/08(木) 20:17:46.69 ID:rBeNUfmR
頑固になるのもアルツハイマーの症状の一つだね
595 :
デフォルトの名無しさん
2016/09/08(木) 20:50:28.56 ID:TmgW3MRN
>>593 は? 苦しい屁理屈でへとへとなのはおまえだろ
596 :
デフォルトの名無しさん
2016/09/08(木) 20:58:33.03 ID:p3dWf/BM
同じ穴のムジナが楽しく荒らしてるなぁ。
ただ一言いいたい。
カエレ!
597 :
デフォルトの名無しさん
2016/09/08(木) 22:14:31.27 ID:A7Pb5oFv
うそ
かえらないで
598 :
デフォルトの名無しさん
2016/09/08(木) 22:36:18.32 ID:siaRBrBq
苦しい屁理屈 ⇒
>>577 そりゃお前の脳内の事実なんて誰も指摘できんわな w
599 :
デフォルトの名無しさん
2016/09/09(金) 00:55:13.72 ID:6Bh01W2V
頑固になるとautoや{}の初期化や->の戻り値が許せなくなります
auto b = new auto(true);
char *p{};
auto main() -> int {}
600 :
デフォルトの名無しさん
2016/09/09(金) 01:02:58.35 ID:4oqKijqb
>auto main() -> int {}
頑固じゃないけどこれやる奴は何がしたいんだろう
601 :
デフォルトの名無しさん
2016/09/09(金) 01:07:56.60 ID:6Bh01W2V
これは頑固の良い例ですね
スタイルの統一とかそういうことを考えられず、変化を拒絶するようになります
602 :
デフォルトの名無しさん
2016/09/09(金) 01:10:09.08 ID:kBQSHV64
new auto();
なんて出来ないしな…
603 :
デフォルトの名無しさん
2016/09/09(金) 01:18:20.19 ID:kBQSHV64
>>601 じゃあ規格のexampleのスタイル統一から初めてくれよ。
何の意味があるのかしらんが、意味があるなら賛同者出てくるでしょ?
604 :
デフォルトの名無しさん
2016/09/09(金) 01:21:30.28 ID:Wiz5/g3s
new auto(10)みたいに推論できる場合ならちゃんとできるみたいだけど
https://ideone.com/zPeSla ただauto main() -> int {}を書くやつは正直、俺知ってるんだぜ自慢したい厨房にしかみえない
タイプ数長くなってんじゃん、何のために導入された書き方か分かってんのかね
605 :
デフォルトの名無しさん
2016/09/09(金) 01:23:35.62 ID:6Bh01W2V
これも頑固の良い例ですね
「言語仕様に複数のスタイルが存在してもせめて自分のコード内は統一しよう」
みたいな考えを示唆しているのに、感情的になって関係無いことを言い出すのが特長です
606 :
デフォルトの名無しさん
2016/09/09(金) 01:27:12.55 ID:6Bh01W2V
auto main() ->int{}についてはハンをおしたように
「文字数が多い」と言い出すのも特長です
今まで同じレスを見たこともある人も多いのではないでしょうか
「スタイルの統一という観点からはあってもおかしくない」と説明されても
他人が使うことすら許せず否定に躍起になるのが特長です
607 :
デフォルトの名無しさん
2016/09/09(金) 01:35:22.25 ID:6Bh01W2V
もちろん新しい記法が良いことばかりではありません
auto b{true};は書けてもnew auto{true}は書けないなど一貫性に乏しい所も有ります
608 :
デフォルトの名無しさん
2016/09/09(金) 01:36:37.09 ID:Wiz5/g3s
別に他人がそう書くのを許せないわけじゃないよ
ただ俺はそう書くやつに対してはおかしなやつとかネガティブな印象を持つというだけ
今まで多くの同じようなレスがあったということは俺と同じ印象を持つ人が多いということだと思うよ
609 :
デフォルトの名無しさん
2016/09/09(金) 01:40:41.63 ID:kBQSHV64
>>605 言語仕様に複数のスタイルとかいう話ではなく規格のコード例ですらそんな書き方必要でなければしてねえよという話
どっちが頑固なんだかね
610 :
デフォルトの名無しさん
2016/09/09(金) 01:40:48.56 ID:6Bh01W2V
これも頑固の良い例ですね
とに新しいスタイルを見ると相手を非難しないと気が済まないのが特長です
>>608のレスにも「おかしなやつ」という攻撃的な単語が見られますが、これも一例と捉えてよいでしょう
611 :
デフォルトの名無しさん
2016/09/09(金) 01:41:50.71 ID:uFCjw0pQ
autoつかわなくても書ける場所でこれ期バカしにauto使うヤツはバカなんだと思う
612 :
デフォルトの名無しさん
2016/09/09(金) 01:44:15.73 ID:uFCjw0pQ
あとで型名明記するとかなんの為にauto使っているのかバカなんだと思う
613 :
デフォルトの名無しさん
2016/09/09(金) 01:52:18.15 ID:6Bh01W2V
これも頑固の良い例ですね
型推論のautoとtraining-return-typeの先頭のautoは違うのですが
とにかく理解以前で拒絶してしまっているのが特長です
でも確かにauto f() -> auto {}みたいな書き方はかなり変人かも知れませんね
614 :
デフォルトの名無しさん
2016/09/09(金) 01:53:27.43 ID:4oqKijqb
結局auro main() -> int{}はお遊びなのか?
615 :
デフォルトの名無しさん
2016/09/09(金) 02:00:06.38 ID:uFCjw0pQ
616 :
デフォルトの名無しさん
2016/09/09(金) 02:00:54.91 ID:p4LGwUo/
ぶっちゃけID:6Bh01W2Vってまじであの書き方がスタイルの統一のという理由が第一で導入されたと思ってそうなんだけどそうでもない?
>>612の言わんとしてることが理解できてない気がする
617 :
デフォルトの名無しさん
2016/09/09(金) 02:09:08.65 ID:6Bh01W2V
そうですね
テンプレート関数の戻り値のために導入されたことは良いとして、
「
>>612の言わんといていることはplaceholder typeとtrailing-return-typeの混同による不適切な見解ではないか」と述べているのに
「理解できていない気がする」とあやふやなのは不思議ですね
これらも頑固なことによる反射的な拒絶の一面なのかも知れません
618 :
デフォルトの名無しさん
2016/09/09(金) 02:16:06.31 ID:6Bh01W2V
また「導入の目的とは別にスタイルの統一の観点からはあっても良いのではないか」
という説明を受けても「目的が違う」と思考停止して否定ありきで考えてしまうのも特長です
本日は600から続く一連の自演レスでその片鱗が伺えたと思います
619 :
デフォルトの名無しさん
2016/09/09(金) 07:33:30.80 ID:H3RR5zb8
そもそもスタイルの統一にこだわる必然性はない。
タブとインデントの話と同じで混在したってかまわない。
620 :
デフォルトの名無しさん
2016/09/09(金) 07:36:21.12 ID:SVVRFbIW
タブとインデントを混同するやつは見つけ次第殺せ
621 :
デフォルトの名無しさん
2016/09/09(金) 08:00:45.68 ID:z8Otf9Pu
どうしてこんな釣り耐性よわいの。
A派とB派の対立じゃなくて
Bスタイルを否定すんな派とBスタイル否定派
は主観の押しつけあいで論破できるわけねーし。
622 :
デフォルトの名無しさん
2016/09/09(金) 08:09:04.86 ID:H3RR5zb8
>>620 そういうのってなんか自閉症ぎみなんじゃないの?
623 :
デフォルトの名無しさん
2016/09/09(金) 08:35:47.51 ID:G0RBn0pa
trailing-return-typeを、4文字以下では使わない
なんてやってると
int abs(int);
auto abs(float) -> float;
てな具合になるよなあ
ぎりぎりアウトな
char* begin(); を
auto begin() -> char*; にしながら、
俺なにやってんだろって気になることがある
624 :
デフォルトの名無しさん
2016/09/09(金) 08:42:02.98 ID:oGuibT0g
>>620 同意する
そういう奴はたいてい他でもいいかげんだからプログラマーには向いてないことを自覚してほしい
625 :
デフォルトの名無しさん
2016/09/09(金) 08:55:13.21 ID:H3RR5zb8
んなこたーない
626 :
デフォルトの名無しさん
2016/09/09(金) 11:10:43.31 ID:kBQSHV64
>>623 >trailing-return-typeを、4文字以下では使わない
なんで?
627 :
デフォルトの名無しさん
2016/09/09(金) 11:25:30.49 ID:G0RBn0pa
int abs(int); を
auto abs(int) -> int; にするメリットは?
autまでタイプした時点でやんなってくるぜ俺は
auto exit(int) -> void; とかナメとんかくらって気ぃしね?
628 :
デフォルトの名無しさん
2016/09/09(金) 11:50:52.32 ID:xpG9Ka1d
スタイルの統一という意味では、新しいC++では
普通の関数とメンバ関数を
obj.func();
func(obj);
のどちらのスタイルでも相互に呼び出せるようにするかもしれない
って話だけど・・・
メタプログラミングの観点から見ればどちらの表記でも呼び出せたほうが
便利なのは火を見るよりも明らかだが
それはそうとして
スタイルを統一したいって言ってる頑固な約一名は
これも統一するつもり?
つまり普通の関数やメンバ関数の呼び出しを全部
obj.func(); もしくは func(obj); に統一するつもりなのかって話
で、世の中には引数を取らない関数、例えばabort()などもあるし
fgetsみたいにFILE構造体が引数の最後に来るような変態関数もあるので
統一するならCスタイルの func(obj); になると思うわけだけど
そうすると、全部 method(obj) の形式で書くつもりか?
この書き方だとエディタの補完が効かないので激しく作業効率が悪いわけだが
629 :
デフォルトの名無しさん
2016/09/09(金) 11:50:58.44 ID:CsE6YZtW
630 :
デフォルトの名無しさん
2016/09/09(金) 11:52:48.11 ID:kBQSHV64
631 :
デフォルトの名無しさん
2016/09/09(金) 11:57:16.30 ID:CsE6YZtW
スタイルの統一ってメタプロのためでしょ?
普通に書く場合はどっちだっていいし、見た目の統一なんてさらに気にするポイントじゃないし。
632 :
デフォルトの名無しさん
2016/09/09(金) 12:01:21.07 ID:xpG9Ka1d
というかそもそも、
統一しなくてもよいように、そのために
どちらの表記でもよいようになっている
もしくはそうする予定なのに
統一する意味あんの?
633 :
デフォルトの名無しさん
2016/09/09(金) 12:08:44.98 ID:G0RBn0pa
>>629 autoが4文字だろ?
これより長いstd::basic_string<char,std::char_traits<char>,std::allocator<char>>とかなら
autoにすると短くすっきりするが、
4文字より短い例えばintをautoにしてもそういう効果がないばかりか
厳密には1文字損してるだろって話だよ
634 :
デフォルトの名無しさん
2016/09/09(金) 12:09:29.33 ID:G0RBn0pa
635 :
デフォルトの名無しさん
2016/09/09(金) 12:12:46.72 ID:kBQSHV64
>>633 float f();
を
auto f() ->float;
って書いたら一文字損してるって思うの?
どういう計算???
636 :
デフォルトの名無しさん
2016/09/09(金) 12:21:26.23 ID:G0RBn0pa
637 :
デフォルトの名無しさん
2016/09/09(金) 12:26:40.05 ID:kBQSHV64
何言ってるのかわかんねー
文字の数を数えれないのかな…
638 :
デフォルトの名無しさん
2016/09/09(金) 12:27:41.92 ID:G0RBn0pa
std::basic_string<char,std::char_traits<char>,std::allocator<char>>とかなら
autoにすると短くすっきりする
↑
これの意味わかる?
639 :
デフォルトの名無しさん
2016/09/09(金) 12:36:32.00 ID:kBQSHV64
>>638 戻り値の型がそれだったとして
trailing-return-typeを使うと文字数は6文字(autoと ->)増える事に変わりないだろ?何言ってるんだ?
640 :
デフォルトの名無しさん
2016/09/09(金) 12:40:28.34 ID:G0RBn0pa
>>639 まさかと思ったが、やはりそういうことか
よし、おまえはtrailing-return-typeを使うな
これにて一件落着
641 :
デフォルトの名無しさん
2016/09/09(金) 12:49:10.42 ID:tc9dXmwp
引数に依存しないならどっちだって同じさ。
->以下を省略するのは別な話
642 :
デフォルトの名無しさん
2016/09/09(金) 12:51:16.50 ID:4oqKijqb
聞きたいんだけど引数無しのコンストラクタが無いクラスってあり?
絶対にコンストラクタで引数を入れないといけない
643 :
デフォルトの名無しさん
2016/09/09(金) 12:51:31.27 ID:CB2F3RXF
autoが本当に役に立つのはこういうケースだな
http://okns.webcrow.jp/text/CPP0xFAQ.html.ja#auto 変数の型が template 引数に強く依存している場合は、auto なしにコードを書くのは本当に難しくなるだろう。 例えば:
template<class T, class U> void multiply(const vector<T>& vt, const vector<U>& vu)
{
// ...
auto tmp = vt[i]*vu[i];
// ...
}
tmp の型は T と U の乗算結果になるが、それが正確に何型であるか人間の読み手が見出すのは難しい。 しかし、もちろんコンパイラは、自身が扱っている適切な
T と U が何型であるかを知っている。
644 :
デフォルトの名無しさん
2016/09/09(金) 12:52:12.20 ID:CB2F3RXF
ageたスマン
645 :
デフォルトの名無しさん
2016/09/09(金) 13:05:31.22 ID:kBQSHV64
>>643 autoではなくautoキーワードを使った機能の一つであるtrailing-return-typeの話してたんだけど
お前の例を借りるなら
template<class T, class U> auto multiply(const vector<T>& vt, const vector<U>& vu) ->decltype(vt*vu)
こんな感じで引数の名前を返り値の型の決定に使いたい時の為に導入された。あとはlambda
646 :
デフォルトの名無しさん
2016/09/09(金) 13:23:41.38 ID:EcclX7iE
>>642 「デフォルトコンストラクタが存在しないクラスを作ってもよいか?」
あるいは「クラスは必ずデフォルトコンストラクタを持つべきか?」
という質問かな。
外部から何かの値を指定しないと正常な状態にならないって対象なら
デフォルトコンストラクタなしの方が、間違った使い方をされなくて済む。
具体的には…今すぐ思いつくのは、
「ファイル名を指定、コンストラクタ中でファイルを開くクラス。
デストラクタでファイルを閉じる」とか(そもそも良い設計か分からんけど)。
この場合はデフォルトコンストラクタじゃ意味ないよね。
647 :
デフォルトの名無しさん
2016/09/09(金) 13:28:11.41 ID:kBQSHV64
>>642 普通にある。
例えばstd::lock_guard
648 :
デフォルトの名無しさん
2016/09/09(金) 14:32:40.92 ID:QrmkumON
649 :
デフォルトの名無しさん
2016/09/09(金) 14:54:03.88 ID:aqM9pKJ0
>>648 コンストラクタで絶対に引数をとらなければならないクラス設計はありかなしかという話だろう。
650 :
デフォルトの名無しさん
2016/09/09(金) 15:04:50.30 ID:QrmkumON
>>649 あっそうかwちゃんと読んでなかった
ありかなしかで言えば「あり」としか言えない
651 :
デフォルトの名無しさん
2016/09/09(金) 15:05:33.87 ID:G0RBn0pa
ビルトインにだって初期値必須のものがあるくらいでねえ
そもそもなぜ初期値を指定するのかという目的論をすっ飛ばしたべき論に価値はあるのか
652 :
デフォルトの名無しさん
2016/09/09(金) 16:15:29.42 ID:iGJJBn3T
最近、生のconstructorは晒さずに、面倒でもfactoryかbuilder用意したほうが良い気がしてきた。
653 :
デフォルトの名無しさん
2016/09/09(金) 18:00:44.85 ID:6P7ccOtX
654 :
デフォルトの名無しさん
2016/09/09(金) 18:52:54.42 ID:Sz+zzzeN
655 :
デフォルトの名無しさん
2016/09/09(金) 19:28:06.08 ID:xbXKfh8v
複合型をビルトイン型と称すとは
頭の悪さに恐れ入る
656 :
デフォルトの名無しさん
2016/09/09(金) 19:54:51.32 ID:2SLUNITP
ビルトインをビルトイン型と見間違うとは
目の悪さに恐れ入る
657 :
デフォルトの名無しさん
2016/09/09(金) 20:18:37.35 ID:Sz+zzzeN
>>655 ビルトイン型って知らないけど Fundamental Types のことを言ってる?
658 :
デフォルトの名無しさん
2016/09/09(金) 20:24:24.90 ID:G0RBn0pa
N3797でbuilt-inを検索すると...
oeratorsが必ずついてくるな
そりゃ悪かった
class宣言せずに使える型、そう言いたかっただけだ
659 :
デフォルトの名無しさん
2016/09/09(金) 21:49:08.07 ID:Hwi6cA5k
const int i{100}; // 初期値必須
660 :
デフォルトの名無しさん
2016/09/10(土) 13:58:51.44 ID:qsgFq9Gu
関数の引数と戻り値はstd::stringとかではなくconst char*を使うべきというのを見つけたんだけど正しいのか?
661 :
デフォルトの名無しさん
2016/09/10(土) 14:05:38.05 ID:fEVz11Vc
C++で作られたdll(関数が色々定義されてるやつ)をC++の別プログラムAに読み込ませる
プログラムAに対してjavascriptで使用する関数を指定してってのをやりたいけどできるのかな
プログラムAはただjavascriptを指定するだけと結果出力
javascriptはどの関数をどんな引数で実行するかを指定する
スクリプトってのをよく理解してないからアドバイスほしい
662 :
デフォルトの名無しさん
2016/09/10(土) 14:15:01.34 ID:TwDosbdA
663 :
デフォルトの名無しさん
2016/09/10(土) 14:26:38.33 ID:pUoIS14d
>>660 fstreamをstringに依存させないために
C++98ではopenの引数がconst char*だが
C++11ではstringを渡せるようになったので
fs.open((string(
664 :
デフォルトの名無しさん
2016/09/10(土) 14:27:46.41 ID:pUoIS14d
fs.open((string("filename") + ".ext").c_str(), ios_base::in)が
fs.open( string("filename") + ".ext , ios_base::in)で
済むようになり結構便利だね
stdの作者じゃない一般ユーザな俺らにとって、
std同士での相互依存は別に構わんのに無駄に不便だったのがC++98
独善的な「正しさ」を誰も喜ばない例だと思うぜ
665 :
デフォルトの名無しさん
2016/09/10(土) 14:28:54.01 ID:pUoIS14d
あ、引用符が閉じてない・・・ 許せ
666 :
デフォルトの名無しさん
2016/09/10(土) 20:03:47.79 ID:fxMjDbn4
右辺値参照が使えるようになったし、クラスオブジェクトをそのまま返してもオーバーヘッドにはならんでしょ
667 :
デフォルトの名無しさん
2016/09/10(土) 20:40:19.15 ID:LBKbagU5
typedef enum
{
kOne = 1,
kTwo,
kN
}e;
const int n[kN]={0,100,200};
template <int N> class A
{
public:
int a[N];
};
int main()
{
A<n[kOne]> a;
return 0;
}
こんな感じのやりたんだけどnが非constだって怒られる
なにか代案ありません?
668 :
デフォルトの名無しさん
2016/09/10(土) 20:45:26.68 ID:QhorBMPI
>>667 constexpr int n[kN]={0,100,200};
669 :
667
2016/09/10(土) 20:51:12.77 ID:fvQgZoM4
うちのVS2010ちゃんがそんなもの知らないと言っております
670 :
デフォルトの名無しさん
2016/09/10(土) 20:57:30.16 ID:QhorBMPI
>>669 template<int N> struct constant { static const int value = N; };
template<int N> struct n;
template<> struct n<kOne> : constant<100> {};
template<> struct n<kTwo> : constant<200> {};
A<n<kOne>::value> a;
671 :
667
2016/09/10(土) 21:00:17.01 ID:fvQgZoM4
672 :
デフォルトの名無しさん
2016/09/10(土) 23:13:18.30 ID:LzJTocys
>>660 それはその言葉の真意を理解すれば正しくもあり正しくもなし
673 :
デフォルトの名無しさん
2016/09/11(日) 00:28:13.04 ID:bDOLl/8E
引数はともかく、戻り値を常にconst char*にするのはつらい
メンバ変数で持ってるものだったらconst char*で返せるけど
関数内でジェネレートした文字列だったらどうするんだ?
674 :
デフォルトの名無しさん
2016/09/11(日) 00:32:24.15 ID:bDOLl/8E
void func( char *output, int max_buffer )
↑こんなインターフェースもあり得るけど
呼び出すときに一体バッファサイズをどのぐらい用意すれば良いんだ?
という問題が出る
関数内でmallocして返す方法もあるけど
呼び出しもとで開放しなきゃならないから嫌だ
std::string使いましょうよ
675 :
デフォルトの名無しさん
2016/09/11(日) 00:44:49.84 ID:T7xxiiqM
うちの会社にいるレガシープログラマもクラスを引数にするのを嫌うな
676 :
デフォルトの名無しさん
2016/09/11(日) 01:12:15.86 ID:NvSd/4YA
税金泥棒は、RMPについて何も理解できていない
分からないくせに、ひたすらコピペを繰り返す
突っ込んだ話を始めると、チンプンカンプンで付いて来れなくなる
677 :
デフォルトの名無しさん
2016/09/11(日) 01:30:52.05 ID:Y3qTK8mc
gccはC++11のmoveとかつかわんでも、呼出側がスタックに用意したところに
せっせと返値を書き込んでるのでクラスを返値にしたところでcopyとか余計なことはしないな。
678 :
デフォルトの名無しさん
2016/09/11(日) 06:19:48.63 ID:Cz5G8II8
コピーする必要がなかったかも知れないのにコピーしておいて余計なことはしていないとな
679 :
デフォルトの名無しさん
2016/09/11(日) 08:52:00.54 ID:uFO7Kr12
返り血にmove使うと事態は悪化
680 :
デフォルトの名無しさん
2016/09/11(日) 10:11:38.91 ID:5FDuUIWg
拭き取ろうと擦れば擦るほど赤く血塗られた範囲が広がって…。
681 :
デフォルトの名無しさん
2016/09/11(日) 13:09:13.01 ID:QVUfpLVG
特定の関数があるなしで呼び出す関数をわけたいのですけど方法はありますか
template<typename T> void hoge(T val)
{
val.hage(0);
}
template<typename T> void hoge(T val)
{
val.husa(100);
}
682 :
デフォルトの名無しさん
2016/09/11(日) 13:55:18.24 ID:KOEkGnWi
SFINAE使えばできる
683 :
デフォルトの名無しさん
2016/09/11(日) 14:53:31.90 ID:h0ayt47M
コードではSSE命令をまったく使わず、コンパイラ最適化でSSE使ってもらいやすくする方法って
どこかに書いてありますか?
684 :
デフォルトの名無しさん
2016/09/11(日) 15:31:44.83 ID:9/O5tJ2a
type_traitsのテストクラスばかり使っていたらSFINAEの書き方忘れた
685 :
デフォルトの名無しさん
2016/09/11(日) 15:50:46.32 ID:hGR6Mbre
686 :
デフォルトの名無しさん
2016/09/11(日) 22:14:42.57 ID:OIs9p1U8
void func( char *output, int max_buffer )
これはさ、max_bufferで指定した範囲で対応出来るようにするための引数だろ
呼び出す側でintの範囲なら自由に決められるに決まってるだろ
687 :
デフォルトの名無しさん
2016/09/11(日) 22:19:35.02 ID:m0F7Ld2f
↑アスペ
688 :
デフォルトの名無しさん
2016/09/11(日) 22:20:45.93 ID:OIs9p1U8
いやいや、outputの最大値を一緒に渡すのは常識だろう
689 :
デフォルトの名無しさん
2016/09/11(日) 22:25:57.81 ID:2EFm3ZKd
要するに、
char b[128];
func(&b[16],128-16);
ってやって、特定の範囲で処理できるのも利点だろうといってるんだと。
あんまりやらないけど。
690 :
デフォルトの名無しさん
2016/09/11(日) 22:34:43.72 ID:T7xxiiqM
文字列クラスでもできるけど
691 :
デフォルトの名無しさん
2016/09/11(日) 22:37:36.83 ID:2EFm3ZKd
substrだっけか?
692 :
デフォルトの名無しさん
2016/09/11(日) 22:38:54.98 ID:m0F7Ld2f
693 :
デフォルトの名無しさん
2016/09/11(日) 22:40:38.21 ID:2EFm3ZKd
チガッテマスカ?
694 :
デフォルトの名無しさん
2016/09/11(日) 22:43:30.84 ID:m0F7Ld2f
>>693 >>689の解釈は
『max_bufferで指定した範囲』
『intの範囲なら自由に』
という表現と整合しない。
695 :
デフォルトの名無しさん
2016/09/11(日) 22:45:10.47 ID:2EFm3ZKd
オーバーフローを指定するような間抜けなことをわざわざするんかいな。
696 :
デフォルトの名無しさん
2016/09/11(日) 22:46:59.51 ID:m0F7Ld2f
697 :
デフォルトの名無しさん
2016/09/11(日) 22:48:58.46 ID:2EFm3ZKd
>>686の頭にはなんか特殊用途でもよぎったんじゃね?
俺が懇意すぎたかな・・・。Orz
698 :
デフォルトの名無しさん
2016/09/11(日) 22:51:16.46 ID:m0F7Ld2f
深い意味はない
単に
>>674を見て並んでいた単語に連想した自分の知識を反射的に書き込んだだけ
699 :
デフォルトの名無しさん
2016/09/11(日) 22:54:31.75 ID:2EFm3ZKd
俺は
>>686ではない。それはそうかもな。
俺はC++ではstd::まで書くStl派なので、このところ生配列は使ったことがない。
というか、オーバーフロー怖くて使いたくない。
700 :
デフォルトの名無しさん
2016/09/11(日) 23:01:21.72 ID:67F7MmNh
生配列を使ったことないってことはないだろ
インターフェースにstlのコンテナとかを露出したらコンパイラ依存になっちゃうじゃん
てか高速に処理したくてスタックに配列を積みたいときとかどうするわけ?
701 :
デフォルトの名無しさん
2016/09/11(日) 23:04:52.03 ID:2EFm3ZKd
競プロ解いてるだけだから問題にならん。
まぁ、しばらく黙るわ。
702 :
デフォルトの名無しさん
2016/09/11(日) 23:09:47.79 ID:OIs9p1U8
俺が言いたかったのはだね、
void func( char *output, int max_buffer )
のようにchar *outputを渡すような時は、
バッファオーバーフローを防ぐために一緒にサイズも渡すってのが、
C言語での使い方では常識化してるって事だ。
703 :
デフォルトの名無しさん
2016/09/11(日) 23:12:11.14 ID:m0F7Ld2f
わざわざ補足しなくても
そんなことはみんな知ってるから
704 :
デフォルトの名無しさん
2016/09/11(日) 23:14:19.23 ID:OIs9p1U8
705 :
デフォルトの名無しさん
2016/09/11(日) 23:17:06.20 ID:67F7MmNh
競プロでSTLコンテナなんて使うか??
アルゴリズムとかはそのまま使えるけどコンテナは普通生配列か必要に応じて自前の使うだろ?
706 :
デフォルトの名無しさん
2016/09/11(日) 23:19:39.01 ID:2EFm3ZKd
ガチ勢じゃないからね。
最近ではリングバッファほしい位で満足してるよ。
STLコンテナで解けないなら、アルゴリズムが悪い事が多い。
707 :
デフォルトの名無しさん
2016/09/11(日) 23:20:05.58 ID:m0F7Ld2f
708 :
デフォルトの名無しさん
2016/09/11(日) 23:20:10.89 ID:T7xxiiqM
>>700 規格準拠度が低いクソみたいなコンパイラを使わない
709 :
デフォルトの名無しさん
2016/09/11(日) 23:22:00.72 ID:m0F7Ld2f
どうしたいきなり
>>700も関係無いことを言いだして
710 :
デフォルトの名無しさん
2016/09/11(日) 23:22:32.77 ID:m0F7Ld2f
誤 700も
正 700と
711 :
デフォルトの名無しさん
2016/09/11(日) 23:23:32.91 ID:OIs9p1U8
>>707 いやいや、おかしいよ。
void func( char *output, int max_buffer )
を使うのにバッファを意識しないプログラムとかありえないだろ
バッファがどのくらいか分からんのに
void func( char *output, int max_buffer )
とか間違ってるだろ。
これCの使い方だぞ
712 :
デフォルトの名無しさん
2016/09/11(日) 23:28:22.83 ID:T7xxiiqM
>>705 競プロなんていうマイナー分野の話なんかしてないし
実行時間のほとんどはアルゴリズム依存なんだから1%未満のオーバーヘッドが影響するわけが無い
固定長配列はarrayを使うべきだし、動的にサイズを変えないといけない場合vectorでまとめて確保して普通のnewした配列として使えばいい
他人の競プロのコード見たら使いまくってるしな
713 :
デフォルトの名無しさん
2016/09/11(日) 23:39:10.29 ID:m0F7Ld2f
>>711 よくわかった
>>674の『バッファサイズをどのぐらい用意すれば良いんだ?という問題が出る』
を単語レベルに近い連想で文を捉えるから珍妙な解釈になる
レスを100回読み直せ
714 :
デフォルトの名無しさん
2016/09/11(日) 23:46:15.15 ID:M5lO5IQC
ID:2EFm3ZKdの背伸びが痛々しい。
このスレで一番出来ない子が何をいっちょまえにレスしてんだか…。
なぁーにが「競プロ解いてるだけ」だよド素人が。
715 :
デフォルトの名無しさん
2016/09/11(日) 23:48:48.59 ID:OIs9p1U8
>>713 だからよ、
>バッファサイズをどのぐらい用意すれば良いんだ?という問題が出る
って言うような疑問がおかしいんであって、
void func( char *output, int max_buffer)
はサイズを指定して使うもんだ。それ以外にあるかよ。
パターンもパターンやんけ。
バッファサイズがわからん状態で、、
void func( char *output, int max_buffer)ってのはあり得ないんだよ
716 :
デフォルトの名無しさん
2016/09/11(日) 23:49:06.36 ID:2EFm3ZKd
717 :
デフォルトの名無しさん
2016/09/11(日) 23:54:09.86 ID:IuKZJB78
>>715 別の関数で必要なサイズを返すのか?
変更が別スレッドだったら、さらにロック、アンロックの関数がそれぞれ必要になるな。
718 :
デフォルトの名無しさん
2016/09/12(月) 00:00:05.72 ID:JmiC7f4k
じゃー背伸びついでに言っとくわ。
その関数voidだから失敗したかどうかわからんから、バッファ入力サイズを推定できない。
ドキュメント読め。
719 :
デフォルトの名無しさん
2016/09/12(月) 00:03:56.69 ID:JmiC7f4k
チッ間に合わなかった。
720 :
デフォルトの名無しさん
2016/09/12(月) 00:04:01.94 ID:GwVwE6OL
いやいや、
void func( char *output, int max_buffer)
ってのは
char *output に結果を返すんだよ。
そんなのもわからんのか。
max_bufferはオーバーフローを防ぐための物だ。
何を言ってんだ一体
721 :
デフォルトの名無しさん
2016/09/12(月) 00:04:29.54 ID:hz43BbCS
例外使わないのか
初心者なのかレガシープログラマなのか
722 :
デフォルトの名無しさん
2016/09/12(月) 00:04:37.05 ID:Tu0jZEI4
>>715 その部分の日本語の理解が間違っているとわざわざ教えてやっているのに
他にどういう理解があり得るのかも考えずゴミレスを繰り返すとは
アスペなだけでなくて荒らしのつもりなのか?
723 :
デフォルトの名無しさん
2016/09/12(月) 00:05:58.76 ID:JmiC7f4k
>>720 そんなちゃんぽん仕様にしなくても戻り値一個設定すれば済む話じゃないか。
汚いと思う。
724 :
デフォルトの名無しさん
2016/09/12(月) 00:07:03.07 ID:GwVwE6OL
Cやってたらvoid func(char *output, int max_buffer)なんてパターンだろ。
基本中の基本だろ。
725 :
デフォルトの名無しさん
2016/09/12(月) 00:08:06.86 ID:JmiC7f4k
染まってるのか。
まぁいいや。
黙るって言ったから黙る。
726 :
デフォルトの名無しさん
2016/09/12(月) 00:08:07.10 ID:WISOHly2
723 : デフォルトの名無しさん 2016/09/12(月) 00:05:58.76 ID:JmiC7f4k
>>720 そんなちゃんぽん仕様にしなくても戻り値一個設定すれば済む話じゃないか。
汚いと思う。
727 :
デフォルトの名無しさん
2016/09/12(月) 00:09:36.24 ID:Tu0jZEI4
バッファサイズ指定の関数で溢れた時に例外をスローするのは珍しいな
Visual C++の_s関数の配列オーバーロードはそんな仕様だった気もするが
728 :
デフォルトの名無しさん
2016/09/12(月) 00:09:38.22 ID:WIrRwO5G
729 :
デフォルトの名無しさん
2016/09/12(月) 00:11:17.09 ID:GwVwE6OL
void func( char *output, int max_buffer)
これはさ、max_buffer以内で絶対に納めるって前提があるんだよ。
その為のmax_bufferだぞ。
max_bufferの指定が間違ったらエラーなんだよ。
他にどういう使い方あるんだよ
730 :
デフォルトの名無しさん
2016/09/12(月) 00:11:25.69 ID:XcxNhSoL
731 :
デフォルトの名無しさん
2016/09/12(月) 00:13:42.09 ID:GwVwE6OL
結果を正しく格納するのに必要なバッファサイズが、max_bufferだろ。
char *outputのサイズがmax_buffeなんだよ
char *outputがオーバーフローしないように、max_bufferを上限に処理をして、
char *outputで返せばオーバーフローしないって仕組みなんだよ。
732 :
デフォルトの名無しさん
2016/09/12(月) 00:14:04.49 ID:Tu0jZEI4
まさか
>>728のやさしいレスを見てもまだ世迷い言が続くとは
これはホンモノだ
733 :
デフォルトの名無しさん
2016/09/12(月) 00:18:26.76 ID:GwVwE6OL
おまえなにもわかってないだろ。
何ひとつ自分で説明してないだろ。
734 :
デフォルトの名無しさん
2016/09/12(月) 00:21:57.49 ID:U6Ajls88
>>732 老害プログラマによくいる切り捨てられても気にしない、切り捨てによって発生したバグが確認されて初めてバッファーサイズをプログラム内の定数値で変更する人なんでしょ。
C++使ってるなら正しく処理する為には多大な面倒が発生する手法なんて使うなって事なんだけど老害にはそれが理解出来ないらしい。
735 :
デフォルトの名無しさん
2016/09/12(月) 00:22:27.92 ID:/3fOrQXc
max_bufferがあるからバッファオーバーフローを防ぐことが出来る
逆にmax_bufferが効果を発揮する状況というのは
結果を正しく格納するのに必要なバッファサイズがmax_bufferを越える時だ
従って
>>731の最初の行は間違っている
736 :
デフォルトの名無しさん
2016/09/12(月) 00:23:39.94 ID:XcxNhSoL
最大値をどうすればいいのかって話でしょ
728の例だと別の場所で最大値は決まってる
でもバッファサイズ3とか小さすぎると欲しい情報は帰ってこない
当然オーバーフローはしないけど
737 :
デフォルトの名無しさん
2016/09/12(月) 00:27:04.07 ID:feiUf+9B
バッファっていう概念がちょっとズレてんのかもな
Cやってる人はコップでプールの水をすくうとき
コップがバッファだ
コップの大きさで回数を重ねてすくう
コップを最大まで大きくしなきゃいけないとか
必要なコップサイズは、などとは考えない
それがバッファ
738 :
デフォルトの名無しさん
2016/09/12(月) 00:28:34.40 ID:Tu0jZEI4
>>730 文脈を理解できない低能は去れ
>>733 健常者なら『レスを100回読み直せ』で理解できると思ったので敢えて説明しなかった失礼
では説明してやろう
<呼び出し側>
vector<char> result(★);
func ( &result[0], result.size() );
>>674はこの★をどう決定するかが
呼び出し側コードを書く者の負担になると言っている
739 :
デフォルトの名無しさん
2016/09/12(月) 00:28:41.75 ID:GwVwE6OL
だからよ、C++の使い方で
void func( char *output, int max_buffer)
を使おうとすれば、Cのバッファを意識する使い方以外に無いだろ。
それをストリングクラスの代わりに
void func( char *output, int max_buffer) を使う手ももあるが、
バッファのサイズをどうするかが問題、とか言ってるから、
そういう使い方はしないし間違ってるって言ってんだろがよ
740 :
デフォルトの名無しさん
2016/09/12(月) 00:30:38.58 ID:GwVwE6OL
void func( char *output, int max_buffer)
これはよ、char *outputのサイズを意識しない限り、動かせないプログラムだよ
このサイズが分からない時に、
void func( char *output, int max_buffer) を使うってのは無いんだよ
それをあるって言うから、無いって言ってんだよ 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
741 :
デフォルトの名無しさん
2016/09/12(月) 00:35:45.75 ID:XBLhc0H+
>>740 一旦これだけは言っておくが
おまいの言っていることは正常でしかもごくあたりまえのこと
おそらくその点を繰り返す必要はもうないし
そのことはみんな分かってる
読み込む前にサイズ分からないものがあるよね?
そのときは固定サイズじゃ読み込めないよね、
的なことをおまいの相手は繰り返し言ってるんじゃないか?
配列に対するベクタの利点みたいな部分を言いたがってる気がする
742 :
デフォルトの名無しさん
2016/09/12(月) 00:40:53.14 ID:XcxNhSoL
最大値がどっかで決まってるか、outputにヌルいれると必要なサイズ返るとかが普通じゃね
その関数だけじゃ必要なサイズがわからんというお話
パスが欲しいのにバッファ小さすぎてドライブレターだけ返ってきても意味無いわけで
743 :
デフォルトの名無しさん
2016/09/12(月) 00:43:58.37 ID:GwVwE6OL
void func( char *output, int max_buffer)
を使う前にはサイズを把握してないと駄目ってだけだよ。
それが把握できんのにこういうCライクな使い方は間違ってるって俺は言ってるだけだよ
744 :
デフォルトの名無しさん
2016/09/12(月) 00:47:09.50 ID:hz43BbCS
C言語的なインターフェイスは不便だからC++らしく書きましょう
745 :
デフォルトの名無しさん
2016/09/12(月) 00:47:23.61 ID:U6Ajls88
>>743 格納サイズを把握してたらmax_bufferなんて要らなくね?
746 :
デフォルトの名無しさん
2016/09/12(月) 00:51:26.47 ID:GwVwE6OL
>>745 いやオーバーフロー対策の最大値だから
引数で明示的にサイズを渡しましょうって取り決めだ
747 :
デフォルトの名無しさん
2016/09/12(月) 01:02:10.22 ID:Tu0jZEI4
748 :
デフォルトの名無しさん
2016/09/12(月) 01:10:30.26 ID:hz43BbCS
いまさらそんな40年前からある常識を言われも困る
749 :
デフォルトの名無しさん
2016/09/12(月) 01:13:36.21 ID:WIrRwO5G
750 :
デフォルトの名無しさん
2016/09/12(月) 06:52:52.36 ID:y21Asc3i
MAXPATH があてにならんのは確かだが
サイズ取得せずにリトライするのもダメ臭が
751 :
デフォルトの名無しさん
2016/09/12(月) 08:08:53.69 ID:46mLPt5D
書き込んだサイズを返すくせに必要なサイズを
調べる機能が規格に無いstd::mbstowcsはクソ
752 :
デフォルトの名無しさん
2016/09/12(月) 09:10:27.05 ID:HZgwCDH3
753 :
デフォルトの名無しさん
2016/09/12(月) 09:38:06.48 ID:y21Asc3i
優れたデータから生まれるクソ同然な解説
754 :
デフォルトの名無しさん
2016/09/12(月) 10:27:38.72 ID:CKtP/5ek
おまえTAB派かw
755 :
デフォルトの名無しさん
2016/09/12(月) 11:33:25.20 ID:+YsVO5lS
タブスペース混在で起きる問題とは?
756 :
デフォルトの名無しさん
2016/09/12(月) 12:31:33.38 ID:ZblQazo2
タブ幅が決まってないのが一番の問題だな。2,3,4,8みんなバラバラ。
757 :
デフォルトの名無しさん
2016/09/12(月) 13:20:51.17 ID:s5J5+4ba
pythonが致命傷を負う
758 :
デフォルトの名無しさん
2016/09/12(月) 13:57:05.61 ID:x7GAwvaf
>outputにヌルいれると必要なサイズ返るとかが普通じゃね
必ずしもそれが有効かどうかわからないから困る
必要なバッファサイズを取得してから実際に文字列を取得するまで
関数を二回呼び出す必要があり、ここに時間差があるのが問題
マルチスレッドで問題になる
取得したバッファサイズは既に古い情報になっている可能性がある
これを解決するにはLockするしかない
obj->lock();
size_t buffer_size = obj->func( nullptr, 0 );
std::vector<char> output( buffer_size );
obj->func( outputr.data(), output.size() );
obj->unlock();
こんなコードはまさに糞であるということ
しかも、lock、unlockをし忘れても、たまたまのタイミングの物で、そこそこ動きそうというのが怖い
つまり、ほんの短い期間の間に、文字列が更新されて取得したバッファサイズが無効になるほうが珍しいだろう
しかし、ありえないことではない
1000回に1回だけ失敗するというのが一番怖い
これに比べれば、関数内でnew char[]して返すほうが、まだいくらかマシに思えるぐらい
しかしこれをやると、帰ってきた文字列は自分で開放しなければならないのか
あるいは開放してはダメなのか、解放関数はdelete[]なのかfreeなのかあるいは別の専用関数なのか
ということが関数ごとにマチマチになり、非常に煩雑になる
std::string output = obj->func();
のほうが断然良い、誰の目にも明らか、短い、シンプル
lock、unlockを呼び出し元が保証しなければならないのは良くない
必要な処理が一発の関数呼び出しでキマるように設計すれば、同期処理はobj内に隠蔽できる
こちらのほうが良い
単に文字列取得するだけでlock、unlockが必要というのは狂気の沙汰
>>700のような特殊な場合を除いては、ね
759 :
デフォルトの名無しさん
2016/09/12(月) 15:42:12.58 ID:tjH2oYJX
ってか
void func( char *output, int max_buffer)
なんてI/Fを書いちゃってることが問題なんじゃねーの?
これでなんとかしようって考えたって生産性ないし
760 :
デフォルトの名無しさん
2016/09/12(月) 16:16:50.47 ID:ZblQazo2
cのIFだから古臭いのはしょうがない。
効率悪くなってもstd::string吐くようにラップして二度と触らないのが吉。
761 :
デフォルトの名無しさん
2016/09/12(月) 16:45:03.11 ID:+C5a7cGR
void func( char *output, int max_buffer)
これ、ニワカが作ったダメな見本
普通
size_t func( char *output, size_t max_buffer)
762 :
デフォルトの名無しさん
2016/09/12(月) 17:01:45.51 ID:2Vwoh4uN
ゴミが得意気に難癖つけてて笑える
763 :
デフォルトの名無しさん
2016/09/12(月) 17:58:57.32 ID:KCLSxXC3
同じ意味じゃんw
764 :
デフォルトの名無しさん
2016/09/12(月) 18:06:15.51 ID:5/ctHFsj
マルチスレッドのリテラシーも無いのにクソみたいな長文をドヤ顔で貼り付ける
>>758が哀れで仕方ない
2回のfnucの呼び出しの間にバッファーが変更される状況では単独の呼び出しすら破綻していることが理解できないらしい
765 :
デフォルトの名無しさん
2016/09/12(月) 18:13:03.76 ID:Brz5tLm8
彼に限らず何らかの問題意識を訴える子が
なぜか突然マルチスレッドを絡めてくるのはもはや伝統芸
そして一通り話を聞いてみると
「そうだね、排他だね」としか言いようがないことも毎度
766 :
デフォルトの名無しさん
2016/09/12(月) 18:27:11.87 ID:x7GAwvaf
std::string output = obj->func();
の場合、funcの中で排他処理をしていれば、呼び出し元は排他処理について気にしなくてよい
アトミックな操作ということになる
文字列の取得にかかわらず、アトミックが期待される処理は
分解せずに一つの関数で実現すべきである
personオブジェクトの取得なら、person = obj->get_person(); とすべきであり
person.set_name( obj->get_persion_name() );
person.set_age( obj->get_persion_age() );
のように分解してしまうとアトミックでなくなるから、やはりロックが必要になる
外からオブジェクトをロックする、そういうI/Fをobjに用意するということは
何時でも何処でも好き勝手にロックできるというわけで
使い方を誤るとデッドロックを引き起こす可能性がある
ロックの順番はクラス設計者が明確に管理し、隠蔽すべき
さて、文字列取得を二つの関数に分けて行うとアトミックな操作でなくなるから
呼び出し元で排他処理をしなければならなくなる
obj->lock();
size_t buffer_size = obj->func( nullptr, 0 );
std::vector<char> output( buffer_size );
obj->func( output.data(), output.size() );
obj->unlock();
これは非常に面倒なので君らは直ぐにでもstd::stringを返すラッパーを書く
そうすれば結局同じことになるので、初めからstd::stringを返せばよい
もとより文字列の取得はアトミックであることが期待されるわけだから
一回の関数呼び出しで行うのが筋である
767 :
デフォルトの名無しさん
2016/09/12(月) 18:43:38.31 ID:5/ctHFsj
一生懸命考えた結果がコレか?
呼び出し側が自らコンカレントな使い方する前提でロック必須と言われてもねぇ
その内vectorのremove&eraseイディオムにも排他が必要で狂気の沙汰とか言い出しそうだな
768 :
デフォルトの名無しさん
2016/09/12(月) 18:44:31.77 ID:x7GAwvaf
どれだけの処理を一つの関数で行うべきかは
どこまでの処理がアトミックと期待されるか、による
文字列の取得はアトミックであることが期待されるので
一つの関数でアトミックに実行すべき、となる
場合によればアトミックの範囲がもっと広がることもある
例えばpersonの情報が欲しいとき、名前と年齢を別々に取得するのはよくない
名前の取得と年齢の取得のそれぞれが独立して排他処理してあって正しく動いたとしても
全体として名前と年齢のペアが一致しなくなる可能性があるから
だからこの場合、personの情報は一つの関数呼び出しで行い、アトミックである必要がある
なので、一つの関数で実行すべきこと、アトミックに実行すべきこと、は
文字列の取得なんかよりは大きな範囲、粒度になることはある
大きくなることはあり得るということ
が、間違っても、文字列の取得などというプリミティブな処理を
バッファサイズの取得と文字の取得の二つに分割したほうが良い
とはならない
769 :
デフォルトの名無しさん
2016/09/12(月) 18:50:01.82 ID:x7GAwvaf
>>767 >必ずしもそれが有効かどうかわからないから困る
と書いた通り、すべての場合とは言っていない
困る場合があるといっている
そして、困る場合での話である
770 :
デフォルトの名無しさん
2016/09/12(月) 19:40:26.75 ID:5/ctHFsj
なるほどつまりは
>>765だな
この論法は非constメンバー関数を使ったイディオムに広く使えそうだ
「~って普通だろ?」
↓
「必ずしもそれが有効かどうかわからないから困る(長文略)」
771 :
デフォルトの名無しさん
2016/09/12(月) 21:04:54.81 ID:U6Ajls88
>>767 呼び出し側だけとは限らんでしょ。
非同期でデータメンバーを更新しつつ、更新通知をだすクラスとか
772 :
デフォルトの名無しさん
2016/09/12(月) 22:29:31.42 ID:2Vwoh4uN
一発でstringやらvectorで返すなら常識的に言ってロックは必要ないわな
何話してるのか分かってない奴が力んでるな
773 :
デフォルトの名無しさん
2016/09/12(月) 23:29:00.60 ID:3LkOVCr7
タブ幅は8である。但し、一度タブキーを叩くと4つのスペースが入る
但しそれで8つのスペースとなるときはそれを一つのタブに換える
774 :
デフォルトの名無しさん
2016/09/13(火) 00:03:18.93 ID:ZWXE0Cz9
いやタブとスペース混ぜるのは論外でしょ
775 :
デフォルトの名無しさん
2016/09/13(火) 00:39:27.54 ID:UjtLBJZw
混ぜると誰かがコード整形したときに全部差分に出るから邪魔
776 :
デフォルトの名無しさん
2016/09/13(火) 00:51:46.06 ID:nTkG/AQ9
>>772 そんな事でロックが必要かどうか決まらないと思うが何を言ってるんだ?
777 :
デフォルトの名無しさん
2016/09/13(火) 01:06:54.89 ID:TGJSQl0M
VZエディターとか混ぜてたな
778 :
デフォルトの名無しさん
2016/09/13(火) 01:20:10.44 ID:7Uxx8QPD
基本的にインデントが何段階も必要な入れ子はよくない
許容範囲は2つまでだな
779 :
デフォルトの名無しさん
2016/09/13(火) 02:29:06.46 ID:qRIDBJHy
論点がずれてんじゃんw
780 :
デフォルトの名無しさん
2016/09/13(火) 04:10:18.62 ID:ifCWTkZq
>>775 差分取るときホワイトスペース無視すればいいだろ
781 :
デフォルトの名無しさん
2016/09/13(火) 05:08:48.43 ID:E9px3zRx
std::get_temporary_buffer ってなんであんなクソ仕様で作ったの
782 :
デフォルトの名無しさん
2016/09/13(火) 05:14:57.49 ID:ifCWTkZq
それ知らんかったけどクソだからC++17でdeprecatedになるのか
783 :
デフォルトの名無しさん
2016/09/13(火) 07:08:31.21 ID:fa0Yw14i
引数の異なる関数を関数テーブルにまとめる方法ヘルプミー
784 :
デフォルトの名無しさん
2016/09/13(火) 07:11:36.75 ID:jvr3tDVu
型が違うから難しくね?同名でオーバーロードするんじゃだめなんかい。
785 :
デフォルトの名無しさん
2016/09/13(火) 07:21:28.20 ID:6YUjJJm0
テーブルの別の要素で引数と返り値の型を記憶しておき、任意の関数ポインタ型にreinterpretして保存
呼び出し時は記憶した引数と返り値のの型に対応する関数ポインタ型にreinterpretしてから呼び出す。
786 :
デフォルトの名無しさん
2016/09/13(火) 07:56:45.02 ID:BC6G6r/f
787 :
デフォルトの名無しさん
2016/09/13(火) 08:09:28.64 ID:LgTr6ZxA
>>785 やはり別物で統一して記憶させるしかないか…
要は入れてから後にキャストだよね
>>786 関数群30ぐらいあるからそれを管理しやすくしたい
別にenumで関数名入れておくのと
関数名に対応したインデックス拾ってくる関数を用意しておいて
後に使いやすく
788 :
デフォルトの名無しさん
2016/09/13(火) 08:11:50.46 ID:jvr3tDVu
酷い設計って言っていい?
789 :
デフォルトの名無しさん
2016/09/13(火) 08:20:36.44 ID:BC6G6r/f
>>787 > 後に使いやすく
ごめん、全然使いやすくなるイメージがないんだが...
単にまとめときたいだけならクラス作って静的メンバ関数でいいような気がするし
790 :
デフォルトの名無しさん
2016/09/13(火) 08:29:56.17 ID:LgTr6ZxA
>>789 関数名を別ファイルから取り出して動的に動かすためにはこれしかなかった
まとめておいてプログラム内で処理ならそれで良いけど
今のところそうなってるからそれに会わせるしかないんだ
791 :
デフォルトの名無しさん
2016/09/13(火) 08:32:38.69 ID:jvr3tDVu
可変長引数取る関数内でスイッチするのと大差なさそう。
792 :
デフォルトの名無しさん
2016/09/13(火) 08:33:59.57 ID:Dh1MHapU
793 :
デフォルトの名無しさん
2016/09/13(火) 08:39:26.37 ID:LgTr6ZxA
>>791 結局どこかで分岐処理によるキャストするからほぼ変わらん気もする
これに関連する話だけど
int (*func)(void*)みたいな関数ポインタがあって
引数二つにするにはどうやってキャストしたら良いんだろうか
794 :
デフォルトの名無しさん
2016/09/13(火) 08:43:25.81 ID:kwiFGb/T
まず関数の型をtypedefしようぜ。
795 :
デフォルトの名無しさん
2016/09/13(火) 08:47:38.13 ID:GD/RUd4Y
windows のマクロまみれのメッセージディスパッチと同じようなことじゃろ
796 :
デフォルトの名無しさん
2016/09/13(火) 08:57:44.86 ID:jvr3tDVu
797 :
デフォルトの名無しさん
2016/09/13(火) 09:02:38.95 ID:jvr3tDVu
これができたら、ファクトリーメソッドがパラダイス。
798 :
デフォルトの名無しさん
2016/09/13(火) 09:51:20.93 ID:jvr3tDVu
特定の型のパラメータパックってできなかったっけ?
Anyのパラメータパック食わせれば解決するんだけどなぁ・・・。
799 :
デフォルトの名無しさん
2016/09/13(火) 11:14:43.16 ID:nTkG/AQ9
やりたいことにたいして少し大仰だが、Boost.Pythonのようなものでインタプリタからどうやって型安全に関数を実行してるか見たら少しは参考になるんじゃない?
800 :
デフォルトの名無しさん
2016/09/13(火) 12:49:03.21 ID:BC6G6r/f
>>790 > 関数名を別ファイルから取り出して動的に動かす
なら初めからそう書いてよ
使いやすさ云々じゃないじゃん
関数名を特定するのはいいけど引数は関数毎にバラバラなんでしょ?
結局どこかで分岐が必要な気がする
それとも引数は Variant みたいななんでも入れられる変数の配列にしてしまうとか
801 :
デフォルトの名無しさん
2016/09/13(火) 17:00:07.27 ID:dUelqKgA
>>783 #include <functional>
double foo(double x) { return x; }
int bar(int x) { return x; }
int main()
{
std::function<double(double)> table[2];
table[0] = foo;
table[1] = bar;
}
802 :
デフォルトの名無しさん
2016/09/13(火) 18:18:50.00 ID:LmZnag12
>>801 コードサンクス
ただこれはintとdouble型に対してだからできるんじゃないのだろうか
>>800 そういうことだね
だからどこかでキャストし直す必要がある…はず
あらかじめどこかにパターンを定義しておいてそれはもうスイッチ文に頼るしかないかなって考えてる
803 :
デフォルトの名無しさん
2016/09/13(火) 18:20:35.88 ID:LmZnag12
>>797 俺もパラダイスを目指している
Cならエラー出ずにできるみたいなんだよね
C++でxmlをjsonにパースしたり
jsonを簡単に読み込む方法ってあったっけ?
ないならC#も考えないとな…
804 :
デフォルトの名無しさん
2016/09/13(火) 19:01:39.86 ID:bDDPvjQm
実行時に文字列を比較して分岐することのどこにパラダイスを見いだせるんだよ
805 :
デフォルトの名無しさん
2016/09/13(火) 20:22:41.37 ID:BC6G6r/f
>>803 調べてないけどライブラリぐらいあるんじゃね?
806 :
片山博文MZ ◆T6xkBnTXz7B0
2016/09/13(火) 21:57:21.43 ID:7T7m5n2i
質問です。
placement newの関数の宣言と定義はどこに書くのが正解ですか? よろしくお願いします。
807 :
デフォルトの名無しさん
2016/09/13(火) 22:04:54.99 ID:6F1+hrdF
>>805 picojsonとやらを使ってみた
便利なんだけど配列二つあると積む現象が起きてしまった…
808 :
デフォルトの名無しさん
2016/09/13(火) 22:23:58.73 ID:eOd6ZBDo
jscriptで読めるから
WSHでアプリで実行
809 :
片山博文MZ ◆T6xkBnTXz7B0
2016/09/13(火) 22:34:06.63 ID:7T7m5n2i
ReactOSというOSの開発をしています。
ヘッダー<new>と<crtdbg.h>のnewの宣言が衝突していて、<new>が使えません。
どうしたら正しく配置newが使えますか?
810 :
デフォルトの名無しさん
2016/09/13(火) 22:52:09.89 ID:7Uxx8QPD
自分のソフトの販売権がカシオが取得とかねつ造してたやつだ
811 :
片山博文MZ ◆T6xkBnTXz7B0
2016/09/13(火) 22:59:05.82 ID:7T7m5n2i
わかりました。ReactOSのSTLかCRTのコードが間違っているということですね。
配置newは<new>をインクルードしたら使えなければおかしい。
812 :
デフォルトの名無しさん
2016/09/13(火) 23:06:52.68 ID:7T7m5n2i
自分の商品の販売権をどう決めようが勝手でしょう。会社名を出したのは悪かったが。
813 :
デフォルトの名無しさん
2016/09/13(火) 23:08:15.35 ID:jz2gr8q/
ライバル会社かなにか?
814 :
デフォルトの名無しさん
2016/09/13(火) 23:15:36.33 ID:7Uxx8QPD
>>812 おまえカシオが権利を所有とか書いてたんだろ
カシオと専売契約交わしたみたいに書いてたろ
カシオが知らんと思うてか
815 :
デフォルトの名無しさん
2016/09/13(火) 23:21:08.73 ID:7T7m5n2i
816 :
デフォルトの名無しさん
2016/09/13(火) 23:29:04.40 ID:7Uxx8QPD
>>815 うそつけこら。おまえがメール送ってただけやろが。
往生際が悪い。全部バレとんねん
狭い業界でごまかせるとおもうなよ
817 :
デフォルトの名無しさん
2016/09/13(火) 23:33:01.44 ID:7T7m5n2i
すみません
818 :
デフォルトの名無しさん
2016/09/14(水) 00:03:18.61 ID:3NkcLiKm
反省してます
819 :
デフォルトの名無しさん
2016/09/14(水) 01:01:49.61 ID:QlIAHX1m
なんやなんや
820 :
デフォルトの名無しさん
2016/09/14(水) 02:49:36.41 ID:Xhtlj9Sh
マトラボスレ勢いなさすぎ。
誰かイコライザのコーディング教えてくれや
821 :
デフォルトの名無しさん
2016/09/14(水) 03:15:05.48 ID:Pl2/S2ti
イコライザってなに?
822 :
デフォルトの名無しさん
2016/09/14(水) 03:18:25.05 ID:EjX8GKMV
信号処理
823 :
デフォルトの名無しさん
2016/09/14(水) 03:53:21.14 ID:qczVS6OA
FFTか。言葉しかしらん。
824 :
デフォルトの名無しさん
2016/09/14(水) 04:57:26.35 ID:8Y7m8SBN
高速フーリエ変換か
825 :
デフォルトの名無しさん
2016/09/14(水) 08:16:10.34 ID:58JMlqKS
placement newの関数を自分で書く素振りを見せながら
newをインクルードとか、何言ってんだか。
標準ヘッダーが衝突するなら処理系作った奴に聞け
826 :
片山博文MZ ◆T6xkBnTXz7B0
2016/09/14(水) 11:33:48.49 ID:3NkcLiKm
827 :
デフォルトの名無しさん
2016/09/14(水) 18:34:08.81 ID:O92aoqkR
CppUnitによるテストって登録件数が多くなった場合…なんとかならんもんかね
1000を越えるとかマジで嫌なんだが
828 :
デフォルトの名無しさん
2016/09/14(水) 18:59:00.04 ID:EjX8GKMV
何が嫌なんだ
時間がかかるってことなら分割したらいいじゃないか
829 :
デフォルトの名無しさん
2016/09/14(水) 19:15:10.96 ID:O92aoqkR
>>828 コードがめっっっちゃ汚くならね?
1000個テストするなら1000行似たこと連続で書くんでしょ?
830 :
デフォルトの名無しさん
2016/09/14(水) 19:27:01.68 ID:EjX8GKMV
>>829 テストコードも名前を付けてモジュール化すればすれなりに見やすくはなるんじゃないか
どこで何のテストをしているか見つけやすくなるし
831 :
デフォルトの名無しさん
2016/09/14(水) 19:57:41.83 ID:C1VR7bWr
832 :
デフォルトの名無しさん
2016/09/15(木) 00:14:31.25 ID:SldeaLfO
別にそれCppUnit 固有の問題じゃねーじゃん。
お前のテストコード作成全般の問題だろ。
833 :
デフォルトの名無しさん
2016/09/15(木) 01:28:50.14 ID:NSWALpAD
>>829 「似たこと連続で」ならマクロでも何でも使ってまとめりゃいいだろ。
834 :
デフォルトの名無しさん
2016/09/15(木) 06:31:33.82 ID:eCorjc8D
http://ideone.com/VtKz07 http://nonbiri-tereka.hatenablog.com/entry/2014/06/25/093327を見て勉強中なのだが、
なぜ、test_addでaddをラップしてるのかがわからない
addに引数を持たすことが出来ないのか。
また、addの足し算が引数をaが1-100だった場合、今の俺では100個記述することになる
マクロを使用とかすれば解決できそうだけど、適切に使う方法が思いつかないんだ…
外部ファイルとかからの読み込みでも良いので何かしらヘルプ・・・・
void FunctionTest::test_add(){
CPPUNIT_ASSERT_EQUAL(3+2,func->add(3,2));
}
この部分を何個も書いて
CPPUNIT_TEST(test_add);//メンバ関数の登録ってのを
CPPUNIT_TEST(test_add);//メンバ関数の登録
CPPUNIT_TEST(test_add1);//メンバ関数の登録
CPPUNIT_TEST(test_add2);//メンバ関数の登録
.....となってしまう
835 :
デフォルトの名無しさん
2016/09/15(木) 08:43:36.54 ID:wjxOqoMl
コンパイル時と実行時の違いがあるから直接指定はできないよ。
lambdaとかbindでいけんじゃね?試してないけど。
836 :
デフォルトの名無しさん
2016/09/15(木) 09:20:50.32 ID:Dfv6m4lx
凝ったことをした挙句テスター自体にバグ仕込んでテスト無効とか馬鹿らしいから
1回きりと割りきってシンプルに書くという考えもある
837 :
デフォルトの名無しさん
2016/09/15(木) 10:13:14.67 ID:dJJn2WBE
template<typename...Args> void hoge(Args...args){}
hoge({1,2,3});
としたら
hoge(std::initializer_list<int>)
のように推論して欲しいのですが何故できないのですか
838 :
デフォルトの名無しさん
2016/09/15(木) 10:40:36.62 ID:krf6YZ+h
839 :
デフォルトの名無しさん
2016/09/15(木) 10:41:24.48 ID:krf6YZ+h
投稿を暴発してしまった。
自動では推論してくれないみたいだねぇ。なんでだろう・・・。
840 :
デフォルトの名無しさん
2016/09/15(木) 14:05:17.34 ID:OOrl8bCH
勝手に変換されても困るべ
841 :
デフォルトの名無しさん
2016/09/15(木) 16:06:02.66 ID:qnepHcI/
C++PRIMER 5TH KINDLE版でシコシコするのはどう思いますか。
尼ではさっぱり人気がないようですが。
842 :
デフォルトの名無しさん
2016/09/15(木) 16:40:29.83 ID:gyul79OX
あの手の本は意味がないよ
どんだけ、言語の仕様に詳しくなっても何の得にもならんからな
843 :
デフォルトの名無しさん
2016/09/15(木) 19:22:13.92 ID:BBoNUH+R
熱い江添批判
844 :
デフォルトの名無しさん
2016/09/15(木) 20:07:39.04 ID:axqGMSjf
おっと江添の悪口はそこまでだ
845 :
デフォルトの名無しさん
2016/09/15(木) 20:59:53.90 ID:XkA1sBZN
少なくとも言語仕様を把握してない奴にライブラリは作って欲しくない
846 :
デフォルトの名無しさん
2016/09/15(木) 21:49:37.24 ID:7lTxlp13
つまりハゲはライブラリ作るな
847 :
デフォルトの名無しさん
2016/09/15(木) 21:50:15.59 ID:umQizf+V
言語仕様が
げんこつ塩ラーメン
に見えた
ちょっと夜食食ってくる
848 :
デフォルトの名無しさん
2016/09/16(金) 06:27:51.21 ID:nhdK38ZD
「言語仕様」→「げんごしよー」→「げんこつしおらーめん」
漢字の視覚情報として入力されたパターンを、
脳内でいったん音声情報に変換してから似た言葉に錯誤したのね。
俺の認識手順と違うみたいなので理解するのに手間取った。
849 :
デフォルトの名無しさん
2016/09/16(金) 07:23:14.79 ID:1ml378Vd
>>848 言語仕様の後にライブラリのラだけ見えたからさらに連想を促進した
850 :
デフォルトの名無しさん
2016/09/16(金) 09:43:39.74 ID:wscqtQV8
おまえらハゲを敬え
851 :
デフォルトの名無しさん
2016/09/16(金) 10:02:58.29 ID:q1C1+fLl
852 :
デフォルトの名無しさん
2016/09/17(土) 19:36:33.08 ID:/lrAuukn
ハゲ(笑)
853 :
デフォルトの名無しさん
2016/09/17(土) 20:17:46.81 ID:n9MPs/HW
ハゲが世界の技術を支えてる
854 :
デフォルトの名無しさん
2016/09/18(日) 00:04:19.65 ID:5e40+2Z7
VSのリードプログラマもハゲだな
855 :
デフォルトの名無しさん
2016/09/18(日) 00:05:00.62 ID:+iC0HZAY
ハゲが好きだなお前ら
856 :
デフォルトの名無しさん
2016/09/18(日) 00:23:27.97 ID:+IdphFbB
ハゲは絶倫!
857 :
デフォルトの名無しさん
2016/09/18(日) 00:45:36.25 ID:5e40+2Z7
質問なんだけどnewするとき例外処理する人はvectorとかでpush_backする時も毎回tryしてんの?
858 :
デフォルトの名無しさん
2016/09/18(日) 02:44:35.25 ID:9+5kS6ok
してると言えばしてるけど、多分君の思ってる感じではしてない。
859 :
デフォルトの名無しさん
2016/09/18(日) 02:48:48.02 ID:9+5kS6ok
例外は例外的にしか発生しないので、層の上の方の集約するポイントでcatchしてる。
あんまり細かくやっても意味ないしハゲる。
860 :
デフォルトの名無しさん
2016/09/18(日) 03:18:08.82 ID:+iC0HZAY
つーか、例外発生する可能性のある箇所でcatchしないとかないでしょ
861 :
デフォルトの名無しさん
2016/09/18(日) 03:29:47.07 ID:L03d0R0a
あまり細かい事気にしてるとハゲるよw
862 :
デフォルトの名無しさん
2016/09/18(日) 03:43:50.19 ID:1yHXSEjx
問い1「newするとき毎回try catchするバカはvectorのpush_backもtry catchするのか?」
答え「している可能性あり」
問い2「newするとき毎回try catchするバカは非noexcept関数の呼び出しも毎回try catchするのか?」
答え「バカの行動は一貫性が無いのでしていないだろう」
863 :
デフォルトの名無しさん
2016/09/18(日) 04:12:03.01 ID:CEGgaeCy
// Aをnewしてveにpush_back
// push_backは落ちないようcatchのおまじない必須
try { ve . push_back( new A( new R(), new S() ) ); }
catch ( ... ) {}
864 :
デフォルトの名無しさん
2016/09/18(日) 04:50:42.33 ID:EIh/dcA1
そんな基本的なコンテナのエラーを、catchしても、
プログラマーが回復させることは出来ない
強制終了されるままにしておいた方がいい
下手すれば、エラーログに書き込む際、さらにエラーが起きるかも
865 :
デフォルトの名無しさん
2016/09/18(日) 05:42:12.02 ID:+IdphFbB
クラスの型が一致しなくてcatch出来なかった例外は一体何処へ吹っ飛んでいくのだろうか…
866 :
デフォルトの名無しさん
2016/09/18(日) 06:02:09.25 ID:+jQZdVYD
NULLチェックしろよとチェックツール使った品質チームが指摘してくるんだが、そもそもnew失敗したら例外になるからNULLチェックまで来ねーだろ、お前のチェックチーム馬鹿すぎだろって突っ込みを誰もしないで数年
867 :
デフォルトの名無しさん
2016/09/18(日) 06:29:33.73 ID:CQAObZ4Q
バカってなんでnewしたがるんだろう
868 :
デフォルトの名無しさん
2016/09/18(日) 06:44:28.23 ID:xYSNtktv
>>866 チェックツールが古い仕様向けに作られているのだろうか。
newが失敗した場合はNULLが返る、だからnewの後は常にNULL(ポ)を確認せよ。
指摘を聞き流すだけでなく、チェックする部署の人に
ツールのバージョンだか設定だかを現状に合うように改めてもらったら?
869 :
デフォルトの名無しさん
2016/09/18(日) 08:41:57.71 ID:TydQpzdL
pimpl = new impl;
if(pimpl == nullptr) []()[[maybe_unused]]{throw std::bad_alloc();}();
870 :
デフォルトの名無しさん
2016/09/18(日) 08:48:34.25 ID:2blUzsBI
c++ は最新仕様だけ覚えていればいいってもんではない。
871 :
デフォルトの名無しさん
2016/09/18(日) 09:21:00.65 ID:/1FlYzFJ
>>867 make_uniqueはコンストラクター引数の補完が働かないので使いづらい
872 :
デフォルトの名無しさん
2016/09/18(日) 09:22:05.47 ID:6SQSBv8I
仕様だけは詳しいが、実務は全くできない奴いるなw
正直最新の仕様なんかについてうんちく垂れるより、古い仕様でもきちんと動くほうがいい。
中には、よくわからずに使って、はまって納期遅れさせるバカもいるwwww
873 :
デフォルトの名無しさん
2016/09/18(日) 09:33:08.57 ID:1yHXSEjx
日本語が理解できずに話をすり替えてしまう
>>870みたいな低能や
例外処理の基本も理解できていない
>>864みたいな低能が
その品質チームとやらにいるんだろう
874 :
デフォルトの名無しさん
2016/09/18(日) 10:19:05.24 ID:EIh/dcA1
new にも、NULLを返すバージョンと、例外にするバージョンなど、色々あるんじゃね?
875 :
デフォルトの名無しさん
2016/09/18(日) 11:18:56.17 ID:WPlu++Kc
例外処理って目的によって異なる
素直にシステムがエラー吐いて終了で問題ない場合
特定のエラーを検出して改善の為のログを残したい場合
止まると困るシステムの場合十分なリカバリー手段を用意して例外検出と復旧処理を行う
通常のアプリケーションにnew なんて使わないって書いてあったけど
プログラムの目的とエラーに対する必要な強度を仕分けして
全体としてどの様に例外処理を組み込むかって事だよね
876 :
デフォルトの名無しさん
2016/09/18(日) 14:08:31.95 ID:5e40+2Z7
やっぱりC++って集団で使うのには向いてないんだよね
どのC++の話してるか分からないか
877 :
デフォルトの名無しさん
2016/09/18(日) 14:09:15.23 ID:EIh/dcA1
ゲームエンジンの本には、自分でメモリプールを作っている例が、よく載っている
newをその都度呼ぶと遅いから、まとめて何十個分のメモリを確保する。
そしてその中から、今使う分だけを使う
でも、それぐらいの機能、既に誰かが、ライブラリを作っていそうなもんだが
878 :
デフォルトの名無しさん
2016/09/18(日) 14:14:46.13 ID:/A9gXhFE
boost.pool
879 :
デフォルトの名無しさん
2016/09/18(日) 14:42:48.66 ID:5e40+2Z7
もちろんメモリプールなんてたくさん出回ってるし今度標準にも入る
でもそれらの性能が十分とは限らない
880 :
デフォルトの名無しさん
2016/09/18(日) 14:43:41.47 ID:Qq7O8IvU
昔、lokiとかあったやん?
使ったこと無いからしらんけど
あれにもメモリプールなかったっけ
881 :
デフォルトの名無しさん
2016/09/18(日) 15:03:20.15 ID:vvzKkhQt
>>868 えええええええ
いつからそんなクソ仕様になったん…
例外じゃないのか
882 :
デフォルトの名無しさん
2016/09/18(日) 15:26:11.91 ID:vvzKkhQt
と思ったけどC++て全部チェック例外だっけ
newのたびにtryさせられるよりsegmentation faultのほうがマシだな
883 :
868
2016/09/18(日) 16:16:16.34 ID:xYSNtktv
>>881 勘違いさせたならすまん。
>>868 で書いた
「newが失敗した場合はNULLが返る、だからnewの後は常にNULL(ポ)を確認せよ」
っていう方が古いC++でのnewの動作ね。
古いチェックツールがそんなエラーを返してるんじゃないの? という意図。
現在はnewの失敗は例外が返るのがデフォルト動作だよな。
nothrowで例外を出さないように指示したら今でもnullptrが返るけど。
884 :
デフォルトの名無しさん
2016/09/18(日) 16:24:41.60 ID:ygUqx6Ix
>>882 C++は全てjavaでいう非チェック例外じゃないの?
885 :
デフォルトの名無しさん
2016/09/18(日) 16:45:14.01 ID:/VzCUPpk
お前らの例外話は何故いつもnewなのか
886 :
デフォルトの名無しさん
2016/09/18(日) 17:36:57.68 ID:5e40+2Z7
newにおける例外の扱いのベストプラクティスが示されていないから
887 :
デフォルトの名無しさん
2016/09/18(日) 17:37:48.57 ID:+iC0HZAY
ないものは自分で見つけんだよ
888 :
デフォルトの名無しさん
2016/09/18(日) 18:15:15.56 ID:sUrpOA8l
ひょえー
889 :
デフォルトの名無しさん
2016/09/18(日) 18:28:35.89 ID:L03d0R0a
うはー
890 :
デフォルトの名無しさん
2016/09/18(日) 19:43:10.68 ID:1yHXSEjx
>>885 newを見るとすぐtry catchで囲わないといけないと妄想してる882みたいな低能が多いからでは?
catchを見ると「近くにnewが有るはず」と脊髄反射したに相違ない
891 :
デフォルトの名無しさん
2016/09/18(日) 19:45:44.60 ID:XW30Cfu8
それよりもnullチェックってどうやるのがスマートなんだ?
使ってるvector全部をif文にぶち込んでるコード見かけて驚愕したんだが
892 :
デフォルトの名無しさん
2016/09/18(日) 20:00:16.67 ID:aEHfUxVO
vectorに挿入する前にチェックすればいい
893 :
デフォルトの名無しさん
2016/09/18(日) 20:06:12.23 ID:5e40+2Z7
一部の用途を除いてnewが失敗する可能性は考えなくていい
894 :
デフォルトの名無しさん
2016/09/18(日) 21:15:21.06 ID:sUrpOA8l
説明願います
895 :
デフォルトの名無しさん
2016/09/18(日) 21:23:31.21 ID:ORSLx8xU
VBのCSV出力が遅いんだけど
Cで書いたら速くなんの?
896 :
デフォルトの名無しさん
2016/09/19(月) 01:02:18.86 ID:aveOgqLD
むしろその手の処理はVBの方が速い
897 :
デフォルトの名無しさん
2016/09/19(月) 01:04:42.68 ID:aveOgqLD
898 :
デフォルトの名無しさん
2016/09/19(月) 12:39:37.38 ID:d/dsjAXw
>>895 文字列連結を馬鹿みたいに繰り返して遅くなってるんじゃないの
899 :
デフォルトの名無しさん
2016/09/19(月) 12:39:37.43 ID:d/dsjAXw
>>895 文字列連結を馬鹿みたいに繰り返して遅くなってるんじゃないの
900 :
デフォルトの名無しさん
2016/09/19(月) 12:51:32.58 ID:0BKQBe6K
かなり大事な事ですねw
VBとかC#で遅いからといってCやC++にしたところで劇的に速くなる保証なんかないのにな
何の言語にしようがどうしようもないか自分の組み方がおかしいかどちらか
901 :
デフォルトの名無しさん
2016/09/19(月) 13:10:11.98 ID:fA1B/38Y
>>895 ファイル出力が遅いのかテキストの組み立てが遅いのか
902 :
デフォルトの名無しさん
2016/09/19(月) 13:15:05.33 ID:3VQNeREi
VBのCSVライブラリ使ってるなら、
規格(?)に準拠するようにいろんな処理してるから
かなり遅いっぽいぞ
エスケープが要らないとかダブルクォーテーションが要らないとか
条件を限定できるなら高速化の余地もあるんでないかい
903 :
デフォルトの名無しさん
2016/09/19(月) 13:17:08.06 ID:MZBT2IFS
904 :
デフォルトの名無しさん
2016/09/19(月) 19:50:10.96 ID:urF+pqo3
むしろ同じロジックでコードを書いて比較してほしい。
905 :
デフォルトの名無しさん
2016/09/19(月) 19:55:07.34 ID:80/BHnqI
アルゴリズムの選択を誤ればJavaにすら負ける
大事なのはアルゴリズム
906 :
デフォルトの名無しさん
2016/09/19(月) 20:12:40.99 ID:sZXP+7ot
Javaで適切なアルゴリズムを使うPGと同一人物が
C++で不適切なアルゴリズムをわざわざやるかよ
同一人物が使ってどっちが優れた結果を出せるかだろ
907 :
デフォルトの名無しさん
2016/09/19(月) 21:10:21.81 ID:urF+pqo3
ここではアルゴリズムってよりライブラリ依存だな。
CSVのパースは真面目にROC準拠でやろうとすると頭が禿げるぐらい面倒くさい。
現実に扱うCSVはもっと前提条件を少なくできるだろうから、
自分で簡易版のパーサーを実装した方がいいかも。
908 :
デフォルトの名無しさん
2016/09/19(月) 22:22:17.19 ID:aveOgqLD
ROCってのが何なのかわからんが
RFC 4180なら所詮ワンパスなのでそんなに難しくない。
C#で自作したものをブビライブラリと比較したら10倍程度の速さだった。
どうせTextFieldParser使ったんだろ
909 :
デフォルトの名無しさん
2016/09/19(月) 22:40:37.56 ID:Kz778z8P
CSVなんかただの記号区切りのテキストファイルだろ。
区切ってテキスト出力すりゃええだけじゃろ
910 :
デフォルトの名無しさん
2016/09/19(月) 22:50:33.73 ID:w3ljrVli
質問者は出力について悩んでいる人に
パーサーの自作をすすめる
これがクソスレのクオリティ
911 :
デフォルトの名無しさん
2016/09/19(月) 23:03:23.99 ID:eTcqfU0K
パーサー次第で出力に差が出るだろう、そんなことも分からんのか???
912 :
デフォルトの名無しさん
2016/09/19(月) 23:41:33.03 ID:byZSyyWN
テキトーな仕様のオレオレCSVの自作を勧める奴がいまだに存在するとは。
913 :
デフォルトの名無しさん
2016/09/19(月) 23:45:11.41 ID:r/G6SK9c
1行ずつ読んでいくんじゃないのか
914 :
デフォルトの名無しさん
2016/09/19(月) 23:47:22.25 ID:pyTHmoe6
オレオレ仕様のcsvが氾濫してるから今更どうしようもない
それが問題になるようなら保存形式にcsvを用いる事自体が間違い
915 :
デフォルトの名無しさん
2016/09/19(月) 23:49:18.87 ID:r/G6SK9c
csvってカンマ区切りということ以外の仕様ってあるのか?
916 :
デフォルトの名無しさん
2016/09/20(火) 00:09:05.24 ID:Em9B638f
無い
オレオレの中でもメジャーなのに後付けでRFCが出来ただけ
917 :
デフォルトの名無しさん
2016/09/20(火) 00:30:40.31 ID:o1tJ3Pdk
>>906 普通に見たことあるけど
vectorじゃなくlist使って遅いとか
>>910 質問読めてない糞民が何言ってんだか
918 :
デフォルトの名無しさん
2016/09/20(火) 02:23:46.55 ID:E+J9y3sP
ポインタの無いC++を誰か作ってくれないかな…。
919 :
デフォルトの名無しさん
2016/09/20(火) 03:38:57.96 ID:MJf3DPDB
>>918 C++なら、あんまりポインタ意識しなくてもできるでしょ。
ライブラリが吸収してくれるんだし。
920 :
デフォルトの名無しさん
2016/09/20(火) 06:57:10.89 ID:83nQEiQC
> vectorじゃなくlist使って遅いとか
Javaしか使えないやつの付け焼き刃か
921 :
デフォルトの名無しさん
2016/09/20(火) 07:29:03.31 ID:l/rjpK7G
>>915 区切り文字(カンマと改行)をデータとして含む場合にどうするかについての仕様がある。
それが面倒くさいなら最初からタブ区切りテキストにしておけと思うが。
922 :
デフォルトの名無しさん
2016/09/20(火) 07:41:11.11 ID:h/QlA5En
ここで休んでいくか
923 :
デフォルトの名無しさん
2016/09/20(火) 08:17:39.33 ID:yT+pR0RD
CSVは汎用性とか規格準拠とか考え始めると面倒らしいね。
カーニハンとパイクの有名な『プログラミング作法』第4章でも
素朴なプロトタイプから汎用ライブラリに磨き上げていくネタに使われてる。
引用符でくくられた文字列フィールドに含まれるカンマを読み飛ばすとか、
文字列に引用符文字を含ませる場合のエスケープ処理、
フィールド先頭以外にいきなり出てきた引用符文字はどう扱うべきか、
そういった問題。
結局、仕様のあいまいな部分は、データをExcelに処理させて
どう解釈するかを観察し、それに動作を合わせるという妥協策とか。
面白いけど奥深い(面倒くさい)話が載ってる。
924 :
デフォルトの名無しさん
2016/09/20(火) 08:23:33.04 ID:pi/Zyw6M
面倒くさがりの俺はカンマのあとのスペースの扱いをどうするか考えるのをやめた
925 :
デフォルトの名無しさん
2016/09/20(火) 08:30:50.00 ID:nnGYYj6O
実際問題、業務で扱うCSVがRFCにそってた試しがない
データ中に,とダブルクォーテーションがないこと前提で全フィールド囲みなしとか
データの改行かどうかはフィールド数から判断しろとか
926 :
デフォルトの名無しさん
2016/09/20(火) 08:34:47.14 ID:9l0NUqqb
空白は有効な値として取り込みマズければ前処理でなんとかしてくれというのがかんたん
927 :
デフォルトの名無しさん
2016/09/20(火) 08:49:26.68 ID:pi/Zyw6M
>>926 空白のあとの引用符出現とか考えると面倒
928 :
デフォルトの名無しさん
2016/09/20(火) 15:15:36.96 ID:sn1HJBVo
裏でExcel立ち上げてそいつにCSV読み込ませる
ってのがスマートなやり方かもしれん。
929 :
デフォルトの名無しさん
2016/09/20(火) 16:11:59.45 ID:83nQEiQC
手作業でか? COM使えよ
930 :
デフォルトの名無しさん
2016/09/20(火) 16:34:35.12 ID:83nQEiQC
ところでさ
bitsetって複数ビットへのアクセスってできたっけか?
00001111 から
0001 のprvalueを得たり、
00000000 を
00011100 にするのに
bs(4,2) = 0b111; みたいなこと
931 :
デフォルトの名無しさん
2016/09/20(火) 18:42:56.25 ID:yRlSWmtK
今すぐN4606をダウンロードして20.9を読め
932 :
デフォルトの名無しさん
2016/09/20(火) 19:03:07.64 ID:ChLW8Xs7
C++標準についてですが
よく言われる「ゼロオーバーヘッド原則」はどのように守られているのでしょうか?
たとえば委員会はこの原則を明文化して守っていますか?
または原則が委員の思想や感情だけによって守られていますか?
今後のアップデートにより破られることはありますか?
D&Eには「思想も進化する」というような文が見られますが設計思想の変更プロセスはマニュアル化されているのでしょうか?
933 :
デフォルトの名無しさん
2016/09/20(火) 20:52:23.19 ID:DFwXwRkO
ゼロオーバーヘッドの意味するところはなんなのか知らんが、
仮想関数使った時点で間接参照になって現代のキャッシュマシンには厳しいオーバーヘッドになっていると思いますけどね。
934 :
デフォルトの名無しさん
2016/09/20(火) 20:54:50.75 ID:ChLW8Xs7
たぶんあなたは「ゼロオーバーヘッド原則」を何かわかっていないですね。
とにかく標準規格の委員会の設計方針のルールをしりたいのです
935 :
デフォルトの名無しさん
2016/09/20(火) 20:58:56.89 ID:k+TyjvZt
キタ━━━━(゚∀゚)━━━━!!
936 :
デフォルトの名無しさん
2016/09/20(火) 21:04:19.73 ID:obZzfy4A
そりゃ原則なんだから、原則守られるだろう。
原則Goto文が使われる事は絶対無いのと同じだ。
937 :
デフォルトの名無しさん
2016/09/20(火) 21:10:11.42 ID:3ENBAG3F
てかここで聞く質問じゃないだろ。直接委員会にメール送れよ。
938 :
デフォルトの名無しさん
2016/09/20(火) 21:12:30.36 ID:DFwXwRkO
>>937 知らないなら答えないでください
とかいいだすぞwwwwwww
939 :
デフォルトの名無しさん
2016/09/20(火) 21:16:42.79 ID:tBN6CcRw
よし教えてやろう
その言語機能を使わない人にとって(マシン語レベルで)余分な命令が生成されないこと
ただしそれは書いたコードに対する局所的なもので
スタートアップ時の処理のオーバーヘッドやワーキングセットの肥大化によるキャッシュヒット率低下ついては触れないのが常
940 :
デフォルトの名無しさん
2016/09/20(火) 21:17:17.91 ID:5hgqMPTY
あかんやつか
941 :
デフォルトの名無しさん
2016/09/20(火) 21:57:22.02 ID:83nQEiQC
942 :
デフォルトの名無しさん
2016/09/20(火) 21:59:44.26 ID:26fGody7
>>932 明文化されたルールはないんじゃない?ルールにするメリットないからやらないだろうし。
943 :
デフォルトの名無しさん
2016/09/20(火) 22:01:25.46 ID:83nQEiQC
ヘリコプターがシアトル付近を飛行中に、ナビゲーション・システムと通信系が故障してしまい、現在位置を把握することができなくなってしまった。
機長は、近くに見えた高いビルにヘリコプターを寄せ、周りを旋回しながら、副操縦士に「私は今どこにいますか?」と大きな紙に書かせ、それをビルの中の人間に見せるように命じた。
ビルの中の人間は、大きな紙に「あなたは今、ヘリコプターの中です」と書いて答えてきた。機長はにっこりと笑って手を振り、副操縦士に言った。
「あれはマイクロソフトの本社ビルだ。ここから東へ向かえば空港があるはずだ」
「どうしてマイクロソフトの本社ビルだと分かったんです?」
「奴らはいつも、技術的には完璧だが、まったく役に立たない答えしか寄こさないからさ」
944 :
デフォルトの名無しさん
2016/09/20(火) 22:15:01.88 ID:ChLW8Xs7
945 :
デフォルトの名無しさん
2016/09/20(火) 22:16:07.34 ID:Em9B638f
>>932 そんな自縄自縛ルールを明示したらjavaみたいになってしまうだろ。
946 :
デフォルトの名無しさん
2016/09/20(火) 22:26:54.29 ID:A2psZARz
947 :
デフォルトの名無しさん
2016/09/20(火) 22:51:13.68 ID:9l0NUqqb
>>939 そんな機種依存の最適化を気にするのも広い意味でオーバーヘッドや
948 :
デフォルトの名無しさん
2016/09/20(火) 22:54:34.83 ID:wtHZC2ze
>>930 bitsetは改良したらもっと使われると思うんだけどなあ
boostみたいにサイズを動的に変えられるようにするのとバイト列として取り出せるようにして欲しい
949 :
デフォルトの名無しさん
2016/09/20(火) 23:04:57.83 ID:2u6BtGm8
950 :
デフォルトの名無しさん
2016/09/20(火) 23:45:29.10 ID:g6KAU3qV
ゼロヘア・アラウンド・オーバーヘッドの略
951 :
デフォルトの名無しさん
2016/09/21(水) 01:01:45.84 ID:vGo10QGu
952 :
デフォルトの名無しさん
2016/09/21(水) 06:53:20.55 ID:t4AsfpX5
>>948 サイズを動的に変えるとなるとメモリーアロケーションが必要になるからなぁ
上限を 32bit/64bit に制限する手もあるけど中途半端感が拭えないし...
そもそも普通にビット演算で事足りるし
953 :
デフォルトの名無しさん
2016/09/21(水) 09:03:47.17 ID:K2D2Rq8+
>>932 は例の人物の再来って感じだなぁ。
前スレッド終盤から、このスレッド序盤で活動した人の口調(文体)に似ている。
自分が理解しているレベルにぴったり適合し、自分が理解できる説明をされないと
「そんなことは聞いていません」「もっと実のある回答をお願いします」などと
慇懃無礼な態度で読み手の神経を逆撫でする質問者がいたんだよ。
ちなみに
>>932 の質問には答えられません。
954 :
デフォルトの名無しさん
2016/09/21(水) 10:48:52.21 ID:7D4j/v4w
シュトラウプ(うろ覚え)さんに直接メールすれば答えてくれそう。
そんな英語力は無いんだろうけど。
955 :
デフォルトの名無しさん
2016/09/21(水) 14:04:05.66 ID:6wq1WTZb
956 :
デフォルトの名無しさん
2016/09/21(水) 20:33:55.57 ID:mzpKxj3U
>>953 神経を逆撫でをしたレスには見えたが
回答者がアスペな回答をしたからだったと記憶しているが。
お前、その時の回答者か?
957 :
デフォルトの名無しさん
2016/09/21(水) 20:59:57.83 ID:6wq1WTZb
スルー検定中
958 :
デフォルトの名無しさん
2016/09/21(水) 21:04:36.22 ID:49I69gX0
ここもワッチョイ入れた方がいいと思うよ
C#の初心者スレとか酷かったのが大分良くなったし
959 :
デフォルトの名無しさん
2016/09/21(水) 23:57:14.58 ID:juClqO0A
960 :
デフォルトの名無しさん
2016/09/22(木) 00:08:42.02 ID:G5ENlyOZ
諸事情と成り行きでコンストラクタがこんな風になったんだけど糞コードですか?
hoge(bool type) : base(type ? static_cast<base>(new a) : static_cast<base>(new b)){}
961 :
デフォルトの名無しさん
2016/09/22(木) 00:19:01.74 ID:RtaHiGLM
>>960 ポインタがstatic_cast<base>できるのか?
962 :
デフォルトの名無しさん
2016/09/22(木) 00:21:49.80 ID:G5ENlyOZ
>>961 ミス
正しくはstatic_cast<base*>
963 :
デフォルトの名無しさん
2016/09/22(木) 00:46:02.45 ID:Pt+3vwTk
実装はどうでもいいが
boolを取ってそれによってインスタンスの性質が(大きく?)変わるコンストラクタというのが
利用者視点からの一般論では糞っぽい設計だな
964 :
デフォルトの名無しさん
2016/09/22(木) 00:54:34.74 ID:6AgJgQbd
static_castしてる意味が解らん
965 :
デフォルトの名無しさん
2016/09/22(木) 01:00:01.33 ID:G5ENlyOZ
>>964 三項演算子だから型を合わせないといけない
966 :
デフォルトの名無しさん
2016/09/22(木) 01:44:09.82 ID:eab4XCGG
hogeにcreate_aとcreate_bみたいなstaticメソッド作って、ユーザーコード側で参考演算子書かせりゃいいのに
馬鹿すぎてそんなことも思いつかないなら、今すぐコプログラマーやめろ(´;ω;`)
967 :
デフォルトの名無しさん
2016/09/22(木) 01:59:14.64 ID:sh3eyHdy
きっと何かのテンプレートか何かに渡すとかで
コンストラクタがあの形じゃなきゃダメな制約が云々でしょ
968 :
デフォルトの名無しさん
2016/09/22(木) 02:01:04.64 ID:G5ENlyOZ
>>966 これが全く良くないのは分かってるがやりたくなさすぎる仕事だったから横着しすぎた感はある
969 :
デフォルトの名無しさん
2016/09/22(木) 03:01:20.41 ID:7BuONNwf
970 :
デフォルトの名無しさん
2016/09/22(木) 04:45:30.88 ID:uum3cLOt
new bって初心者っぽい
971 :
デフォルトの名無しさん
2016/09/22(木) 05:28:33.71 ID:gyLxLatL
972 :
デフォルトの名無しさん
2016/09/22(木) 07:30:27.01 ID:RG/iP2c6
ファクトリーメソッドが要るとみんなは気付いているが
政治的問題でなし崩しになっていると見た
973 :
デフォルトの名無しさん
2016/09/22(木) 07:40:14.43 ID:vdVnk2cw
ファクトリーメソッドでいい引数の渡し方ってある?っていうか引数の設計?
パラメータばっか増えてうまくまとめられない。
974 :
デフォルトの名無しさん
2016/09/22(木) 14:13:51.56 ID:7wkfE+LH
>>973 条件がわからんけどbuilderパターン使うとか
975 :
デフォルトの名無しさん
2016/09/22(木) 14:39:48.97 ID:sh3eyHdy
俺も条件がわからんが
テンプレートのパーフェクトフォワードが使えるかもしれないね
976 :
デフォルトの名無しさん
2016/09/22(木) 23:49:28.05 ID:vdVnk2cw
サンキュー。
977 :
デフォルトの名無しさん
2016/09/23(金) 02:38:31.47 ID:FrbFFvPo
初めから読んでみたんですが、
このスレ恐い人もいますね。
978 :
デフォルトの名無しさん
2016/09/23(金) 13:12:24.83 ID:z2QCychJ
おっかない人が鉞持って茂みに潜んでることもあるので覚悟して臨んで
979 :
デフォルトの名無しさん
2016/09/23(金) 13:37:45.42 ID:ircl/elV
C++やる人は怖いのですね
980 :
デフォルトの名無しさん
2016/09/23(金) 15:04:30.06 ID:z2QCychJ
C++をやったから怖くなったのか、それとも怖い人はC++に魅入られるのか、それともその両方なのか、それはまだ判りません
981 :
デフォルトの名無しさん
2016/09/23(金) 16:12:15.84 ID:1AYxo37g
std::array<int,3> ia = {1,2,3};
なんでいちいちサイズをしていなきゃいけないの?
コンパイラは右式からサイズを知れるはずだよね
982 :
デフォルトの名無しさん
2016/09/23(金) 16:43:56.15 ID:DI5cYQNa
arrayがクラステンプレートだからだよ
テンプレート実引数を推定できるのは関数テンプレートだけ
983 :
デフォルトの名無しさん
2016/09/23(金) 16:50:29.51 ID:Z6rdhOh4
もともと生配列なんて狭いスコープ内に閉じた使い方しかしてなかったし、あえてstd::array に変える気が起こらん。
984 :
デフォルトの名無しさん
2016/09/23(金) 16:56:36.61 ID:SmlWzTAW
arrayってoparator[]が境界チェック無いとか困る~
985 :
デフォルトの名無しさん
2016/09/23(金) 17:02:31.08 ID:1AYxo37g
>>982 そう・・・・
使い物にならんな、標準なんかにするなよw
986 :
デフォルトの名無しさん
2016/09/23(金) 17:04:21.59 ID:k0FhbiHl
サイズとか取れて便利じゃん。俺ベクタしか使ってないけど。
987 :
デフォルトの名無しさん
2016/09/23(金) 18:19:30.71 ID:z2QCychJ
"std::array<int> ia = {1,2,3}" という文字列を読んで、括弧内の要素数を数えて
std::array<int,3> ia = {1,2,3}として書き換えてくれるテンプレートメタプログラミングすればいんじゃね?
988 :
デフォルトの名無しさん
2016/09/23(金) 18:28:49.47 ID:Z6rdhOh4
template<std::size_t N> の文脈の中でだったら不要だしな
989 :
デフォルトの名無しさん
2016/09/23(金) 18:41:44.36 ID:jjS354wW
配列をstd::arrayに置き換えなくてはならなくなった。
と被害妄想してグチを2chで垂れるのは間違いなく人生負け組
990 :
デフォルトの名無しさん
2016/09/23(金) 19:45:39.19 ID:k/GEXWfz
991 :
デフォルトの名無しさん
2016/09/23(金) 20:07:45.67 ID:1AYxo37g
ベタに配列でよくね?
992 :
デフォルトの名無しさん
2016/09/23(金) 20:08:53.66 ID:1AYxo37g
993 :
デフォルトの名無しさん
2016/09/23(金) 20:23:26.18 ID:Z6rdhOh4
algorithmにbeginとendを渡すときでも生配列でいいしな
994 :
デフォルトの名無しさん
2016/09/23(金) 20:26:55.96 ID:x7wdola9
シンタックスシュガー
995 :
デフォルトの名無しさん
2016/09/23(金) 21:01:07.45 ID:FB5yu9xq
サイズ欲しい時に変数用意したり、演算したりするのが面倒だし、余分な処理になるからじゃないの?
std::arrayはサイズ変数を保持していないし、演算もしていないし
at()使えば範囲チェックしてくれるし、生配列にも直接アクセスできるし
凄く便利だと思うけどな
996 :
デフォルトの名無しさん
2016/09/23(金) 21:20:41.97 ID:kJ5RCJcw
超薄型コンドームがでて、感覚上生挿入と変わらないことが統計学的に証明されていても、気持ちの問題だからと生を求める人がいる
997 :
デフォルトの名無しさん
2016/09/23(金) 21:39:11.65 ID:nEqelPbM
はい
998 :
デフォルトの名無しさん
2016/09/23(金) 21:39:50.82 ID:tPpdE/S0
難しいなぁ
999 :
デフォルトの名無しさん
2016/09/23(金) 21:49:35.34 ID:pyQwxOFM
arrayのメリット:コピーができる
1000 :
デフォルトの名無しさん
2016/09/23(金) 21:59:45.45 ID:x7wdola9
std::copy
1001 :
1001
Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
life time: 41日 10時間 35分 0秒
1002 :
1002
Over 1000 Thread