1 名前:デフォルトの名無しさん (ワッチョイ f37a-QmV0) mailto:sage [2017/03/31(金) 08:47:49.65 ID:UkLjKqcm0.net] 次スレを立てる時は本文の1行目に以下を追加して下さい !extend:on:vvvvv:1000:512 C++に関する質問やら話題やらはこちらへどうぞ。 ただし質問の前にはFAQに一通り目を通してください。 IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。 前スレ C++相談室 part129 echo.2ch.net/test/read.cgi/tech/1483940967/ このスレもよろしくね。 【初心者歓迎】C/C++室 Ver.100【環境依存OK】 echo.2ch.net/test/read.cgi/tech/1478440682/ ■長いソースを貼るときはここへ。■ codepad.org/ https://ideone.com/ [C++ FAQ] https://isocpp.org/wiki/faq/ www.bohyoh.com/CandCPP/FAQ/ (日本語) VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
369 名前:デフォルトの名無しさん [2017/05/23(火) 07:54:11.86 ID:10krpFBv0.net] >>364 ?
370 名前:デフォルトの名無しさん mailto:sage [2017/05/23(火) 08:12:47.34 ID:I6yYOIGbr.net] >>364 ほれ namespace himitsu { enum more {aaa}; } using more = himitsu::more; auto e = more::aaa;
371 名前:デフォルトの名無しさん mailto:sage [2017/05/23(火) 09:32:50.64 ID:J4YcG+3k0.net] 今ならenum classやろ enum class more{aaa};
372 名前:デフォルトの名無しさん [2017/05/23(火) 22:40:27.44 ID:GqYsAhEPp.net] >enumの中身を漏れなく(イテレート)する方法はないの?
373 名前:デフォルトの名無しさん mailto:sage [2017/05/24(水) 07:25:20.05 ID:OFlbMgowM.net] >>368 ちょっとはググれカス https://zenmai.wordpress.com/2009/11/11/enum%E3%81%AE%E3%82%A2%E3%82%A4%E3%83%86%E3%83%A0%E3%82%92foreach%E3%81%A7%E4%BD%BF%E3%81%86%E3%80%8Cc/ c# foreach まで入力したら enum が補完されるぐらいだからそう言うことをやりたい奴は多いのかも
374 名前:デフォルトの名無しさん mailto:sage [2017/05/24(水) 08:14:20.55 ID:Uh0d2nCgr.net] 安定のドコグロMM
375 名前:デフォルトの名無しさん mailto:sage [2017/05/24(水) 14:16:08.43 ID:K4LsGUxm0.net] Cの時代からenumは未だに慣れない
376 名前:デフォルトの名無しさん mailto:sage [2017/05/24(水) 22:12:49.22 ID:Uh0d2nCgr.net] むしろCでintや#defineだらけのenumを使わないコードがずっと疑問だった
377 名前:デフォルトの名無しさん mailto:sage [2017/05/24(水) 22:17:53.05 ID:QKoHZUhX0.net] enumに文字列定義でけんの?
378 名前:デフォルトの名無しさん [2017/05/24(水) 22:57:19.03 ID:RrwKXt6vM.net] >>369 何故C#?
379 名前:デフォルトの名無しさん mailto:sage [2017/05/25(木) 05:00:36.62 ID:sUw+9KVjM.net] >>374 すまん寝ぼけてた C++ は無理そうだな Range-based for で何とかしてくれると嬉しいんだけどね
380 名前:片山博文MZ mailto:age [2017/05/26(金) 20:36:20.09 ID:jKduUXcUd.net] 言語ではenumの列挙はサポートされてないから、そのまま必要なデータを手書きで記述するか、 プリプロセッサマクロと#includeで汚く書くしかないね。
381 名前:片山博文MZ mailto:age [2017/05/26(金) 20:41:12.76 ID:jKduUXcUd.net] DEFINE_HAGE(baka) DEFINE_HAGE(boke) ... こういった内容のテキストファイルを用意し、別のソースでマクロDEFINE_HAGEをテキトーに定義して#includeで 読み込むという素人お断りのテクニックがある。
382 名前:デフォルトの名無しさん mailto:sage [2017/05/26(金) 23:46:38.90 ID:Fq1j41HH0.net] i.imgur.com/VFje2sYh.jpg
383 名前:片山博文MZ mailto:age [2017/05/27(土) 01:04:47.55 ID:uGocpGwpd.net] 生き残ってますか、人間ども?
384 名前:デフォルトの名無しさん mailto:sage [2017/05/27(土) 02:22:34.43 ID:rhNlL3QR0.net] キミも相変わらずだねw
385 名前:片山博文MZ mailto:age [2017/05/27(土) 02:29:51.07 ID:uGocpGwpd.net] 前日はrosのfreetypeを2.8に更新するパッチを作って人ひとり助けた。
386 名前:片山博文MZ mailto:age [2017/05/27(土) 02:32:13.02 ID:uGocpGwpd.net] 1日に百人助けられる頃には大金持ちになっているだろう。
387 名前:デフォルトの名無しさん mailto:sage [2017/05/27(土) 02:53:52.81 ID:rhNlL3QR0.net] 百日に一人助けて大金持ちになるような仕事をしなければだめだよ
388 名前:デフォルトの名無しさん mailto:sage [2017/05/27(土) 17:46:08.41 ID:91x9sFiGM.net] >>376 enumの列挙って何? baka, boke, じゃあかんの?
389 名前:デフォルトの名無しさん mailto:sage [2017/05/27(土) 18:09:13.93 ID:HaHIN1I50.net] for ( auto i : enum_class )
390 名前:デフォルトの名無しさん mailto:sage [2017/05/27(土) 20:21:56.11 ID:JH3215h60.net] マクロで定義と同時に配列に詰め込めばいいんじゃないか
391 名前:デフォルトの名無しさん mailto:sage [2017/05/27(土) 23:42:50.86 ID:Dc3jlyQ70.net] enum定数はenum定数やし、 C#のIEnumerator的なブツはC++でも書けるし ここでのenum定数の列挙ができるかできないかというのは 糖衣構文によるサポートの有無の違いでしかないと言える、 希ガス、
392 名前:デフォルトの名無しさん [2017/05/28(日) 08:54:39.55 ID:2Pirtyfh0.net] 最近Python使い始めたけどすげー書きやすいわこれ 感動を覚えるレベル やはりC++は糞
393 名前:デフォルトの名無しさん mailto:sage [2017/05/28(日) 10:29:47.18 ID:7TA+N7360.net] >>387 > C#のIEnumerator的なブツはC++でも書けるし 書いてみてよ
394 名前:デフォルトの名無しさん [2017/05/28(日) 11:07:21.67 ID:OH0o0+fyd.net] enumの要素数とか最大値最小値って取れる?
395 名前:デフォルトの名無しさん mailto:sage [2017/05/28(日) 12:05:13.52 ID:zOc9NmUD0.net] >>389 なんか期待値が高まり杉な
396 名前:気がするが、 IEnumeratorについてはReset()とMoveNext()とCurrent()を宣言して、派生クラスで実装するだけにょ? 列挙するデータは派生クラス(具象クラス)側に>>386 式の配列データを受け取るようなコンストラクターでも設ければ良いし、 もしC#のEnum.GetValues()とかEnum.GetNames()みたいなやつが欲しくなってもstd::mapとか使えば動くものがギリ作れるだろJK なお上記のようなやり方がC#と比べようが無いぐらい面倒臭いという批判は >糖衣構文によるサポートの有無の違いでしかないと言える、(>>387 ) で予防炭、 [] [ここ壊れてます]
397 名前:デフォルトの名無しさん mailto:sage [2017/05/28(日) 12:09:37.75 ID:ZydFuCAS0.net] >>377 Eigenみたいな?
398 名前:デフォルトの名無しさん mailto:sage [2017/05/28(日) 12:30:50.04 ID:5K6OvT18M.net] >>391 > IEnumeratorについてはReset()とMoveNext()とCurrent()を宣言して、派生クラスで実装するだけにょ? 糖衣構文に期待しすぎ w
399 名前:デフォルトの名無しさん mailto:sage [2017/05/28(日) 13:42:05.12 ID:ermVQ6O80.net] 糖衣構文様に対して「違いでしかない」とか頭が高いぞ
400 名前:デフォルトの名無しさん mailto:sage [2017/05/28(日) 13:43:10.88 ID:ICysod8PH.net] >>390 俺はいつも enum class Hoge { None = 0, Fuga, Foo, Woo, Size } ってしてる
401 名前:デフォルトの名無しさん mailto:sage [2017/06/01(木) 02:15:55.12 ID:gpnYGtb7H.net] すみません、どなたか教えてください 独自のイテレータを実装するにはどうしたらいいのでしょうか? ググってみたら、c++17でstd::iteratorがdeprecateになったらしいのですが、 独自のイテレータを作るときにstd::iteratorを継承するのはbad practiceってことになるのでしょうか?
402 名前:デフォルトの名無しさん mailto:sage [2017/06/01(木) 06:36:46.84 ID:hk9X98Pv0.net] >>396 boost::iterator_adoptor
403 名前:デフォルトの名無しさん mailto:sage [2017/06/01(木) 06:54:03.34 ID:YbQp1MN1M.net] >>396 ググってるならこの手のページもヒットすると思うが... faithandbrave.hateblo.jp/entry/2016/09/12/145923 標準ライブラリの範囲では、イテレータは最初から最後まで自分で定義することになります。
404 名前:デフォルトの名無しさん mailto:sage [2017/06/01(木) 08:18:50.46 ID:3mGWxYm60.net] イテレータの要件さえ満たしておけば実装はなんでもいいのでは
405 名前:デフォルトの名無しさん mailto:sage [2017/06/01(木) 08:23:03.98 ID:97W8lGpzr.net] >標準ライブラリの範囲では、イテレータは最初から最後まで自分で定義することになります 高橋昌は規格のドラフトも読まないほどモウロクしたのだろうか?
406 名前:デフォルトの名無しさん mailto:sage [2017/06/01(木) 10:32:18.97 ID:WGT9ssZa0.net] 昌?お前も相当モウロクしてるぞ
407 名前:デフォルトの名無しさん mailto:sage [2017/06/01(木) 11:36:05.93 ID:KuXsowWKd.net] ワロタw
408 名前:デフォルトの名無しさん mailto:sage [2017/06/01(木) 12:37:41.54 ID:97W8lGpzr.net] そういえば「日」が三つだった気がしてきた 俺もモウロクしたようだ
409 名前:デフォルトの名無しさん mailto:sage [2017/06/01(木) 12:42:26.29 ID:3mGWxYm60.net] 結局何が正解なんだよ
410 名前:デフォルトの名無しさん mailto:sage [2017/06/01(木) 12:45:46.15 ID:97W8lGpzr.net] >>369 に対してはN4659のAnnex D(D13.1)が正解 C++20で使えなくなる可能性があることを理解した上で使えということ
411 名前:デフォルトの名無しさん mailto:sage [2017/06/01(木) 14:18:15.64 ID:gpnYGtb7H.net] >>398 えっと、何て言えばいいのかな? 最初から最後まで自分で定義するとして、std::iteratorをそっくりそのまま書き写したmy_iteratorみたいなのを継承する、 あるいは、それと同等な方法でイテレータを定義するのは問題ないのかな、と思って質問しました。 自分で定義したとしても、std::iteratorに付随するもの、たとえばiterator_categoryやvalue_typeを使えば、 それは廃止されるstd::iteratorを使ってるのと大差ないですよね? そういうのはいいのかな?と思って
412 名前:デフォルトの名無しさん mailto:sage [2017/06/01(木) 15:08:52.32 ID:HHU/Lqsma.net] >>406 はい問題ないです むしろstd::iteratorはイテレータを自作するためのただのヘルパーであって、 要求される型や関数を持っていればイテレータを作るために特定のクラスを継承しなきゃいけないとかはないです
413 名前:デフォルトの名無しさん (スプッッ Sd03-RGMd) [2017/06/09(金) 13:26:36.03 ID:kptJBH71d.net] int hoge={1,2,3,}; 配列末尾のカンマは許されてますか?
414 名前:デフォルトの名無しさん (ワッチョイ 0baa-BUW4) mailto:sage [2017/06/09(金) 18:17:06.50 ID:rw1qC18c0.net] paiza.IO, codepad などに、ブラウザで書き込んで、確かめれば?
415 名前:デフォルトの名無しさん (スプッッ Sd03-RGMd) [2017/06/09(金) 18:38:38.05 ID:kptJBH71d.net] 確かめてもその環境では出来ると言う事しかわからないので
416 名前:デフォルトの名無しさん (ワッチョイ 5be4-7qWT) mailto:sage [2017/06/09(金) 18:41:26.39 ID:xFMqJagR0.net] コンパイラの実装が全てにおいて正しい
417 名前:デフォルトの名無しさん (ワッチョイ 7de3-OlK+) [2017/06/09(金) 19:06:37.15 ID:wCNNb6AH0.net] 自分が持ってる本では配列末尾に全てカンマがありますよ 許されてるはず!
418 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd43-QXxp) mailto:sage [2017/06/09(金) 19:49:56.35 ID:qv1T8kMNd.net] >>408 https://cpprefjp.github.io/lang/cpp11/trailing_comma_following_enumerator_list.html
419 名前:デフォルトの名無しさん (ワッチョイ 0baa-BUW4) mailto:sage [2017/06/09(金) 19:51:04.81 ID:rw1qC18c0.net] 最後に余計なカンマが付いているのだから、普通はコンパイルエラーになるはずだろ それがエラーにならないのなら、その構文は正しい
420 名前:デフォルトの名無しさん (スプッッ Sd03-RGMd) [2017/06/09(金) 20:01:26.03 ID:kptJBH71d.net] enumができるのはとっくに知ってます >>414 その環境でエラーにならない事がわかるだけなので意味ないです
421 名前:デフォルトの名無しさん (ワッチョイ 239f-B5qv) mailto:sage [2017/06/09(金) 20:23:58.14 ID:sC6dNq1X0.net] >>408 時代による 大昔はダメ
422 名前:デフォルトの名無しさん (オッペケ Sr71-LgKm) mailto:sage [2017/06/09(金) 20:40:16.86 ID:a4wVaQJCr.net] >>415 規格の8.5p1を読むか、 C++14の前後のN3797(8.5p1)とN4659(11.6p1)の内容から規格を推察するしかない
423 名前:デフォルトの名無しさん (オッペケ Sr71-LgKm) mailto:sage [2017/06/09(金) 21:34:47.00 ID:z6XGzBger.net] そういえば>>408 のコードにはどこにも配列が登場しないな 一行目はフェイクなのだろうか
424 名前:デフォルトの名無しさん (ワッチョイ 23af-lnJR) mailto:sage [2017/06/09(金) 23:23:34.86 ID:1XB8pDxy0.net] >>408 n4659によるとあり
425 名前:デフォルトの名無しさん (ワッチョイ e511-AY/e) mailto:sage [2017/06/10(土) 09:38:34.51 ID:0q4Mq4Kr0.net] で、結局hogeに何が格納されるの?
426 名前:デフォルトの名無しさん (ドコグロ MM13-W6lL) mailto:sage [2017/06/10(土) 12:33:50.86 ID:6tSezeKAM.net] >>414 正しい構文はエラーにならない けど エラーにならないからと言って正しい構文とは限らん
427 名前:デフォルトの名無しさん (ワッチョイ 956f-ujiq) [2017/06/10(土) 13:30:36.94 ID:gXoQdix00.net] 規格的にはどうなのか調べる気にもならないけど Cでも80年台の終わりくらいには俺の知ってる全てのコンパイラで最後のカンマ許されるようになってたと思う 今C/C++でエラーにするコンパイラなんてあるのかね? もしあるならそんなコンパイラは色々ヤバいから使わないほうがいい
428 名前:デフォルトの名無しさん (ワッチョイ 23af-lnJR) mailto:sage [2017/06/10(土) 13:43:34.09 ID:WtrsYPXN0.net] だから規格的にもありだって
429 名前:デフォルトの名無しさん (ワッチョイ 0be3-yTT2) mailto:sage [2017/06/10(土) 13:44:18.36 ID:WN3QcUIY0.net] 列挙部分をスクリプトか何かで生成する時に、 ちょっと楽ちんだなと思った事はある
430 名前:デフォルトの名無しさん (ワッチョイ 85e2-sCoW) [2017/06/10(土) 13:50:38.86 ID:QncEdRe90.net] カニハン第二版にも、要素末尾後ろのカンマは合法て書いてあったような。 まさにスクリプティング時の便宜を図るため。 ただ、C89とかだとenumだけは許されてなかった気が。
431 名前:デフォルトの名無しさん (ワッチョイ 23aa-D9zB) mailto:sage [2017/06/10(土) 18:16:29.78 ID:HZN1Em+70.net] 「規定クラス」とかいかにも公式に定義されてるっぽい言葉を使いながら 抽象化だよわかるだろ、とか 省略だよわかるだろ、とか
432 名前:デフォルトの名無しさん (ワッチョイ 0baa-BUW4) mailto:sage [2017/06/10(土) 19:06:50.38 ID:xSl9wCDP0.net] 規格と簡単に言うけど、日本の産業界には言語規格を知っている人が、そもそもいない。 MISRA-C の日本の委員会の人でも、規格は知らないから、 欧州に問い合わせながら、本を書いたらしい 日本の産業界から、そうそうたるメンバーを集めても、規格は謎だらけ 日本では規格に詳しいのは、C++ 標準化委員会の、 ドワンゴ江添亮、επιστημη(エピステーメー)ぐらいだろ
433 名前:デフォルトの名無しさん (ワッチョイ 2311-W6lL) mailto:sage [2017/06/10(土) 19:17:08.33 ID:1OFjIP+40.net] >>426 誤爆ってるぞ... どこの誤爆かもわかるけど w
434 名前:デフォルトの名無しさん (ワントンキン MMa3-iq9z) mailto:sage [2017/06/10(土) 19:36:14.26 ID:vzLlMkbRM.net] >>427 エピスは全然詳しくないだろ…
435 名前:デフォルトの名無しさん (アウアウカー Sae1-lnJR) mailto:sage [2017/06/10(土) 19:46:32.90 ID:b/uhZ0uFa.net] >>427 ドラフトがネットでタダで手に入るんだから誰でも詳しくなれるだろ 金払えば規格も買えるんだし 標準化委員会にいないと詳しいとは言えないのか?
436 名前:デフォルトの名無しさん (ワッチョイ 0baa-BUW4) mailto:sage [2017/06/10(土) 20:03:52.30 ID:xSl9wCDP0.net] 規格は、JISなどが翻訳しただけで、翻訳者には意味は分からない。 規格から、その条文に合った例題を、誰も作れない だから、MISRA-C の日本委員会では、その条文を説明するための、 例題を作っては、欧州に問い合わせて、間違いが無いかどうかを確かめている 文章一つでも、解釈の仕方が一杯あるから、例題が無いと説明できない 法律の民法などと同じ。 TAC、伊藤塾など各社が、法律を解釈する受験本を、たくさん出しているだろ。 最高裁の判決を載せて、条文がどう解釈されたか、書いているのと同じ 規格だけがあって、それを読んでも、どうにもならない。 MISRA-C みたいに産業界から、数十人が集まって議論しても、条文の意図が分からない
437 名前:デフォルトの名無しさん (ワッチョイ 2311-W6lL) mailto:sage [2017/06/10(土) 20:32:33.27 ID:1OFjIP+40.net] >>431 意図がわからない条文ってどれ? ちょっと具体的にあげてみようか
438 名前:デフォルトの名無しさん (オッペケ Sr71-LgKm) mailto:sage [2017/06/10(土) 20:40:48.55 ID:yn1b1oYyr.net] mainの戻りのvoidが規格違反かどうかについて「otherwise」という表現の解釈で議論が始まってしまうレベルのウンコ文書 もとの英文が宜しくない
439 名前:デフォルトの名無しさん (ブーイモ MM43-ww+S) mailto:sage [2017/06/10(土) 21:35:35.18 ID:657mt0+/M.net] >>427 俺ですら自腹で買った規格書持ってるけど何言ってんの?
440 名前:デフォルトの名無しさん (オッペケ Sr71-LgKm) mailto:sage [2017/06/10(土) 21:51:00.66 ID:yn1b1oYyr.net] さすがに>>430-431 の後にこのレスは 日本語読解力に問題があると言わざるを得ない
441 名前:デフォルトの名無しさん (アウアウカー Sae1-lnJR) mailto:sage [2017/06/10(土) 22:22:04.21 ID:b/uhZ0uFa.net] >>431 法律と違って意図は分からなくてもいいだろ、曖昧な表現は困るが 意図がわからないとプログラミング上困る条文って具体的にどこだよ 曖昧な表現もそりゃあるとはいってもほんの一部だろ それにたとえ委員会の人でもその曖昧な表現がどちらの意味なのか個人で決められるのか?って話 結局規格に明文化されたものが全てだろ あと間違いがないか確認の問い合わせをするのは規格作ろうとしてるなら普通だと思うんだけど、とくにMISRA-Cの目的や内容からすれば
442 名前:デフォルトの名無しさん (ワッチョイ 957f-D9zB) mailto:sage [2017/06/10(土) 22:41:16.36 ID:Pg73dp6X0.net] >>427 の「言語規格を知っている」の定義をはっきりさせないまま議論を始めちゃう人は 規格を語るのに向いてない。
443 名前:デフォルトの名無しさん (ワッチョイ 0baa-BUW4) mailto:sage [2017/06/10(土) 23:22:49.03 ID:xSl9wCDP0.net] たぶん、あいまいなのは、規格が抽象的な表現で書いているからだろ。 いざ具体的な事例を出した場合に、それが正しいのか悪いのか、簡単には分からない だから、MISRA-C みたいな解釈・説明書が必要になる 型変換のルールでも、潜在型とか、そういう用語を定義して、 わかりやすく説明している 法律でも、最高裁の判例を、数十年研究して解釈している。 それでも判事が7対6で、ひやひやもので決まった判例もある。 数年後に判断したら、結論が変わる 規格の抜け穴・論理矛盾などを研究するには、数十年かかる。 規格書を読んで、分かるようなものじゃない。 簡単にわかるのは、表面上の事だけ
444 名前:デフォルトの名無しさん (ワッチョイ 956f-ujiq) [2017/06/11(日) 00:38:45.98 ID:TqhJN8GP0.net] 規格なんて実際に使うコンパイラの仕様に比べたらゴミみたいなものだからな 最近は規格に敬意を払う傾向が強まってきたと思うけど
445 名前:デフォルトの名無しさん (オッペケ Sr71-LgKm) mailto:sage [2017/06/11(日) 00:40:20.06 ID:GyEdwZPXr.net] 例えば「トリビアル」の定義はわかっても意図がわからないとコンテナーのテンプレートを正しく書くことは難しい だが挫折の多くは文面の解釈よりも「正しい仕様を確認しようとしたが規格を読んでもわからなかった」パターンに思える
446 名前:デフォルトの名無しさん (ワッチョイ 5be4-OlK+) mailto:sage [2017/06/11(日) 00:47:50.47 ID:orY9bj1l0.net] コンパイルできないコードに価値は無い コンパイラの方が全てにおいて正しい
447 名前:デフォルトの名無しさん (ワッチョイ 0baa-BUW4) mailto:sage [2017/06/11(日) 03:24:02.05 ID:/4sxfWxQ0.net] 分からない時に、規格書を読んでも、分からない 具体的な用例集が必要。 法律で言えば、具体的な判決 こう書いたら間違いで、これが正しいみたいな例。 だから規格書から、その用例集を作るのに、長い研究期間がいる そういう意味で、MISRA-C のように、多くの企業が参加して、研究すべき。 製品の品質を担保すべき
448 名前:デフォルトの名無しさん (ワッチョイ 5be4-OlK+) mailto:sage [2017/06/11(日) 03:58:12.87 ID:orY9bj1l0.net] それ言語設計者とコンパイラ開発者にしか価値無いよね
449 名前:デフォルトの名無しさん (ワッチョイ 2311-W6lL) mailto:sage [2017/06/11(日) 08:09:11.36 ID:q49UmmFG0.net] そもそも MISRA は規格の解説書じゃないし ワッチョイ 0baa-BUW4 は壮大に勘違いしてる
450 名前:デフォルトの名無しさん (ワッチョイ 859a-1pl6) mailto:sage [2017/06/11(日) 09:54:14.55 ID:IXRoGBtM0.net] >>438 MISRA-C はどこで読めるのか?
451 名前:デフォルトの名無しさん (ワッチョイ 956f-ujiq) [2017/06/11(日) 11:09:38.17 ID:TqhJN8GP0.net] ググることも出来ないやつには永遠に読めない 読む必要ないけど
452 名前:デフォルトの名無しさん (ワッチョイ 8b97-sCoW) [2017/06/11(日) 15:09:26.57 ID:qjl5AbWq0.net] MISRA-Cは、正式ルートだと金出して買うしかないよね。 ドラフト無料とかもなかった気がする。
453 名前:デフォルトの名無しさん (ワッチョイ 356d-Rt+9) mailto:sage [2017/06/11(日) 17:44:56.04 ID:bT5ki42c0.net] MISRA-C はときとして理不尽な要求をしている気がする
454 名前:デフォルトの名無しさん (ワッチョイ 2311-W6lL) mailto:sage [2017/06/11(日) 18:01:31.88 ID:q49UmmFG0.net] 理不尽に見えるけど高信頼性のためには我慢してねって言うスタンスだから
455 名前:デフォルトの名無しさん (オッペケ Sr71-LgKm) mailto:sage [2017/06/11(日) 18:34:49.88 ID:r6AQJQ0Cr.net] サイトのサーバー証明書もマトモに管理できない低能が高信頼性を語るとか、冗談にもほどがある
456 名前:デフォルトの名無しさん (ブーイモ MM43-ViKn) [2017/06/12(月) 00:14:27.30 ID:0xg96Y9iM.net] C++さん、とんでもない機能を追加してしまう hitomi.2ch.net/test/read.cgi/poverty/1497172293/
457 名前:デフォルトの名無しさん (ワッチョイ 15ea-b8DM) mailto:sage [2017/06/12(月) 01:43:06.58 ID:ZIdu3+Lh0.net] ウィンドウクラスって、何に使うん?
458 名前:デフォルトの名無しさん (ワッチョイ 0baa-BUW4) mailto:sage [2017/06/12(月) 21:03:27.92 ID:VDG2Ae3J0.net] MISRA-C 無しの、C言語は、製品に使ってはいけない。 品質が出荷レベルに達していないから トヨタは、5% しか、MISRA-C を守っていないと聞いた。 100条なら、95で違反
459 名前:デフォルトの名無しさん (ワッチョイ 5be4-7qWT) mailto:sage [2017/06/12(月) 21:08:37.51 ID:SpclLUXp0.net] サブセットで十分なケースもある
460 名前:デフォルトの名無しさん (オッペケ Sr71-LgKm) mailto:sage [2017/06/12(月) 21:21:24.13 ID:t42bNJ0Ar.net] この句読点の使い方は得てしてリアルガイジ MISRAとかいうのを信仰する奴とガイジとの相関は高いとみた
461 名前:デフォルトの名無しさん (ワッチョイ 23f0-D9zB) mailto:sage [2017/06/12(月) 23:44:06.01 ID:kzKhR3Vv0.net] そもそも無矛盾のルール体系は構築できないのでは
462 名前:デフォルトの名無しさん (ワッチョイ 23aa-D9zB) mailto:sage [2017/06/13(火) 00:13:09.07 ID:eF+wsRwS0.net] んなこたあない
463 名前:デフォルトの名無しさん (アウアウカー Sae1-lnJR) mailto:sage [2017/06/13(火) 02:09:41.46 ID:LBvGuQYWa.net] 無矛盾な公理体系は自己自身の無矛盾性を証明できない、 ってだけで無矛盾な体系は作れないとはいってない
464 名前:デフォルトの名無しさん (ドコグロ MM13-W6lL) mailto:sage [2017/06/13(火) 07:35:05.39 ID:siDT5/O8M.net] MISRA なんて有り体に言えばベストプラクティスだしね 守らなくても正しいソフトは作れる ただバカが多いところだと守らせればありがちなバグが防げるって言う効果はある
465 名前:デフォルトの名無しさん (ワッチョイ 956f-ujiq) [2017/06/13(火) 18:24:46.63 ID:+1XB2sfj0.net] ベストプラクティスというよりは古文書 てかここはC++スレなんだが
466 名前:デフォルトの名無しさん (ワッチョイ 5b23-O+Nk) mailto:sage [2017/06/13(火) 18:34:11.65 ID:oGIP5B9w0.net] 配列の中身で重複している要素をカウントしてカウントが一番多かった要素を取り出す っていうプログラム作りたいので知恵貸してください {1,2,2,5,2,5}だったら2が取り出せるみたいな
467 名前:デフォルトの名無しさん (ワッチョイ eb23-D9zB) mailto:sage [2017/06/13(火) 18:42:01.39 ID:nMRvtxJa0.net] 「宿題は自分でやりなさい」 先生たちもこのスレ監視してるからなw
468 名前:デフォルトの名無しさん (ワッチョイ 5b23-O+Nk) mailto:sage [2017/06/13(火) 18:56:37.43 ID:oGIP5B9w0.net] 宿題じゃねーよw 調べても重複削除くらいしかみつけられない
469 名前:デフォルトの名無しさん (スッップ Sd43-3C0K) mailto:sage [2017/06/13(火) 19:08:11.56 ID:P4se3SJtd.net] mapを使うとかソートしてしまうとか?
470 名前:デフォルトの名無しさん (ワッチョイ 5be4-7qWT) mailto:sage [2017/06/13(火) 19:09:11.39 ID:n4I5+XGH0.net] 日本語で書いてあるとおりのことをすればいいだけなのだが
471 名前:デフォルトの名無しさん (ドコグロ MM13-W6lL) mailto:sage [2017/06/13(火) 20:25:19.98 ID:siDT5/O8M.net] >>460 さすがにMISRAを古文書とか言う奴はおばかと言われてももしょうがないと思うぞ w 変換規則とかはよく考えられてるし
472 名前:デフォルトの名無しさん (ワッチョイ 859a-1pl6) mailto:sage [2017/06/13(火) 20:39:09.12 ID:8eM6ZKoF0.net] で,MISRA-C をどこで見ればいいの?売っているの?
473 名前:デフォルトの名無しさん (スップ Sd43-ryUj) mailto:sage [2017/06/13(火) 20:56:19.09 ID:gcB4XgG8d.net] >>461 データやリソースによって適した実装方法が異なるな
474 名前:デフォルトの名無しさん (ワッチョイ 956f-ujiq) mailto:sage [2017/06/13(火) 20:56:21.35 ID:+1XB2sfj0.net] だからそんなに考古学に興味あるんならググれよ 公式でPDF版£15で売ってるよ 繰り返し言うがここはC++スレだ
475 名前:デフォルトの名無しさん (ワッチョイ dba6-LgKm) mailto:sage [2017/06/13(火) 23:06:22.18 ID:apqWicsH0.net] クソなコードしか思いつかなかった ideone.com/3IBm07
476 名前:デフォルトの名無しさん (ワッチョイ 23af-Fz1p) mailto:sage [2017/06/13(火) 23:56:53.24 ID:G30+7Gz/0.net] それだと最大要素見つけるのに無駄に2ループするからこの方がよくね ideone.com/AMCSuy
477 名前:デフォルトの名無しさん (ワッチョイ 239f-AL/g) mailto:sage [2017/06/14(水) 06:51:42.68 ID:Bb4iazb50.net] どうもしっくり逝かんな ideone.com/mH3sLq
478 名前:デフォルトの名無しさん (ドコグロ MM51-W6lL) mailto:sage [2017/06/14(水) 06:58:07.10 ID:xl37jtKCM.net] >>469 ひょっとして MISRA-C++ の存在も知らない老害さん?
479 名前:デフォルトの名無しさん (オッペケ Sr71-LgKm) mailto:sage [2017/06/14(水) 07:13:45.93 ID:97YMYHupr.net] 「: public binary_function」 はて、規格のDで見たような
480 名前:デフォルトの名無しさん (ワッチョイ 859a-ryUj) mailto:sage [2017/06/14(水) 07:42:18.88 ID:ROBFB8K40.net] >>461 配列の要素数 : n 要素の値の範囲 : m 計算オーダー ソート&カウント : n log n 固定配列のカウンタ : max(n, m) map のカウンタ : n log m 単純な2重ループ : n^2 かな
481 名前:デフォルトの名無しさん (ワッチョイ 956f-ujiq) mailto:sage [2017/06/14(水) 07:44:57.00 ID:mEpEgwpO0.net] >>473 話のコンテキストも無視して突然MISRA-C++を出してくるとか頭大丈夫ですか?
482 名前:デフォルトの名無しさん (ワッチョイ 859a-ryUj) mailto:sage [2017/06/14(水) 07:51:46.28 ID:ROBFB8K40.net] てことで、 配列の取りうる値が狭い場合、狭い範囲に変換できる場合はvectorによるカウンタ 取りうる値の種類が少ないことはわかっているが、値からインデックスに簡単に変換できない場合はmapによるカウンタ 一般的にはソート&カウント による実装が良いのでは?
483 名前:デフォルトの名無しさん (ワッチョイ 859a-ryUj) mailto:sage [2017/06/14(水) 08:01:12.72 ID:ROBFB8K40.net] ソート&カウント の場合 配列の値の大小比較の定義が必要 非破壊の場合は配列と同じサイズのメモリが必要 vectorカウンタの場合 配列の値からインデックス値に簡単に変換可能である必要がある インデックス値分 x カウンタサイズ のメモリが必要 setカウンタの場合 配列の値の大小比較の定義が必要 配列の値の種類分 x setのノード のメモリが必要 単純2重ループの場合 一番要求することが少ない 配列の値が同じかどうか判別出来れば良い
484 名前:デフォルトの名無しさん (ワッチョイ 859a-ryUj) mailto:sage [2017/06/14(水) 08:07:23.67 ID:ROBFB8K40.net] 配列の値のコピーのコストが大きい場合 などを考えるとさらに別の方法が考えられる
485 名前:デフォルトの名無しさん (ドコグロ MM13-W6lL) mailto:sage [2017/06/14(水) 08:16:37.97 ID:SzLmysikM.net] >>476 話のコンテキストも理解できてない老害乙
486 名前:デフォルトの名無しさん (ブーイモ MM43-O+Nk) mailto:sage [2017/06/14(水) 08:32:13.08 ID:1Ro22eP7M.net] みんなありがとう やってみる
487 名前:デフォルトの名無しさん (スプッッ Sd51-RGMd) [2017/06/14(水) 08:51:35.81 ID:JEM2dfxwd.net] いえいえ
488 名前:デフォルトの名無しさん (ワッチョイ e3af-VSCS) mailto:sage [2017/06/15(木) 02:16:45.12 ID:Kprt2KgZ0.net] vectorのテンプレートに当てるクラスにはデフォルトコンストラクが必須なんでしたっけ?
489 名前:デフォルトの名無しさん (ワッチョイ 274b-eVPi) mailto:sage [2017/06/15(木) 02:57:56.05 ID:WlVNVHON0.net] いいえ 03まではコピーできること 11からは破棄できること が最低限の要件
490 名前:デフォルトの名無しさん (ワンミングク MMaa-JSHy) mailto:sage [2017/06/15(木) 05:30:50.78 ID:HQ6fr84VM.net] >>483 必要だよ
491 名前:デフォルトの名無しさん (アウアウカー Sa33-yC4D) mailto:sage [2017/06/15(木) 09:11:26.58 ID:qU51R9EPa.net] 使うメンバ関数に依るけどデフォルトコンストラクタが必要なものはなくね 必要な場面が思い付かんし
492 名前:デフォルトの名無しさん (ワントンキン MMaa-JSHy) mailto:sage [2017/06/15(木) 10:49:56.10 ID:cMMWNP19M.net] std::vector<MyObject> v; これMyObjectにデフォルトコンストラクタないとコンパイルできなくない?
493 名前:デフォルトの名無しさん mailto:sage [2017/06/15(木) 11:06:30.68 ID:s1y5pVNvW] >487ideone.com/1s6Xim
494 名前:デフォルトの名無しさん (オッペケ Srab-H4RH) mailto:sage [2017/06/15(木) 11:01:39.88 ID:aq+4THbXr.net] >>484 根拠は?
495 名前:デフォルトの名無しさん (アウアウカー Sa33-yC4D) mailto:sage [2017/06/15(木) 11:19:41.25 ID:qU51R9EPa.net] >>487 コンパイルできるよ https://ideone.com/J9k1y6
496 名前:デフォルトの名無しさん (ワッチョイ 274b-eVPi) mailto:sage [2017/06/15(木) 11:23:27.43 ID:L9OZrg3x0.net] >>487 その例のその時点ではvの要素数は0でMyObjectは一つも構築されない そしてテンプレートの性質として要求されない部分の実体化はされないので 実際には呼ばれない部分のコードがコンパイルエラーにはなる問題にもあたらない
497 名前:デフォルトの名無しさん (スップ Sd7a-FPX1) mailto:sage [2017/06/15(木) 11:50:20.24 ID:T9X0CufJd.net] その理屈だとデストラクタも不要になるが、実際はデストラクタは必要
498 名前:デフォルトの名無しさん (ワッチョイ 8baa-vAEL) [2017/06/15(木) 12:01:45.59 ID:UVt8Gat10.net] >>492 そりゃvectorのデストラクタで要素のデストラクタが呼ばれる(テンプレートのインスタンス化が行われる)んだから
499 名前:デフォルトの名無しさん (スプッッ Sd3b-Ir2K) mailto:sage [2017/06/15(木) 12:32:05.19 ID:TLt9F5bfd.net] >>486 resizeは?
500 名前:デフォルトの名無しさん (ワッチョイ 56e4-l3wW) mailto:sage [2017/06/15(木) 12:35:16.93 ID:st+URCRI0.net] そのあたりのことはどっかに書いてあった
501 名前:デフォルトの名無しさん (ワントンキン MMaa-vAEL) [2017/06/15(木) 12:42:14.22 ID:HosU7tvHM.net] >>494 こぴ
502 名前:デフォルトの名無しさん (ワントンキン MMaa-vAEL) [2017/06/15(木) 12:43:54.29 ID:HosU7tvHM.net] >>494 コピーコンストラクタがあれば引数2つの方が使える
503 名前:デフォルトの名無しさん (スップ Sd7a-FPX1) mailto:sage [2017/06/15(木) 12:53:22.51 ID:T9X0CufJd.net] >>493 中身は知ってるよ >>491 の理屈と合わないって言ってるだけで
504 名前:デフォルトの名無しさん (オッペケ Srab-H4RH) mailto:sage [2017/06/15(木) 14:19:10.82 ID:aq+4THbXr.net] 「使うメンバ関数に依るけどデフォルトコンストラクタが必要なものはなくね」 ↓ 「resizeは?」 ↓ 「コピーコンストラクタがあれば引数2つの方が使える」 これがイケヌマと言うやつか
505 名前:デフォルトの名無しさん (ワッチョイ bb11-yC+1) mailto:sage [2017/06/15(木) 15:13:39.32 ID:0w39VBC10.net] 333/+C/333 }[amo]*7* %/$/@0000/*/"2BTOLA"~
506 名前:~ [] [ここ壊れてます]
507 名前:デフォルトの名無しさん (ワッチョイ bb11-yC+1) mailto:sage [2017/06/16(金) 08:33:30.61 ID:YhgtDNjG0.net] <<<C++>>> } 000-0 001-EK,L,A%&*17&>>=<HUFMO#$BUZ,DOL%$,"LTAR"===7,2&$%\72<&\\7>3%, 002-"GYU","LA" ***"AGILA"*** GOJU-$+$%7.2!$^±%WOLR%,,,
508 名前:デフォルトの名無しさん (ワッチョイ 8baa-vAEL) [2017/06/16(金) 09:54:15.30 ID:rTwb7eLL0.net] >>499 え?resizeするのにデフォルトコンストラクタ必要じゃないよね?
509 名前:デフォルトの名無しさん (スップ Sd7a-FPX1) mailto:sage [2017/06/16(金) 10:48:52.10 ID:+l0M7jEud.net] なんで必要じゃないと思うんだか
510 名前:デフォルトの名無しさん (スップ Sd7a-FPX1) mailto:sage [2017/06/16(金) 10:51:59.72 ID:+l0M7jEud.net] resizeとサイズ指定のコンストラクタ この2個は必要 他に必要なのが有るかは知らない
511 名前:デフォルトの名無しさん (ササクッテロレ Spab-O+YK) [2017/06/16(金) 13:52:01.14 ID:uEZP+i89p.net] ぜんぜんわからない 僕たちは雰囲気でvectorを使っている
512 名前:デフォルトの名無しさん (オッペケ Srab-H4RH) mailto:sage [2017/06/16(金) 18:08:28.52 ID:h6HoRUoNr.net] >>497 のような文脈を理解できず関係ないことを言い出す残念なオツムだと >>502 のようにさらにとんちんかんなことを言い出すのだろうきっと
513 名前:デフォルトの名無しさん (ワッチョイ 8b9a-FPX1) mailto:sage [2017/06/16(金) 19:00:27.85 ID:exN5gWxV0.net] 2chでみんなが文脈を読んで書いてると思うのもどうかと思う >>497 は質問とか流れとか関係なく単に思った事を書いたんだろうなと思う >>502 は思考力も行動力も無い可愛そうな人なんだろうなと思う
514 名前:デフォルトの名無しさん (ワッチョイ 8b9a-FPX1) mailto:sage [2017/06/16(金) 19:06:58.58 ID:exN5gWxV0.net] おれも流れを無視して書いてみよう 自分でvectorを作ってみると躓くのが、メモリのアロケートや解放を伴わない、指定位置に対してのコンストラクタやデストラクタの呼び出し ここは他の実装をカンニングしてしまった 他は特に難しいところはなく、ひたすらメンバー関数を作る作業 vectorはlistやmapに比べると作るのが簡単
515 名前:デフォルトの名無しさん (ワントンキン MMaa-vAEL) [2017/06/16(金) 20:32:33.08 ID:1QoHt37uM.net] むしろ >>486 がresizeの要素数だけ指定したときにデフォルトコンストラクタが使われるということぐらい解ってて言ってるように見えるんだけどな。C++98まではオーバーロードですらない全く同じメンバーだったわけで。 文脈読んでないのはどっちなんだろうね。
516 名前:デフォルトの名無しさん (スップ Sd7a-FPX1) mailto:sage [2017/06/16(金) 20:58:35.54 ID:+l0M7jEud.net] イミフ 解説よろしく
517 名前:デフォルトの名無しさん (オッペケ Srab-H4RH) mailto:sage [2017/06/16(金) 23:20:55.70 ID:jqjhiiMFr.net] 単に思ったことを書いてみたすごい例は>>495 だな 読み返すと深いものがある
518 名前:デフォルトの名無しさん (ワッチョイ 96a6-H4RH) mailto:sage [2017/06/18(日) 14:45:58.32 ID:pAWWq9QO0.net] エピス何とかさんって エピステーメー 迷惑 でググると出てくる人?
519 名前:デフォルトの名無しさん (ワントンキン MMaa-JSHy) mailto:sage [2017/06/18(日) 15:04:30.19 ID:maGnATACM.net] そう
520 名前:デフォルトの名無しさん (ブーイモ MMaf-4fPX) mailto:sage [2017/06/18(日) 17:37:06.92 ID:qo9bGziFM.net] ぐぐって最初に出てきた記事を読んできたけど、どっちもどっちな感じだなあ。 ただ一つ言えるのは、エピスの記事はいつもcounterが題材でとてもつまらない。
521 名前:デフォルトの名無しさん (ワッチョイ aeaa-vAEL) [2017/06/19(月) 02:44:16.89 ID:vY2cw8HX0.net] ぐぐって最初に出てきた記事を読んできたけど、どちらかというと記事の主の方が苦しい言い訳してる感じがするなぁ。 ただ一つ言えるのは、てらているでえぴすてーめーの解答見てると質問者の理解を手助けするような解答にはみえないから好きではない。
522 名前:デフォルトの名無しさん (ワッチョイ 96af-VSCS) mailto:sage [2017/06/19(月) 04:56:20.14 ID:ClMyuu520.net] namespace A{ static int hoge; } class B { public: static int fuga; }; これらを複数のcppファイルでincludeした場合、 A::hogeはファイルスコープごとにできて B::fugaはファイルスコープ間で共通 で合ってる?
523 名前:デフォルトの名無しさん (オッペケ Srab-H4RH) mailto:sage [2017/06/19(月) 08:39:44.53 ID:S/voQGxrr.net] 現規格ではfile scopeという言葉の定義が無いことに気付いた
524 名前:デフォルトの名無しさん (ワッチョイ ba9f-C7l9) mailto:sage [2017/06/19(月) 08:46:39.99 ID:9+UYKLHD0.net] hogeの方はextern付けないと大量生成されるぞ
525 名前:デフォルトの名無しさん (ワッチョイ ba9f-C7l9) mailto:sage [2017/06/19(月) 08:47:46.44 ID:9+UYKLHD0.net] あ、staticか…わざとやっているのか
526 名前:デフォルトの名無しさん (ワッチョイ 136f-98cR) mailto:sage [2017/06/19(月) 10:43:51.86 ID:m1J/TEED0.net] >>516 合ってない 以上
527 名前:デフォルトの名無しさん (オッペケ Srab-H4RH) mailto:sage [2017/06/19(月) 10:53:54.51 ID:S/voQGxrr.net] 注意事項は有るとして、合っているかと言えば合っていると思ったのだがはて
528 名前:デフォルトの名無しさん (ワッチョイ 96af-VSCS) mailto:sage [2017/06/19(月) 11:20:57.70 ID:ClMyuu520.net] >>520 namespace Aが付けばstaticはファイルに依存しないクラスのstaticメンバーみたいになるということですかね?
529 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdda-adb9) mailto:sage [2017/06/19(月) 11:40:33.07 ID:UZhaSadud.net] 変数のアドレスを確認すればわかるじゃん。
530 名前:デフォルトの名無しさん (アウアウカー Sa33-yC4D) mailto:sage [2017/06/19(月) 12:39:33.09 ID:Edn2ErbFa.net] >>522 そんなことない あなたが>>516 で言ってたのであってる 正確にはファイルスコープじゃなくて翻訳単位だが
531 名前:デフォルトの名無しさん (ワッチョイ 96af-VSCS) mailto:sage [2017/06/19(月) 12:43:52.17 ID:ClMyuu520.net] ですよね ありがとうございます
532 名前:デフォルトの名無しさん (オッペケ Srab-H4RH) mailto:sage [2017/06/19(月) 16:50:18.24 ID:OcegvzUdr.net] >>523 ほれ ideone.com/RH0dUb 質問者がこういう確認をしてしまう可能性は考えなかったのかね?
533 名前:デフォルトの名無しさん (スッップ Sdda-FPX1) mailto:sage [2017/06/19(月) 17:22:49.29 ID:0iIdkSRqd.net] さすがににそれはテスト方法が悪い
534 名前:デフォルトの名無しさん (オッペケ Srab-H4RH) mailto:sage [2017/06/19(月) 19:46:59.76 ID:OcegvzUdr.net] >>527 undefined behaviorとno diagnostics requiredだらけの言語で「アドレス確認すればわかる」とだけ言うのはあまりに安易な助言ではないか、と言っているのであって 確認方法の良し悪しには興味が無い
535 名前:デフォルトの名無しさん (ワッチョイ 8b9a-FPX1) mailto:sage [2017/06/19(月) 19:56:58.85 ID:QZxUhfYw0.net] お前が何に興味があるかなんてまったく興味がない
536 名前:デフォルトの名無しさん (アウアウカー Sa33-C4gc) mailto:sage [2017/06/19(月) 21:31:25.95 ID:/bUZDhU4a.net] >>520 >>515 に出てきたえぴすなんたらと同じで、仮に知識があったとしても建設的な議論ができずに場をかき混ぜるだけの迷惑な存在に思える。
537 名前:デフォルトの名無しさん (ブーイモ MM97-4fPX) mailto:sage [2017/06/20(火) 23:15:54.41 ID:Mr4YEhWoM.net] >>515 そもそも苦しい言い訳すらできない事案はwebページに掲載してないだろうしなぁ
538 名前:デフォルトの名無しさん (ワッチョイ 1311-H4RH) mailto:sage [2017/06/21(水) 12:51:52.91 ID:+NLKQqoi0.net] >>530 こんなとこで他人を中傷してるお前は 迷惑記事の書き手と同レベルだな
539 名前:デフォルトの名無しさん (ワッチョイ 7a15-yC+1) mailto:sage [2017/06/21(水) 16:13:27.27 ID:w7AAKRwP0.net] >>530 質問に必要なのは回答であって議論じゃない。 議論が建設的であろうがなかろうが質問に対する反応としては不適当だ。 回答が不十分だっていうことならそれは質問者が対話を重ねていくべきことで、 やみくもに話題を広げていく行為はそれこそ場をかき乱すだけだよ。 質問を元にした話題で雑談したっていいと思うが、 質問に対しては質問の回答を返すのが合理的な姿勢で、 先回りしてまで手取り足取り教えてやるような板じゃなかろう。 ム板が殺伐してるのは普通のこと。
540 名前:デフォルトの名無しさん (オッペケ Srab-H4RH) mailto:sage [2017/06/21(水) 23:22:10.09 ID:rrguzdDtr.net] >回答が不十分だっていうことならそれは質問者が対話を重ねていくべき 「建設的な議論」の認識に齟齬が見られたが >>530 と>>533 の意見は概ね一致したようだ めでたしめでたし
541 名前:デフォルトの名無しさん (ワッチョイ 9f3d-SU2+) mailto:sage [2017/06/22(木) 18:59:54.46 ID:RmXtROOS0.net] templateのstaticメンバの初期化(実体化)についてわかる人、 教えてもらえないでしょうか。 次のようなクラス構成があります template<typename T> class A { public: A() : foo(NULL) {} ... void * foo; }; template<typename T> class B { public: ... static A<T> bar; }; class C : public B<C> { public: ... }; ここで、B<C>::barを実体化しないといけないので 1) 以下のように書くとVC++では問題ない template<> A<C> B<C>::bar; 2) 以下のように書くとclang(xcode)では問題ない template<> A<C> B<C>::bar = {}; 3) GCC 4.9では1)でコンパイルは通るが実体化されない。 ということで、GCCでどう書いたらビルドが通るか教えてください。 よろしくお願いします。m(_ _)m
542 名前:デフォルトの名無しさん (オッペケ Sr0b-jRIn) mailto:sage [2017/06/22(木) 19:26:04.75 ID:Pj60YbTlr.net] >template<> A<C> B<C>::bar; 本当に実体化をしようとしているのか、明示的な実体化が必要なのか疑問だ template<…> X →テンプレート定義 template<…> X<Y> →テンプレート定義(部分特殊化) template<> X<…> →フルの特殊化 template X<…> →明示的実体化 X<…> →使うことで暗黙の実体化
543 名前:デフォルトの名無しさん (ワッチョイ 9f3d-SU2+) mailto:sage [2017/06/22(木) 19:46:14.05 ID:RmXtROOS0.net] >>536 レスありがとうございます。 実際のコードでは、AとBはそれぞれのヘッダファイルにすべて記述され、 Cのみcppでコード生成しています。1)及び2)はCのソース内に記述しています。 このため、スペシャライズは不要な筈ですが、B内で定義しているstatic変数は Bのクラス内で使用しているため、実体化が必要です。 bar自体はコンストラクタがあるので、普通のstatic変数のように書けば 良いのではないかと思うのですが…。 何か勘違いしてるんですかね?
544 名前:デフォルトの名無しさん (ワッチョイ 9f3d-SU2+) mailto:sage [2017/06/22(木) 20:07:59.54 ID:RmXtROOS0.net] >>535 です、連投すいません。 どうやら解決したようです、デバッグしてみないと本当に解決しているか どうかはわかりませんが(^^; stackoverflowにヒントがありました。 https://stackoverflow.com/questions/2342550/static-member-initialization-for-specialized-template-class // needs a copy constructor! template<> Type Class<Arguments>::member = Type(); コピーコンストラクタで無理やり実体を作るという…。 vc、llvm、gccでそれぞれ書き方が違うとは、やな世の中になったもんだw
545 名前:デフォルトの名無しさん (オッペケ Sr0b-jRIn) mailto:sage [2017/06/22(木) 20:44:12.75 ID:Pj60YbTlr.net] 特殊化の説明を読んでいるのがよくわからんが G++で通るコードとやらを貼っとくか ideone.com/u4h6so
546 名前:デフォルトの名無しさん (ワッチョイ 374b-ckEx) mailto:sage [2017/06/22(木) 20:51:33.36 ID:6MphhRRE0.net] >>535 > 3) GCC 4.9では1)でコンパイルは通るが実体化されない。 実体化されないの意味がよくわからんが B::barの定義がないからだろ ttps://wandbox.org/permlink/dK2e1pFJRGqDvw6G
547 名前:デフォルトの名無しさん (オッペケ Sr0b-jRIn) mailto:sage [2017/06/22(木) 21:50:59.77 ID:Pj60YbTlr.net] >>535 >1) 以下のように書くとVC++では問題ない >template<> A<C> B<C>::bar; これはVisual C++が規格の14.7.3段落13を正しく実装していないためで 2)の書き方が正しい
548 名前:デフォルトの名無しさん (ワッチョイ 9f3d-SU2+) mailto:sage [2017/06/22(木) 21:52:32.77 ID:RmXtROOS0.net] >>539 さん, >>540 さん ありがとうございます。 なるほど、template<typename T>のままで初期化すればよかったんですね。 あ、でも、vc++2012でエラーが出ますね。 non-aggregates cannot be initialized with initializer list vc++2015はプロジェクトを作ってないのでわかりません。 xcodeは、明日確かめてみます。 あ〜、templateは嫌いだorz
549 名前:デフォルトの名無しさん (ワッチョイ 7f91-yPlv) [2017/06/24(土) 13:41:09.22 ID:u+Yuz9bZ0.net] 配列に格納された行列同士の乗算がしたいんだけどさ EigenのMapってこれ、コンパイル時に行列の行数・列数が決まってない時はどうやって利用するもんなの? eigen.tuxfamily.org/dox/group__TutorialMapClass.html Vector型に変更したりしてたら遅くなっちゃうだろうし・・・・どうやるんだろ・・・・
550 名前:デフォルトの名無しさん (スッップ Sdbf-iOY8) mailto:sage [2017/06/24(土) 16:50:39.64 ID:1xYcuW8pd.net] >>543 ろくに見ずに答えるけど、テンプレートパラメータを明示的に与えられないの?
551 名前:デフォルトの名無しさん (ブーイモ MMbf-Cfyt) mailto:sage [2017/06/24(土) 17:52:02.95 ID:UzNhAedeM.net] サンプルみた感じ、Dynamicっていうキーワードがあるみたいだけど
552 名前:デフォルトの名無しさん (ワッチョイ 9f32-LvKX) [2017/06/25(日) 14:15:18.57 ID:ogKde9930.net] union aaa{ uint8_t byte[ 5 ]; struct bit_t { uint32_t b0 : 5; uint32_t b1 : 5; uint32_t b2 : 5; uint32_t b3 : 5; uint32_t b4 : 5; uint32_t b5 : 5; uint32_t b6 : 5; uint32_t b7 : 5; }bit; }; union bbb{ struct bit_t { uint32_t b0 : 5; uint32_t b1 : 5; uint32_t b2 : 5; uint32_t b3 : 5; uint32_t b4 : 5; uint32_t b5 : 5; uint32_t b6 : 5; uint32_t b7 : 5; }bit; uint8_t byte[ 5 ]; }; const aaa a = { 66, 77, 88, 99, 11 }; const bbb b = { a.bit.b0, a.bit.b1, a.bit.b2, a.bit.b3, a.bit.b4, a.bit.b5, a.bit.b6, a.bit.b7 }; bが{66,77,88,35,11}となってaと一致しません。何故ですか
553 名前:デフォルトの名無しさん (ワッチョイ f796-Cfyt) mailto:sage [2017/06/25(日) 15:01:36.01 ID:WDBvKZ4J0.net] byte境界でないと配置できない環境なんじゃないの?
554 名前:デフォルトの名無しさん (ワッチョイ 9f32-MYey) mailto:sage [2017/06/25(日) 15:16:55.26 ID:vsjTFzMZ0.net] uint32_tに5ビットずつ詰めてるからだろ
555 名前:デフォルトの名無しさん (ワッチョイ 9f9f-Yx6S) mailto:sage [2017/06/25(日) 15:37:16.30 ID:ogZvFgu/0.net] 普通は単に unsigned b0:5: と書くべき ビットフィールドに32tとか余計なモノ乗っけると解釈がおかしくなる
556 名前:デフォルトの名無しさん (ワッチョイ 9f9f-Yx6S) mailto:sage [2017/06/25(日) 15:41:35.21 ID:ogZvFgu/0.net] あとは副作用でpackアラインが1になってないから無理矢理境界作ってコンパイラが揃えようとしているとか
557 名前:デフォルトの名無しさん (ワッチョイ bfe4-Nep8) mailto:sage [2017/06/25(日) 15:51:48.24 ID:k9VtfbZw0.net] 共用体の統一初期化記法のことはよくわからないけどちゃんとコンストラクタを書けば解決するのでは https://wandbox.org/permlink/Fzd26GrwxkCJ5NmL
558 名前:デフォルトの名無しさん (ワッチョイ ffaa-4OJu) mailto:sage [2017/06/25(日) 16:07:57.97 ID:Y80WzbX30.net] C++を、10年以上勉強してから、共用体を使え そもそも、初心者が使い道を知らないだろ
559 名前:デフォルトの名無しさん (ワッチョイ 9fc3-NIhq) mailto:sage [2017/06/25(日) 17:09:07.72 ID:/94nlHOp0.net] >>546 なぜ一致すると思うのかをまず説明すべきではないかね?
560 名前:デフォルトの名無しさん (ワッチョイ 1f91-ZLad) mailto:sage [2017/06/25(日) 17:14:35.54 ID:CENP8UyG0.net] 99: 1100011 35: _100011 何度かやってみると、合う時もあるな
561 名前:デフォルトの名無しさん (ワッチョイ 9f32-LvKX) [2017/06/25(日) 19:00:42.60 ID:ogKde9930.net] uint32_tをuint64_tに変えたら一致するようになりました ヒントになります?
562 名前:デフォルトの名無しさん (ワッチョイ 9faf-6L/r) mailto:sage [2017/06/25(日) 19:15:35.89 ID:0WoCYScE0.net] VC++2015で調べたらaaa,bbbは8byteでbit_tのメンバーは b0: 0ビット目 b1: 5ビット目 b2: 10ビット目 b3: 15ビット目 b4: 20ビット目 b5: 25ビット目 b6: 32ビット目 b7: 37ビット目 に配置されてた b6から配置がずれてて30bit目と31bit目がbit_tでは使われてない なのでbでbit_tを使って初期値をセットしてもこの2bitの値は不定になる この2bitが両方とも0の時4byte目は35、 30bit目が0で31bit目が1の時99になる
563 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9f15-LvKX) mailto:sage [2017/06/25(日) 23:08:48.14 ID:y0reYziw0.net] 英語を読むのがだるいので JIS の仕様を見てみた。 まずは C99 (に相当する JISX3010:2003) の 6.7.2.1 にはこうある。 > 処理系は、ビットフィールドを保持するに十分な大きさの任意のアドレス付け可能な記憶域単位を割り付けてよい。 > 十分な領域が残っている場合、構造体内のビットフィールドの直後に続く別のビットフィールドは、同じ単位の隣接したビットに詰め込まなければならない。 > 十分な領域が残っていない場合、入り切らなかったビットフィールドを次の単位に入れるか、又は隣接した単位の境界をまたがせるかは、処理系定義とする。 > 単位内のビットフィールド割付けの順序 (上位から下位か又は下位から上位か) は、処理系定義とする。 この理屈にてらして >>556 を解釈すると、 VC++2015 での記憶域単位は 4 バイトで、ビットフィールドが単位に収まらなかった場合には次の単位に入れる という選択を取っていることになる。 で、 C++03 (JISX3014:2003) ではどうかというと 9.6 にこうある。 > クラスオブジェクト内のビットフィールドの割り当て方は処理系定義とする。 ビットフィールドの境界調整は、処理系定義とする。 ビットフィールドは、何らかのアドレス取得可能な単位内に詰め込まれる。 > 参考 処理系によっては、ビットフィールドの割当て単位をまたがることもあるし、またがないこともある。 右から左に割り当てる処理系もあるし、左から右に割り当てる処理系もある。 この文章の「単位内に詰め込まれる」というのは C での規則にあるように記憶域単位をまたがない限り (次の単位に移らずに) 詰め込むという規則にも読 めるが、ちょっとよくわからない。 常識的に考えれば C より緩い規則ということはないだろうと思うんだけど……。 >>555 指定する型が割当て方に影響するような文面は見付けられなかった。
564 名前:デフォルトの名無しさん (オッペケ Sr0b-jRIn) mailto:sage [2017/06/25(日) 23:47:54.19 ID:Tfx4tn9Gr.net] >常識的に考えれば (中略) ないだろうと思う 訳:ボクは非常識です
565 名前:デフォルトの名無しさん (スップ Sd3f-VrB2) mailto:sage [2017/06/26(月) 00:18:40.72 ID:mZAJ/HXWd.net] トンチンカンな回答がほとんどで笑える
566 名前:デフォルトの名無しさん (ワッチョイ bfe4-Nep8) mailto:sage [2017/06/26(月) 00:21:57.68 ID:yL9hwVgE0.net] 正しい回答をお願いします
567 名前:デフォルトの名無しさん (スップ Sd3f-VrB2) mailto:sage [2017/06/26(月) 00:29:03.33 ID:mZAJ/HXWd.net] byteの40bitとbの40bitが違う位置だから (ほとんどの環境で)
568 名前:デフォルトの名無しさん (スップ Sd3f-VrB2) mailto:sage [2017/06/26(月) 00:32:01.19 ID:mZAJ/HXWd.net] 8個のbがbyteをカバーしていない
569 名前:デフォルトの名無しさん (スップ Sd3f-VrB2) mailto:sage [2017/06/26(月) 00:37:21.07 ID:mZAJ/HXWd.net] >>547 〜 >>552 回答するレベルじゃない 何も書かない方がマシ
570 名前:デフォルトの名無しさん (ワッチョイ bfe4-Nep8) mailto:sage [2017/06/26(月) 01:00:43.63 ID:yL9hwVgE0.net] そもそも専門的な質問は2chで聞くべきじゃないし 信頼できる専門書を買うべき
571 名前:デフォルトの名無しさん (ワッチョイ ffaa-4OJu) mailto:sage [2017/06/26(月) 01:09:10.53 ID:RgMKiEkv0.net] 共用体などは、C++を、10年以上勉強してから使え。 そもそも、初心者が使い道を知らないだろ そもそも、5バイトは、40ビットだけど、 ビットフィールドが何バイトの領域に確保されるかも知らないのに、使うな。 処理系依存の機能を使うな MISRA-C でも使用禁止だし、素人が使う共用体なんて、 バグだらけで製品で使えない どの本にも、共用体を使った例など、載っていないだろ
572 名前:デフォルトの名無しさん (ワッチョイ 9f89-RNzd) mailto:sage [2017/06/26(月) 01:26:24.49 ID:YVNj3DlL0.net] >>565 質問者はただの学習目的かもしれんのに、 素人だとか製品では〜とか批判するのは的外れだろう
573 名前:デフォルトの名無しさん (ワッチョイ 374b-ckEx) mailto:sage [2017/06/26(月) 01:34:20.4
] [ここ壊れてます]
574 名前:7 ID:jY+d4s2A0.net mailto: >>560 すでに言われてるがまとめると>>546 の状況では先頭から byteは連続する40bit bit_tは使わない2bitをはさんだ42bit を使用するのでbyte-bit_t間では 余分なbitの取得・必要なbitの欠落が起きて完全な情報のやりとりにならない [] [ここ壊れてます]
575 名前:デフォルトの名無しさん (ワッチョイ 9f9f-Yx6S) mailto:sage [2017/06/26(月) 01:50:32.70 ID:/d8dR7Ut0.net] 5bitづつだとどうしてもアドレス跨ぎが発生するからな 4bitづつなら収まるけど
576 名前:デフォルトの名無しさん (オッペケ Sr0b-jRIn) mailto:sage [2017/06/26(月) 08:14:37.12 ID:g/kuRdPjr.net] >信頼できる専門書を買うべき ここは信頼できる回答が示されていても日本語が読めない低能が不毛なレスを続ける所なのだが その典型例が>>560 ということに本人が気付くことは無いのであった
577 名前:デフォルトの名無しさん (オッペケ Sr0b-jRIn) mailto:sage [2017/06/26(月) 20:30:39.48 ID:g/kuRdPjr.net] そう言えば規格的には>>546 の使い方はNGなので >>552 が言っていることはあながち間違いでもない
578 名前:デフォルトの名無しさん (ワッチョイ 9f1b-ZNvc) mailto:sage [2017/06/26(月) 20:36:59.50 ID:cFoP2i7u0.net] 規格的には処理系定義なので処理系のマニュアル等で確認して使うならNGではないな
579 名前:デフォルトの名無しさん (ワッチョイ 179a-VrB2) mailto:sage [2017/06/26(月) 20:43:43.05 ID:GM19K0OY0.net] >>552 は質問の回答じゃないから
580 名前:デフォルトの名無しさん (ワッチョイ ffaa-4OJu) [2017/06/26(月) 23:25:57.41 ID:RgMKiEkv0.net] 共用体で、バイト配列とビットフィールドは、互換性がない型だから使えない。 最低でも、10年以上勉強していない者は、共用体でバグだらけになるから使うな ビットフィールドのメモリ割付位置は、処理系依存だから、 他のOS・OSのビット数(32/64ビット)・他のコンパイラなどで使えない また、コンパイラのバージョンアップで、再コンパイルするだけでも、 メモリ割付位置は変わるから、バグ有りで使えない コンパイルエラーにならず、実行時エラーになるようなものは使えない
581 名前:デフォルトの名無しさん (ワッチョイ 179a-VrB2) mailto:sage [2017/06/26(月) 23:35:53.83 ID:GM19K0OY0.net] なんかムキになってる 相変わらずズレてるね
582 名前:デフォルトの名無しさん (ワッチョイ 9faa-ZLad) mailto:sage [2017/06/26(月) 23:55:54.69 ID:NfcBoQUW0.net] 失敗を通じてしか成長できないのにね
583 名前:デフォルトの名無しさん (ワッチョイ bfea-WW2k) mailto:sage [2017/06/27(火) 01:00:05.96 ID:NwZhdH240.net] 10年以上勉強さん流石ですw
584 名前:デフォルトの名無しさん (ワッチョイ 179a-VrB2) mailto:sage [2017/06/27(火) 08:01:35.53 ID:bJ//gE7J0.net] 10年勉強して >>573 か 残念な人
585 名前:デフォルトの名無しさん (ワッチョイ d7d1-Rbtz) mailto:sage [2017/06/27(火) 10:18:29.05 ID:XwCnx1+f0.net] for_eachを並列で高速化する場合 -D_GLIBCXX_PARALLEL でopenmp使う場合と #include <experimental/numeric> の使う場合と どっちが高速なの?
586 名前:デフォルトの名無しさん (ワッチョイ 17f3-PFpe) [2017/06/27(火) 10:35:07.84 ID:TVfTial50.net] 自分でも無意識のうちにやってたし、ネットのサンプルとかでもよくあるけど 厳密にはunsigned intのほうが相応しい場合でもintつかってるコードをよく見かけるが いちいちintをunsigned intで宣言し直すのもあほらしいしマクロつかって unsigned intを_u_intとかに置き換えて宣言するのもそこまでしなくてもいいんじゃないかとも思うし そこらへんはテキトーでいいんっすかね・・・
587 名前:デフォルトの名無しさん (スッップ Sdbf-iOY8) mailto:sage [2017/06/27(火) 10:51:53.32 ID:LPANs+0ed.net] std::size_t じゃなくて?
588 名前:デフォルトの名無しさん (ワッチョイ d76f-ADZD) mailto:sage [2017/06/27(火) 11:30:31.53 ID:DL/1tDv80.net] 負の値を取らないからって「厳密にはunsigned intのほうが相応しい」とは俺は考えないな intで済むならintにする
589 名前:デフォルトの名無しさん (ワッチョイ f7ea-LvKX) mailto:sage [2017/06/27(火) 12:25:58.18 ID:+aQQjqLh0.net] 正の数しかとらない変数がまだ初期化されていないことを明示するために負の値(特に-1)を使うとか割とよくある。
590 名前:デフォルトの名無しさん (スッップ Sdbf-iOY8) mailto:sage [2017/06/27(火) 14:22:30.38 ID:Gpx2Satod.net] >>581 ・仕様として正の整数 ・intの範囲で表せる が成り立つならintにする? 自分ならstd::size_tを選ぶなあ >>582 そんな需要があるとはちょっと不思議だ。クラスメンバ?
591 名前:デフォルトの名無しさん (ワッチョイ 1f91-ZLad) mailto:sage [2017/06/27(火) 14:33:30.02 ID:ntBitUxx0.net] int? i; が許されるのはC#だっけ?
592 名前:デフォルトの名無しさん (ワンミングク MM7f-Rrwd) mailto:sage [2017/06/27(火) 14:41:42.08 ID:siPR+sC7M.net] そもそもアドレス宣言と初期化は同時にしろって話だしね
593 名前:デフォルトの名無しさん (ワンミングク MM7f-Rrwd) mailto:sage [2017/06/27(火) 14:41:58.86 ID:siPR+sC7M.net] アドレス宣言ってなんだ 宣言ね
594 名前:デフォルトの名無しさん (ワッチョイ d76f-ADZD) mailto:sage [2017/06/27(火) 15:11:12.82 ID:DL/1tDv80.net] >>583 std::size_tの本来の用途じゃない数値でも使つのか?それはちょっと
595 名前:デフォルトの名無しさん (スッップ Sdbf-iOY8) mailto:sage [2017/06/27(火) 16:00:23.87 ID:Gpx2Satod.net] >>587 ああごめん、もともとは>>579 の 「 厳密にはunsigned intのほうが相応しい場合でも」 に反応しての発言だった。
596 名前:デフォルトの名無しさん (ワッチョイ 179a-VrB2) mailto:sage [2017/06/27(火) 19:00:49.27 ID:bJ//gE7J0.net] >>583 size_tだと64bit環境で64bitになるぞ
597 名前: ◆QZaw55cn4c (ワッチョイ 576d-frAY) mailto:sage [2017/06/27(火) 19:02:17.31 ID:kIT2/xtQ0.net] int が 64ビットになるべきだよね
598 名前:デフォルトの名無しさん (ワッチョイ 179a-VrB2) mailto:sage [2017/06/27(火) 19:07:21.81 ID:bJ//gE7J0.net] 当然そういうコンパイラはある Windows上だと過去の色々なしがらみなどからintが32bitなのが普通
599 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdbf-pKS6) mailto:sage [2017/06/27(火) 19:08:30.52 ID:OA/PxRyod.net] ビット数が気になるなら、<cstdint>のint??_tやuint??_tを使えばいいやんけ。
600 名前:デフォルトの名無しさん (ワッチョイ 179a-VrB2) mailto:sage [2017/06/27(火) 19:09:53.97 ID:bJ//gE7J0.net] 厳密にはunsignedの方が相応しいってどういう場合を想定してる? データサイズとかならunsignedの方が相応しいとも限らないよ
601 名前:デフォルトの名無しさん (ワッチョイ 179a-VrB2) mailto:sage [2017/06/27(火) 19:11:35.74 ID:bJ//gE7J0.net] >>592 そういう問題じゃない 言語のデフォルトサイズ、一番効率が良いとされているサイズが32bitなのか64bitなのか の問題
602 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdbf-pKS6) mailto:sage [2017/06/27(火) 19:15:41.98 ID:OA/PxRyod.net] その場合はintfast_t, uintfast_tを使う
603 名前:デフォルトの名無しさん (ワッチョイ bfe4-Nep8) mailto:sage [2017/06/27(火) 19:19:52.85 ID:N0WooBY/0.net] データが持つ意味と型の振る舞いは極力一致させるべきで 型の振る舞いはできる限り制限するべき 負の値を取り得ないならunsignedにする ローカル変数ならsignedでもいい
604 名前: ◆QZaw55cn4c (ワッチョイ 576d-frAY) mailto:sage [2017/06/27(火) 19:30:07.19 ID:kIT2/xtQ0.net] >>591 え?そんなコンパイラが実在するの?
605 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdbf-pKS6) mailto:sage [2017/06/27(火) 19:33:33.64 ID:OA/PxRyod.net] >>597 64-bit Linuxとか使ったことねーのか?
606 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdbf-pKS6) mailto:sage [2017/06/27(火) 19:37:05.21 ID:OA/PxRyod.net] >>598 ごめんなさい。
607 名前:デフォルトの名無しさん (ワッチョイ 179a-VrB2) mailto:sage [2017/06/27(火) 19:51:35.91 ID:bJ//gE7J0.net] 特殊な例だとcharからlong longまで全部64bitとかあるぞ もちろんPCではないけど
608 名前:デフォルトの名無しさん (ワッチョイ 179a-VrB2) mailto:sage [2017/06/27(火) 19:52:40.24 ID:bJ//gE7J0.net] こいつが噂のMZか 一人芝居の
609 名前:デフォルトの名無しさん (アウアウウー Sa9b-h10b) [2017/06/27(火) 20:06:34.19 ID:3pUMWgYLa.net] >>594 言語つーかCPUに依存しないか。 Core2は64ビット対応でも32ビットのが速い。 64ビットが速いのはCore iからとか。
610 名前:デフォルトの名無しさん (ワッチョイ 179a-VrB2) mailto:sage [2017/06/27(火) 20:10:45.68 ID:bJ//gE7J0.net] x86の64bitモードは32bitの方が速い命令がある キャッシュ容量とかメモリ帯域とかを考えても、絶対に32bitで足りるなら、32bitを選んだ方がいい
611 名前:デフォルトの名無しさん (オッペケ Sr0b-jRIn) mailto:sage [2017/06/27(火) 21:37:34.10 ID:ExZegnFlr.net] >こいつが噂のMZか >一人芝居の Qの一人芝居はまだ余興として見られるがもう一人のクソコテの一人芝居は痛々しくて見ていられない
612 名前:デフォルトの名無しさん (ワッチョイ 9fc3-NIhq) mailto:sage [2017/06/28(水) 02:28:02.75 ID:Irk2C7ZK0.net] >>596 型の振る舞いをできる限り制限するのは誤りを起こさない、起こしても明確なエラーにするのが目的だと思うんだけど、 符号なし整数型にそういった機能は無くて実際の助けにはならないから、こういう議論が起こる。
613 名前:デフォルトの名無しさん (ワッチョイ d76f-ADZD) mailto:sage [2017/06/28(水) 04:29:23.47 ID:matoew650.net] むしろsignedにしておけば不正に負の値が入れられた場合チェックしやすい
614 名前:デフォルトの名無しさん (ワッチョイ 9f89-RNzd) mailto:sage [2017/06/28(水) 07:46:44.59 ID:Aii/VoAq0.net] 符合つき整数との比較や算術演算した際に、warning出たり符合なしに変換されたりと面倒なことが多いから、定義域が非負という理由だけではわざわざ符合なしにはあまりしたくない。
615 名前:デフォルトの名無しさん (スプッッ Sd3f-oVeJ) [2017/06/28(水) 08:16:59.41 ID:MovvcuP9d.net] googleのスタイルだと整数は符号ありを使えってなってる
616 名前:デフォルトの名無しさん (スップ Sd3f-VrB2) mailto:sage [2017/06/28(水) 13:11:58.44 ID:4LULrFdtd.net] APIも64bitは符号ありが多い
617 名前:デフォルトの名無しさん (ワッチョイ 7f91-fiUu) [2017/06/28(水) 14:24:20.43 ID:qTRul81R0.net] Vvector<vector<float>> tensor; のようなテンソルを、1列にまとめて void Vector_Func(vector<float> &v){} ベクトルの関数の引数にしたいんだけどさ これって、新たにVector<float>型のベクトルを定義してそこにベクトルの中身をコピーし、それを利用して関数を呼び出して、さらにもとのテンソルにコピーして戻すしかないのかな? 2度のコピーにかかる時間を短縮できる方法があったら誰か教えて!!!
618 名前:デフォルトの名無しさん (ワッチョイ bfaf-7LQj) mailto:sage [2017/06/28(水) 14:26:13.68 ID:+YCVI2Ik0.net] typedef vector<vector<float> > tensorf; それとも右辺値参照的な話だろうか
619 名前:デフォルトの名無しさん (ワッチョイ 9f9f-Yx6S) mailto:sage [2017/06/28(水) 14:29:19.59 ID:eX7vr1Kz0.net] 参照になっているなら直接vを弄るだけでコピーする必要もないと思われ
620 名前:デフォルトの名無しさん (ワッチョイ d76f-ADZD) mailto:sage [2017/06/28(水) 15:12:35.77 ID:matoew650.net] >>610 1列にまとめる必要があるという前提ならどうしようもない気がする vector<vector<float>>を止めてデータの並びが最初から1列にまとまってるようなテンソルクラスを作るか、 どっかの行列ライブラリを転用するんだな
621 名前:デフォルトの名無しさん (ワッチョイ 9f9f-Yx6S) mailto:sage [2017/06/28(水) 16:00:31.95 ID:eX7vr1Kz0.net] 参照渡しでvが正常に得られるということは、vectorが値の参照を許容しているとも言える。
622 名前:デフォルトの名無しさん (ワンミングク MM7f-Rrwd) mailto:sage [2017/06/28(水) 16:46:10.90 ID:cWs7iztoM.net] >>610 iteratorパターンかrange viewのようなものを作る
623 名前:デフォルトの名無しさん (オッペケ Sr0b-jRIn) mailto:sage [2017/06/28(水) 18:00:52.06 ID:lG20CtJar.net] 612は健常者
624 名前: ◆QZaw55cn4c (ワッチョイ 179a-jSYe) mailto:sage [2017/06/28(水) 22:05:12.76 ID:y88Z2FQA0.net] >>598 その64bit Linux に乗っているコンパイラは何?
625 名前:デフォルトの名無しさん (ササクッテロラ Sp71-kiAr) [2017/06/29(木) 22:16:27.01 ID:3dQByb1op.net] C++の数値計算のコード読んでくとreadmeにSiam journal って雑誌の引用見かける事がやたら多いんだけどc++やる人は必読の雑誌だったりします?
626 名前:デフォルトの名無しさん (ワッチョイ 016f-bKJX) mailto:sage [2017/06/30(金) 01:47:04.93 ID:66+xb1tk0.net] C++ってより言語を問わず数値計算やる人だな 高速性が要求される数値計算はC++が使われることが多いってだけ
627 名前:デフォルトの名無しさん (ワッチョイ 46e4-ejav) mailto:sage [2017/06/30(金) 01:56:16.60 ID:/WxXdso/0.net] まず数学力を鍛えたほうがいい
628 名前:デフォルトの名無しさん (オッペケ Sr71-F+4p) mailto:sage [2017/06/30(金) 08:34:53.69 ID:2shJEbz+r.net] これがアスペというやつだな
629 名前:デフォルトの名無しさん (ワッチョイ 921b-zTMA) mailto:sage [2017/07/01(土) 07:18:19.26 ID:C6ffpB7m0.net] 式テンプレートを勉強中です。 X(i) op Y(i)だけで結果が決まる場合はともかく 行列の逆行列のような一要素の計算に行列全部が影響するような計算を こいつで実装する意味ってありまつか? 実装例とかあったら教えてください
630 名前:デフォルトの名無しさん (ワッチョイ 06af-D66J) mailto:sage [2017/07/01(土) 07:25:20.19 ID:qtP/3v2i0.net] 意味というか行列の逆行列のij成分はij余因子を行列式で割った値だと言うことを知っていれば NxN行列の逆行列の各成分はij余因子行列である(N-1)x(N-1)行列の行列式の計算になるから 数学的帰納法的にテンプレート化可能
631 名前:デフォルトの名無しさん (ワッチョイ 42aa-wjSU) mailto:sage [2017/07/01(土) 07:49:52.59 ID:nS8nnQe50.net] >>623 君は説明がうまいね
632 名前:デフォルトの名無しさん (ワッチョイ 06af-D66J) mailto:sage [2017/07/01(土) 08:05:35.58 ID:qtP/3v2i0.net] いやそれほどでも・・・///
633 名前:デフォルトの名無しさん (ワッチョイ 42aa-wjSU) mailto:sage [2017/07/01(土) 08:28:19.10 ID:nS8nnQe50.net] 式テンプレートで正項と負項をバサッと消し合うようなことができないかと考えて挫折したなあ
634 名前:デフォルトの名無しさん (ワッチョイ 921b-zTMA) mailto:sage [2017/07/01(土) 08:44:48.56 ID:C6ffpB7m0.net] >>623 いや、その余因子を求めることも、そこから行列式を求めるにも、全行列値が必要になるわけだし、 そもそも、余因子行列式の計算はNxN->3x3までの変換が再帰的な計算でスタックを使いたおすことになるので、 ヒープに一時オブジェクトを使わずにすむといという式テンプレートのメリットが全くないんじゃないんですか? だいたい余因子行列式の除算なんて効率悪すぎて数値計算じゃ使いませんよ。 話をはっきりさせるために、ここは逆行列計算をGauss-Jordanの掃き出し法に限定しましょうや。 >数学的帰納法的にテンプレート化可能 どういう意味です? 数学的帰納法とは、 i=1のときf(1)が成立する i=nのときf(n)が成立すると仮定すれば i=n+1のときも成立することを証明して、一般的にf(n)が成立とする
635 名前:デフォルトの名無しさん (ワッチョイ 921b-zTMA) mailto:sage [2017/07/01(土) 09:09:28.46 ID:C6ffpB7m0.net] >>626 ちょっと、誤解を招きかねないんで、 余因子行列式が再帰的云々と書きましたが、 余因子に限らず、行列式の計算そのものが再帰的という意味です。 だから、行列式計算そのものがやたら時間がかかる。 大学の試験の答案とかで、途中点をかせぐために(連立方程式を解いて計算間違いするより加点が期待できる)、 余因子行列式/行列式 を明記したりしますが、このやり方はせいぜい手計算でできる4x4程度の話で、 それ以上だと掃き出し法に比較して極端に非効率ということです。
636 名前:デフォルトの名無しさん (オッペケ Sr71-F+4p) mailto:sage [2017/07/01(土) 09:32:16.00 ID:T5yR4indr.net] >>627 >効率悪すぎて数値計算じゃ使いませんよ 「式テンプレートの勉強」を「汎用数値計算ライブラリを式テンプレート化するための勉強」にすりかえられても… >どういう意味です? ヒント:回答者は日本語を正しく使えない
637 名前:デフォルトの名無しさん (ワッチョイ 42aa-wjSU) mailto:sage [2017/07/01(土) 10:10:34.74 ID:nS8nnQe50.net] 再帰的に→帰納的に→帰納法的に jk
638 名前:デフォルトの名無しさん (ワッチョイ 0111-WwN4) mailto:sage [2017/07/01(土) 12:42:17.52 ID:RfHKhQjf0.net] 数学用語はよくわからんけど >行列の逆行列のような一要素の計算に行列全部が影響するような計算を >こいつで実装する意味ってありまつか? ない というか式テンプレート勉強するというなら自分で軽く実装してみるべきだよ ↑の場合は速度がどうこう以前の問題だとわかるから
639 名前:デフォルトの名無しさん (オッペケ Sr71-F+4p) mailto:sage [2017/07/01(土) 13:26:13.77 ID:T5yR4indr.net] >再帰的に→帰納的に これはひどい 再帰的と帰納的は関係ないし、数学的帰納法は帰納的でも帰納法でもない >>こいつで実装する意味ってありまつか? >ない 確かに質問に対する明確な回答なのだが、何かこう足りないような…
640 名前:デフォルトの名無しさん (スッップ Sd62-TIEP) mailto:sage [2017/07/05(水) 14:15:27.50 ID:/9Xtn5yvd.net] scanfより速い標準入力ってない? スペース区切りの大量のintをベクトルにいれたいんだけどループ回してscanfがどうやっても最速なのかな
641 名前:デフォルトの名無しさん (ワッチョイ 6e1c-4/kT) [2017/07/05(水) 15:44:26.17 ID:4h6UtxrL0.net] istream_iterator<int> first(cin), last; vector<int> wish_of_632{first, last};
642 名前:デフォルトの名無しさん (スッップ Sd62-TIEP) mailto:sage [2017/07/05(水) 16:39:36.49 ID:/9Xtn5yvd.net] >>634 試してみるサンクス
643 名前:デフォルトの名無しさん (オッペケ Sr71-F+4p) mailto:sage [2017/07/05(水) 16:59:04.15 ID:UhWlQCq1r.net] Visual Studio 2017のリリースビルドで試したが>>634 の方法は倍ほど遅いような
644 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd62-3ntT) mailto:sage [2017/07/05(水) 17:16:22.28 ID:2aUA7xnEd.net] fread, fgets, getchar
645 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd62-3ntT) mailto:sage [2017/07/05(水) 17:22:18.00 ID:2aUA7xnEd.net] int n = 0; if ('0' <= ch && ch <= '9') { n *= 10; n += ch - '0'; } else { put_int(n); n = 0; }
646 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd62-3ntT) mailto:sage [2017/07/05(水) 17:31:38.49 ID:2aUA7xnEd.net] GetStdHandle(STD_INPUT_HANDLE)
647 名前:デフォルトの名無しさん (ワッチョイ c2f0-wjSU) mailto:sage [2017/07/05(水) 18:03:51.31 ID:IVGCprss0.net] 大量=一行10000個程度の数字が10000行ほど?
648 名前:デフォルトの名無しさん (オッペケ Sr71-F+4p) mailto:sage [2017/07/05(水) 18:09:07.25 ID:UhWlQCq1r.net] 自前が最速なのだろうが汎用性を考えるとお勧めできない ある環境での適当な100万個の整数読み込み時間: istream_iterator : 470ms scanf : 230ms fgetc+自前スペース解析+atoi : 175ms 最初に全部char配列に読み込み+片山式パース: 32ms
649 名前:デフォルトの名無しさん (ワッチョイ 46e4-ejav) mailto:sage [2017/07/05(水) 19:23:43.26 ID:rZavNuQl0.net] 何のチェックもしないscanf,printfのやり方が最速なのは自明
650 名前:デフォルトの名無しさん (ワッチョイ 6111-wjSU) mailto:sage [2017/07/05(水) 20:06:49.25 ID:tZeoWZVY0.net] >>641 >最初に全部char配列に読み込み+片山式パース: これって随分早いけどパースより読み込みが効いてるんじゃないの 恐らくfgets使ってるんだよね
651 名前:デフォルトの名無しさん (オッペケ Sr71-F+4p) mailto:sage [2017/07/05(水) 20:09:41.12 ID:UhWlQCq1r.net] >>643 fgetsでなくfreadで読んだ なおこの全読み込み方式で数値の切り出しをatoiにすると80msだったので やはりI/Oの効率化が支配的と理解した
652 名前:デフォルトの名無しさん (ワッチョイ 6111-wjSU) mailto:sage [2017/07/05(水) 21:04:30.49 ID:tZeoWZVY0.net] >>644 てことは fgetc+自前スペース解析+atoi :175ms fread++自前スペース解析+atoi :80ms 読み込みのオーバーヘッドで175-80=95msロスしてるわけか atoiは変換不能文字とか16進とかチェックしてるからその分遅くなるんだろう 自前で10進のみに特化させるのが一番なんだけどもな
653 名前:デフォルトの名無しさん (スップ Sdc2-Pf3w) mailto:sage [2017/07/05(水) 21:05:36.71 ID:O+22iBefd.net] 複数スレッドに分けてアセンブラの自作関数で回す
654 名前:デフォルトの名無しさん (スップ Sdc2-Pf3w) mailto:sage [2017/07/05(水) 21:07:40.11 ID:O+22iBefd.net] 各スレッドも、複数数値を並列で動かす
655 名前:デフォルトの名無しさん (スップ Sdc2-Pf3w) mailto:sage [2017/07/05(水) 21:08:36.26 ID:O+22iBefd.net] C++スレだった すまんこ
656 名前:はつみつ餃子 ◆8X2XSCHEME (ワッチョイ 8215-CicO) mailto:sage [2017/07/05(水) 21:23:34.13 ID:YH3wEyty0.net] どういう風に並列化できる?
657 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd62-3ntT) mailto:sage [2017/07/05(水) 21:26:33.09 ID:2aUA7xnEd.net] 処理すべきブロックに対して、ちょうどいい区切りで、等分割に近い分割をやって、それぞれを別々のスレッドで処理する。 スレッドがすべて終わったら、処理結果を結合する。
658 名前:デフォルトの名無しさん (ワッチョイ 6111-wjSU) mailto:sage [2017/07/05(水) 21:28:54.47 ID:tZeoWZVY0.net] スレッドもインラインアセンブラもC++の範疇だよ ただIOはロックされるから解放待ちの時間が出来てしまう ラインごとに随時読み込んでスレッド振り分けかな パースに時間がかかるならそれも悪くないんだろうけど簡易atoi程度じゃ差は出にくい
659 名前:デフォルトの名無しさん (ワッチョイ c21b-8PSv) mailto:sage [2017/07/05(水) 21:34:38.31 ID:slEXI2jh0.net] 原理的にはブロッキングIOのファイル読み出しの待ち時間を有効に活用すれば それが最速だけど並列化のオーバーヘッドを最小にしようと思ったら OS毎あるいはファイルIOのライブラリ毎に特化しなきゃならない気がするので面倒くさい
660 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd62-3ntT) mailto:sage [2017/07/05(水) 21:40:11.90 ID:2aUA7xnEd.net] #ifdef _WIN32 // Windowsの場合 ... #elif ...
661 名前:デフォルトの名無しさん (ワッチョイ c99a-Pf3w) mailto:sage [2017/07/05(水) 23:16:04.44 ID:icFnMa9s0.net] 各スレッドも、前から順番にやってたら遅い 各スレッドのなかでも複数を同時にやらないと 例えば>>638 みたいなのだと、各ステップが終わらないと次のステップに進めない 演算の遅延があるので、各演算ポートはスカスカになる HTで少しはマシにはなるが、それでもスカスカ 整数演算は同時に3個〜4個出来るのだ これを活かさないと まあいずれにしろファイルなんか使ってたら読み込み時間がほとんどなので、ガリガリにアセンブラで組む価値もないけど
662 名前:デフォルトの名無しさん (ワッチョイ be91-DoE+) mailto:sage [2017/07/05(水) 23:24:23.81 ID:9lrezxXx0.net] C++のすごい人お願い教えて!!!functionにメンバ関数を代入するにはどうすればいいのか全然わからんのや!!! #include <iostream> #include<functional> using namespace std; struct C{ int i=0; function<void()> f; void A(){ cout << i;} void B(){ f=A;//ここで「reference to non-static member function must be called; did you mean to call it with no arguments?」 //関数A();をstaticにすればエラーは消えるものの、C::A()を呼びたいのではなくc.A();を呼び出したい f(); } }; void main(void){ C c; c.B(); }
663 名前:デフォルトの名無しさん (ワッチョイ 06a6-F+4p) mailto:sage [2017/07/05(水) 23:25:58.77 ID:pl4REjuI0.net] 釣りならもっと議論の余地のあるネタにしろ
664 名前:デフォルトの名無しさん (ワッチョイ 06a6-F+4p) mailto:sage [2017/07/05(水) 23:36:21.55 ID:pl4REjuI0.net] f = [this]{A();}; c.f = [&]{c.A();}; 二度と来んなカス
665 名前:デフォルトの名無しさん (ワッチョイ b7ea-rvkC) mailto:sage [2017/07/06(木) 09:30:12.16 ID:x5DiEtc40.net] ファイル読み取りの待ち時間を別スレッドに割り当てるってのは、 誰もが考えつく話だけど、誰もがどうでもいいやと投げ出す話。
666 名前:デフォルトの名無しさん (ワッチョイ f7e2-pw7F) mailto:sage [2017/07/06(木) 20:44:37.47 ID:3RH7JsNg0.net] テンプレートクラスの継承で↓みたいなことをやりたいんですが エラーが出てコンパイルが通りません どこが間違っていますか?もしくはもっと良い方法はありますか? template< typename T > class alpha { private: T mVar; public: alpha( T var ) : mVar( var ) {} }; class bravo : public alpha< float > { public: bravo( float var ) : alpha( var ) {} };
667 名前:デフォルトの名無しさん (ワッチョイ bfaf-VFUi) mailto:sage [2017/07/06(木) 20:54:42.22 ID:1SuD/0Q50.net] コンパイル通りそうだけど どんなエラー?
668 名前:デフォルトの名無しさん (ワッチョイ 976f-U373) mailto:sage [2017/07/06(木) 20:54:56.95 ID:r4C+2lo90.net] なぜ肝心のエラーの内容を書かないのか
669 名前:デフォルトの名無しさん (ワッチョイ f7e2-pw7F) mailto:sage [2017/07/06(木) 20:58:24.06 ID:3RH7JsNg0.net] 658です コンパイル通りました すまんこ
670 名前:デフォルトの名無しさん (ワッチョイ bfe4-LW8t) mailto:sage [2017/07/06(木) 21:29:46.08 ID:RDUi9QjP0.net] ゆるさねえからな
671 名前:デフォルトの名無しさん (スプッッ Sd3f-RGC3) [2017/07/06(木) 22:12:30.80 ID:8iMXbcNhd.net] いえいえどういたしまして
672 名前:デフォルトの名無しさん (ワッチョイ 9f8f-gRQY) [2017/07/07(金) 00:01:47.76 ID:lYH0c+880.net] ヽ(・ω・)/ズコー
673 名前:デフォルトの名無しさん (ワッチョイ 1f1b-6//c) mailto:豊田の姉松居一代 [2017/07/10(月) 06:02:24.59 ID:kxDJWNLg0.net] 最近は3年毎に仕様改訂されてるC++なので プロパティはどーなってるのカナー♪ RWPropertyて・・・ このハゲーーーー!!! 違うだろ ち・が・う・だ・ろーーーー!!! C#みたいに class Body{ size_t Chimpo{ get; set;} }; Body Oreno; Oreno.Chimpo = 20; cerr << Oreno.Chimpo <<"cm\n"; と簡単に書きたいんです・す・す
674 名前:デフォルトの名無しさん (ワッチョイ 1f1b-6//c) mailto:豊田の姉松居一代 [2017/07/10(月) 06:06:24.38 ID:kxDJWNLg0.net] テンプレートなんかでお茶濁し腐って 言語仕様として実装しろつってんだよハゲーーーー!!! ぶち殺すぞ
675 名前:デフォルトの名無しさん (ワッチョイ 9709-8gU5) mailto:sage [2017/07/10(月) 06:07:31.30 ID:NdIMybBN0.net] C#のあれ結局関数だから、下駄と雪駄書きなさい。
676 名前:デフォルトの名無しさん (ワッチョイ 1f1b-6//c) mailto:豊田の姉松居一代 [2017/07/10(月) 06:21:29.79 ID:kxDJWNLg0.net] はやっ なんでこんな時間に2chなんかやってんだよ
677 名前:デフォルトの名無しさん (ワッチョイ 9709-8gU5) mailto:sage [2017/07/10(月) 06:42:08.85 ID:NdIMybBN0.net] オマエモナー。
678 名前:デフォルトの名無しさん (ワッチョイ 1f1b-6//c) mailto:sage [2017/07/10(月) 06:48:01.08 ID:kxDJWNLg0.net] 俺は超早く寝て朝4:30に起きるように 生活習慣変えたから
679 名前:名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ 9709-8gU5) mailto:sage [2017/07/10(月) 07:03:50.00 ID:NdIMybBN0.net] 俺は、夜行性なだけだ。 今日は用事があるからこのまま起きてるが。
680 名前:デフォルトの名無しさん (スップ Sd3f-nGAm) mailto:sage [2017/07/10(月) 11:54:33.30 ID:okOc14zTd.net] 単独プロパティでゲットセット? あまり需要ないなあ。(個人の感想です)
681 名前:デフォルトの名無しさん (ワッチョイ 7f32-MxGc) mailto:sage [2017/07/11(火) 00:29:34.07 ID:4iHLvMGp0.net] メンバ変数はない方がいいし、アクセスする必要がある時点で、隠蔽が崩れ始めてると思った方がいいと思う。 特定のパターン除けば、外からメンバ変数にアクセスしたいケースってすくなくない? get/setは、リフレクションと命名規則に依存するフレームワークがあるから便利なのであって、c++には微妙じゃね?
682 名前:デフォルトの名無しさん (ワッチョイ bfe4-LW8t) mailto:sage [2017/07/11(火) 01:25:20.72 ID:7V5lebao0.net] 自動実装のgetsetってpublicなメンバ変数と何が違うんだ
683 名前:デフォルトの名無しさん (ワッチョイ 9709-8gU5) mailto:sage [2017/07/11(火) 01:29:35.46 ID:CDrVRBQX0.net] >>675 何度目だろう。 なんか、関数にしておくとオーバライドできて関数内で加工できるから違うって聞いた。
684 名前:デフォルトの名無しさん (ワッチョイ 174b-R6aQ) mailto:sage [2017/07/11(火) 01:48:50.09 ID:8G8H3ksE0.net] ゲッタセッタとか使いたくなるような場面ならそもそもpublicな構造体使った方がいい説はある
685 名前:デフォルトの名無しさん (ワッチョイ 174b-R6aQ) mailto:sage [2017/07/11(火) 01:50:07.47 ID:8G8H3ksE0.net] 配列のlengthとかあったか やっぱ取り消し
686 名前:デフォルトの名無しさん (ワッチョイ b7ea-rvkC) [2017/07/11(火) 06:32:58.41 ID:nM0jXF630.net] 関数オーバーロードやプロパティによるget/setの乱用は、メソッド名の文字列検索によるソースコード追跡ができなくなりかえって難読性が高まる。
687 名前:デフォルトの名無しさん (ワッチョイ 1f1b-6//c) mailto:sage [2017/07/11(火) 07:59:11.17 ID:MCsEtOKi0.net] ↓のテンプレートとジェネリックの違い、にある https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/generics/differences-between-cpp-templates-and-csharp-generics トップ項目にある ・C# ジェネリック クラスでは、ユーザー定義演算子は呼び出すことができますが、算術演算子を呼び出すことはできません。 "算術演算子を呼び出すことはできません"ってどーいう意味っすか? 算術演算子って+-*/のこと?
688 名前:デフォルトの名無しさん (アウアウウー Sa5b-X9Wr) [2017/07/11(火) 08:03:15.77 ID:ZtZ4WBZMa.net] C++すれでC#聞かれても。。。
689 名前:デフォルトの名無しさん (ワッチョイ 9f9f-ieup) mailto:sage [2017/07/11(火) 08:05:01.05 ID:bgByaxVg0.net] 頭悪いからだろ
690 名前:デフォルトの名無しさん (ワッチョイ 1f1b-6//c) mailto:sage [2017/07/11(火) 08:18:43.46 ID:MCsEtOKi0.net] >>681 あ、C#スレ行きます
691 名前:はつみつ餃子 ◆8X2XSCHEME (ワッチョイ 9f15-rvkC) mailto:sage [2017/07/11(火) 18:08:51.11 ID:W3h9V8nz0.net] 理解が逆なんだよ。 関数の組 (ときには片方のこともある) を変数として抽象化しようとするのがプロパティであって、 メンバ変数のアクセサとしても使えるのは用例のひとつでしかない。 ゲッタとセッタが自動生成できるとかいうのはまた別問題だるぉおおお
692 名前:デフォルトの名無しさん (ワッチョイ 5711-rvkC) mailto:sage [2017/07/11(火) 18:54:25.62 ID:dSS1j36W0.net] [][Tebla][] } 000-"Yob*RtStrike"[%Kil\]MO,fla>%$9999VLTS 001-GYORLith"0\R"/"ESUBA"%$% HADO-"EM","L","O","NU"###END
693 名前:デフォルトの名無しさん (スップ Sd3f-nGAm) mailto:sage [2017/07/11(火) 19:07:21.76 ID:DqTb1LDQd.net] >>684 素人なので「変数として抽象化」ってとこがよくわからない
694 名前:デフォルトの名無しさん (ワッチョイ d796-rvkC) mailto:sage [2017/07/11(火) 19:17:50.67 ID:dG3xud1d0.net] みなさんが複雑すぎて糞と言われるC++を使う理由を教えて下さい。
695 名前:デフォルトの名無しさん (ワンミングク MM7f-hrVG) mailto:sage [2017/07/11(火) 19:37:55.48 ID:FP4c/tWpM.net] >>684 なるほど、そんな捉え方があるのか データ抽象の一つの形としてプロパティなるものがあるって考え方ね
696 名前:デフォルトの名無しさん (スップ Sd3f-nGAm) mailto:sage [2017/07/11(火) 19:40:41.20 ID:DqTb1LDQd.net] >>687 言われるほど複雑じゃないから
697 名前:デフォルトの名無しさん (ワッチョイ bfe4-LW8t) mailto:sage [2017/07/11(火) 19:43:55.52 ID:7V5lebao0.net] >>687 複雑すぎではないし糞でもないから
698 名前:デフォルトの名無しさん (ワッチョイ bfaf-VFUi) mailto:sage [2017/07/11(火) 19:45:13.43 ID:YnoqV4V50.net] SDKがC++しかなくて仕方なく・・・
699 名前:デフォルトの名無しさん (ドコグロ MM2b-d65a) mailto:sage [2017/07/11(火) 20:21:24.75 ID:Wcul0TB2M.net] ネイティブコードを吐けるオブジェクト指向言語でメジャーな奴は C++ ぐらいしかないし
700 名前:デフォルトの名無しさん (ワッチョイ d796-rvkC) mailto:sage [2017/07/11(火) 21:14:29.35 ID:dG3xud1d0.net]
701 名前:人は複雑じゃないもん 二人は仕方なし [] [ここ壊れてます]
702 名前:デフォルトの名無しさん (ワッチョイ 9f89-EAWM) mailto:sage [2017/07/11(火) 21:42:20.62 ID:VLYeJXw20.net] いちばん使い慣れていて、使い勝手の良い道具だから。
703 名前:デフォルトの名無しさん (ワッチョイ d79a-0UkT) mailto:sage [2017/07/11(火) 22:06:48.92 ID:qjau/h5c0.net] 複雑だが糞ではない
704 名前:デフォルトの名無しさん (ドコグロ MMbf-rPCP) mailto:sage [2017/07/11(火) 22:11:10.23 ID:mCNEANh4M.net] >>686 同じ書き方で呼び出せる、ということ。 値を受け取るときに何か処理するようにしたとしても、プロパティなら関数呼び出しに書き換える必要がない。
705 名前:デフォルトの名無しさん (スップ Sd3f-nGAm) mailto:sage [2017/07/11(火) 22:18:58.63 ID:DqTb1LDQd.net] >>696 期待していた答えと違う 期待していた答えと違う
706 名前:デフォルトの名無しさん (ワッチョイ bfe4-LW8t) mailto:sage [2017/07/11(火) 22:30:22.09 ID:7V5lebao0.net] >>696 わざわざパースの難易度を上げてまで入れる価値はないな C++の場合変数に見える関数なんて落とし穴にしかならない
707 名前:デフォルトの名無しさん (ドコグロ MMbf-rPCP) mailto:sage [2017/07/11(火) 22:35:06.05 ID:mCNEANh4M.net] >>697 それじゃこう? 呼び出し元が同じ概念で扱えるように、呼び出し先のメンバ変数の読み込みと0変数関数、メンバ変数書き込みと1変数関数をプロパティという概念で同一視している。
708 名前:デフォルトの名無しさん (ワッチョイ 176f-zXdO) mailto:sage [2017/07/11(火) 22:35:38.41 ID:jUUyBjmf0.net] ビットローテーションについての相談です 今やりたいことは128文字の文字列を暗号化したい その中で4バイトごとに区切って、4バイトごとにビットローテーションして暗号化を考えている それの実現方法で悩んでいます 想定では右シフト char a[128] = 文字列; int x = a[0] << 24 + a[1] << 16 + a[2] << 8 + a[3]; // 下位2bitを上位2bitでtmp作成 int tmp = a[3] << 30; x = x >> 2 + tmp; これを繰り返す。 こんな感じのを考えたのだけどもっと良い方法はあるだろうか?
709 名前:デフォルトの名無しさん (ワッチョイ d79a-0UkT) mailto:sage [2017/07/11(火) 22:42:18.86 ID:qjau/h5c0.net] 環境依存で良いなら色々と思い付く とりあえず、<<より+の方が優先度が高いので()を付けないと | なら()は不要 コストは多分ほとんどの環境で同じ 8086とかだと | の方が速かったり
710 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdbf-R88v) mailto:sage [2017/07/11(火) 22:43:45.50 ID:7IW2GOwZd.net] >>700 数学や計算機科学を知らない素人が暗号化方式を考えるのは、おそらく無駄であり、出来たとしてもすぐハッキングされてしまう。 暗号化方式は、先人の研究によって評価されている手法を使うのが一般的。より良い暗号化方式を 考えるのは計算機科学者の仕事であり、プログラマーはその手法をプログラムに取り入れるだけだ。
711 名前:デフォルトの名無しさん (ワッチョイ d79a-0UkT) mailto:sage [2017/07/11(火) 22:45:09.93 ID:qjau/h5c0.net] どっちみち>>700 の時点で環境依存だ
712 名前:デフォルトの名無しさん (ワッチョイ d79a-0UkT) mailto:sage [2017/07/11(火) 22:46:16.83 ID:qjau/h5c0.net] >>702 目的による 家の鍵もプロが1分以内で開けられるから意味ない?
713 名前:デフォルトの名無しさん (ワッチョイ bfaa-rPCP) mailto:sage [2017/07/11(火) 23:06:53.51 ID:01bGuLEG0.net] >>704 家の鍵を素人が作るのは意味ない。
714 名前:デフォルトの名無しさん (ワッチョイ 9f89-EAWM) mailto:sage [2017/07/11(火) 23:17:01.14 ID:VLYeJXw20.net] 質問者の目的が言語の学習とか、ちょっとしたテキストの難読化なのかもしれないのに、 外野が憶測で否定したり変な方向で議論を展開したり…。 相談室なのだから、もうちっと質問者の為になる話の流れにならないかなと思う。
715 名前:デフォルトの名無しさん (ワッチョイ bfe4-LW8t) mailto:sage [2017/07/11(火) 23:17:54.39 ID:7V5lebao0.net] >>700 少なくともこうしないと期待通りに動かないよ int x = (a[0] << 24) + (a[1] << 16) + (a[2] << 8) + a[3];
716 名前:デフォルトの名無しさん (ワッチョイ 176f-zXdO) mailto:sage [2017/07/11(火) 23:21:49.34 ID:jUUyBjmf0.net] >>706 さんの言うとおりにテキストの難読化が目的です bit演算に触れてみるのにちょっとした暗号化が良いレベルなのかなって思ってチャレンジしているところ やっぱり演算子の優先度とかで注意点あるね 環境依存するのかな?この方法
717 名前:デフォルトの名無しさん (ワッチョイ 176f-zXdO) mailto:sage [2017/07/11(火) 23:23:13.79 ID:jUUyBjmf0.net] >>701 環境依存で良いっていうとこの他にも色々あるんだ 自分の知っている限りの方法でできるならこれしか思いつかなかった…
718 名前:デフォルトの名無しさん (オッペケ Srcb-sNxi) mailto:sage [2017/07/11(火) 23:33:54.38 ID:L5b0rMHKr.net] >環境依存するのかな? むしろこのコードで動く環境が珍しいような
719 名前:デフォルトの名無しさん (ワッチョイ 9f89-EAWM) mailto:sage [2017/07/11(火) 23:45:11.34 ID:VLYeJXw20.net] char型が負数を表すかが環境依存。 負数を左シフトした結果が環境依存。 だからunsigned型の変数を使う。 負数を左シフトした結果が負数だったとして、それを加算したら想定してた結果にならないから、加算ではなくビットORを使う。
720 名前:デフォルトの名無しさん (ワッチョイ bfe4-LW8t) mailto:sage [2017/07/11(火) 23:50:08.05 ID:7V5lebao0.net] 思いつきで変な暗号作るより検索するなりしてまともな基礎的なアルゴリズムを実装したほうが勉強になる
721 名前:デフォルトの名無しさん (スップ Sd3f-nSBM) mailto:sage [2017/07/11(火) 23:55:54.87 ID:KCPaJcrVd.net] 文盲多すぎね? bit演算をやる方法を学びたい的な雰囲気なのに暗号作る方をメインに読み取ってるやつおおくね? しかもレスもあったあとなのに
722 名前:デフォルトの名無しさん (ワッチョイ 176f-zXdO) mailto:sage [2017/07/11(火) 23:59:49.23 ID:jUUyBjmf0.net] >>711 charが負を表すか否かってのはどこも同じではない…? あと最後の加算ではなくビットORってのは一体
723 名前:デフォルトの名無しさん (オッペケ Srcb-sNxi) mailto:sage [2017/07/12(水) 00:01:29.72 ID:XspFYFk7r.net] >>702 を文盲と断定する根拠は見あたらないが >>706 がアスペなのは間違いない
724 名前:デフォルトの名無しさん (ワッチョイ bfe4-LW8t) mailto:sage [2017/07/12(水) 00:04:15.65 ID:WTh+eJgx0.net] >>713 bit演算については何も聞いてないだろ もう一回読み直せや 式がおかしいからツッコミ入ってるだけで質問の趣旨に対しては検索しろとしか言いようがない
725 名前:デフォルトの名無しさん (スップ Sd3f-nSBM) mailto:sage [2017/07/12(水) 00:06:40.65 ID:vUTYJqrrd.net] >>716 いやどう見ても「bit演算に触れてみるのに」って書いてあんじゃん その後に暗号化については重きをおいていないレスもかかれているのに思い付きで変な暗号を考えるより〜とかレスしてんじゃん
726 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9f15-rvkC) mailto:sage [2017/07/12(水) 00:15:27.23 ID:trGyb9bp0.net] >>714 単に int と書いたら signed int と書いたのと同じ意味になるからよく誤解されるんだけど、 char は signed char でも unsigned char でもない固有の型なんだよ。 オーバーロードで試してみたらすぐわかる。 表現できる範囲は signed char か unsigned char のどちらかと同じではあるけど、 どちらかは処理系が選択していい。 処理系によってはオプションで変えられる場合もある。
727 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdbf-R88v) mailto:sage [2017/07/12(水) 00:22:30.14 ID:mvEs3lAId.net] #include <cstdint> unsigned char a[128]; ... unsigned char prev4bits = (a[128 - 1] >> 4); for (int i = 0; i < 128 - 1; i++) { unsigned char b = (a[i] >> 4); a[i] <<= 4; a[i] |= prev4bits; prev4broken = b; }
728 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdbf-R88v) mailto:sage [2017/07/12(水) 00:29:02.98 ID:mvEs3lAId.net] >>719 訂正。 #define NUM_BYTES 123 unsigned char a[NUM_BYTES]; ... unsigned char prev4bits = (a[NUM_BYTES - 1] >> 4); for (int i = 0; i < NUM_BYTES; i++) { unsigned char b = (a[i] >> 4); a[i] <<= 4; a[i] |= prev4bits; prev4bits = b; }
729 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdbf-R88v) mailto:sage [2017/07/12(水) 00:42:16.50 ID:mvEs3lAId.net] あるいは #define NUM_BYTES 128 unsigned char a[NUM_BYTES]; ... unsigned char prev4bits = (a[NUM_BYTES - 1] >> 4); for (int i = 0; i < NUM_BYTES / sizeof(int); i++) { unsigned char b = (a[(i + 1) * sizeof(int) - 1] >> 4); ((int *)a)[i] <<= 4; a[i * sizeof(int)] |= prev4bits; prev4bits = b; }
730 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdbf-R88v) mailto:sage [2017/07/12(水) 00:46:41.27 ID:mvEs3lAId.net] >>721 訂正。 #define NUM_BYTES 128 unsigned char a[NUM_BYTES]; ... unsigned char prev4bits = (a[NUM_BYTES - 1] >> 4); for (int i = 0; i < NUM_BYTES / sizeof(unsigned int); i++) { >unsigned char b = (a[(i + 1) * sizeof(unsigned int) - 1] >> 4); ((unsigned int *)a)[i] <<= 4; a[i * sizeof(unsigned int)] |= prev4bits; prev4bits = b; }
731 名前:デフォルトの名無しさん (ワッチョイ 9f8f-gRQY) [2017/07/12(水) 01:19:28.71 ID:L1I2nS9y0.net] >>711 負数を左シフトしても問題ないだろ
732 名前:デフォルトの名無しさん (ワッチョイ 9f8f-gRQY) [2017/07/12(水) 01:21:26.50 ID:L1I2nS9y0.net] ああ、元の式を見てなかった まさか足し算してるとは… そのまま符号付きで使うことを意図してたら、確かに問題だな
733 名前:デフォルトの名無しさん (ワッチョイ ffaa-PX3H) mailto:sage [2017/07/12(水) 05:56:30.63 ID:HQm2gXhD0.net] LLVM, MISRA-Cでも決められているけど、 int, char など、処理系依存の型は使うな。 必ず、ビット数・符号の有無を明示すること unsigned char unsigned int32
734 名前:デフォルトの名無しさん (ワッチョイ d79a-0UkT) mailto:sage [2017/07/12(水) 06:25:07.29 ID:Mf+sZV2C0.net] >>700 環境依存なのは、 intが4バイト charが8ビット 負の数の表現方法 バグは 演算子の優先順位 xの右シフト
735 名前:デフォルトの名無しさん (ワッチョイ d79a-0UkT) mailto:sage [2017/07/12(水) 06:33:18.90 ID:Mf+sZV2C0.net] >>720 元の意図とは違う結果に見える >>722 ビッグエンディアンじゃないと違う結果 バイトアクセス可能っていう条件もつく
736 名前:デフォルトの名無しさん (スップ Sd3f-nGAm) mailto:sage [2017/07/12(水) 06:33:41.93 ID:7DtiXvdjd.net] >>718 関係ないけどそれをどう捉えるべきか ・だからC++は複雑 ・C++は言われるほど複雑じゃない
737 名前:デフォルトの名無しさん (ワッチョイ 9709-8gU5) mailto:sage [2017/07/12(水) 06:35:07.19 ID:DgqX1C+L0.net] C++はそろそろbyte型が入るよ。 多分エーリアスだけどね。
738 名前:デフォルトの名無しさん (ワッチョイ d79a-0UkT) mailto:sage [2017/07/12(水) 06:38:05.27 ID:Mf+sZV2C0.net] unsigned int x = (unsigned int)a[0] << 24 | (unsigned int)a[1] << 16 | (unsigned int)a[2] << 8 | (unsigned int)a[3]; x = x << 30 | x >> 2; 互換性と簡潔さのバランスで、こんな感じじゃない? unsigned intが32bit charが8bit 限定
739 名前:デフォルトの名無しさん (ワッチョイ d79a-0UkT) mailto:sage [2017/07/12(水) 06:44:26.17 ID:Mf+sZV2C0.net] もうちょっと簡潔さ重視だと、キャスト無しで
740 名前:デフォルトの名無しさん (ワッチョイ d79a-0UkT) mailto:sage [2017/07/12(水) 06:50:51.01 ID:Mf+sZV2C0.net] バリバリ環境依存で速度重視なら intrinsicでAVX2やAVX512とか インラインアセンブラはこのスレ的には反則?
741 名前: ◆QZaw55cn4c (ワッチョイ 176d-hafE) mailto:sage [2017/07/12(水) 07:30:39.07 ID:9q9UgJkW0.net] >>725 かならずしも賛同できない、必要なときに unsigned/signed を指定すればいいのでは?
742 名前:デフォルトの名無しさん (ワッチョイ 9709-8gU5) mailto:sage [2017/07/12(水) 07:31:30.65 ID:DgqX1C+L0.net] cstdintを使おう。
743 名前: ◆QZaw55cn4c (ワッチョイ 176d-hafE) mailto:sage [2017/07/12(水) 07:31:53.68 ID:9q9UgJkW0.net] >>732 インラインで自由にかけてこそのC/C++ だと思うんだが、最近は嫌われるみたいだね
744 名前:デフォルトの名無しさん (オッペケ Srcb-sNxi) mailto:sage [2017/07/12(水) 07:59:55.87 ID:SNfdy8Tor.net] MISRAさんパネェな for (int = 0;i <= n; i++) // きんし! X operator ++(int); // きんし! int main() {} // きんし!
745 名前:デフォルトの名無しさん (スップ Sd3f-nSBM) mailto:sage [2017/07/12(水) 08:23:54.55 ID:vUTYJqrrd.net] >>730 あとの問題はあれだな 応用利かせるなら128文字が129文字になったときにどうするかなどの規約的な話にも対応できるようなコードにする方が 後にちに勉強になりそう
746 名前:デフォルトの名無しさん (ワッチョイ bfe4-LW8t) mailto:sage [2017/07/12(水) 08:47:06.94 ID:WTh+eJgx0.net] バイト単位で回転させるだけならstd::rotateやstd::copyでいい
747 名前:デフォルトの名無しさん (ワッチョイ 1706-pw7F) mailto:sage [2017/07/12(水) 10:52:11.36 ID:QOR+1nCC0.net] 自作クラスで他の自作クラスのインスタンスのコレクションを返すメソッドを追加したい のですがクラス設計ってどうすればいいでしょうか??ガチガチの最適化?まではしなくていいので 普通ぐらいの最適化?ぐらいでOKです。 public: std::shared_ptr<std::vector<std::shared_ptr<CMyClass>>> EnumeateMyClasses() こんな感じで設計すればいいでしょうか? C#なら IEnumerable<CMyClass> EnumeateMyClasses() とかにするんですが
748 名前:デフォルトの名無しさん (ワッチョイ 9709-8gU5) mailto:sage [2017/07/12(水) 11:12:35.14 ID:DgqX1C+L0.net] 返したものをどこら辺まで使うんやろ。 たらい回しにするんだったら、スマポでも良いけど、一時でやるんだったらこんすと参照でも良いし。 でも、内部で持ってるものを外でたらい回しにされるのは気持ち悪いな。
749 名前:デフォルトの名無しさん (ワッチョイ 1706-pw7F) mailto:sage [2017/07/12(水) 11:30:49.11 ID:QOR+1nCC0.net] Enumerateメソッドは内部ではインスタンス作りますが、内部でその参照を保持することは ないですね、メソッド内で作って呼び出し元に返すだけです。 どれくらいたらい回すかは使う側次第です。 >たらい回しにするんだったら、スマポでも良いけど、一時でやるんだったらこんすと参照でも良いし こんすと参照とかもあるんですか・・ まぁ、先ほども書いたようにC++に深入りすると死にそうなので、 とりあえず、C#erの人がちょっと毛が生えた程度でC++を使うレベルでいいので。
750 名前:デフォルトの名無しさん (ワッチョイ 9709-8gU5) mailto:sage [2017/07/12(水) 11:34:33.27 ID:DgqX1C+L0.net] >>741 どう伝えればいいかわかんない。 識者求。
751 名前:デフォルトの名無しさん (ワッチョイ bfe4-LW8t) mailto:sage [2017/07/12(水) 12:51:39.26 ID:WTh+eJgx0.net] >>739 それでもいいと思うけど コンパイラの最適化が期待できる状況ならvectorをshared_ptrで包む必要は無い
752 名前:デフォルトの名無しさん (スプッッ Sd3f-nGAm) mailto:sage [2017/07/12(水) 13:59:49.69 ID:HO+tEfFId.net] うん、ただvectorを返せばいいと思うけど
753 名前:デフォルトの名無しさん (ワッチョイ 1706-pw7F) mailto:sage [2017/07/12(水) 14:16:55.03 ID:QOR+1nCC0.net] あれ、そうなんですか?? ムズイな・・ vector自体を返しても、要素自体はコピー?されないってことですかね? ぐぉぉぉ。
754 名前:デフォルトの名無しさん (スップ Sd3f-nSBM) mailto:sage [2017/07/12(水) 14:31:08.44 ID:vUTYJqrrd.net] なんでキャラ配列では終端文字を意識して 他の型の配列では意識しないんだぜ
755 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9f15-rvkC) mailto:sage [2017/07/12(水) 14:43:06.63 ID:trGyb9bp0.net] >>745 RVO やムーブによってコピーが抑制される。 従来の RVO は「してもよい」という、 省略による最適化を許す形で規定されていたが C++17 からは必須になってるので、 条件がそろえば確実にコピーはされないことが保証される。
756 名前:デフォルトの名無しさん (スプッッ Sd3f-nGAm) mailto:sage [2017/07/12(水) 15:24:37.86 ID:HO+tEfFId.net] >>745 そもそも、 もともと存在しているvectorを返すのかメソッド内で構築したvectorを返すのか、 がはっきりしてない。 後者だったら参照とかでなく単にvectorを返せばいい。
757 名前:デフォルトの名無しさん (ワッチョイ bfe4-LW8t) mailto:sage [2017/07/12(水) 19:23:12.64 ID:WTh+eJgx0.net] >>745 C++で値の代入にはコピーとムーブの2種類がある ムーブは代入先に中身を移譲する機能 ムーブ元はムーブ前と後とで同一であるとは保障されない 具体的には定義したムーブコンストラクタとムーブ代入演算子に記述したコードが実行される vectorの場合ムーブされると内部の配列のポインタを代入先のvectorの配列のポインタに付け替える こうすることで中身をコピーせずポインタの代入だけで他のvectorに移し変えることができる ローカル変数など関数のスコープを抜けたら自動的に開放されて二度と使われない変数を戻り値にした場合、コピーしているように見えても自動的ムーブが選ばれている
758 名前:デフォルトの名無しさん (ワントンキン MM7f-hrVG) mailto:sage [2017/07/12(水) 21:17:08.54 ID:AocYxtQtM.net] >>749 最後嘘じゃない? RVOが効くケースでは直接構築が優先だよね?
759 名前:デフォルトの名無しさん (ワッチョイ bfe4-LW8t) mailto:sage [2017/07/12(水) 22:04:13.96 ID:WTh+eJgx0.net] >>750 正しくは変数の初期化の式で呼び出した場合は直接構築になりそれ以外ではムーブになるでした
760 名前:デフォルトの名無しさん (オッペケ Srcb-sNxi) mailto:sage [2017/07/12(水) 22:10:13.78 ID:SNfdy8Tor.net] >>751 それは規格のどこに書いてあるのですか?
761 名前:デフォルトの名無しさん (ワッチョイ bfe4-LW8t) mailto:sage [2017/07/12(水) 22:34:27.41 ID:WTh+eJgx0.net] >>752 規格厨じゃないから知りません
762 名前:デフォルトの名無しさん (オッペケ Srcb-sNxi) mailto:sage [2017/07/12(水) 22:35:41.04 ID:SNfdy8Tor.net] なるほどこうやってデタラメが吹聴されて世の中が嘘だらけになるのだな
763 名前:デフォルトの名無しさん (ワッチョイ bfe4-LW8t) mailto:sage [2017/07/12(水) 22:42:26.18 ID:WTh+eJgx0.net] >>754 何の引用も無しに書いた文章なんて嘘まみれに決まってるだろ
764 名前:デフォルトの名無しさん (スップ Sd3f-nSBM) mailto:sage [2017/07/12(水) 23:21:39.63 ID:vUTYJqrrd.net] 上の方にあるbitいじりの件ってわざわざint型に演算していれ直す必要もなくね?って思い始めた charの先頭文字をint*に直して操作するのじゃダメなんか??
765 名前:デフォルトの名無しさん (ワッチョイ 9f89-EAWM) mailto:sage [2017/07/12(水) 23:36:27.73 ID:cPl7Kb1c0.net] >>756 何言ってるか分からないのでコードで頼む。 ちなみに、アラインメントとかは理解してる?
766 名前:デフォルトの名無しさん (ワッチョイ 6e9a-YkGU) mailto:sage [2017/07/13(木) 06:46:33.90 ID:lX8cJUTX0.net] >>756 >>722 >>727
767 名前:デフォルトの名無しさん (ワッチョイ 321b-HOJV) mailto:sage [2017/07/13(木) 06:48:27.63 ID:Yj3E6QQW0.net] >>700 C++の規格ではいつまでたってもビットローテーション入れてこないからな。 だが、ビットしシフトで処理するのが速いか、いったん配列にいれたほうが速いか、 両方作って確認した方がいいぞ。 バレルシフタ載ってるMPUじゃないとビットシフトが結構重かったりする
768 名前:デフォルトの名無しさん (ワッチョイ 6e9a-YkGU) mailto:sage [2017/07/13(木) 07:03:23.04 ID:lX8cJUTX0.net] > ビットしシフトで処理するのが速いか、いったん配列にいれたほうが速いか、 意味不明 ローテーションは後半だぞ 前半はただ単にintにロードしてるだけ なぜかビッグエンディアン形式で 環境はSHか何か?
769 名前:デフォルトの名無しさん (ワッチョイ 6e9a-YkGU) mailto:sage [2017/07/13(木) 07:05:59.44 ID:lX8cJUTX0.net] C++にローテーションなんか入れなくて良い 使う機会も少ないし、簡単にC++に表記できるし 他に増やしたいものは色々ある そっち優先で
770 名前:デフォルトの名無しさん (スプッッ Sd9e-y/ao) mailto:sage [2017/07/13(木) 08:50:42.40 ID:g1X/OFssd.net] まるで開発資源が足りてないかのような言い分
771 名前:デフォルトの名無しさん (ドコグロ MM36-OTuW) mailto:sage [2017/07/13(木) 12:50:51.77 ID:EiZFhTPMM.net] 理解するための俺の頭の資源は有限
772 名前:デフォルトの名無しさん (スッップ Sd70-YkGU) mailto:sage [2017/07/13(木) 13:23:34.41 ID:b1PvI/zld.net] >>762 言語の機能として、新たな演算子を新たな文字で作るのは無駄だと 標準ライブラリに入れるっていうならどうぞご自由に
773 名前:デフォルトの名無しさん (ワッチョイ b2e4-vU4W) mailto:sage [2017/07/13(木) 19:02:52.17 ID:oXf/mLI10.net] boostのdynamic_bitsetにバイト列との相互変換機能とバイトオーダーを切り替えられる機能と範囲を切り出せる機能を追加したものを標準に入れるべき
774 名前:デフォルトの名無しさん (ワッチョイ baf0-z+eH) mailto:sage [2017/07/13(木) 19:48:54.11 ID:XkT7ManS0.net] FFTで使うビット逆転も仲間に入れてよ
775 名前:デフォルトの名無しさん (ワッチョイ 6e9a-YkGU) mailto:sage [2017/07/13(木) 20:46:05.57 ID:lX8cJUTX0.net] >>766 ビット演算のテクニックの基本とかに載ってそう
776 名前:デフォルトの名無しさん (ワッチョイ 469f-wtyE) mailto:sage [2017/07/13(木) 21:06:39.82 ID:RqiuYpPc0.net] ファストフーリエトランスファーの良い参考文献ないっすかね
777 名前:デフォルトの名無しさん (ワッチョイ 6e9a-YkGU) mailto:sage [2017/07/13(木) 21:20:53.50 ID:lX8cJUTX0.net] おれ専門家だから何でも聞いて
778 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ d015-S4qQ) mailto:sage [2017/07/13(木) 21:21:33.62 ID:anRp6w5D0.net] まずは Wikipedia から
779 名前: ◆QZaw55cn4c (ワッチョイ 6e9a-n9U6) mailto:sage [2017/07/13(木) 21:25:32.45 ID:NDMOLt7F0.net] >>76
780 名前:8 https://www.amazon.co.jp/dp/4789830292/ [] [ここ壊れてます]
781 名前:デフォルトの名無しさん (ワッチョイ 6e9a-YkGU) mailto:sage [2017/07/13(木) 21:27:47.04 ID:lX8cJUTX0.net] そうだね 基礎から教えるつもりはない 応用、テクニック、実装方法、高速化、AVX512の使い方、キャッシュサイズによる最適化、HDDを使った場合の並べかえ方法、... など具体的に聞いてくれれば
782 名前:デフォルトの名無しさん (ワッチョイ 469f-wtyE) mailto:sage [2017/07/13(木) 21:34:36.15 ID:RqiuYpPc0.net] やりたいことはリアルタイムオシロですかね ビジュアル的に表示出来ることから始めて 最終的にはArduinoで周波数検波器作りたいかも
783 名前:デフォルトの名無しさん (ワッチョイ 469f-wtyE) mailto:sage [2017/07/13(木) 21:38:11.93 ID:RqiuYpPc0.net] >>771 ほしいものリストに追加しますた ありがとうございますた
784 名前:デフォルトの名無しさん (ワッチョイ 321b-HOJV) [2017/07/14(金) 06:45:45.62 ID:JUkrjA2t0.net] >>760 バレルシフタが何かわからんアホはすっこんでろ
785 名前:デフォルトの名無しさん (ワッチョイ 6e9a-YkGU) mailto:sage [2017/07/14(金) 07:04:53.46 ID:dCevqkg20.net] >>759 の真ん中のブロック、意味がわかるなら解説よろしく
786 名前:デフォルトの名無しさん (スップ Sdc4-aKa0) mailto:sage [2017/07/15(土) 13:45:59.81 ID:fnbVxk0dd.net] VBから読み出せるdllを作るときの注意点ってある??
787 名前:デフォルトの名無しさん (ワッチョイ f6e4-PXrN) mailto:sage [2017/07/15(土) 14:17:18.00 ID:u0zSb1i50.net] メモリ管理
788 名前:デフォルトの名無しさん (スプッッ Sd9e-y/ao) mailto:sage [2017/07/15(土) 15:27:55.38 ID:GMW24mlhd.net] >>777 __stdcall呼び出しにする ってかどのVB?
789 名前:デフォルトの名無しさん (スップ Sdc4-aKa0) mailto:sage [2017/07/15(土) 17:14:07.14 ID:fnbVxk0dd.net] >>779 vb6.0っていう化石
790 名前:デフォルトの名無しさん (スプッッ Sd9e-y/ao) mailto:sage [2017/07/15(土) 17:26:21.05 ID:GMW24mlhd.net] >>780 ふーん、なら VB側のByRef x As Variant は、C++側で Variant* pV とVariant& x のどっちでも受けられる これ豆な
791 名前:デフォルトの名無しさん (スプッッ Sd9e-y/ao) mailto:sage [2017/07/15(土) 17:33:23.30 ID:GMW24mlhd.net] >>780 あと、文字列はBSTRで受けるとなぜか文字化けすることがある。 Variantで受けてbstrValメンバを取り出すと大丈夫。(もしくはpbstrValメンバ) 不思議だ。
792 名前:デフォルトの名無しさん (ワッチョイ 0aa6-1m9k) mailto:sage [2017/07/16(日) 16:02:40.33 ID:o1PqrRM30.net] テンプレートの部分特殊化について質問っす ideone.com/Rz72oc この例なんで曖昧になるですかね? 下が選ばれると思ったんですが
793 名前:デフォルトの名無しさん (ワッチョイ 955a-qt4g) [2017/07/16(日) 16:21:43.57 ID:CxpOV7IS0.net] const が付いてるからじゃね
794 名前:デフォルトの名無しさん (ワッチョイ 0aa6-1m9k) mailto:sage [2017/07/16(日) 17:06:50.01 ID:o1PqrRM30.net] >>784 constなintなのにconst T&のconst関係なくない? それにT(&)[4]の方がより細かい気がする
795 名前:デフォルトの名無しさん (ワッチョイ 955a-qt4g) [2017/07/16(日) 18:31:12.78 ID:CxpOV7IS0.net] struct A<T (&)[4]> は、 struct A<const T &> の特殊化じゃないんじゃね?
796 名前:デフォルトの名無しさん (ワッチョイ f146-I8+U) [2017/07/16(日) 18:46:15.15 ID:TI5o59vg0.net] テンプレート引数型を明示してるのに、その型に一意にマッチする定義がないからでしょ。 どっちが近いかを決定するような優先順位の規定がないので ambiguous になる。 compiler からしてみたら仕様がなければ勝手に判断できないって話。
797 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd70-qcL/) mailto:sage [2017/07/16(日) 18:49:24.15 ID:8ivnKhmqd.net] int (&)[4]の左側にconst付ける意味あんの?
798 名前:デフォルトの名無しさん (オッペケ Srea-1m9k) mailto:sage [2017/07/16(日) 19:11:25.11 ID:0XlWr73/r.net] >どっちが近いかを決定するような優先順位の規定がない 何故か規格を読まない奴ほど自信満々に嘘をつく法則
799 名前:デフォルトの名無しさん (オッペケ Srea-1m9k) mailto:sage [2017/07/16(日) 19:21:41.99 ID:0XlWr73/r.net] 規格の8.3.4p1により配列のconstは要素のconstと等価なので、A<int const (&)[4]>はA<T const &>に適合する
800 名前:デフォルトの名無しさん (ワッチョイ f6e4-PXrN) mailto:sage [2017/07/16(日) 19:35:17.35 ID:F/PpVxkG0.net] C++14まででいいので全文日本語の規格書くれよ
801 名前:デフォルトの名無しさん (ワッチョイ 0aa6-1m9k) mailto:sage [2017/07/16(日) 20:01:11.52 ID:o1PqrRM30.net] 優先順位ルールよくわからんっす
802 名前:デフォルトの名無しさん (スプッッ Sd2a-aKa0) mailto:sage [2017/07/16(日) 20:21:10.26 ID:5frVCgipd.net] >>782 vbやったことないからなるほどよくわからん... vb6.0についてとか全然書籍とかもないから本当に困る
803 名前:デフォルトの名無しさん (ワッチョイ f6e4-PXrN) mailto:sage [2017/07/16(日) 20:26:00.20 ID:F/PpVxkG0.net] 古代言語の解読は自己責任だ 細かいこと考えたくなければ標準入出力で繋げばいい
804 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ d015-S4qQ) mailto:sage [2017/07/16(日) 20:41:20.06 ID:tihnLl5v0.net] >>791 JIS に働きかけてくれ
805 名前:デフォルトの名無しさん (ワッチョイ f146-I8+U) [2017/07/16(日) 21:06:56.01 ID:TI5o59vg0.net] >>790 ありがとう、探してくれて。
806 名前:デフォルトの名無しさん (オッペケ Sr10-1m9k) mailto:sage [2017/07/16(日) 21:31:30.43 ID:Z5uaiz2pr.net] テンプレートの部分順序は規格1400ページの中で恐らく最も難解 順序はテンプレート実引数と関係無く仮引数同士で判定され、直感的には P (&)[4] ← struct X {} const & × Pの導出不可 P const & ← struct X {} (&)[4] × Pの導出不可 によりambiguous 規格の説明は14.5.6.2, 14.8.2.4, 14.8.2.5
807 名前:デフォルトの名無しさん (ワッチョイ 1a42-Z+b3) mailto:sage [2017/07/17(月) 06:43:20.69 ID:WTwWKmZ80.net] >>674 プロパティってのはオブジェクトの状態の抽象化 例えば、コンテナのlistのsizeはコンテナとしての状態 sizeは要素数に対して定数時間で取得可能って条件があるからメンバ変数としてsizeを持ってる そうでなければ線形時間になってしまう vectorは大抵の場合、確保したメモリの始端と終端、要素の終端を表すポインタをメンバ変数に持つけど ポインタ演算で定数時間で求められるから、sizeのメンバ変数は持っていない emptyも状態、listもvectorも空を表すbool型のメンバ変数は持たないけど コンテナとしてemptyかどうかの状態を取得できるわけで、メンバ変数と対とはなっていない つまり、クラス設計上必要なオブジェクトとしての状態のget/setが目的であって 外部からメンバ変数にアクセスするための機能ではないよ(単にそれも出来るよってだけ) >>700 charのポインタを4バイト幅の符号無し整数型にキャスト その毎にビット演算、ループ数も32回で済む エンディアンは気にしないw
808 名前:デフォルトの名無しさん (オッペケ Sr10-1m9k) mailto:sage [2017/07/17(月) 09:28:01.08 ID:ESb998SRr.net] >エンディアンは気にしないw 物は言い様で、本当は触ったことが無いのであった AIXやSPARC使いに「インテル能乙」と揶揄されても仕方ない
809 名前:デフォルトの名無しさん (ワッチョイ 1a42-Z+b3) mailto:sage [2017/07/17(月) 09:43:52.37 ID:WTwWKmZ80.net] >>799 1つの方法を示しただけで、必要なら気にしたら良いってレベルの話なんだけどな 質問者も完全な解決策ではなくアイディアを求めているだろうし
810 名前:デフォルトの名無しさん (ワッチョイ 3eaf-iUs+) mailto:sage [2017/07/17(月) 09:52:45.96 ID:NM7AtMtK0.net] エクスプレッションテンプレートを使った二項演算子のオーバーロードって ・グローバル空間全体 ・特定の名前空間で定義して、使う部分ではその名前空間を指定 のどちらかになるということになりますか? つまり通常のクラスの演算子オーバーロードのようにクラス単位に限定する方法はなさそうです?
811 名前:デフォルトの名無しさん (オッペケ Sr10-1m9k) mailto:sage [2017/07/17(月) 22:32:17.08 ID:ESb998SRr.net] 通常のクラスの例であるstd::complex<>は二項演算子を使う部分で名前空間など指定しなくても良いし そのオーバーロード関数はクラスではなくstd名前空間に限定している 式テンプレートでそれ以上のことが必要なのだろうか
812 名前:デフォルトの名無しさん (ワッチョイ 7011-MRQN) mailto:sage [2017/07/18(火) 00:26:51.30 ID:2CukONSS0.net] 名前空間で定義して、ETで使うクラス全て特定の名前空間内で定義するか、 ライブラリが提供する型以外を許容しないなら、演算子を各クラス内に定義するだけでいい ETと協調しうるあらゆる型も許容するために template <typename T, typename U> fugaexpression<T, U, ...> operator +(T t, U u); と書きたいのなら、演算子を名前空間内に書くとか enable_ifで条件に合わないものを弾くなりしないといけない
813 名前:デフォルトの名無しさん (ワッチョイ 7011-MRQN) mailto:sage [2017/07/18(火) 12:37:46.49 ID:2CukONSS0.net] 訂正 ETだから参照でないといかんね operator +(T &&t, U &&u)
814 名前:デフォルトの名無しさん (ワッチョイ 3eaf-iUs+) mailto:sage [2017/07/18(火) 12:44:00.00 ID:VOd4+Wz60.net] なんとなくわかりました やってみます
815 名前:デフォルトの名無しさん (ブーイモ MMfd-I8+U) [2017/07/18(火) 12:53:11.11 ID:CTdksPCiM.net] 式テンプレート作るのと、右辺値参照モノをしっかり作り込むのとどちらが良さげ?
816 名前:デフォルトの名無しさん (スプッッ Sd9e-aKa0) mailto:sage [2017/07/18(火) 14:06:03.25 ID:C2L8wOjPd.net] 上でVB6.0について質問してるものだけどさらに重ねて質問させてください VB6.0→C++に通信してる箇所が存在していてそこがstring→char※になってる これって文字化けしないの??
817 名前:デフォルトの名無しさん (スップ Sd02-y/ao) mailto:sage [2017/07/18(火) 15:57:42.98 ID:LmZYlO3Ud.net] >>807 さあ? "まみむめも"でも試しに入力してみれば?
818 名前:デフォルトの名無しさん (アウアウエー Sa66-C5HA) [2017/07/19(水) 07:57:29.52 ID:4WYjcaP8a.net] >>807 コード内で文字列生成して表示したらエンコードが違って文字化けとかあるけど、外部から文字列受け取ってただ表示するだけならエンコードとか関係ないから問題は無い。 (ただのバイト列) 外部から文字列受け取ってそれを加工するとかだと問題ある時はあるが。
819 名前:デフォルトの名無しさん (ワッチョイ 3eaf-iUs+) mailto:sage [2017/07/19(水) 14:22:33.44 ID:cdBaS5I50.net] 804ですが >>803 >名前空間で定義して、ETで使うクラス全て特定の名前空間内で定義する これでできました。 ありがとうございます。
820 名前:デフォルトの名無しさん (スプッッ Sd9e-aKa0) mailto:sage [2017/07/19(水) 20:36:51.87 ID:ogeQAtV7d.net] >>809 サンクス!!! いじらないことにした 明示的なdllの呼び出しも出来なくて震えてます Getprocaddressが出来ずに進まないです 何か間違っている箇所があれば教えてほしいです dllは同階層に配置してます あとdll側の宣言でWINAPIがあるパターンとないパターンを見るのだけども 必要ないってことはあり得るのでしょうか dll側 _delspec(dllimport) int WINAPI AAA(int,int){ return 0; } 呼び出し側 HINSTANCE hDLL; int (*func)(int,int); if ((hDLL = LoadLibrary("AAA.dll")) == NULL) printf("LoadLibrary is failed.\n"); else { if ((func = (int (*)(int,int)) GetProcAddress(hDLL, "AAA")) == NULL) printf("GetProcAddress is failed.\n"); else printf("main %d\n", func(1,1)); FreeLibrary(hDLL); }
821 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 20:49:13.06 ID:MaD+cEa1d.net] >>811 importとexportを間違ってるよ。
822 名前:デフォルトの名無しさん (スプッッ Sd9e-aKa0) mailto:sage [2017/07/19(水) 21:54:41.55 ID:ogeQAtV7d.net] >>812 あ ごめん そこはexportってしてるから問題ない スマホで書き込む際に間違えただけです
823 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 22:02:10.86 ID:MaD+cEa1d.net] まずは、出来たdllをダンプしてみな。関数型にはWINAPIが必要だよ。
824 名前:デフォルトの名無しさん (オッペケ Srea-hJ3a) mailto:sage [2017/07/19(水) 22:06:19.96 ID:QocMLB2Ar.net] >>811 >間違っている箇所があれば教えてほしいです ほれ 1. (int (*)(int,int)) 2. GetProcAddress(hDLL, "AAA")
825 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 22:06:40.85 ID:MaD+cEa1d.net] こういう場合は関数ポインタ型をtypedefしたら楽だよ。
826 名前:デフォルトの名無しさん (スプッッ Sd9e-aKa0) mailto:sage [2017/07/19(水) 22:10:20.05 ID:ogeQAtV7d.net] >>815 ここ間違ってる? dll側の関数の引数に合わせてるのと、getprocaddressを使って関数呼び出してるだけだから問題ないと思ってるのだけども >>816 それって >>811 >間違っている箇所があれば教えてほしいです ほれ これをint (*)(int,int)を定義するってことよね?
827 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 22:12:49.52 ID:MaD+cEa1d.net] typedef int (WINAPI *MYFUNC)(int, int);
828 名前:デフォルトの名無しさん (スプッッ Sd9e-aKa0) mailto:sage [2017/07/19(水) 22:13:35.01 ID:ogeQAtV7d.net] __stdcallがないってことか!!!!!
829 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 22:14:01.35 ID:MaD+cEa1d.net] dumpbinというダンプツールがあるから、それを使ってdllの情報をダンプする。
830 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 22:16:16.73 ID:MaD+cEa1d.net] どうやってdllを作った? 初心者だから作り方間違ってる可能性がある。
831 名前:デフォルトの名無しさん (スプッッ Sd9e-aKa0) mailto:sage [2017/07/19(水) 22:18:12.53 ID:ogeQAtV7d.net] >>821 ダンプするってのがほぼほぼ理解できてない visualstudioでdll選んで空のプロジェクトを選んだ それでcpp追加してその内容にさっきの構文とおまじないのwinmainを書いてビルド
832 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 22:21:21.65 ID:MaD+cEa1d.net] >>822 dllの場合はWinMain要らない。ダンプは専用のコマンドプロンプトで行う。ってことは、コマンドプロンプトの使い方も勉強しないといけない。
833 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 22:22:37.56 ID:MaD+cEa1d.net] DLLの場合はDllMainだね。
834 名前:デフォルトの名無しさん (スプッッ Sd9e-aKa0) mailto:sage [2017/07/19(水) 22:25:28.38 ID:ogeQAtV7d.net] >>824 あ それか 落ちてる理由はそこな気がしてきた...
835 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 22:25:41.24 ID:MaD+cEa1d.net] あっ、それからC++からC言語の関数を定義・参照するにはextern "C"を付けないといけない。
836 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 22:31:08.38 ID:MaD+cEa1d.net] C++関数のシンボル名は「mangling」によって変な名前になり、コンパイラーによって違うから(標準化されていない)、DLLでは使いづらいので、C言語関数にすることが多い。
837 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 22:39:22.35 ID:MaD+cEa1d.net] DLL内部の輸出関数にextern "C"を付けてC言語関数にする。 関数ポインター型をtypedefする。 DLLをダンプして関数シンボル名を確認する。
838 名前:デフォルトの名無しさん (スプッッ Sd9e-aKa0) mailto:sage [2017/07/19(水) 22:41:38.53 ID:ogeQAtV7d.net] >>826 C言語の関数を定義参照するってのは.cファイルが出てきたときの話よね?
839 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 22:43:26.89 ID:MaD+cEa1d.net] コンパイラーによって違うが、C言語関数が__cdeclのときは、そのシンボル名は先頭に下線が付き、__stdcallのときは関数名そのままだったかと。
840 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 22:46:12.04 ID:MaD+cEa1d.net] >>829 C++でDLL関数を参照するときは、DLL関数がC言語関数でないと、シンボル名がややこしくなって、GetProcAddressが難しくなるよ。ダンプすればシンボル名が確認できる。
841 名前:デフォルトの名無しさん (スプッッ Sd9e-aKa0) mailto:sage [2017/07/19(水) 22:51:10.86 ID:ogeQAtV7d.net] >>831 CでもC++でも構わないのだけどその関数のなかでクラスを呼ぼうとしてるのだけど可能なのだろうか?? >>830 も少し気になったのだけど __stdcallしてたのにリンカエラーの時に__cdeclのリンカエラーが出ていた
842 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 22:54:29.77 ID:MaD+cEa1d.net] スタートメニューのVSの項目に、「なんちゃらコマンドプロンプト」というのがあるはずだ。 ソイツを起動すると黒い画面が出て来て、キーボードで「CD」コマンドで対象のフォルダに移動。 dumpbinに適当なコマンドライン引数を付けてEnter。
843 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 22:56:32.59 ID:MaD+cEa1d.net] >>832 DllMainにも__stdcallが必要。
844 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 22:59:03.92 ID:MaD+cEa1d.net] >>832 関数の引数と戻り値がC言語関数に見えれば中身C++でもOkay。
845 名前:デフォルトの名無しさん (スプッッ Sd9e-aKa0) mailto:sage [2017/07/19(水) 22:59:52.02 ID:ogeQAtV7d.net] >>835 そうなんだ じゃあextern cつけておいた方が安全みたいなのね 名前解決しやすいかしにくいかの話になるんだね
846 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 23:00:31.80 ID:MaD+cEa1d.net] __stdcallやWINAPIなどを付けなければ、デフォルトで__cdeclになる。
847 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 23:02:59.40 ID:MaD+cEa1d.net] コンパイラーによってはデフォルトの呼び出し規約を変更できるかも知れない。
848 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 23:07:11.36 ID:MaD+cEa1d.net] 複数の関数を、extern "C" { ... } で囲ってもいいし、関数の直前にextern "C"を付けてもいい。
849 名前:デフォルトの名無しさん (スプッッ Sd9e-aKa0) mailto:sage [2017/07/19(水) 23:10:05.85 ID:ogeQAtV7d.net] >>839 個々につけた方が明示的で良いように思ったので個々でつけることにします dll難しい.... linuxのsoファイル作成のソースコードと、winのdll作成のコードを共通化しようとしたら defineで切るしかない??
850 名前:デフォルトの名無しさん (スプッッ Sd9e-aKa0) mailto:sage [2017/07/19(水) 23:14:11.62 ID:ogeQAtV7d.net] 質問ばかりで申し訳ないけどもヘッダファイルって作られないのかな? dll側で定義した関数を公開するときにインポートライブラリで読み込ませるならばヘッダファイル必要になると思うのだけど それは自身で作成することになる??
851 名前:デフォルトの名無しさん (ワッチョイ f6e4-PXrN) mailto:sage [2017/07/19(水) 23:16:07.85 ID:rRbujBCW0.net] >>840 Boost.DLLを使う
852 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 23:17:50.12 ID:MaD+cEa1d.net] >>841 Unmanaged C/C++では、慣習として、公開するヘッダーファイルは自分で書かないといけない。 それは公開する範囲を決める意味で重要な作業になる。
853 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 23:25:33.39 ID:MaD+cEa1d.net] WinMainやDllMainなど以外で自分で作った関数については、WINAPIよりもAPIENTRYを使うのがマナー。
854 名前:デフォルトの名無しさん (スプッッ Sd9e-aKa0) mailto:sage [2017/07/19(水) 23:28:24.94 ID:ogeQAtV7d.net] >>844 なんだそのAPIENTRYというのは >>842 さらに知らない単語も出てきた
855 名前:デフォルトの名無しさん (ワッチョイ 96ea-zKZC) mailto:sage [2017/07/19(水) 23:30:05.93 ID:K+rHLYmS0.net] もう面倒だからC#で作れよ
856 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 23:32:25.59 ID:MaD+cEa1d.net] <windows.h>の中身を覗いてみると、Win32APIの流儀が見えてくる。時間泥棒かも知れないが、それが面白い。
857 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 23:35:11.33 ID:MaD+cEa1d.net] Boostという準標準ライブラリ群があって、Boost.DLLはその一部。APIENTRYマクロはWINAPIマクロの別名。
858 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 23:39:27.90 ID:MaD+cEa1d.net] 面倒なのが嫌なら最初からC#使え。C++は素人が来るところではない。
859 名前:デフォルトの名無しさん (スプッッ Sd9e-aKa0) mailto:sage [2017/07/19(水) 23:46:25.94 ID:ogeQAtV7d.net] >>846 開発でC++が必須なんだ..
860 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 23:50:31.02 ID:MaD+cEa1d.net] で、問題は解決したか?
861 名前:デフォルトの名無しさん (ワッチョイ f6e4-PXrN) mailto:sage [2017/07/19(水) 23:52:51.09 ID:rRbujBCW0.net] それはいいけどググればすぐ解決する程度の問題をわざわざ人に聞くべきではない
862 名前:デフォルトの名無しさん (ワッチョイ 274b-FPZE) mailto:sage [2017/07/20(木) 00:02:01.05 ID:a17NgPNI0.net] ググれってよく見るけど、最近はググった結果がQiitaとかで余計わからなくなる人いそう
863 名前:デフォルトの名無しさん (スプッッ Sd7f-7lrd) mailto:sage [2017/07/20(木) 00:26:00.45 ID:68uSpz6dd.net] >>852 ぐぐった結果色々な方法がありすぎてどれが正しいか判断つかなくてここにきた >>851 今は自習中 明日の業務で試してみます
864 名前:デフォルトの名無しさん (ワッチョイ 47e4-OcZC) mailto:sage [2017/07/20(木) 00:35:16.57 ID:am65me5o0.net] 色々は無いでしょ
865 名前:デフォルトの名無しさん (ワッチョイ dff0-E/h9) mailto:sage [2017/07/20(木) 11:41:47.84 ID:aRd+na0X0.net] >>847 <windows.h>の中身を覗いてMSの片鱗を味わったがsmallに引っ掛かって1時間ほど時間を潰した どうしてくれるんだ
866 名前:デフォルトの名無しさん (オッペケ Sr1b-3YgS) mailto:sage [2017/07/20(木) 19:54:56.95.net] >>854 ひょっとしてまだやってるのか? 方法1: 1. 型をint (__stdcall *)(int,int) にする 2. GetProcAddressに渡す名前を"?AAA@@YGHHH@Z"の様な名前にする この名前はVisual Studio付属のコマンドで 「dumpbin.exe /exports unko.dll」にて確認 32ビットと64ビットでは名前が異なるので注意 方法2: 1. 型をint (__stdcall *)(int,int) にする 2. テキストファイルunko.defを作り EXPORTS (TAB)AAA と書いてプロジェクトのプロパティのリンク設定でこのファイルをモジュール定義ファイルに指定する
867 名前:デフォルトの名無しさん (ササクッテロリ Sp1b-Iuq2) [2017/07/20(木) 23:54:34.71.net] winapiの流儀とか見ていて吐き気を催す
868 名前:デフォルトの名無しさん (ワッチョイ 47e4-OcZC) mailto:sage [2017/07/21(金) 00:44:29.75.net] WINAPIのtypedefされた型を元のプリミティブ型に書き直すのが趣味です
869 名前:デフォルトの名無しさん (ワッチョイ dfaa-E/h9) mailto:sage [2017/07/21(金) 00:47:34.17.net] F12を叩きたいのか
870 名前:デフォルトの名無しさん (ワッチョイ df9f-2Ge4) mailto:sage [2017/07/21(金) 04:01:38.56.net] extern "C" __declspec(dllexport) int __stdcall func(int,int){} "?AAA@@YGHHH@Z"のような吐き気催す引数無くした名前だけ出力したい場合は extern "C" を前に付けると解決
871 名前:デフォルトの名無しさん (ワッチョイ a7b4-jxVo) mailto:sage [2017/07/21(金) 07:00:36.74.net] qiita.com/YukiMiyatake/items/9c099041eab9ee8b349d uniqu_ptrに頼って生歩使わないとか、 そんなだったらはじめからC++なんか使うな アホはC++使うなって見本 >リソースを生で使うのは アンチデザパタです! それがどーした。パターンでしか考えられないお前
872 名前:デフォルトの名無しさん (ワッチョイ a709-leQM) mailto:sage [2017/07/21(金) 07:42:02.40.net] えらいねー。
873 名前:デフォルトの名無しさん (スッップ Sdff-AsiQ) mailto:sage [2017/07/21(金) 07:57:26.95.net] 所有権を持った人が自分でnew deleteするってのは確かにもうあり得ないでいいだろう。 それを「生ポインタを使わない」と表現するのは言い過ぎというか誤解を生む。
874 名前:デフォルトの名無しさん (ワッチョイ 274b-G5Pk) mailto:sage [2017/07/21(金) 08:46:52.32.net] 生保使う場面ってどんな時だろ?
875 名前:デフォルトの名無しさん (ドコグロ MM9f-tIP3) mailto:sage [2017/07/21(金) 08:47:22.86.net] delete禁止構文欲しいぜ
876 名前:デフォルトの名無しさん (ワッチョイ a709-leQM) mailto:sage [2017/07/21(金) 08:49:46.05.net] 生ぽは、その場で文字列生成して関数に食わせる以外は参照だなぁ。
877 名前:デフォルトの名無しさん (ドコグロ MM9f-tIP3) mailto:sage [2017/07/21(金) 08:54:06.32.net] >>865 nullptr受け取る可能性のある古臭い設計のコードを使うときじゃね? 自分で設計するときは使わん。
878 名前:デフォルトの名無しさん (スッップ Sdff-AsiQ) mailto:sage [2017/07/21(金) 10:34:18.10.net] 自分でnew deleteするなんて発想が無くなってきたから別にポインタ渡しに違和感ないけどな
879 名前:デフォルトの名無しさん (ワッチョイ a709-leQM) mailto:sage [2017/07/21(金) 11:14:02.61.net] 設計的にどうなんだろう。
880 名前:デフォルトの名無しさん (スッップ Sdff-AsiQ) mailto:sage [2017/07/21(金) 11:40:31.31.net] 生ポインタは誰が資源管理するのか曖昧になるからよくない、って主張は昔はあったと思う。 いまソースコードを検索してnew もdeleteも見当たらないという状況なら、そんなのはもう 忘れていいと思う。
881 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ df15-QK4i) mailto:sage [2017/07/21(金) 12:08:08.05.net] 例外が発生したときの後始末なんかもきちんとしようと考えると面倒くさいし、 スマートポインタは積極的に使うべきなんだろうな。
882 名前:デフォルトの名無しさん (ワッチョイ 47e4-OcZC) mailto:sage [2017/07/21(金) 12:40:47.73.net] Qtみたいな自分でnewはするけど親オブジェクトがdeleteしてくれるようなものもある
883 名前:デフォルトの名無しさん (ワッチョイ df9f-2Ge4) mailto:sage [2017/07/21(金) 17:13:44.75 ID:7GF1vWDt0.net] unique_ptrとか中身リファレンサだろうしリファレンサとかクラスで自己実装しちゃうけどね
884 名前:デフォルトの名無しさん (ワッチョイ df9f-2Ge4) mailto:sage [2017/07/21(金) 17:16:06.65 ID:7GF1vWDt0.net] あ、unique_ptrは複製が効かないポインタか shared_ptrと混同していたorz
885 名前:デフォルトの名無しさん (ワッチョイ df9f-2Ge4) mailto:sage [2017/07/21(金) 17:18:37.74 ID:7GF1vWDt0.net] でもイラネな unique_ptrでメンバ全部実装やるとアタマ狂うだろ多分
886 名前:デフォルトの名無しさん (ワッチョイ 67a2-fDNv) [2017/07/21(金) 18:24:31.33 ID:uK7tgvol0.net] いらないとか使わないとか言いつつ、実のところ、理解できなくて使えません、って人を現場で何人も見てきたよ。
887 名前:デフォルトの名無しさん (ワンミングク MMbf-Y5fB) mailto:sage [2017/07/21(金) 18:39:26.01 ID:rSdKKkw+M.net] うちのプロダクションコードほぼ100%はユニポだよ リファレンスはそこらじゅうでもってるけど
888 名前:デフォルトの名無しさん (スッップ Sdff-AsiQ) mailto:sage [2017/07/21(金) 18:56:21.10 ID:SclDYwDCd.net] >>877 なんでそんなやつを雇ったんだよ
889 名前:デフォルトの名無しさん (ワッチョイ 67a2-fDNv) [2017/07/21(金) 19:36:52.29 ID:uK7tgvol0.net] >>879 人手不足なんじゃね? 俺が雇ったわけじゃないし、派遣さんとかだと法律上選べないでしょ。
890 名前:デフォルトの名無しさん (ワッチョイ ff32-3c2/) mailto:sage [2017/07/21(金) 21:20:11.09 ID:QkEYt5+b0.net] 誰も触れないけど、delete[] だよな? まぁ、さておき、new使うか? オレnew自体ほとんど使わないんだけど。。。 組み込み系だとやっぱ使うのかね? メモリ管理なんて、スタック上とか、コンテナに任せちゃえば、いいとおもうんだ。
891 名前:デフォルトの名無しさん (ワッチョイ 47e4-OcZC) mailto:sage [2017/07/21(金) 21:43:07.75 ID:OjZ8KrLm0.net] いいと思うよ 今のバージョンではnewを使わせるライブラリ以外で使う状況が無い
892 名前:デフォルトの名無しさん (スプッッ Sd7f-AsiQ) mailto:sage [2017/07/21(金) 22:02:26.89 ID:mLcSl7GWd.net] make_uniqueとmake_sharedが出来てからはな
893 名前:デフォルトの名無しさん (ワッチョイ bfaf-BQa+) mailto:sage [2017/07/21(金) 22:10:51.61 ID:l1puV9v10.net] templateでエラーが出された場合なんかでチェックするために templateが展開された状態を見る手法みたいなのってありますかね?
894 名前:デフォルトの名無しさん (ワンミングク MMbf-Y5fB) mailto:sage [2017/07/21(金) 22:26:33.98 ID:rSdKKkw+M.net] make_sharedってカスタムデリータいれられたっけ?
895 名前:デフォルトの名無しさん (ワッチョイ bfaf-BQa+) mailto:sage [2017/07/21(金) 22:50:57.29 ID:l1puV9v10.net] Xcodeのビルドログ見たらほぼ>>884 だったので>>884 は取り下げます
896 名前:デフォルトの名無しさん (ワッチョイ df9f-2Ge4) mailto:sage [2017/07/21(金) 23:09:04.52 ID:7GF1vWDt0.net] 使い方は解るよ ただ、自転車の補助輪みたいだなと
897 名前:デフォルトの名無しさん (ワッチョイ 47e4-OcZC) mailto:sage [2017/07/21(金) 23:15:13.65 ID:OjZ8KrLm0.net] そういうのより std::vector<int> v; ↑これを右クリックして展開されたコードを表示するようなことがしたい
898 名前:デフォルトの名無しさん (スップ Sd7f-7lrd) mailto:sage [2017/07/22(土) 17:58:14.35 ID:0MeMH5fDd.net] >>857 わざわざサンクス 全く同じことしたけども吐き気催すような名前はついたままだったからdefファイルで対応することにしたよ
899 名前:デフォルトの名無しさん (ワッチョイ bfc5-/jiT) mailto:sage [2017/07/22(土) 19:30:56.71 ID:RGdGfASA0.net] わざわざマングルされたメソッド名をエクスポートなどせずともファクトリーメソッドにすれば良いのでは… ファクトリーメソッド自体はextern "C"で逝ける DLL側のコードで確保したメモリはDLL側で開放する(プロセス本体側のコードで確保したメモリはプロセス本体側で開放する) という点は気おつけねばならないが と流れを読まずにレス
900 名前:デフォルトの名無しさん (ワッチョイ bfc5-/jiT) mailto:sage [2017/07/22(土) 20:49:40.35 ID:RGdGfASA0.net] スマンorz 誤: ファクトリーメソッド 正: アブストラクトファクトリーメソッド アブストラクトファクトリーメソッドなら具象クラスのコードは全部DLLL側になるので安心 オブジェクトのdeleteもDLLL側でやるように関数を設けてDLLLからエクスポートしてそれを使う
901 名前:デフォルトの名無しさん (ワッチョイ dff0-E/h9) mailto:sage [2017/07/22(土) 20:53:28
] [ここ壊れてます]
902 名前:.27 ID:XKQJiiwl0.net mailto: DLLLL? [] [ここ壊れてます]
903 名前:デフォルトの名無しさん (ブーイモ MMcf-fDNv) [2017/07/22(土) 20:59:49.34 ID:g3jBnlfdM.net] どぅるるる
904 名前:デフォルトの名無しさん (ワッチョイ dff0-E/h9) mailto:sage [2017/07/22(土) 21:12:32.20 ID:XKQJiiwl0.net] DLLゲームというものがあり、この四つの規則だけでDIIをDLLに変換できるか、というのがパズルの主旨である
905 名前:デフォルトの名無しさん (ワッチョイ 276f-hfaq) mailto:sage [2017/07/23(日) 02:54:24.55 ID:JReadhjR0.net] new,new[],delete,delete[]を定義すれば、全てDLL側で実装出来るでしょう?
906 名前:デフォルトの名無しさん (スプッッ Sd7f-7lrd) mailto:sage [2017/07/23(日) 11:16:55.64 ID:T5oE3FpLd.net] CPUやOSに依存したいコーディング難しいよう
907 名前:デフォルトの名無しさん (ワッチョイ df9f-2Ge4) mailto:sage [2017/07/23(日) 11:25:11.61 ID:Rkw6OP4p0.net] 依存姿態?
908 名前:デフォルトの名無しさん (スプッッ Sd7f-7lrd) mailto:sage [2017/07/23(日) 11:26:02.43 ID:T5oE3FpLd.net] >>897 しないだった
909 名前:デフォルトの名無しさん (スッップ Sdff-z/ev) mailto:sage [2017/07/23(日) 12:41:00.33 ID:7fREas1Ld.net] エンディアン charのサイズ 負の数の表現方法 この辺がくせ者
910 名前:デフォルトの名無しさん (ワッチョイ a7c5-/jiT) mailto:sage [2017/07/23(日) 12:43:24.45 ID:Z5IwvI350.net] 符号付整数の右シフトとwrap aroundは未定義動作 だがあんま認
911 名前:ッしてる人が居ないという [] [ここ壊れてます]
912 名前:デフォルトの名無しさん (スッップ Sdff-z/ev) mailto:sage [2017/07/23(日) 12:47:13.35 ID:7fREas1Ld.net] charが16bitや32bitだと、 8bit単位のデータを扱うのが非常に面倒 現実的にはパック形式も必要になるので
913 名前:デフォルトの名無しさん (スッップ Sdff-z/ev) mailto:sage [2017/07/23(日) 12:48:45.60 ID:7fREas1Ld.net] 負の数もいろいと 00...0はトラップ値だったり
914 名前:デフォルトの名無しさん (スッップ Sdff-z/ev) mailto:sage [2017/07/23(日) 12:49:28.11 ID:7fREas1Ld.net] 80...00の間違い
915 名前:デフォルトの名無しさん (スッップ Sdff-z/ev) mailto:sage [2017/07/23(日) 12:50:38.60 ID:7fREas1Ld.net] near farとか 各種pragmaとかアラインメントとか 機種依存しないコードなんてのは実際には妄想
916 名前:デフォルトの名無しさん (スッップ Sdff-z/ev) mailto:sage [2017/07/23(日) 12:52:19.16 ID:7fREas1Ld.net] 使用可能リソースがそもそも違う
917 名前:デフォルトの名無しさん (ワッチョイ df33-9XI3) mailto:sage [2017/07/23(日) 14:01:31.88 ID:Ach+AE6n0.net] stdintじゃいかんの?
918 名前:デフォルトの名無しさん (スッップ Sdff-z/ev) mailto:sage [2017/07/23(日) 14:22:24.82 ID:7fREas1Ld.net] それで何が解決する?
919 名前:デフォルトの名無しさん (ワッチョイ 47e4-OcZC) mailto:sage [2017/07/23(日) 14:38:32.39 ID:+MmkkbFw0.net] そういうのは必要な人がパッチを書けばいい プロジェクトのメインの開発者は一般的なPC用CPUだけ想定していればいい
920 名前:デフォルトの名無しさん (スッップ Sdff-z/ev) mailto:sage [2017/07/23(日) 15:01:31.12 ID:7fREas1Ld.net] 組み込み機器を完全に無視した発言
921 名前:デフォルトの名無しさん (スプッッ Sd7f-7lrd) mailto:sage [2017/07/23(日) 16:52:13.50 ID:T5oE3FpLd.net] エンディアンへの注意と sizeof演算子への注意と unsignedか否か この辺を注意すればまずは良いんだね
922 名前:デフォルトの名無しさん (スッップ Sdff-z/ev) mailto:sage [2017/07/23(日) 16:57:12.36 ID:7fREas1Ld.net] 互換性のポリシーをはっきりすること 最近のPCだけならエンディアンやアラインメント、charのサイズやintのサイズは関係ないし 汎用なら>>899 も考えないと
923 名前:デフォルトの名無しさん (スプッッ Sd7f-7lrd) mailto:sage [2017/07/23(日) 17:23:53.30 ID:T5oE3FpLd.net] 難しいな 色々なPCで動作させようとするのは ところでdllでもsoでも使えるようなコード書きたいんだけども 呼び出し部分だけifdef切るのとソースコード自体わけるのとどちらが良いんだろ?
924 名前:デフォルトの名無しさん (ワッチョイ 276f-dw5s) mailto:sage [2017/07/23(日) 17:27:19.50 ID:71jKdlZw0.net] dllと言えばdllの呼び出し口以外の内部で完結してるような関数ってどうやってテストするんだろう 俺それやったことねえや
925 名前:デフォルトの名無しさん (ワッチョイ 47e4-OcZC) mailto:sage [2017/07/23(日) 18:02:24.35 ID:+MmkkbFw0.net] そもそもpublicでないものをテストする必要は無い
926 名前:デフォルトの名無しさん (ワッチョイ 474d-E/h9) mailto:sage [2017/07/23(日) 18:04:39.20 ID:7bD+iXj90.net] 日本は未テスト納品が当たり前だからな。
927 名前:デフォルトの名無しさん (ワッチョイ 276f-dw5s) mailto:sage [2017/07/23(日) 18:10:47.08 ID:71jKdlZw0.net] >>914 パブリックでなくとも動作検証は必要ではないか?って思い始めた 関数単位でのテストが積み重なって一番大きなdllのテストに移る的な 設計上に多重継承が現れたんだけど多重継承って設計的にどう??
928 名前:デフォルトの名無しさん (ワッチョイ a77f-E/h9) mailto:sage [2017/07/23(日) 18:20:48.79 ID:1KmUXPg00.net] テストの目的にもよるな。 仕様に対する保証という意味でならば当然公開しないものはテストの必要がないが、 開発するうえではモジュール毎にテストできた方が問題の発見に役立つし。 テストコードはスタティックリンクするのがお手軽なんじゃないかな。
929 名前:デフォルトの名無しさん (ワッチョイ 47e4-OcZC) mailto:sage [2017/07/23(日) 18:39:25.88 ID:+MmkkbFw0.net] >>916 多重継承は気をつけて使えば問題ない
930 名前:デフォルトの名無しさん (ワッチョイ 276f-dw5s) mailto:sage [2017/07/23(日) 18:52:38.36 ID:71jKdlZw0.net] >>917 俺の意図的にはそんな感じだね 関数ごとにテストして品質を担保する的な ただdll内で呼ばれている関数を静的リンクできるん?? >>918 気を付けるのが難しそう よくよく考えたら多重継承ではなくクラスの中でクラスを定義する方が自然だった
931 名前:デフォルトの名無しさん (ワンミングク MMbf-Y5fB) mailto:sage [2017/07/23(日) 19:04:55.28 ID:b+Hb+B30M.net] 継承をextendとして使う場合は多重継承しやいほうがいい
932 名前:デフォルトの名無しさん (ワッチョイ a77f-E/h9) mailto:sage [2017/07/23(日) 19:26:40.53 ID:1KmUXPg00.net] >>919 >ただdll内で呼ばれている関数を静的リンクできるん?? objで取り込むかlibかソースか、やり方はいろいろあるだろうけど普通にできるでそ。
933 名前:デフォルトの名無しさん (ワッチョイ a7c5-/jiT) mailto:sage [2017/07/23(日) 19:32:13.78 ID:Z5IwvI350.net] 書いたらテスト、これ常識 関数単位ぐらいの細かい単体テストは、呼び出し元込みの結合テストで境界条件を尽くせる(それぐらい簡単な関数である という論理的見通しがある場合のみ省略できる >>914 は常に書きっぱなしでテストしないと宣言しているに等しい >>919 dll内の関数のテストはソースファイルを単体テスト用のプロジェクトと共有して単体テスト用のプロジェクトでやるとか、 dll内にテストコードを埋め込んでテストしてテストが終わったら#if/#endifで切り離す みたいな
934 名前:デフォルトの名無しさん (スプッッ Sd7f-7lrd) mailto:sage [2017/07/23(日) 19:47:00.96 ID:T5oE3FpLd.net] 単体テストってGoogleテストとかのドライバ的なやり方をさしてんのか? それともvisual studioに機能としてついてるやつをいってんのか?
935 名前:デフォルトの名無しさん (オッペケ Sr1b-3YgS) mailto:sage [2017/07/23(日) 20:14:53.55 ID:H7crLcrqr.net] >>900 >符号付整数の右シフトと (中略) は未定義動作 右? それは規格のどこに書いてあるのですか?
936 名前:デフォルトの名無しさん (スプッッ Sd7f-7lrd) mailto:sage [2017/07/23(日) 20:16:43.64 ID:T5oE3FpLd.net] 符号つき整数は論理シフトか算術シフトかコンパイラ依存ってだけの話でないの
937 名前:デフォルトの名無しさん (ワッチョイ a7c5-/jiT) mailto:sage [2017/07/23(日) 20:22:46.29 ID:Z5IwvI350.net] 不肖私めが述べさせていただきまするが、 Googleテスト(のプロジェクト)と本番用DLLプロジェクトのソースコード共有は両立できる (ソースコード共有はテストドライバというよりはビルドシステム側(IDEやmake)が持っている機能なので、 Visual Studioの単体テストプロジェクトは使ったこと無いから知らん なお、書いたらテスト、とは>>922 で書いたが、書きなおしていないコードのテストまで毎晩やるか否かは開発手法による エクストリームプログラミングなんかだと多少手間をかけてでもGoogleテストで全テストできるようにすねきだが 古式ゆかしいVカーブモデルとかだと「下流行程のテストで検証済みのものを上流行程のテストに上げる」という建前なので、 出戻りのリスクと引き換えに、下流行程でのテストをそう繰り返しはしないからテストドライバを使うまでもない という考えも有り得る。 まさかとは思うが、テストドライバを使うか否かで適切なテストコードを書けたり書けなかったりするとか飯田さんよね?
938 名前:デフォルトの名無しさん (ワッチョイ 474d-E/h9) mailto:sage [2017/07/23(日) 20:27:48.89 ID:7bD+iXj90.net] 単体テスト、レグレッションテストしない奴は信用できない。
939 名前:デフォルトの名無しさん (ワンミングク MMbf-Y5fB) mailto:sage [2017/07/23(日) 20:40:09.17 ID:b+Hb+B30M.net] リグレッションテストが通ってるから単体はおろそかでいいか →単体テストがないせいでリグレッションが落ちた理由がわからない(´・ω・`) →よし単体テスト書くか!あれ?バグ発見!直すとリグレッションの期待値変わるけどまぁしばらくは仕方ないか →あれ?久しぶりにリグレッションテストの結果見るとすげー値が変わってる… →リグレッションテストメンテするか… この輪廻から解脱できません、どうしたら成仏できますでしょうか
940 名前:デフォルトの名無しさん (ワッチョイ 47e4-OcZC) mailto:sage [2017/07/23(日) 20:43:41.49 ID:+MmkkbFw0.net] >>928 テスト駆動開発の理論を遵守して書く
941 名前:デフォルトの名無しさん (ワッチョイ df11-efHF) mailto:sage [2017/07/23(日) 20:57:27.35 ID:M0TZP5Vd0.net] >>923 それはテストのやり方でしょ ひょっとしてテストの種別(単体テスト、結合テスト、総合テスト... まあ名前や内容は色々違うけど)とテストのやり方の区別がついてないの?
942 名前:デフォルトの名無しさん (ワッチョイ 474d-E/h9) mailto:sage [2017/07/23(日) 21:08:20.70 ID:7bD+iXj90.net] なるほど。日本のSEは二種、基本情報処理すら受からないからな。 工程に入ってなくて当然だな。
943 名前:デフォルトの名無しさん (オッペケ Sr1b-3YgS) mailto:sage [2017/07/23(日) 21:14:38.25 ID:H7crLcrqr.net] >>925 それは未定義動作とは言わないし、 未定義動作を起こす左シフトを差し置いて右シフトが出てくるのは 何かおかしいのではないかという気がしてならない
944 名前:デフォルトの名無しさん (ワッチョイ 474d-E/h9) mailto:sage [2017/07/23(日) 21:19:26.67 ID:7bD+iXj90.net] 掛け算、割り算が糞遅いアセンブラならともかく、Cで符号付きをシフトする用途はなに?
945 名前:デフォルトの名無しさん (ワッチョイ 276f-dw5s) mailto:sage [2017/07/23(日) 21:22:45.19 ID:71jKdlZw0.net] >>922 質問したの俺だけど別の人が書き込んでるね テストの手法として俺は悩んでる DLL内の呼び出されるような関数をどうやってテストすれば良いのかと ドライバみたいなの作っても動かせるのは呼び出し口だけで合って 呼び出し口でいくら網羅テストしてもそれは呼び出し口のテストだしなぁーって dll内にテストコード書き込むのことで実現できると思ったけどもそれはそれで汚いなって思ったから、 何かしら直接呼び出すことできないかなって聞いてた そう色々と考えていたけど ただ単に関数の掛かれているcppファイルを取り込んだexeを作れば良いだけか?って思い始めた
946 名前:デフォルトの名無しさん (オッペケ Sr1b-3YgS) mailto:sage [2017/07/23(日) 21:32:37.27 ID:H7crLcrqr.net] この他人の回答を読まないコミュ障こそがこのスレの醍醐味
947 名前:デフォルトの名無しさん (ワッチョイ 276f-dw5s) mailto:sage [2017/07/23(日) 21:38:41.45 ID:71jKdlZw0.net] >>926 俺が聞きたかったのはまさにその最後のだな そのまさかです そんなレベルなんですよ・・・
948 名前:デフォルトの名無しさん (オッペケ Sr1b-3YgS) mailto:sage [2017/07/23(日) 21:41:07.86 ID:H7crLcrqr.net] >>933 特定のビットを取り出したり切り貼りしたい時でないのか ビット操作したい時に掛け算割り算を持ち出す方が変人かと
949 名前:デフォルトの名無しさん (ワッチョイ a7c5-/jiT) mailto:sage [2017/07/23(日) 21:52:14.22 ID:Z5IwvI350.net] >>932 タダで手に入るn3337.pdfの§5.8によると確かに - 符号付整数の左シフトの結果は representable in the result type (値域内)でない場合未定義動作 - 符号付整数の右シフトの結果は処理系依存 と書いてあったわスマン; ちな漏れの認識では{処理系依存}⊂{未定義動作} 根拠はJISの未定義動作の定義による…
950 名前:デフォルトの名無しさん (ワッチョイ a7c5-/jiT) mailto:sage [2017/07/23(日) 21:59:51.68 ID:Z5IwvI350.net] いやすまん>>938 の末尾2行撤回 これは前に認識を改めたんだった; > 未定義の動作に対して,その状況を無視して予測不可能な結果を返してもよい。翻訳時又はプログラム実行時に,文書化された,環境に特有な方法で処理してもよい であって、未定義動作の検出やエラー処理の方法はともかく、未定義動作自体はどこまでいっても未定義動作
951 名前:デフォルトの名無しさん (ワッチョイ 474d-E/h9) mailto:sage [2017/07/23(日) 22:47:02.24 ID:7bD+iXj90.net] >>937 回答になってないし、変人はおまえだよ。算術シフトが何か知らないでレスすんな。
952 名前:デフォルトの名無しさん (オッペケ Sr1b-3YgS) mailto:sage [2017/07/23(日) 23:05:50.01 ID:H7crLcrqr.net] この自分の質問の日本語さえ読めないが故の意味不明なレス それがこのスレの醍醐味
953 名前:デフォルトの名無しさん (ワッチョイ 474d-E/h9) mailto:sage [2017/07/23(日) 23:10:22.36 ID:7bD+iXj90.net] >>941 おまえのスキルはとても他人の質問に回答するレベルではない。しかもコミュ障ときてる。
954 名前:デフォルトの名無しさん (ドコグロ MM9f-efHF) mailto:sage [2017/07/24(月) 08:15:31.13 ID:KtTsv21zM.net] >>937 > 特定のビットを取り出したり切り貼りしたい 符号付きでやってるならこのスレに書き込むのはやめた方がいいレベル
955 名前:デフォルトの名無しさん (オッペケ Sr1b-3YgS) mailto:sage [2017/07/24(月) 17:14:10.91 ID:mYhfbnvOr.net] もちろん符号付きです^^ 流石に最上位ビットまで使う場面では使わないが
956 名前:デフォルトの名無しさん (スップ Sd7f-7lrd) mailto:sage [2017/07/24(月) 22:14:06.75 ID:OsdOk4+1d.net] char X[26]={'a',,,,,,,,,,'z'}; char* Y ="jmdjpgtmdajptwmeg"; for(int i=0;i<26;i++) { for(int j=0;j<26;j++){ if( X[i]== Y[j] ) 処理 } } 文字検索して一致したら処理みたいにしたいのだけどtrueにならなくて困ってます 一文字比較はできない??
957 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdff-84fd) mailto:sage [2017/07/24(月) 22:23:42.38 ID:iUqnpKPOd.net] >>945 これまでのすべての文字が一致しているかを表すフラグ変数を使え。
958 名前:デフォルトの名無しさん (スップ Sd7f-7lrd) mailto:sage [2017/07/24(月) 22:27:59.85 ID:OsdOk4+1d.net] >>946 すまない理解ができん...
959 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdff-84fd) mailto:sage [2017/07/24(月) 22:36:31.42 ID:iUqnpKPOd.net] >>945 ==と=を間違っているとか、 大文字小文字を間違っているとか、 全角半角を間違っているとか、 理由は色々考えられる。
960 名前:デフォルトの名無しさん (スップ Sd7f-7lrd) mailto:sage [2017/07/24(月) 22:37:56.92 ID:OsdOk4+1d.net] >>948 ==は問題なし 大文字小文字も双方出力して同じものが出力されてるのも確認した 全角半角はそこは上に同じ わけわかめ
961 名前:デフォルトの名無しさん (ワッチョイ dfaa-E/h9) mailto:sage [2017/07/24(月) 22:40:41.63 ID:zHcIYvyR0.net] >>945 trueにならないってどういう意味? 一度もヒットしないの?
962 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdff-84fd) mailto:sage [2017/07/24(月) 22:42:58.10 ID:iUqnpKPOd.net] iとj
963 名前:デフォルトの名無しさん (スプッッ Sd7f-7lrd) mailto:sage [2017/07/24(月) 22:44:21.90 ID:/CxPJ7M4d.net] >>950 出力すると ja jb jc ..... jj jk ってのは出るのだけど==の処理に入らない
964 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdff-84fd) mailto:sage [2017/07/24(月) 22:46:11.09 ID:iUqnpKPOd.net] 蝉コロン
965 名前:デフォルトの名無しさん (ワッチョイ df32-QK4i) [2017/07/24(月) 22:48:05.86 ID:yuT7rhOA0.net] 二重ループにする必要ある?
966 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdff-84fd) mailto:sage [2017/07/24(月) 22:56:41.50 ID:iUqnpKPOd.net] if (...);←
967 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdff-84fd) mailto:sage [2017/07/24(月) 23:00:33.31 ID:iUqnpKPOd.net] スマホ使ってるなら、テキストファイルにしてSDカードにファイルを取り込んで、ideoneに上げてくれ。
968 名前:デフォルトの名無しさん (オッペケ Sr1b-3YgS) mailto:sage [2017/07/24(月) 23:17:23.75 ID:mYhfbnvOr.net] 「ス マホ使ってるなら、テキストファイルにしてS Dカードにファイルを取り込んで、 ideoneに上げてくれ」 失礼ながら、何だか復唱したくなった
969 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdff-84fd) mailto:sage [2017/07/24(月) 23:27:02.86 ID:iUqnpKPOd.net] PCのテキストをスマホにコピペ出来ない情報弱者が居るから、ていねいに説明したまで。
970 名前:デフォルトの名無しさん (ワッチョイ dfaa-E/h9) mailto:sage [2017/07/24(月) 23:28:31.51 ID:zHcIYvyR0.net] どこにスマホの必要が?
971 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdff-84fd) mailto:sage [2017/07/24(月) 23:30:40.46 ID:iUqnpKPOd.net] >>945 みたいな汚いコードをパソコンで書くヤツはいないっしょ。絶対スマホだよ。
972 名前:デフォルトの名無しさん (スップ Sdff-7lrd) mailto:sage [2017/07/25(火) 11:24:31.23 ID:sTL1greYd.net] >>954 二重ループにしない方法あるのかな?? 計算量とかも考えて済むならそうしたい >>955 これでした
973 名前:デフォルトの名無しさん (ドコグロ MM9f-tIP3) mailto:sage [2017/07/25(火) 12:18:12.57 ID:TTkvk/JeM.net] >>961 std::map使え。
974 名前:デフォルトの名無しさん (ドコグロ MM9f-efHF) mailto:sage [2017/07/25(火) 20:17:26.54 ID:KNlosRFTM.net] >>961 そもそも何をしたいのかよくわからんのは俺だけ?
975 名前:デフォルトの名無しさん (ワッチョイ 679a-z/ev) mailto:sage [2017/07/25(火) 21:23:57.34 ID:0WJY7+7Z0.net] >>962 文字にmap アホの典型
976 名前:デフォルトの名無しさん (ワッチョイ ff32-3c2/) mailto:sage [2017/07/25(火) 23:21:03.65 ID:reUD2K+v0.net] diffとか、レーベンシュタイン距離はかるとか、めんどくさいことするでなければ、str系の関数つかうんじゃね?普通 strcmpとか、strspnとか。
977 名前:デフォルトの名無しさん (ワッチョイ 474d-E/h9) mailto:sage [2017/07/25(火) 23:43:16.64 ID:zpZ2WILs0.net] std::stringも使ってあげて
978 名前:デフォルトの名無しさん (ワッチョイ df9f-2Ge4) mailto:sage [2017/07/26(水) 00:14:40.89 ID:BELJl12W0.net] 片方a〜zまで順序揃っているからequal_rangeで普通にイケそうだけど
979 名前:デフォルトの名無しさん (ドコグロ MMff-tIP3) mailto:sage [2017/07/26(水) 09:11:32.50 ID:Z6NFAYLOM.net] >>964 なんで?
980 名前:デフォルトの名無しさん (スプッッ Sd7f-7lrd) mailto:sage [2017/07/26(水) 18:04:12.49 ID:n/TvQiRnd.net] >>965 strcmpって文字列にたいしてよね?
981 名前:デフォルトの名無しさん (ワンミングク MMbf-Y5fB) mailto:sage [2017/07/26(水) 18:57:41.27 ID:tvexcE8JM.net] >>945 ideone.com/Xto2xp
982 名前:デフォルトの名無しさん (ワッチョイ df9f-2Ge4) mailto:sage [2017/07/26(水) 19:15:56.17 ID:BELJl12W0.net] 何コレすごくキモチワルイ
983 名前:デフォルトの名無しさん (ワッチョイ ff32-3c2/) mailto:sage [2017/07/26(水) 20:34:16.84 ID:z7xwmnWB0.net] >>969 ですね。このサンプルは集合をチェックしているみたいだし、strspn系統使うのが簡単だとは思うけど。 いずれにしても、Xの末尾に/0あった方が吉ですね。
984 名前:デフォルトの名無しさん (ワッチョイ 87e3-Y5fB) mailto:sage [2017/07/26(水) 23:02:56.23 ID:OlHQ9vUk0.net] >>971 なんで?
985 名前:デフォルトの名無しさん (スプッッ Sd2a-yaaN) mailto:sage [2017/07/27(木) 01:52:35.67 ID:dWT6t2a8d.net] unsigned charの値をsigned charに移したい ただ移す値はunsignedの1バイトを4ビットずつに区切って表現される値 130って値があるのならchar型には1000と0010の値をそれぞれ1バイトとして格納したい charを見ればi番目に8、i+1番目に2が入る形 こんなことするならsprintfかな??
986 名前:デフォルトの名無しさん (ワッチョイ 7b09-OP0G) mailto:sage [2017/07/27(木) 01:54:43.98 ID:P9NETJAS0.net] ビット演算しろよ。
987 名前:デフォルトの名無しさん (ワッチョイ 0fe4-jgbY) mailto:sage [2017/07/27(木) 01:58:14.37 ID:Fr5QaIId0.net] そんな基礎的すぎる処理を人に聞くな
988 名前:デフォルトの名無しさん (ドコグロ MM8a-gqKx) mailto:sage [2017/07/27(木) 07:27:45.64 ID:P1js1uXhM.net] >>974 少なくとも > こんなことするならsprintfかな?? はないな
989 名前:デフォルトの名無しさん (ワッチョイ f39a-crdR) mailto:sage [2017/07/27(木) 07:34:20.55 ID:tCxrViSf0.net] charは8bit前提でいいのか?
990 名前:デフォルトの名無しさん (ワッチョイ 8a89-mrbm) mailto:sage [2017/07/27(木) 07:39:08.55 ID:IgWBj8ON0.net] >>978 問題を無駄にややこしくするなよ。
991 名前:デフォルトの名無しさん (ワッチョイ f39a-crdR) mailto:sage [2017/07/27(木) 07:40:36.50 ID:tCxrViSf0.net] 最近charが16bitの環境を使ったからつい
992 名前:デフォルトの名無しさん (ワッチョイ 6a9f-ns/O) mailto:sage [2017/07/27(木) 07:59:04.16 ID:rWyXQzMv0.net] 7ビットにパリティが1ビット
993 名前:デフォルトの名無しさん (ドコグロ MM8a-gqKx) mailto:sage [2017/07/27(木) 08:36:39.28 ID:P1js1uXhM.net] >>981 64bit に 8bit の ECC とか言われたらついていけなくなるんだからやめとき
994 名前:デフォルトの名無しさん (ブーイモ MMd6-PRKf) [2017/07/27(木) 19:19:41.26 ID:/VCkXAgyM.net] >>980 なにそのTIのDSP
995 名前:デフォルトの名無しさん (スッップ Sd8a-crdR) mailto:sage [2017/07/27(木) 19:24:23.50 ID:F0lzbPxld.net] >>983 良くおわかりで
996 名前:デフォルトの名無しさん (ペラペラ SDb6-ZO1u) mailto:sage [2017/07/28(金) 06:55:18.07 ID:mjoh45CgD.net] ほ
997 名前:デフォルトの名無しさん (ペラペラ SD2a-ZO1u) mailto:sage [2017/07/28(金) 21:15:49.27 ID:aEgnwK31D.net] し
998 名前:デフォルトの名無しさん (ワッチョイ f39a-crdR) mailto:sage [2017/07/28(金) 23:12:30.76 ID:d5LZ2kks0.net] の
999 名前:デフォルトの名無しさん (ワッチョイ 7346-PRKf) [2017/07/29(土) 00:21:09.72 ID:lS34gLdW0.net] 仙一
1000 名前:デフォルトの名無しさん (ワッチョイ 976f-ZO1u) mailto:sage [2017/07/29(土) 05:44:39.91 ID:fSkalPfO0.net] えっ
1001 名前:デフォルトの名無しさん (ワッチョイ 6a32-ZO1u) [2017/07/29(土) 07:39:00.75 ID:q+2MbaQ80.net] なにっ
1002 名前:デフォルトの名無しさん (ブーイモ MMbf-ov1m) mailto:sage [2017/07/29(土) 12:21:39.86 ID:klnxojNUM.net] 次スレmevius.2ch.net/test/read.cgi/tech/1501295308/
1003 名前:デフォルトの名無しさん (ワッチョイ 738e-PRKf) [2017/07/29(土) 16:04:09.21 ID:mj0H/MXI0.net] >>991 乙
1004 名前:デフォルトの名無しさん (ワッチョイ 976f-ZO1u) mailto:sage [2017/07/29(土) 20:09:55.91 ID:vcBWoe5a0.net] >>991 乙
1005 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd8a-fKJy) mailto:age [2017/07/29(土) 21:58:36.04 ID:Y9LsTA7nd.net] 埋め立てふせ
1006 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd8a-fKJy) mailto:sage [2017/07/29(土) 21:59:10.94 ID:Y9LsTA7nd.net] 埋めまーす。
1007 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd8a-fKJy) mailto:sage [2017/07/29(土) 22:01:20.68 ID:Y9LsTA7nd.net] 埋め星
1008 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd8a-fKJy) mailto:sage [2017/07/29(土) 22:03:11.75 ID:Y9LsTA7nd.net] 埋まるちゃん
1009 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd8a-fKJy) mailto:sage [2017/07/29(土) 22:04:40.24 ID:Y9LsTA7nd.net] 「最後に言い残したことはないか?」
1010 名前:デフォルトの名無しさん (オッペケ Srb3-Ibwl) mailto:sage [2017/07/29(土) 22:05:00.29 ID:E0esoNX5r.net] template d<0>J<0>(); // 明示的インスタンス化
1011 名前:デフォルトの名無しさん (アウアウウー Sa9f-Gwu1) [2017/07/29(土) 22:05:20.80 ID:46B+r2PEa.net] 梅ッシュ
1012 名前:デフォルトの名無しさん (ワッチョイ 0f4d-V1Wy) mailto:sage [2017/07/29(土) 22:06:46.19 ID:gp3BUyJn0.net] むしろ混乱する。
1013 名前:1001 [Over 1000 Thread.net] このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。 life time: 120日 13時間 18分 57秒
1014 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています