[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 03/10 14:57 / Filesize : 234 KB / Number-of Response : 1018
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C++相談室 part126



1 名前:デフォルトの名無しさん mailto:sage [2016/08/13(土) 11:24:45.65 ID:NPYsKJkE.net]
次スレを立てる時は本文の1行目に以下を追加して下さい
!extend:on:vvvvv:1000:512

C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレに
お願いします。

前スレ
C++相談室 part125
echo.2ch.net/test/read.cgi/tech/1463761261/

このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.99【環境依存OK】
echo.2ch.net/test/read.cgi/tech/1469177649/

■長いソースを貼るときはここへ。■
 codepad.org/
 ideone.com/

[C++ FAQ]
https://isocpp.org/wiki/faq/
www.bohyoh.com/CandCPP/FAQ/ (日本語)

528 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 23:12:54.88 ID:JRdVpVwV.net]
>>517
知ってるでしょ

529 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 23:26:52.58 ID:sQOv13Gi.net]
void_tはSFINAEの定番パターンを標準化しただけ

530 名前:デフォルトの名無しさん mailto:sage [2016/09/07(水) 05:00:10.45 ID:MZvlar21.net]
>>518
要するに、単なる妄想だったってことかよ w

531 名前:デフォルトの名無しさん [2016/09/07(水) 08:16:26.88 ID:4YmObOwP.net]
いや現実だよ
おまえが物心つく前か生まれる前か知らんが
歴史上そういう事実があった

過ぎてしまった歴史がぎゃんぎゃん吠えることで変わるとでも思っているなら
それは隣国のメンタリティだね

532 名前:デフォルトの名無しさん mailto:sage [2016/09/07(水) 08:27:48.44 ID:W2drX/qt.net]
で、その歴史的事実が共有できる資料は?

533 名前:デフォルトの名無しさん mailto:sage [2016/09/07(水) 08:34:32.44 ID:uFAnWK01.net]
ただの事実と歴史とじゃ重要性が違う。
要するに記憶に留めるべき事実が歴史というわけだ。
逆に「そんなもん知らん」と一蹴されてしまう事実もありうる。

534 名前:デフォルトの名無しさん [2016/09/07(水) 09:00:25.57 ID:4YmObOwP.net]
>>525
保存してねえって言っただろ鳥アタマめ

535 名前:デフォルトの名無しさん mailto:sage [2016/09/07(水) 09:05:41.79 ID:WoQJVoSd.net]
いや、資料がないのに歴史だって主張して
それを共有できないって言うと歴史修正主義だって言う姿が
それこそおとなりさんぽいなあって思ってw

536 名前:デフォルトの名無しさん [2016/09/07(水) 09:06:18.84 ID:zaGYBHu2.net]
それはどこの国の歴史なんだろう?
tcpl "the c programming language"
でググると、中国系、朝鮮系では使われてるらしい



537 名前:デフォルトの名無しさん [2016/09/07(水) 09:40:41.09 ID:4YmObOwP.net]
>>528
別に主張なんかしてねえよ
事実を偽りなく述べているだけだ
魚拓の有無で変わったりしねえことだ

自分が見られないからってヤダジタすんなガキ

538 名前:デフォルトの名無しさん mailto:sage [2016/09/07(水) 10:32:53.78 ID:P2AyoRLU.net]
自分より年下と思われる人間をガキ呼ばわりしてるけど、年上が偉いという考え?
それって儒教っぽいな

儒教といえばお隣の国…あっ(察し

539 名前:デフォルトの名無しさん [2016/09/07(水) 10:39:46.68 ID:/D7wbjXh.net]
ここの住人がスルー力0なのは間違いないな

540 名前:デフォルトの名無しさん [2016/09/07(水) 11:24:34.86 ID:prfLhh2R.net]
ソースは脳内
そんな恥ずかしい主張ができちゃうなんてもしかして教育を受けてないのかな?

541 名前:デフォルトの名無しさん mailto:sage [2016/09/07(水) 11:50:26.76 ID:G0adIbkV.net]
暇つぶしが目的だから、スルーしたらつまらないんだろ

542 名前:デフォルトの名無しさん mailto:sage [2016/09/07(水) 12:09:49.06 ID:Z3ZB/oVu.net]
煽る暇人は2chだからどうしようもないが煽られて何日も踊っているのはさすがにバカだな

543 名前:デフォルトの名無しさん [2016/09/07(水) 12:41:12.31 ID:pAK1tPG0.net]
暇つぶしなのではなくお互い必死なんだよ
クールを装ってさもどうでもいいように演じてるけどお互い顔真っ赤だよ

544 名前:デフォルトの名無しさん [2016/09/07(水) 12:54:37.05 ID:4YmObOwP.net]
>>531
なんだおまえ、ガキって書いてあるのを見るたびに自分が卑しく思うのかw

>>533
記録を俺んとこでは残していないってだけだ
誰かが証拠を持ってきたときにもボロが出ないように言ってるぞ

そんときゃおまえが恥ずかしくて出てこれないわけだが

545 名前:デフォルトの名無しさん mailto:sage [2016/09/07(水) 12:55:16.53 ID:Ur9IZRDe.net]
なんかスレ伸びてると思ったらまーたゴミどうしの罵り合いかよ
くだらないことで熱くなる奴は脳みそ壊れていくんだというのが如実に分かるよ

546 名前:デフォルトの名無しさん [2016/09/07(水) 13:08:27.65 ID:prfLhh2R.net]
>>537
俺になんか恥ずかしい要素あったか?
スレ違いの書き込みしたことくらいかな



547 名前:デフォルトの名無しさん mailto:sage [2016/09/07(水) 13:11:15.34 ID:v93B1UIW.net]
誰かが証拠を持ってきたときw
自分の無能を示しておいてなんとも思わんのだな

548 名前:デフォルトの名無しさん [2016/09/07(水) 13:58:33.58 ID:LPRQdItN.net]
バーカ

549 名前:デフォルトの名無しさん [2016/09/07(水) 15:57:42.39 ID:4YmObOwP.net]
>>540
禿のWebページの魚拓をログ化していなかったのを無能と言ってくれるのか
さぞかし有能なおまえさんなら持ってるだろうからさっさと出せ

550 名前:デフォルトの名無しさん mailto:sage [2016/09/07(水) 19:25:39.09 ID:OYvFv6+r.net]
ソースは脳内というのは日常会話の殆どだな。
だから「アナタは私と異なる認識をお持ちなんですね」でしかない。
それを「アナタは証明できないからそれは嘘です」にすり替えるのは詭弁

551 名前:デフォルトの名無しさん mailto:sage [2016/09/07(水) 20:06:01.39 ID:1kliuuT7.net]
>>542
俺超有能だけどそんな資料なかったよ
つまり君の言ってたことは全部君の妄想ね
はい終了

552 名前:デフォルトの名無しさん mailto:sage [2016/09/07(水) 20:12:54.95 ID:2w88FCBz.net]
>>508
> あー、禿のWebページでしばらく使ってたのも知らないわけね

が正しいとしてもここにいる人が知らないような略語をどや顔で出すのは頭おかしい
まあどうみても >>511 辺りを間違えて出しちゃって引っ込みつかなくなってるだけだろ w

553 名前:デフォルトの名無しさん [2016/09/07(水) 20:34:12.89 ID:4YmObOwP.net]
>>545
では、つかってよいりゃくごをあんたはどうやってはんだんしてるんだ?
あたまおかしいとまでおおきくでるならそれなりのきじゅんはあるんだろうな?
さいじゅうどのていのうにあわせるのがぴーじーのしめいとでもかんがえているなら
あふぉだなくそだなだんぷにひかれてしねばいい

554 名前:デフォルトの名無しさん mailto:sage [2016/09/07(水) 22:13:15.14 ID:Ur9IZRDe.net]


555 名前:続ければ気が済むんだよこのゴミどもは []
[ここ壊れてます]

556 名前:デフォルトの名無しさん mailto:sage [2016/09/07(水) 22:37:17.77 ID:YLqxd+vc.net]
自己反映なメタ表現とは高度な技を



557 名前:デフォルトの名無しさん mailto:sage [2016/09/07(水) 22:47:20.81 ID:Mf7TDnfn.net]
そんなことよりvoid_tの話をしようぜ。
SFINAEの話だけど。
SFINAEってconcept的な使い方以外にどんな使い方があるの?

558 名前:デフォルトの名無しさん mailto:sage [2016/09/07(水) 23:19:03.95 ID:LPRQdItN.net]
知らねえよバーカ

559 名前:デフォルトの名無しさん mailto:sage [2016/09/07(水) 23:20:48.09 ID:YLqxd+vc.net]
ワードサラダにマジレス

560 名前:デフォルトの名無しさん mailto:sage [2016/09/07(水) 23:29:54.18 ID:yR890zwI.net]
>>549
concept的な使い方ってどんなの?
漠然とパターンマッチ的なものをイメージすればいいのかな

561 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 00:02:15.19 ID:w601usbW.net]
良くあるのがメンバーの有無で処理を変えるパターンかな。
俺も良くわからんが。

562 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 00:12:42.51 ID:sU4tW1UK.net]
enable_ifと組み合わせて使うんじゃない?

563 名前:デフォルトの名無しさん [2016/09/08(木) 01:13:18.16 ID:NYidnx0p.net]
int と longの違いって何ですか?

564 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 01:15:30.19 ID:p3dWf/BM.net]
歴史?

565 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 02:02:44.82 ID:NonfcYWK.net]
>>555
データモデルによりサイズが異なる(かもしれない)

566 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 04:16:44.74 ID:6JK6uF4x.net]
>>546
正論を言われて反論できなくなったら子供じみた態度でひねくれる
ガキだなw



567 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 04:47:35.75 ID:rBeNUfmR.net]
アルツハイマーの症状の一つの幼児化だね

568 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 05:23:55.94 ID:vt8xUZJ5.net]
酢を飲め

569 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 06:23:15.75 ID:siaRBrBq.net]
>>546
つかってみてだれもしらなさそうならおとなしくひっこめろ、ばーか

570 名前:デフォルトの名無しさん [2016/09/08(木) 07:39:36.05 ID:TmgW3MRN.net]
>>561
やだね
C++スレでC++関連の用語を知らない無知野郎に合わせる必要はない

571 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 07:54:49.83 ID:P8D+cYPH.net]
まじかよ
お前ひとりでつらいだろ?

572 名前:デフォルトの名無しさん [2016/09/08(木) 08:11:01.20 ID:cE384uJ3.net]
ガイジ

573 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 08:36:52.70 ID:QwMnHPC3.net]
用語とか言い出しちゃったよ、この人 w

574 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 09:31:44.41 ID:y1qiR/+w.net]
[[deprecated]]

575 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 11:11:48.25 ID:BaIwaWl+.net]
このスレ的にはK&R初版でC学んだことを自慢してる奴より AT&T cfont のレファレンスでC++学んだ俺の方が偉いはず

576 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 11:25:42.94 ID:ik/GfLoL.net]
なんでその程度でエラぶれるの?w



577 名前:デフォルトの名無しさん [2016/09/08(木) 12:08:58.27 ID:TmgW3MRN.net]
cfrontは俺も使っていたが
cfontて何だ? Courier Newか何かか?

578 名前:デフォルトの名無しさん [2016/09/08(木) 12:28:42.58 ID:NCg12FAS.net]
古ければ古いほど劣っているからな?
古参が全く自慢にならない世界だぞ

579 名前:デフォルトの名無しさん [2016/09/08(木) 12:44:06.52 ID:TmgW3MRN.net]
プログラムのバージョンと
プログラマの経験年数を
一緒にするのかよ

580 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 12:47:14.04 ID:P8D+cYPH.net]
経験年数と優秀さを一緒にしてはいけない
経験年数10年と20年では10年の方が優秀なことが多い

581 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 12:48:47.71 ID:NCg12FAS.net]
>>571
経験のバージョンが古い

582 名前:デフォルトの名無しさん [2016/09/08(木) 12:53:20.28 ID:TmgW3MRN.net]
>>572
ソースplz

583 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 14:10:36.68 ID:P8D+cYPH.net]
ソースは俺の観察

584 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 14:11:54.76 ID:p2bVgJ9p.net]
自分のソースは脳内だけど人にはソースを求める白痴

585 名前:デフォルトの名無しさん [2016/09/08(木) 15:27:51.19 ID:TmgW3MRN.net]
>>576
脳内じゃない
ここは誰が何と言おうとおまえが間違っている

おまえそもそも事実を知らないんだろ
だから俺の言うことのどこがどう間違っているのか具体的な指摘ができない
もっとも知ってたら指摘するところがないはずなんだが

586 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 16:46:16.67 ID:vI60taJg.net]
経験十年積めば大抵のことはできるし対応できるだろうが
経験二十年にはかなわないだろう



587 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 16:59:40.04 ID:rBeNUfmR.net]
archiveから探してこいよ、認知症のジジイ

588 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 17:00:00.79 ID:y1qiR/+w.net]
んなこたあない

589 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 17:59:18.64 ID:P8D+cYPH.net]
>ここは誰が何と言おうとおまえが間違っている

真実を知っているのがこの世で自分だけだなんて
もう生きててつらいだろうな

590 名前:デフォルトの名無しさん [2016/09/08(木) 18:09:20.62 ID:Ig68v84V.net]
プログラムの経験年数なんて関係ない。
重要なのはどれだけトラブルの経験を積んだかだ。

女性経験が豊富なのと同じだ プw

591 名前:デフォルトの名無しさん [2016/09/08(木) 18:15:13.55 ID:TmgW3MRN.net]
>>581
逆だ
知らないのがおまえくらいなんだよ
当時を知っている人が身近にいたら聞いてみろ

>>582
童貞乙

592 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 18:21:23.76 ID:p2bVgJ9p.net]
>>583
当時を知ってる人が身近にいたから聞いてみたけどそんなことはなかったってみんな言ってる。
つまり嘘つきはお前。はい論破。

593 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 18:23:14.02 ID:Ou19mRgF.net]
何日も平日の昼間にくだらんいい争いしなきゃならないとか仕事かよ

594 名前:デフォルトの名無しさん [2016/09/08(木) 18:25:06.25 ID:Ig68v84V.net]
プログラミングを半年もやらなかったら、けっこうな部分を忘れる世界だし、
進化も激しい世界だから、経験を引き継いで発揮できるのはせいぜい五年くらいだろう。

595 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 18:30:38.43 ID:P8D+cYPH.net]
年を取ると物忘れが激しくなる。
「誰が何と言おうと」と自覚しておきながら3時間後に
「知らないのがおまえくらい」と言い出しちゃうぐらい
だから>>584はもう責めないでw

596 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 19:01:10.30 ID:aq+STl42.net]
相談室っていうか病室だな・・・



597 名前: []
[ここ壊れてます]

598 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 19:09:24.56 ID:69NbtRcU.net]
大抵、経験20年とかになってくると老眼とかで大量の情報を高速に見るとかが出来なくなってそう
経験10年なのに目が悪くなってきて辛いです

599 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 19:34:58.14 ID:y1qiR/+w.net]
void_tの話を聞くほうが建設的だ。

600 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 19:40:42.54 ID:ik/GfLoL.net]
だからさ、型名に_t付けるなよ
システムハンガリアンかよ

601 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 19:48:21.97 ID:y1qiR/+w.net]
>>591
using ***_t = ***::type;
ってパターンもダメ?

602 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 19:56:47.42 ID:ZGDN5kDf.net]
>>577
もう楽になりなよ...

603 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 20:17:46.69 ID:rBeNUfmR.net]
頑固になるのもアルツハイマーの症状の一つだね

604 名前:デフォルトの名無しさん [2016/09/08(木) 20:50:28.56 ID:TmgW3MRN.net]
>>593
は? 苦しい屁理屈でへとへとなのはおまえだろ

605 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 20:58:33.03 ID:p3dWf/BM.net]
同じ穴のムジナが楽しく荒らしてるなぁ。
ただ一言いいたい。

カエレ!

606 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 22:14:31.27 ID:A7Pb5oFv.net]
うそ
かえらないで



607 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 22:36:18.32 ID:siaRBrBq.net]
苦しい屁理屈 ⇒ >>577
そりゃお前の脳内の事実なんて誰も指摘できんわな w

608 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 00:55:13.72 ID:6Bh01W2V.net]
頑固になるとautoや{}の初期化や->の戻り値が許せなくなります
auto b = new auto(true);
char *p{};
auto main() -> int {}

609 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 01:02:58.35 ID:4oqKijqb.net]
>auto main() -> int {}
頑固じゃないけどこれやる奴は何がしたいんだろう

610 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 01:07:56.60 ID:6Bh01W2V.net]
これは頑固の良い例ですね
スタイルの統一とかそういうことを考えられず、変化を拒絶するようになります

611 名前:デフォルトの名無しさん [2016/09/09(金) 01:10:09.08 ID:kBQSHV64.net]
new auto();
なんて出来ないしな…

612 名前:デフォルトの名無しさん [2016/09/09(金) 01:18:20.19 ID:kBQSHV64.net]
>>601
じゃあ規格のexampleのスタイル統一から初めてくれよ。
何の意味があるのかしらんが、意味があるなら賛同者出てくるでしょ?

613 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 01:21:30.28 ID:Wiz5/g3s.net]
new auto(10)みたいに推論できる場合ならちゃんとできるみたいだけど
https://ideone.com/zPeSla

ただauto main() -> int {}を書くやつは正直、俺知ってるんだぜ自慢したい厨房にしかみえない
タイプ数長くなってんじゃん、何のために導入された書き方か分かってんのかね

614 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 01:23:35.62 ID:6Bh01W2V.net]
これも頑固の良い例ですね
「言語仕様に複数のスタイルが存在してもせめて自分のコード内は統一しよう」
みたいな考えを示唆しているのに、感情的になって関係無いことを言い出すのが特長です

615 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 01:27:12.55 ID:6Bh01W2V.net]
auto main() ->int{}についてはハンをおしたように
「文字数が多い」と言い出すのも特長です
今まで同じレスを見たこともある人も多いのではないでしょうか
「スタイルの統一という観点からはあってもおかしくない」と説明されても
他人が使うことすら許せず否定に躍起になるのが特長です

616 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 01:35:22.25 ID:6Bh01W2V.net]
もちろん新しい記法が良いことばかりではありません
auto b{true};は書けてもnew auto{true}は書けないなど一貫性に乏しい所も有ります



617 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 01:36:37.09 ID:Wiz5/g3s.net]
別に他人がそう書くのを許せないわけじゃないよ
ただ俺はそう書くやつに対してはおかしなやつとかネガティブな印象を持つというだけ
今まで多くの同じようなレスがあったということは俺と同じ印象を持つ人が多いということだと思うよ

618 名前:デフォルトの名無しさん [2016/09/09(金) 01:40:41.63 ID:kBQSHV64.net]
>>605
言語仕様に複数のスタイルとかいう話ではなく規格のコード例ですらそんな書き方必要でなければしてねえよという話
どっちが頑固なんだかね

619 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 01:40:48.56 ID:6Bh01W2V.net]
これも頑固の良い例ですね
とに新しいスタイルを見ると相手を非難しないと気が済まないのが特長です
>>608のレスにも「おかしなやつ」という攻撃的な単語が見られますが、これも一例と捉えてよいでしょう

620 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 01:41:50.71 ID:uFCjw0pQ.net]
autoつかわなくても書ける場所でこれ期バカしにauto使うヤツはバカなんだと思う

621 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 01:44:15.73 ID:uFCjw0pQ.net]
あとで型名明記するとかなんの為にauto使っているのかバカなんだと思う

622 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 01:52:18.15 ID:6Bh01W2V.net]
これも頑固の良い例ですね
型推論のautoとtraining-return-typeの先頭のautoは違うのですが
とにかく理解以前で拒絶してしまっているのが特長です

でも確かにauto f() -> auto {}みたいな書き方はかなり変人かも知れませんね

623 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 01:53:27.43 ID:4oqKijqb.net]
結局auro main() -> int{}はお遊びなのか?

624 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 02:00:06.38 ID:uFCjw0pQ.net]
>>613
本末転倒だってんだよバカ

625 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 02:00:54.91 ID:p4LGwUo/.net]
ぶっちゃけID:6Bh01W2Vってまじであの書き方がスタイルの統一のという理由が第一で導入されたと思ってそうなんだけどそうでもない?
>>612の言わんとしてることが理解できてない気がする

626 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 02:09:08.65 ID:6Bh01W2V.net]
そうですね
テンプレート関数の戻り値のために導入されたことは良いとして、
>>612の言わんといていることはplaceholder typeとtrailing-return-typeの混同による不適切な見解ではないか」と述べているのに
「理解できていない気がする」とあやふやなのは不思議ですね

これらも頑固なことによる反射的な拒絶の一面なのかも知れません



627 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 02:16:06.31 ID:6Bh01W2V.net]
また「導入の目的とは別にスタイルの統一の観点からはあっても良いのではないか」
という説明を受けても「目的が違う」と思考停止して否定ありきで考えてしまうのも特長です

本日は600から続く一連の自演レスでその片鱗が伺えたと思います

628 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 07:33:30.80 ID:H3RR5zb8.net]
そもそもスタイルの統一にこだわる必然性はない。
タブとインデントの話と同じで混在したってかまわない。

629 名前:デフォルトの名無しさん [2016/09/09(金) 07:36:21.12 ID:SVVRFbIW.net]
タブとインデントを混同するやつは見つけ次第殺せ

630 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 08:00:45.68 ID:z8Otf9Pu.net]
どうしてこんな釣り耐性よわいの。
A派とB派の対立じゃなくて
Bスタイルを否定すんな派とBスタイル否定派
は主観の押しつけあいで論破できるわけねーし。

631 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 08:09:04.86 ID:H3RR5zb8.net]
>>620
そういうのってなんか自閉症ぎみなんじゃないの?

632 名前:デフォルトの名無しさん [2016/09/09(金) 08:35:47.51 ID:G0RBn0pa.net]
trailing-return-typeを、4文字以下では使わない
なんてやってると
int abs(int);
auto abs(float) -> float;
てな具合になるよなあ

ぎりぎりアウトな
char* begin(); を
auto begin() -> char*; にしながら、
俺なにやってんだろって気になることがある

633 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 08:42:02.98 ID:oGuibT0g.net]
>>620
同意する
そういう奴はたいてい他でもいいかげんだからプログラマーには向いてないことを自覚してほしい

634 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 08:55:13.21 ID:H3RR5zb8.net]
んなこたーない

635 名前:デフォルトの名無しさん [2016/09/09(金) 11:10:43.31 ID:kBQSHV64.net]
>>623
>trailing-return-typeを、4文字以下では使わない
なんで?

636 名前:デフォルトの名無しさん [2016/09/09(金) 11:25:30.49 ID:G0RBn0pa.net]
int abs(int); を
auto abs(int) -> int; にするメリットは?
autまでタイプした時点でやんなってくるぜ俺は
auto exit(int) -> void; とかナメとんかくらって気ぃしね?



637 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 11:50:52.32 ID:xpG9Ka1d.net]
スタイルの統一という意味では、新しいC++では
普通の関数とメンバ関数を
obj.func();
func(obj);
のどちらのスタイルでも相互に呼び出せるようにするかもしれない
って話だけど・・・
メタプログラミングの観点から見ればどちらの表記でも呼び出せたほうが
便利なのは火を見るよりも明らかだが

それはそうとして
スタイルを統一したいって言ってる頑固な約一名は
これも統一するつもり?
つまり普通の関数やメンバ関数の呼び出しを全部
obj.func(); もしくは func(obj); に統一するつもりなのかって話
で、世の中には引数を取らない関数、例えばabort()などもあるし
fgetsみたいにFILE構造体が引数の最後に来るような変態関数もあるので
統一するならCスタイルの func(obj); になると思うわけだけど
そうすると、全部 method(obj) の形式で書くつもりか?
この書き方だとエディタの補完が効かないので激しく作業効率が悪いわけだが

638 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 11:50:58.44 ID:CsE6YZtW.net]
>>627
メリットはないだろうね

639 名前:デフォルトの名無しさん [2016/09/09(金) 11:52:48.11 ID:kBQSHV64.net]
>>627
4文字って何って話だよ

640 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 11:57:16.30 ID:CsE6YZtW.net]
スタイルの統一ってメタプロのためでしょ?
普通に書く場合はどっちだっていいし、見た目の統一なんてさらに気にするポイントじゃないし。

641 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 12:01:21.07 ID:xpG9Ka1d.net]
というかそもそも、
統一しなくてもよいように、そのために
どちらの表記でもよいようになっている
もしくはそうする予定なのに
統一する意味あんの?

642 名前:デフォルトの名無しさん [2016/09/09(金) 12:08:44.98 ID:G0RBn0pa.net]
>>629
autoが4文字だろ?
これより長いstd::basic_string<char,std::char_traits<char>,std::allocator<char>>とかなら
autoにすると短くすっきりするが、
4文字より短い例えばintをautoにしてもそういう効果がないばかりか
厳密には1文字損してるだろって話だよ

643 名前:デフォルトの名無しさん [2016/09/09(金) 12:09:29.33 ID:G0RBn0pa.net]
アンカー間違えた
s/>>629/>>630/gっと

644 名前:デフォルトの名無しさん [2016/09/09(金) 12:12:46.72 ID:kBQSHV64.net]
>>633
float f();

auto f() ->float;
って書いたら一文字損してるって思うの?
どういう計算???

645 名前:デフォルトの名無しさん [2016/09/09(金) 12:21:26.23 ID:G0RBn0pa.net]
>>635
逆だよ
それは1文字得してる

646 名前:デフォルトの名無しさん [2016/09/09(金) 12:26:40.05 ID:kBQSHV64.net]
何言ってるのかわかんねー
文字の数を数えれないのかな…



647 名前:デフォルトの名無しさん [2016/09/09(金) 12:27:41.92 ID:G0RBn0pa.net]
std::basic_string<char,std::char_traits<char>,std::allocator<char>>とかなら
autoにすると短くすっきりする

これの意味わかる?

648 名前:デフォルトの名無しさん [2016/09/09(金) 12:36:32.00 ID:kBQSHV64.net]
>>638
戻り値の型がそれだったとして
trailing-return-typeを使うと文字数は6文字(autoと ->)増える事に変わりないだろ?何言ってるんだ?

649 名前:デフォルトの名無しさん [2016/09/09(金) 12:40:28.34 ID:G0RBn0pa.net]
>>639
まさかと思ったが、やはりそういうことか
よし、おまえはtrailing-return-typeを使うな

これにて一件落着

650 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 12:49:10.42 ID:tc9dXmwp.net]
引数に依存しないならどっちだって同じさ。
->以下を省略するのは別な話

651 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 12:51:16.50 ID:4oqKijqb.net]
聞きたいんだけど引数無しのコンストラクタが無いクラスってあり?
絶対にコンストラクタで引数を入れないといけない

652 名前:デフォルトの名無しさん [2016/09/09(金) 12:51:31.27 ID:CB2F3RXF.net]
autoが本当に役に立つのはこういうケースだな

okns.webcrow.jp/text/CPP0xFAQ.html.ja#auto

変数の型が template 引数に強く依存している場合は、auto なしにコードを書くのは本当に難しくなるだろう。 例えば:


template<class T, class U> void multiply(const vector<T>& vt, const vector<U>& vu)
{
// ...
auto tmp = vt[i]*vu[i];
// ...
}
tmp の型は T と U の乗算結果になるが、それが正確に何型であるか人間の読み手が見出すのは難しい。 しかし、もちろんコンパイラは、自身が扱っている適切な
T と U が何型であるかを知っている。

653 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 12:52:12.20 ID:CB2F3RXF.net]
ageたスマン

654 名前:デフォルトの名無しさん [2016/09/09(金) 13:05:31.22 ID:kBQSHV64.net]
>>643
autoではなくautoキーワードを使った機能の一つであるtrailing-return-typeの話してたんだけど

お前の例を借りるなら
template<class T, class U> auto multiply(const vector<T>& vt, const vector<U>& vu) ->decltype(vt*vu)
こんな感じで引数の名前を返り値の型の決定に使いたい時の為に導入された。あとはlambda

655 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 13:23:41.38 ID:EcclX7iE.net]
>>642
「デフォルトコンストラクタが存在しないクラスを作ってもよいか?」
あるいは「クラスは必ずデフォルトコンストラクタを持つべきか?」
という質問かな。

外部から何かの値を指定しないと正常な状態にならないって対象なら
デフォルトコンストラクタなしの方が、間違った使い方をされなくて済む。
具体的には…今すぐ思いつくのは、
「ファイル名を指定、コンストラクタ中でファイルを開くクラス。
デストラクタでファイルを閉じる」とか(そもそも良い設計か分からんけど)。
この場合はデフォルトコンストラクタじゃ意味ないよね。

656 名前:デフォルトの名無しさん [2016/09/09(金) 13:28:11.41 ID:kBQSHV64.net]
>>642
普通にある。
例えばstd::lock_guard



657 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 14:32:40.92 ID:QrmkumON.net]
>>642
あり?といういか引数無しがデフォルト

658 名前:デフォルトの名無しさん [2016/09/09(金) 14:54:03.88 ID:aqM9pKJ0.net]
>>648
コンストラクタで絶対に引数をとらなければならないクラス設計はありかなしかという話だろう。

659 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 15:04:50.30 ID:QrmkumON.net]
>>649
あっそうかwちゃんと読んでなかった
ありかなしかで言えば「あり」としか言えない

660 名前:デフォルトの名無しさん [2016/09/09(金) 15:05:33.87 ID:G0RBn0pa.net]
ビルトインにだって初期値必須のものがあるくらいでねえ
そもそもなぜ初期値を指定するのかという目的論をすっ飛ばしたべき論に価値はあるのか

661 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 16:15:29.42 ID:iGJJBn3T.net]
最近、生のconstructorは晒さずに、面倒でもfactoryかbuilder用意したほうが良い気がしてきた。

662 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 18:00:44.85 ID:6P7ccOtX.net]
>>651
そんなのあったっけ?

663 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 18:52:54.42 ID:Sz+zzzeN.net]
>>653
参照

664 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 19:28:06.08 ID:xbXKfh8v.net]
複合型をビルトイン型と称すとは
頭の悪さに恐れ入る

665 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 19:54:51.32 ID:2SLUNITP.net]
ビルトインをビルトイン型と見間違うとは
目の悪さに恐れ入る

666 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 20:18:37.35 ID:Sz+zzzeN.net]
>>655
ビルトイン型って知らないけど Fundamental Types のことを言ってる?



667 名前:デフォルトの名無しさん [2016/09/09(金) 20:24:24.90 ID:G0RBn0pa.net]
N3797でbuilt-inを検索すると...
oeratorsが必ずついてくるな
そりゃ悪かった

class宣言せずに使える型、そう言いたかっただけだ

668 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 21:49:08.07 ID:Hwi6cA5k.net]
const int i{100}; // 初期値必須

669 名前:デフォルトの名無しさん mailto:sage [2016/09/10(土) 13:58:51.44 ID:qsgFq9Gu.net]
関数の引数と戻り値はstd::stringとかではなくconst char*を使うべきというのを見つけたんだけど正しいのか?

670 名前:デフォルトの名無しさん mailto:sage [2016/09/10(土) 14:05:38.05 ID:fEVz11Vc.net]
C++で作られたdll(関数が色々定義されてるやつ)をC++の別プログラムAに読み込ませる
プログラムAに対してjavascriptで使用する関数を指定してってのをやりたいけどできるのかな

プログラムAはただjavascriptを指定するだけと結果出力
javascriptはどの関数をどんな引数で実行するかを指定する
スクリプトってのをよく理解してないからアドバイスほしい

671 名前:デフォルトの名無しさん mailto:sage [2016/09/10(土) 14:15:01.34 ID:TwDosbdA.net]
>>660
ソイツはバカ

672 名前:デフォルトの名無しさん [2016/09/10(土) 14:26:38.33 ID:pUoIS14d.net]
>>660
fstreamをstringに依存させないために
C++98ではopenの引数がconst char*だが
C++11ではstringを渡せるようになったので
fs.open((string(

673 名前:デフォルトの名無しさん [2016/09/10(土) 14:27:46.41 ID:pUoIS14d.net]
fs.open((string("filename") + ".ext").c_str(), ios_base::in)が
fs.open( string("filename") + ".ext , ios_base::in)で
済むようになり結構便利だね
stdの作者じゃない一般ユーザな俺らにとって、
std同士での相互依存は別に構わんのに無駄に不便だったのがC++98

独善的な「正しさ」を誰も喜ばない例だと思うぜ

674 名前:デフォルトの名無しさん [2016/09/10(土) 14:28:54.01 ID:pUoIS14d.net]
あ、引用符が閉じてない・・・ 許せ

675 名前:デフォルトの名無しさん mailto:sage [2016/09/10(土) 20:03:47.79 ID:fxMjDbn4.net]
右辺値参照が使えるようになったし、クラスオブジェクトをそのまま返してもオーバーヘッドにはならんでしょ

676 名前:デフォルトの名無しさん mailto:sage [2016/09/10(土) 20:40:19.15 ID:LBKbagU5.net]
typedef enum
{
kOne = 1,
kTwo,
kN
}e;

const int n[kN]={0,100,200};

template <int N> class A
{
public:
int a[N];
};

int main()
{
A<n[kOne]> a;
return 0;
}

こんな感じのやりたんだけどnが非constだって怒られる
なにか代案ありません?



677 名前:デフォルトの名無しさん mailto:sage [2016/09/10(土) 20:45:26.68 ID:QhorBMPI.net]
>>667
constexpr int n[kN]={0,100,200};

678 名前:667 mailto:sage [2016/09/10(土) 20:51:12.77 ID:fvQgZoM4.net]
うちのVS2010ちゃんがそんなもの知らないと言っております

679 名前:デフォルトの名無しさん mailto:sage [2016/09/10(土) 20:57:30.16 ID:QhorBMPI.net]
>>669
template<int N> struct constant { static const int value = N; };
template<int N> struct n;
template<> struct n<kOne> : constant<100> {};
template<> struct n<kTwo> : constant<200> {};

A<n<kOne>::value> a;

680 名前:667 mailto:sage [2016/09/10(土) 21:00:17.01 ID:fvQgZoM4.net]
>>670
よさそう
ありがとうございます

681 名前:デフォルトの名無しさん mailto:sage [2016/09/10(土) 23:13:18.30 ID:LzJTocys.net]
>>660
それはその言葉の真意を理解すれば正しくもあり正しくもなし

682 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 00:28:13.04 ID:bDOLl/8E.net]
引数はともかく、戻り値を常にconst char*にするのはつらい
メンバ変数で持ってるものだったらconst char*で返せるけど
関数内でジェネレートした文字列だったらどうするんだ?

683 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 00:32:24.15 ID:bDOLl/8E.net]
void func( char *output, int max_buffer )
↑こんなインターフェースもあり得るけど
呼び出すときに一体バッファサイズをどのぐらい用意すれば良いんだ?
という問題が出る
関数内でmallocして返す方法もあるけど
呼び出しもとで開放しなきゃならないから嫌だ
std::string使いましょうよ

684 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 00:44:49.84 ID:T7xxiiqM.net]
うちの会社にいるレガシープログラマもクラスを引数にするのを嫌うな

685 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 01:12:15.86 ID:NvSd/4YA.net]
税金泥棒は、RMPについて何も理解できていない
分からないくせに、ひたすらコピペを繰り返す
突っ込んだ話を始めると、チンプンカンプンで付いて来れなくなる

686 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 01:30:52.05 ID:Y3qTK8mc.net]
gccはC++11のmoveとかつかわんでも、呼出側がスタックに用意したところに
せっせと返値を書き込んでるのでクラスを返値にしたところでcopyとか余計なことはしないな。



687 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 06:19:48.63 ID:Cz5G8II8.net]
コピーする必要がなかったかも知れないのにコピーしておいて余計なことはしていないとな

688 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 08:52:00.54 ID:uFO7Kr12.net]
返り血にmove使うと事態は悪化

689 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 10:11:38.91 ID:5FDuUIWg.net]
拭き取ろうと擦れば擦るほど赤く血塗られた範囲が広がって…。

690 名前:デフォルトの名無しさん [2016/09/11(日) 13:09:13.01 ID:QVUfpLVG.net]
特定の関数があるなしで呼び出す関数をわけたいのですけど方法はありますか

template<typename T> void hoge(T val)
{
val.hage(0);
}

template<typename T> void hoge(T val)
{
val.husa(100);
}

691 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 13:55:18.24 ID:KOEkGnWi.net]
SFINAE使えばできる

692 名前:デフォルトの名無しさん [2016/09/11(日) 14:53:31.90 ID:h0ayt47M.net]
コードではSSE命令をまったく使わず、コンパイラ最適化でSSE使ってもらいやすくする方法って
どこかに書いてありますか?

693 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 15:31:44.83 ID:9/O5tJ2a.net]
type_traitsのテストクラスばかり使っていたらSFINAEの書き方忘れた

694 名前:デフォルトの名無しさん [2016/09/11(日) 15:50:46.32 ID:hGR6Mbre.net]
>>683
https://msdn.microsoft.com/ja-jp/library/7t5yh4fd.aspx

695 名前:デフォルトの名無しさん [2016/09/11(日) 22:14:42.57 ID:OIs9p1U8.net]
void func( char *output, int max_buffer )

これはさ、max_bufferで指定した範囲で対応出来るようにするための引数だろ
呼び出す側でintの範囲なら自由に決められるに決まってるだろ

696 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 22:19:35.02 ID:m0F7Ld2f.net]
↑アスペ



697 名前:デフォルトの名無しさん [2016/09/11(日) 22:20:45.93 ID:OIs9p1U8.net]
いやいや、outputの最大値を一緒に渡すのは常識だろう

698 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 22:25:57.81 ID:2EFm3ZKd.net]
要するに、
char b[128];
func(&b[16],128-16);
ってやって、特定の範囲で処理できるのも利点だろうといってるんだと。
あんまりやらないけど。

699 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 22:34:43.72 ID:T7xxiiqM.net]
文字列クラスでもできるけど

700 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 22:37:36.83 ID:2EFm3ZKd.net]
substrだっけか?

701 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 22:38:54.98 ID:m0F7Ld2f.net]
『要するに』
超能力者>>689のオツムが心配だ

702 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 22:40:38.21 ID:2EFm3ZKd.net]
チガッテマスカ?

703 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 22:43:30.84 ID:m0F7Ld2f.net]
>>693
>>689の解釈は
『max_bufferで指定した範囲』
『intの範囲なら自由に』
という表現と整合しない。

704 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 22:45:10.47 ID:2EFm3ZKd.net]
オーバーフローを指定するような間抜けなことをわざわざするんかいな。

705 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 22:46:59.51 ID:m0F7Ld2f.net]
>>695
>>688は「intの最大」でなく「outputの最大」と言っているのだが

706 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 22:48:58.46 ID:2EFm3ZKd.net]
>>686の頭にはなんか特殊用途でもよぎったんじゃね?
俺が懇意すぎたかな・・・。Orz



707 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 22:51:16.46 ID:m0F7Ld2f.net]
深い意味はない
単に>>674を見て並んでいた単語に連想した自分の知識を反射的に書き込んだだけ

708 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 22:54:31.75 ID:2EFm3ZKd.net]
俺は>>686ではない。それはそうかもな。
俺はC++ではstd::まで書くStl派なので、このところ生配列は使ったことがない。
というか、オーバーフロー怖くて使いたくない。

709 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 23:01:21.72 ID:67F7MmNh.net]
生配列を使ったことないってことはないだろ
インターフェースにstlのコンテナとかを露出したらコンパイラ依存になっちゃうじゃん
てか高速に処理したくてスタックに配列を積みたいときとかどうするわけ?

710 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 23:04:52.03 ID:2EFm3ZKd.net]
競プロ解いてるだけだから問題にならん。
まぁ、しばらく黙るわ。

711 名前:デフォルトの名無しさん [2016/09/11(日) 23:09:47.79 ID:OIs9p1U8.net]
俺が言いたかったのはだね、

void func( char *output, int max_buffer )

のようにchar *outputを渡すような時は、
バッファオーバーフローを防ぐために一緒にサイズも渡すってのが、
C言語での使い方では常識化してるって事だ。

712 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 23:12:11.14 ID:m0F7Ld2f.net]
わざわざ補足しなくても
そんなことはみんな知ってるから

713 名前:デフォルトの名無しさん [2016/09/11(日) 23:14:19.23 ID:OIs9p1U8.net]
>>674 が変な事言ってたからだ

714 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 23:17:06.20 ID:67F7MmNh.net]
競プロでSTLコンテナなんて使うか??
アルゴリズムとかはそのまま使えるけどコンテナは普通生配列か必要に応じて自前の使うだろ?

715 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 23:19:39.01 ID:2EFm3ZKd.net]
ガチ勢じゃないからね。
最近ではリングバッファほしい位で満足してるよ。
STLコンテナで解けないなら、アルゴリズムが悪い事が多い。

716 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 23:20:05.58 ID:m0F7Ld2f.net]
>>704
>674の懸念は別に変じゃないぞ
変なのは>>674を理解できなかったお前だ



717 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 23:20:10.89 ID:T7xxiiqM.net]
>>700
規格準拠度が低いクソみたいなコンパイラを使わない

718 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 23:22:00.72 ID:m0F7Ld2f.net]
どうしたいきなり
>>700も関係無いことを言いだして

719 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 23:22:32.77 ID:m0F7Ld2f.net]
誤 700も
正 700と

720 名前:デフォルトの名無しさん [2016/09/11(日) 23:23:32.91 ID:OIs9p1U8.net]
>>707
いやいや、おかしいよ。
void func( char *output, int max_buffer )
を使うのにバッファを意識しないプログラムとかありえないだろ

バッファがどのくらいか分からんのに
void func( char *output, int max_buffer )
とか間違ってるだろ。

これCの使い方だぞ

721 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 23:28:22.83 ID:T7xxiiqM.net]
>>705
競プロなんていうマイナー分野の話なんかしてないし
実行時間のほとんどはアルゴリズム依存なんだから1%未満のオーバーヘッドが影響するわけが無い
固定長配列はarrayを使うべきだし、動的にサイズを変えないといけない場合vectorでまとめて確保して普通のnewした配列として使えばいい
他人の競プロのコード見たら使いまくってるしな

722 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 23:39:10.29 ID:m0F7Ld2f.net]
>>711
よくわかった
>>674の『バッファサイズをどのぐらい用意すれば良いんだ?という問題が出る』
を単語レベルに近い連想で文を捉えるから珍妙な解釈になる
レスを100回読み直せ

723 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 23:46:15.15 ID:M5lO5IQC.net]
ID:2EFm3ZKdの背伸びが痛々しい。
このスレで一番出来ない子が何をいっちょまえにレスしてんだか…。
なぁーにが「競プロ解いてるだけ」だよド素人が。

724 名前:デフォルトの名無しさん [2016/09/11(日) 23:48:48.59 ID:OIs9p1U8.net]
>>713
だからよ、
>バッファサイズをどのぐらい用意すれば良いんだ?という問題が出る
って言うような疑問がおかしいんであって、

void func( char *output, int max_buffer)

はサイズを指定して使うもんだ。それ以外にあるかよ。
パターンもパターンやんけ。

バッファサイズがわからん状態で、、
void func( char *output, int max_buffer)ってのはあり得ないんだよ

725 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 23:49:06.36 ID:2EFm3ZKd.net]
>>714
はっはー。おだいじんさまぁ〜。

726 名前:デフォルトの名無しさん [2016/09/11(日) 23:54:09.86 ID:IuKZJB78.net]
>>715
別の関数で必要なサイズを返すのか?
変更が別スレッドだったら、さらにロック、アンロックの関数がそれぞれ必要になるな。



727 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 00:00:05.72 ID:JmiC7f4k.net]
じゃー背伸びついでに言っとくわ。
その関数voidだから失敗したかどうかわからんから、バッファ入力サイズを推定できない。

728 名前:
ドキュメント読め。
[]
[ここ壊れてます]

729 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 00:03:56.69 ID:JmiC7f4k.net]
チッ間に合わなかった。

730 名前:デフォルトの名無しさん [2016/09/12(月) 00:04:01.94 ID:GwVwE6OL.net]
いやいや、
void func( char *output, int max_buffer)
ってのは

char *output に結果を返すんだよ。
そんなのもわからんのか。

max_bufferはオーバーフローを防ぐための物だ。
何を言ってんだ一体

731 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 00:04:29.54 ID:hz43BbCS.net]
例外使わないのか
初心者なのかレガシープログラマなのか

732 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 00:04:37.05 ID:Tu0jZEI4.net]
>>715
その部分の日本語の理解が間違っているとわざわざ教えてやっているのに
他にどういう理解があり得るのかも考えずゴミレスを繰り返すとは
アスペなだけでなくて荒らしのつもりなのか?

733 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 00:05:58.76 ID:JmiC7f4k.net]
>>720
そんなちゃんぽん仕様にしなくても戻り値一個設定すれば済む話じゃないか。
汚いと思う。 []
[ここ壊れてます]

735 名前:デフォルトの名無しさん [2016/09/12(月) 00:07:03.07 ID:GwVwE6OL.net]
Cやってたらvoid func(char *output, int max_buffer)なんてパターンだろ。
基本中の基本だろ。

736 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 00:08:06.86 ID:JmiC7f4k.net]
染まってるのか。
まぁいいや。
黙るって言ったから黙る。



737 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 00:08:07.10 ID:WISOHly2.net]
723 : デフォルトの名無しさん 2016/09/12(月) 00:05:58.76 ID:JmiC7f4k
>>720
そんなちゃんぽん仕様にしなくても戻り値一個設定すれば済む話じゃないか。
汚いと思う。

738 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 00:09:36.24 ID:Tu0jZEI4.net]
バッファサイズ指定の関数で溢れた時に例外をスローするのは珍しいな
Visual C++の_s関数の配列オーバーロードはそんな仕様だった気もするが

739 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 00:09:38.22 ID:WIrRwO5G.net]
>>715
https://msdn.microsoft.com/ja-jp/library/cc429127.aspx
バッファサイズを指定できても、結果を正しく格納するのに必要なバッファサイズはわからない
ってことはあるんだよ。

740 名前:デフォルトの名無しさん [2016/09/12(月) 00:11:17.09 ID:GwVwE6OL.net]
void func( char *output, int max_buffer)
これはさ、max_buffer以内で絶対に納めるって前提があるんだよ。
その為のmax_bufferだぞ。

max_bufferの指定が間違ったらエラーなんだよ。
他にどういう使い方あるんだよ

741 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 00:11:25.69 ID:XcxNhSoL.net]
>>728
マクロでパスの最大規定されてる

742 名前:デフォルトの名無しさん [2016/09/12(月) 00:13:42.09 ID:GwVwE6OL.net]
結果を正しく格納するのに必要なバッファサイズが、max_bufferだろ。
char *outputのサイズがmax_buffeなんだよ

char *outputがオーバーフローしないように、max_bufferを上限に処理をして、
char *outputで返せばオーバーフローしないって仕組みなんだよ。

743 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 00:14:04.49 ID:Tu0jZEI4.net]
まさか>>728のやさしいレスを見てもまだ世迷い言が続くとは
これはホンモノだ

744 名前:デフォルトの名無しさん [2016/09/12(月) 00:18:26.76 ID:GwVwE6OL.net]
おまえなにもわかってないだろ。
何ひとつ自分で説明してないだろ。

745 名前:デフォルトの名無しさん [2016/09/12(月) 00:21:57.49 ID:U6Ajls88.net]
>>732
老害プログラマによくいる切り捨てられても気にしない、切り捨てによって発生したバグが確認されて初めてバッファーサイズをプログラム内の定数値で変更する人なんでしょ。

C++使ってるなら正しく処理する為には多大な面倒が発生する手法なんて使うなって事なんだけど老害にはそれが理解出来ないらしい。

746 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 00:22:27.92 ID:/3fOrQXc.net]
max_bufferがあるからバッファオーバーフローを防ぐことが出来る
逆にmax_bufferが効果を発揮する状況というのは
結果を正しく格納するのに必要なバッファサイズがmax_bufferを越える時だ
従って>>731の最初の行は間違っている



747 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 00:23:39.94 ID:XcxNhSoL.net]
最大値をどうすればいいのかって話でしょ
728の例だと別の場所で最大値は決まってる
でもバッファサイズ3とか小さすぎると欲しい情報は帰ってこない
当然オーバーフローはしないけど

748 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 00:27:04.07 ID:feiUf+9B.net]
バッファっていう概念がちょっとズレてんのかもな
Cやってる人はコップでプールの水をすくうとき
コップがバッファだ
コップの大きさで回数を重ねてすくう
コップを最大まで大きくしなきゃいけないとか
必要なコップサイズは、などとは考えない
それがバッファ

749 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 00:28:34.40 ID:Tu0jZEI4.net]
>>730
文脈を理解できない低能は去れ

>>733
健常者なら『レスを100回読み直せ』で理解できると思ったので敢えて説明しなかった失礼
では説明してやろう
<呼び出し側>
 vector<char> result(★);
 func ( &result[0], result.size() );
>>674はこの★をどう決定するかが
呼び出し側コードを書く者の負担になると言っている

750 名前:デフォルトの名無しさん [2016/09/12(月) 00:28:41.75 ID:GwVwE6OL.net]
だからよ、C++の使い方で
void func( char *output, int max_buffer)
を使おうとすれば、Cのバッファを意識する使い方以外に無いだろ。

それをストリングクラスの代わりに
void func( char *output, int max_buffer) を使う手ももあるが、
バッファのサイズをどうするかが問題、とか言ってるから、

そういう使い方はしないし間違ってるって言ってんだろがよ

751 名前:デフォルトの名無しさん [2016/09/12(月) 00:30:38.58 ID:GwVwE6OL.net]
void func( char *output, int max_buffer)
これはよ、char *outputのサイズを意識しない限り、動かせないプログラムだよ

このサイズが分からない時に、
void func( char *output, int max_buffer) を使うってのは無いんだよ
それをあるって言うから、無いって言ってんだよ 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)


752 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 00:35:45.75 ID:XBLhc0H+.net]
>>740
一旦これだけは言っておくが
おまいの言っていることは正常でしかもごくあたりまえのこと
おそらくその点を繰り返す必要はもうないし
そのことはみんな分かってる

読み込む前にサイズ分からないものがあるよね?
そのときは固定サイズじゃ読み込めないよね、
的なことをおまいの相手は繰り返し言ってるんじゃないか?
配列に対するベクタの利点みたいな部分を言いたがってる気がする

753 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 00:40:53.14 ID:XcxNhSoL.net]
最大値がどっかで決まってるか、outputにヌルいれると必要なサイズ返るとかが普通じゃね
その関数だけじゃ必要なサイズがわからんというお話
パスが欲しいのにバッファ小さすぎてドライブレターだけ返ってきても意味無いわけで

754 名前:デフォルトの名無しさん [2016/09/12(月) 00:43:58.37 ID:GwVwE6OL.net]
void func( char *output, int max_buffer)
を使う前にはサイズを把握してないと駄目ってだけだよ。

それが把握できんのにこういうCライクな使い方は間違ってるって俺は言ってるだけだよ

755 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 00:47:09.50 ID:hz43BbCS.net]
C言語的なインターフェイスは不便だからC++らしく書きましょう

756 名前:デフォルトの名無しさん [2016/09/12(月) 00:47:23.61 ID:U6Ajls88.net]
>>743
格納サイズを把握してたらmax_bufferなんて要らなくね?



757 名前:デフォルトの名無しさん [2016/09/12(月) 00:51:26.47 ID:GwVwE6OL.net]
>>745
いやオーバーフロー対策の最大値だから
引数で明示的にサイズを渡しましょうって取り決めだ

758 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 01:02:10.22 ID:Tu0jZEI4.net]
>>743の達した結論が
>>674とほぼ同じに思えてならない

759 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 01:10:30.26 ID:hz43BbCS.net]
いまさらそんな40年前からある常識を言われも困る

760 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 01:13:36.21 ID:WIrRwO5G.net]
>>730
>728 で挙げた MSDN のページにそんな規定は見当たらないんだけど、どこ見て言ってるの?
MAX_PATH の類のことを言ってるなら、よくある勘違いだろうと思うんだ。
https://www.google.com/search?q=GetModuleFileName+MAX_PATH
d.hatena.ne.jp/satosystems/20100807/1281152224

761 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 06:52:52.36 ID:y21Asc3i.net]
MAXPATH があてにならんのは確かだが
サイズ取得せずにリトライするのもダメ臭が

762 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 08:08:53.69 ID:46mLPt5D.net]
書き込んだサイズを返すくせに必要なサイズを
調べる機能が規格に無いstd::mbstowcsはクソ

763 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 09:10:27.05 ID:HZgwCDH3.net]
プログラミングのコードを書く時のタブvsスペース戦争がついに決着
www.gizmodo.jp/2016/09/tab-vs-space.html
www.gizmodo.jp/images/2016/09/160901coding2.jpg
www.gizmodo.jp/images/2016/09/160901coding3.jpg

764 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 09:38:06.48 ID:y21Asc3i.net]
優れたデータから生まれるクソ同然な解説

765 名前:デフォルトの名無しさん [2016/09/12(月) 10:27:38.72 ID:CKtP/5ek.net]
おまえTAB派かw

766 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 11:33:25.20 ID:+YsVO5lS.net]
タブスペース混在で起きる問題とは?



767 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 12:31:33.38 ID:ZblQazo2.net]
タブ幅が決まってないのが一番の問題だな。2,3,4,8みんなバラバラ。

768 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 13:20:51.17 ID:s5J5+4ba.net]
pythonが致命傷を負う

769 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 13:57:05.61 ID:x7GAwvaf.net]
>outputにヌルいれると必要なサイズ返るとかが普通じゃね

必ずしもそれが有効かどうかわからないから困る
必要なバッファサイズを取得してから実際に文字列を取得するまで
関数を二回呼び出す必要があり

770 名前:Aここに時間差があるのが問題
マルチスレッドで問題になる
取得したバッファサイズは既に古い情報になっている可能性がある
これを解決するにはLockするしかない
obj->lock();
size_t buffer_size = obj->func( nullptr, 0 );
std::vector<char> output( buffer_size );
obj->func( outputr.data(), output.size() );
obj->unlock();
こんなコードはまさに糞であるということ
しかも、lock、unlockをし忘れても、たまたまのタイミングの物で、そこそこ動きそうというのが怖い
つまり、ほんの短い期間の間に、文字列が更新されて取得したバッファサイズが無効になるほうが珍しいだろう
しかし、ありえないことではない
1000回に1回だけ失敗するというのが一番怖い

これに比べれば、関数内でnew char[]して返すほうが、まだいくらかマシに思えるぐらい
しかしこれをやると、帰ってきた文字列は自分で開放しなければならないのか
あるいは開放してはダメなのか、解放関数はdelete[]なのかfreeなのかあるいは別の専用関数なのか
ということが関数ごとにマチマチになり、非常に煩雑になる

std::string output = obj->func();
のほうが断然良い、誰の目にも明らか、短い、シンプル
lock、unlockを呼び出し元が保証しなければならないのは良くない
必要な処理が一発の関数呼び出しでキマるように設計すれば、同期処理はobj内に隠蔽できる
こちらのほうが良い
単に文字列取得するだけでlock、unlockが必要というのは狂気の沙汰
>>700のような特殊な場合を除いては、ね
[]
[ここ壊れてます]

771 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 15:42:12.58 ID:tjH2oYJX.net]
ってか

void func( char *output, int max_buffer)

なんてI/Fを書いちゃってることが問題なんじゃねーの?
これでなんとかしようって考えたって生産性ないし

772 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 16:16:50.47 ID:ZblQazo2.net]
cのIFだから古臭いのはしょうがない。

効率悪くなってもstd::string吐くようにラップして二度と触らないのが吉。

773 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 16:45:03.11 ID:+C5a7cGR.net]
void func( char *output, int max_buffer)
これ、ニワカが作ったダメな見本

普通
size_t func( char *output, size_t max_buffer)

774 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 17:01:45.51 ID:2Vwoh4uN.net]
ゴミが得意気に難癖つけてて笑える

775 名前:デフォルトの名無しさん [2016/09/12(月) 17:58:57.32 ID:KCLSxXC3.net]
同じ意味じゃんw

776 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 18:06:15.51 ID:5/ctHFsj.net]
マルチスレッドのリテラシーも無いのにクソみたいな長文をドヤ顔で貼り付ける>>758が哀れで仕方ない
2回のfnucの呼び出しの間にバッファーが変更される状況では単独の呼び出しすら破綻していることが理解できないらしい



777 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 18:13:03.76 ID:Brz5tLm8.net]
彼に限らず何らかの問題意識を訴える子が
なぜか突然マルチスレッドを絡めてくるのはもはや伝統芸
そして一通り話を聞いてみると
「そうだね、排他だね」としか言いようがないことも毎度

778 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 18:27:11.87 ID:x7GAwvaf.net]
std::string output = obj->func();
の場合、funcの中で排他処理をしていれば、呼び出し元は排他処理について気にしなくてよい
アトミックな操作ということになる
文字列の取得にかかわらず、アトミックが期待される処理は
分解せずに一つの関数で実現すべきである
personオブジェクトの取得なら、person = obj->get_person(); とすべきであり
person.set_name( obj->get_persion_name() );
person.set_age( obj->get_persion_age() );
のように分解してしまうとアトミックでなくなるから、やはりロックが必要になる
外からオブジェクトをロックする、そういうI/Fをobjに用意するということは
何時でも何処でも好き勝手にロックできるというわけで
使い方を誤るとデッドロックを引き起こす可能性がある
ロックの順番はクラス設計者が明確に管理し、隠蔽すべき

さて、文字列取得を二つの関数に分けて行うとアトミックな操作でなくなるから
呼び出し元で排他処理をしなければならなくなる
obj->lock();
size_t buffer_size = obj->func( nullptr, 0 );
std::vector<char> output( buffer_size );
obj->func( output.data(), output.size() );
obj->unlock();
これは非常に面倒なので君らは直ぐにでもstd::stringを返すラッパーを書く
そうすれば結局同じことになるので、初めからstd::stringを返せばよい
もとより文字列の取得はアトミックであることが期待されるわけだから
一回の関数呼び出しで行うのが筋である

779 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 18:43:38.31 ID:5/ctHFsj.net]
一生懸命考えた結果がコレか?
呼び出し側が自らコンカレントな使い方する前提でロック必須と言われてもねぇ
その内vectorのremove&eraseイディオムにも排他が必要で狂気の沙汰とか言い出しそうだな

780 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 18:44:31.77 ID:x7GAwvaf.net]
どれだけの処理を一つの関数で行うべきかは
どこまでの処理がアトミックと期待されるか、による
文字列の取得はアトミックであることが期待されるので
一つの関数でアトミックに実行すべき、となる
場合によればアトミックの範囲がもっと広がることもある
例えばpersonの情報が欲しいとき、名前と年齢を別々に取得するのはよくない
名前の取得と年齢の取得のそれぞれが独立して排他処理してあって正しく動いたとしても
全体として名前と年齢のペアが一致しなくなる可能性があるから
だからこの場合、personの情報は一つの関数呼び出しで行い、アトミックである必要がある

なので、一つの関数で実行すべきこと、アトミックに実行すべきこと、は
文字列の取得なんかよりは大きな範囲、粒度になることはある
大きくなることはあり得るということ

が、間違っても、文字列の取得などというプリミティブな処理を
バッファサイズの取得と文字の取得の二つに分割したほうが良い
とはならない

781 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 18:50:01.82 ID:x7GAwvaf.net]
>>767

>必ずしもそれが有効かどうかわからないから困る

と書いた通り、すべての場合とは言っていない
困る場合があるといっている
そして、困る場合での話である

782 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 19:40:26.75 ID:5/ctHFsj.net]
なるほどつまりは>>765だな
この論法は非constメンバー関数を使ったイディオムに広く使えそうだ

「〜って普通だろ?」
 ↓
「必ずしもそれが有効かどうかわからないから困る(長文略)」

783 名前:デフォルトの名無しさん [2016/09/12(月) 21:04:54.81 ID:U6Ajls88.net]
>>767
呼び出し側だけとは限らんでしょ。
非同期でデータメンバーを更新しつつ、更新通知をだすクラスとか

784 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 22:29:31.42 ID:2Vwoh4uN.net]
一発でstringやらvectorで返すなら常識的に言ってロックは必要ないわな
何話してるのか分かってない奴が力んでるな

785 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 23:29:00.60 ID:3LkOVCr7.net]
タブ幅は8である。但し、一度タブキーを叩くと4つのスペースが入る
但しそれで8つのスペースとなるときはそれを一つのタブに換える

786 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 00:03:18.93 ID:ZWXE0Cz9.net]
いやタブとスペース混ぜるのは論外でしょ



787 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 00:39:27.54 ID:UjtLBJZw.net]
混ぜると誰かがコード整形したときに全部差分に出るから邪魔

788 名前:デフォルトの名無しさん [2016/09/13(火) 00:51:46.06 ID:nTkG/AQ9.net]
>>772
そんな事でロックが必要かどうか決まらないと思うが何を言ってるんだ?

789 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 01:06:54.89 ID:TGJSQl0M.net]
VZエディターとか混ぜてたな

790 名前:デフォルトの名無しさん [2016/09/13(火) 01:20:10.44 ID:7Uxx8QPD.net]
基本的にインデントが何段階も必要な入れ子はよくない
許容範囲は2つまでだな

791 名前:デフォルトの名無しさん [2016/09/13(火) 02:29:06.46 ID:qRIDBJHy.net]
論点がずれてんじゃんw

792 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 04:10:18.62 ID:ifCWTkZq.net]
>>775
差分取るときホワイトスペース無視すればいいだろ

793 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 05:08:48.43 ID:E9px3zRx.net]
std::get_temporary_buffer ってなんであんなクソ仕様で作ったの

794 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 05:14:57.49 ID:ifCWTkZq.net]
それ知らんかったけどクソだからC++17でdeprecatedになるのか

795 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 07:08:31.21 ID:fa0Yw14i.net]
引数の異なる関数を関数テーブルにまとめる方法ヘルプミー

796 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 07:11:36.75 ID:jvr3tDVu.net]
型が違うから難しくね?同名でオーバーロードするんじゃだめなんかい。



797 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 07:21:28.20 ID:6YUjJJm0.net]
テーブルの別の要素で引数と返り値の型を記憶しておき、任意の関数ポインタ型にreinterpretして保存
呼び出し時は記憶した引数と返り値のの型に対応する関数ポインタ型にreinterpretしてから呼び出す。

798 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 07:56:45.02 ID:BC6G6r/f.net]
>>783
それどうやって使うつもりなの?

799 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 08:09:28.64 ID:LgTr6ZxA.net]
>>785
やはり別物で統一して記憶させるしかないか…
要は入れてから後にキャストだよね

>>786
関数群30ぐらいあるからそれを管理しやすくしたい
別にenumで関数名入れておくのと
関数名に対応したインデックス拾ってくる関数を用意しておいて
後に使いやすく

800 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 08:11:50.46 ID:jvr3tDVu.net]
酷い設計って言っていい?

801 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 08:20:36.44 ID:BC6G6r/f.net]
>>787
> 後に使いやすく

ごめん、全然使いやすくなるイメージがないんだが...
単にまとめときたいだけならクラス作って静的メンバ関数でいいような気がするし

802 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 08:29:56.17 ID:LgTr6ZxA.net]
>>789
関数名を別ファイルから取り出して動的に動かすためにはこれしかなかった
まとめておいてプログラム内で処理ならそれで良いけど
今のところそうなってるからそれに会わせるしかないんだ

803 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 08:32:38.69 ID:jvr3tDVu.net]
可変長引数取る関数内でスイッチするのと大差なさそう。

804 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 08:33:59.57 ID:Dh1MHapU.net]
>>791
はぁ??

805 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 08:39:26.37 ID:LgTr6ZxA.net]
>>791
結局どこかで分岐処理によるキャストするからほぼ変わらん気もする
これに関連する話だけど

int (*func)(void*)みたいな関数ポインタがあって
引数二つにするにはどうやってキャストしたら良いんだろうか

806 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 08:43:25.81 ID:kwiFGb/T.net]
まず関数の型をtypedefしようぜ。



807 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 08:47:38.13 ID:GD/RUd4Y.net]
windows のマクロまみれのメッセージディスパッチと同じようなことじゃろ

808 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 08:57:44.86 ID:jvr3tDVu.net]
ideone.com/BWJoEi
こういう感じのこと思いついたけど、できんかった。テヘペロ。
関数複製するんだから通ってほしいなぁ。
なんかテンプレマジックで通らんかなぁ。

809 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 09:02:38.95 ID:jvr3tDVu.net]
これができたら、ファクトリーメソッドがパラダイス。

810 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 09:51:20.93 ID:jvr3tDVu.net]
特定の型のパラメータパックってできなかったっけ?
Anyのパラメータパック食わせれば解決するんだけどなぁ・・・。

811 名前:デフォルトの名無しさん [2016/09/13(火) 11:14:43.16 ID:nTkG/AQ9.net]
やりたいことにたいして少し大仰だが、Boost.Pythonのようなものでインタプリタからどうやって型安全に関数を実行してるか見たら少しは参考になるんじゃない?

812 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 12:49:03.21 ID:BC6G6r/f.net]
>>790
> 関数名を別ファイルから取り出して動的に動かす
なら初めからそう書いてよ
使いやすさ云々じゃないじゃん
関数名を特定するのはいいけど引数は関数毎にバラバラなんでしょ?
結局どこかで分岐が必要な気がする
それとも引数は Variant みたいななんでも入れられる変数の配列にしてしまうとか

813 名前:デフォルトの名無しさん [2016/09/13(火) 17:00:07.27 ID:dUelqKgA.net]
>>783
#include <functional>

double foo(double x) { return x; }
int bar(int x) { return x; }

int main()
{
std::function<double(double)> table[2];
table[0] = foo;
table[1] = bar;
}

814 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 18:18:50.00 ID:LmZnag12.net]
>>801
コードサンクス
ただこれはintとdouble型に対してだからできるんじゃないのだろうか

>>800
そういうことだね
だからどこかでキャストし直す必要がある…はず
あらかじめどこかにパターンを定義しておいてそれはもうスイッチ文に頼るしかないかなって考えてる

815 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 18:20:35.88 ID:LmZnag12.net]
>>797
俺もパラダイスを目指している
Cならエラー出ずにできるみたいなんだよね
C++でxmlをjsonにパースしたり
jsonを簡単に読み込む方法ってあったっけ?
ないならC#も考えないとな…

816 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 19:01:39.86 ID:bDDPvjQm.net]
実行時に文字列を比較して分岐することのどこにパラダイスを見いだせるんだよ



817 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 20:22:41.37 ID:BC6G6r/f.net]
>>803
調べてないけどライブラリぐらいあるんじゃね?

818 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/09/13(火) 21:57:21.43 ID:7T7m5n2i.net]
質問です。

placement newの関数の宣言と定義はどこに書くのが正解ですか? よろしくお願いします。

819 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 22:04:54.99 ID:6F1+hrdF.net]
>>805
picojsonとやらを使ってみた
便利なんだけど配列二つあると積む現象が起きてしまった…

820 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 22:23:58.73 ID:eOd6ZBDo.net]
jscriptで読めるから
WSHでアプリで実行

821 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/09/13(火) 22:34:06.63 ID:7T7m5n2i.net]
ReactOSというOSの開発をしています。
ヘッダー<new>と<crtdbg.h>のnewの宣言が衝突していて、<new>が使えません。
どうしたら正しく配置newが使えますか?

822 名前:デフォルトの名無しさん [2016/09/13(火) 22:52:09.89 ID:7Uxx8QPD.net]
自分のソフトの販売権がカシオが取得とかねつ造してたやつだ

823 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/09/13(火) 22:59:05.82 ID:7T7m5n2i.net]
わかりました。ReactOSのSTLかCRTのコードが間違っているということですね。
配置newは<new>をインクルードしたら使えなければおかしい。

824 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 23:06:52.68 ID:7T7m5n2i.net]
自分の商品の販売権をどう決めようが勝手でしょう。会社名を出したのは悪かったが。

825 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 23:08:15.35 ID:jz2gr8q/.net]
ライバル会社かなにか?

826 名前:デフォルトの名無しさん [2016/09/13(火) 23:15:36.33 ID:7Uxx8QPD.net]
>>812
おまえカシオが権利を所有とか書いてたんだろ
カシオと専売契約交わしたみたいに書いてたろ

カシオが知らんと思うてか 



827 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 23:21:08.73 ID:7T7m5n2i.net]
>>814
誤解です。メールで交渉中でした。

828 名前:デフォルトの名無しさん [2016/09/13(火) 23:29:04.40 ID:7Uxx8QPD.net]
>>815
うそつけこら。おまえがメール送ってただけやろが。
往生際が悪い。全部バレとんねん 

狭い業界でごまかせるとおもうなよ

829 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 23:33:01.44 ID:7T7m5n2i.net]
すみません

830 名前:デフォルトの名無しさん mailto:sage [2016/09/14(水) 00:03:18.61 ID:3NkcLiKm.net]
反省してます

831 名前:デフォルトの名無しさん mailto:sage [2016/09/14(水) 01:01:49.61 ID:QlIAHX1m.net]
なんやなんや

832 名前:デフォルトの名無しさん mailto:sage [2016/09/14(水) 02:49:36.41 ID:Xhtlj9Sh.net]
マトラボスレ勢いなさすぎ。
誰かイコライザのコーディング教えてくれや

833 名前:デフォルトの名無しさん mailto:sage [2016/09/14(水) 03:15:05.48 ID:Pl2/S2ti.net]
イコライザってなに?

834 名前:デフォルトの名無しさん mailto:sage [2016/09/14(水) 03:18:25.05 ID:EjX8GKMV.net]
信号処理

835 名前:デフォルトの名無しさん mailto:sage [2016/09/14(水) 03:53:21.14 ID:qczVS6OA.net]
FFTか。言葉しかしらん。

836 名前:デフォルトの名無しさん mailto:sage [2016/09/14(水) 04:57:26.35 ID:8Y7m8SBN.net]
高速フーリエ変換か



837 名前:デフォルトの名無しさん mailto:sage [2016/09/14(水) 08:16:10.34 ID:58JMlqKS.net]
placement newの関数を自分で書く素振りを見せながら
newをインクルードとか、何言ってんだか。
標準ヘッダーが衝突するなら処理系作った奴に聞け

838 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/09/14(水) 11:33:48.49 ID:3NkcLiKm.net]
>>825
ありがとうございます。

839 名前:デフォルトの名無しさん mailto:sage [2016/09/14(水) 18:34:08.81 ID:O92aoqkR.net]
CppUnitによるテストって登録件数が多くなった場合…なんとかならんもんかね
1000を越えるとかマジで嫌なんだが

840 名前:デフォルトの名無しさん mailto:sage [2016/09/14(水) 18:59:00.04 ID:EjX8GKMV.net]
何が嫌なんだ
時間がかかるってことなら分割したらいいじゃないか

841 名前:デフォルトの名無しさん mailto:sage [2016/09/14(水) 19:15:10.96 ID:O92aoqkR.net]
>>828
コードがめっっっちゃ汚くならね?
1000個テストするなら1000行似たこと連続で書くんでしょ?

842 名前:デフォルトの名無しさん mailto:sage [2016/09/14(水) 19:27:01.68 ID:EjX8GKMV.net]
>>829
テストコードも名前を付けてモジュール化すればすれなりに見やすくはなるんじゃないか
どこで何のテストをしているか見つけやすくなるし

843 名前:デフォルトの名無しさん mailto:sage [2016/09/14(水) 19:57:41.83 ID:C1VR7bWr.net]
>>830
ファイル分割するってことだろうか?

844 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 00:14:31.25 ID:SldeaLfO.net]
別にそれCppUnit 固有の問題じゃねーじゃん。
お前のテストコード作成全般の問題だろ。

845 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 01:28:50.14 ID:NSWALpAD.net]
>>829
「似たこと連続で」ならマクロでも何でも使ってまとめりゃいいだろ。

846 名前:デフォルトの名無しさん [2016/09/15(木) 06:31:33.82 ID:eCorjc8D.net]
ideone.com/VtKz07

nonbiri-tereka.hatenablog.com/entry/2014/06/25/093327を見て勉強中なのだが、
なぜ、test_addでaddをラップしてるのかがわからない
addに引数を持たすことが出来ないのか。
また、addの足し算が引数をaが1-100だった場合、今の俺では100個記述することになる
マクロを使用とかすれば解決できそうだけど、適切に使う方法が思いつかないんだ…
外部ファイルとかからの読み込みでも良いので何かしらヘルプ・・・・

void FunctionTest::test_add(){

CPPUNIT_ASSERT_EQUAL(3+2,func->add(3,2));
}

この部分を何個も書いて
CPPUNIT_TEST(test_add);//メンバ関数の登録ってのを

CPPUNIT_TEST(test_add);//メンバ関数の登録
CPPUNIT_TEST(test_add1);//メンバ関数の登録
CPPUNIT_TEST(test_add2);//メンバ関数の登録
.....となってしまう



847 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 08:43:36.54 ID:wjxOqoMl.net]
コンパイル時と実行時の違いがあるから直接指定はできないよ。
lambdaとかbindでいけんじゃね?試してないけど。

848 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 09:20:50.32 ID:Dfv6m4lx.net]
凝ったことをした挙句テスター自体にバグ仕込んでテスト無効とか馬鹿らしいから
1回きりと割りきってシンプルに書くという考えもある

849 名前:デフォルトの名無しさん [2016/09/15(木) 10:13:14.67 ID:dJJn2WBE.net]
template<typename...Args> void hoge(Args...args){}
hoge({1,2,3});
としたら
hoge(std::initializer_list<int>)
のように推論して欲しいのですが何故できないのですか

850 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 10:40:36.62 ID:krf6YZ+h.net]
ideone.com/zJhotB

851 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 10:41:24.48 ID:krf6YZ+h.net]
投稿を暴発してしまった。
自動では推論してくれないみたいだねぇ。なんでだろう・・・。

852 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 14:05:17.34 ID:OOrl8bCH.net]
勝手に変換されても困るべ

853 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 16:06:02.66 ID:qnepHcI/.net]
C++PRIMER 5TH KINDLE版でシコシコするのはどう思いますか。
尼ではさっぱり人気がないようですが。

854 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 16:40:29.83 ID:gyul79OX.net]
あの手の本は意味がないよ
どんだけ、言語の仕様に詳しくなっても何の得にもならんからな

855 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 19:22:13.92 ID:BBoNUH+R.net]
熱い江添批判

856 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 20:07:08.11 ID:95/CUQAP4]
おっと江添の悪口はそこまでだ



857 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 20:07:39.04 ID:axqGMSjf.net]
おっと江添の悪口はそこまでだ

858 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 20:59:53.90 ID:XkA1sBZN.net]
少なくとも言語仕様を把握してない奴にライブラリは作って欲しくない

859 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 21:49:37.24 ID:7lTxlp13.net]
つまりハゲはライブラリ作るな

860 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 21:50:15.59 ID:umQizf+V.net]
言語仕様が
げんこつ塩ラーメン
に見えた

ちょっと夜食食ってくる

861 名前:デフォルトの名無しさん mailto:sage [2016/09/16(金) 06:27:51.21 ID:nhdK38ZD.net]
「言語仕様」→「げんごしよー」→「げんこつしおらーめん」
漢字の視覚情報として入力されたパターンを、
脳内でいったん音声情報に変換してから似た言葉に錯誤したのね。

俺の認識手順と違うみたいなので理解するのに手間取った。

862 名前:デフォルトの名無しさん mailto:sage [2016/09/16(金) 07:23:14.79 ID:1ml378Vd.net]
>>849
言語仕様の後にライブラリのラだけ見えたからさらに連想を促進した

863 名前:デフォルトの名無しさん mailto:sage [2016/09/16(金) 09:43:39.74 ID:wscqtQV8.net]
おまえらハゲを敬え

864 名前:デフォルトの名無しさん [2016/09/16(金) 10:02:58.29 ID:q1C1+fLl.net]
dnaimg.com/2011/06/07/personal-rocket/img_001.jpg

865 名前:デフォルトの名無しさん [2016/09/17(土) 19:36:33.08 ID:/lrAuukn.net]
ハゲ(笑)

866 名前:デフォルトの名無しさん mailto:sage [2016/09/17(土) 20:17:46.81 ID:n9MPs/HW.net]
ハゲが世界の技術を支えてる



867 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 00:04:19.65 ID:5e40+2Z7.net]
VSのリードプログラマもハゲだな

868 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 00:05:00.62 ID:+iC0HZAY.net]
ハゲが好きだなお前ら

869 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 00:23:27.97 ID:+IdphFbB.net]
ハゲは絶倫!

870 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 00:45:36.25 ID:5e40+2Z7.net]
質問なんだけどnewするとき例外処理する人はvectorとかでpush_backする時も毎回tryしてんの?

871 名前:デフォルトの名無しさん [2016/09/18(日) 02:44:35.25 ID:9+5kS6ok.net]
してると言えばしてるけど、多分君の思ってる感じではしてない。

872 名前:デフォルトの名無しさん [2016/09/18(日) 02:48:48.02 ID:9+5kS6ok.net]
例外は例外的にしか発生しないので、層の上の方の集約するポイントでcatchしてる。
あんまり細かくやっても意味ないしハゲる。

873 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 03:18:08.82 ID:+iC0HZAY.net]
つーか、例外発生する可能性のある箇所でcatchしないとかないでしょ

874 名前:デフォルトの名無しさん [2016/09/18(日) 03:29:47.07 ID:L03d0R0a.net]
あまり細かい事気にしてるとハゲるよw

875 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 03:43:50.19 ID:1yHXSEjx.net]
問い1「newするとき毎回try catchするバカはvectorのpush_backもtry catchするのか?」
答え「している可能性あり」

問い2「newするとき毎回try catchするバカは非noexcept関数の呼び出しも毎回try catchするのか?」
答え「バカの行動は一貫性が無いのでしていないだろう」

876 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 04:12:03.01 ID:CEGgaeCy.net]
// Aをnewしてveにpush_back
// push_backは落ちないようcatchのおまじない必須
try { ve . push_back( new A( new R(), new S() ) ); }
catch ( ... ) {}



877 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 04:50:42.33 ID:EIh/dcA1.net]
そんな基本的なコンテナのエラーを、catchしても、
プログラマーが回復させることは出来ない

強制終了されるままにしておいた方がいい

下手すれば、エラーログに書き込む際、さらにエラーが起きるかも

878 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 05:42:12.02 ID:+IdphFbB.net]
クラスの型が一致しなくてcatch出来なかった例外は一体何処へ吹っ飛んでいくのだろうか…

879 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 06:02:09.25 ID:+jQZdVYD.net]
NULLチェックしろよとチェックツール使った品質チームが指摘してくるんだが、そもそもnew失敗したら例外になるからNULLチェックまで来ねーだろ、お前のチェックチーム馬鹿すぎだろって突っ込みを誰もしないで数年

880 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 06:29:33.73 ID:CQAObZ4Q.net]
バカってなんでnewしたがるんだろう

881 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 06:44:28.23 ID:xYSNtktv.net]
>>867
チェックツールが古い仕様向けに作られているのだろうか。
newが失敗した場合はNULLが返る、だからnewの後は常にNULL(ポ)を確認せよ。

指摘を聞き流すだけでなく、チェックする部署の人に
ツールのバージョンだか設定だかを現状に合うように改めてもらったら?

882 名前:デフォルトの名無しさん [2016/09/18(日) 08:41:57.71 ID:TydQpzdL.net]
pimpl = new impl;
if(pimpl == nullptr) []()[[maybe_unused]]{throw std::bad_alloc();}();

883 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 08:48:34.25 ID:2blUzsBI.net]
c++ は最新仕様だけ覚えていればいいってもんではない。

884 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 09:21:00.65 ID:/1FlYzFJ.net]
>>868
make_uniqueはコンストラクター引数の補完が働かないので使いづらい

885 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 09:22:05.47 ID:6SQSBv8I.net]
仕様だけは詳しいが、実務は全くできない奴いるなw
正直最新の仕様なんかについてうんちく垂れるより、古い仕様でもきちんと動くほうがいい。

中には、よくわからずに使って、はまって納期遅れさせるバカもいるwwww

886 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 09:33:08.57 ID:1yHXSEjx.net]
日本語が理解できずに話をすり替えてしまう>>871みたいな低能や
例外処理の基本も理解できていない>>865みたいな低能が
その品質チームとやらにいるんだろう



887 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 10:19:05.24 ID:EIh/dcA1.net]
new にも、NULLを返すバージョンと、例外にするバージョンなど、色々あるんじゃね?

888 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 11:18:56.17 ID:WPlu++Kc.net]
例外処理って目的によって異なる
素直にシステムがエラー吐いて終了で問題ない場合
特定のエラーを検出して改善の為のログを残したい場合
止まると困るシステムの場合十分なリカバリー手段を用意して例外検出と復旧処理を行う

通常のアプリケーションにnew なんて使わないって書いてあったけど
プログラムの目的とエラーに対する必要な強度を仕分けして
全体としてどの様に例外処理を組み込むかって事だよね

889 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 14:08:31.95 ID:5e40+2Z7.net]
やっぱりC++って集団で使うのには向いてないんだよね
どのC++の話してるか分からないか

890 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 14:09:15.23 ID:EIh/dcA1.net]
ゲームエンジンの本には、自分でメモリプールを作っている例が、よく載っている

newをその都度呼ぶと遅いから、まとめて何十個分のメモリを確保する。
そしてその中から、今使う分だけを使う

でも、それぐらいの機能、既に誰かが、ライブラリを作っていそうなもんだが

891 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 14:14:46.13 ID:/A9gXhFE.net]
boost.pool

892 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 14:42:48.66 ID:5e40+2Z7.net]
もちろんメモリプールなんてたくさん出回ってるし今度標準にも入る
でもそれらの性能が十分とは限らない

893 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 14:43:41.47 ID:Qq7O8IvU.net]
昔、lokiとかあったやん?
使ったこと無いからしらんけど
あれにもメモリプールなかったっけ

894 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 15:03:20.15 ID:vvzKkhQt.net]
>>869
えええええええ

いつからそんなクソ仕様になったん…
例外じゃないのか

895 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 15:26:11.91 ID:vvzKkhQt.net]
と思ったけどC++て全部チェック例外だっけ
newのたびにtryさせられるよりsegmentation faultのほうがマシだな

896 名前:868 mailto:sage [2016/09/18(日) 16:16:16.34 ID:xYSNtktv.net]
>>882
勘違いさせたならすまん。>>869 で書いた
「newが失敗した場合はNULLが返る、だからnewの後は常にNULL(ポ)を確認せよ」
っていう方が古いC++でのnewの動作ね。
古いチェックツールがそんなエラーを返してるんじゃないの? という意図。

現在はnewの失敗は例外が返るのがデフォルト動作だよな。
nothrowで例外を出さないように指示したら今でもnullptrが返るけど。



897 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 16:24:41.60 ID:ygUqx6Ix.net]
>>883
C++は全てjavaでいう非チェック例外じゃないの?

898 名前:デフォルトの名無しさん [2016/09/18(日) 16:45:14.01 ID:/VzCUPpk.net]
お前らの例外話は何故いつもnewなのか

899 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 17:36:57.68 ID:5e40+2Z7.net]
newにおける例外の扱いのベストプラクティスが示されていないから

900 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 17:37:48.57 ID:+iC0HZAY.net]
ないものは自分で見つけんだよ

901 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 18:15:15.56 ID:sUrpOA8l.net]
ひょえー

902 名前:デフォルトの名無しさん [2016/09/18(日) 18:28:35.89 ID:L03d0R0a.net]
うはー

903 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 19:43:10.68 ID:1yHXSEjx.net]
>>886
newを見るとすぐtry catchで囲わないといけないと妄想してる882みたいな低能が多いからでは?
catchを見ると「近くにnewが有るはず」と脊髄反射したに相違ない

904 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 19:45:44.60 ID:XW30Cfu8.net]
それよりもnullチェックってどうやるのがスマートなんだ?
使ってるvector全部をif文にぶち込んでるコード見かけて驚愕したんだが

905 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 20:00:16.67 ID:aEHfUxVO.net]
vectorに挿入する前にチェックすればいい

906 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 20:06:12.23 ID:5e40+2Z7.net]
一部の用途を除いてnewが失敗する可能性は考えなくていい



907 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 21:15:21.06 ID:sUrpOA8l.net]
説明願います

908 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 21:23:31.21 ID:ORSLx8xU.net]
VBのCSV出力が遅いんだけど
Cで書いたら速くなんの?

909 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 01:02:18.86 ID:aveOgqLD.net]
むしろその手の処理はVBの方が速い

910 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 01:04:42.68 ID:aveOgqLD.net]
>>885
んなこたーない []
[ここ壊れてます]

912 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 12:39:37.38 ID:d/dsjAXw.net]
>>896
文字列連結を馬鹿みたいに繰り返して遅くなってるんじゃないの

913 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 12:39:37.43 ID:d/dsjAXw.net]
>>896
文字列連結を馬鹿みたいに繰り返して遅くなってるんじゃないの

914 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 12:51:32.58 ID:0BKQBe6K.net]
かなり大事な事ですねw
VBとかC#で遅いからといってCやC++にしたところで劇的に速くなる保証なんかないのにな
何の言語にしようがどうしようもないか自分の組み方がおかしいかどちらか

915 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 13:10:11.98 ID:fA1B/38Y.net]
>>896
ファイル出力が遅いのかテキストの組み立てが遅いのか

916 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 13:15:05.33 ID:3VQNeREi.net]
VBのCSVライブラリ使ってるなら、
規格(?)に準拠するようにいろんな処理してるから
かなり遅いっぽいぞ

エスケープが要らないとかダブルクォーテーションが要らないとか
条件を限定できるなら高速化の余地もあるんでないかい



917 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 13:17:08.06 ID:MZBT2IFS.net]
>>899>>902>>903
おまえらこのスレで面倒見るつもりなのw?

918 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 19:50:10.96 ID:urF+pqo3.net]
むしろ同じロジックでコードを書いて比較してほしい。

919 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 19:55:07.34 ID:80/BHnqI.net]
アルゴリズムの選択を誤ればJavaにすら負ける
大事なのはアルゴリズム

920 名前:デフォルトの名無しさん [2016/09/19(月) 20:12:40.99 ID:sZXP+7ot.net]
Javaで適切なアルゴリズムを使うPGと同一人物が
C++で不適切なアルゴリズムをわざわざやるかよ
同一人物が使ってどっちが優れた結果を出せるかだろ

921 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 21:10:21.81 ID:urF+pqo3.net]
ここではアルゴリズムってよりライブラリ依存だな。
CSVのパースは真面目にROC準拠でやろうとすると頭が禿げるぐらい面倒くさい。
現実に扱うCSVはもっと前提条件を少なくできるだろうから、
自分で簡易版のパーサーを実装した方がいいかも。

922 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 22:22:17.19 ID:aveOgqLD.net]
ROCってのが何なのかわからんが
RFC 4180なら所詮ワンパスなのでそんなに難しくない。
C#で自作したものをブビライブラリと比較したら10倍程度の速さだった。
どうせTextFieldParser使ったんだろ

923 名前:デフォルトの名無しさん [2016/09/19(月) 22:40:37.56 ID:Kz778z8P.net]
CSVなんかただの記号区切りのテキストファイルだろ。
区切ってテキスト出力すりゃええだけじゃろ

924 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 22:50:33.73 ID:w3ljrVli.net]
質問者は出力について悩んでいる人に
パーサーの自作をすすめる
これがクソスレのクオリティ

925 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 23:03:23.99 ID:eTcqfU0K.net]
パーサー次第で出力に差が出るだろう、そんなことも分からんのか???

926 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 23:41:33.03 ID:byZSyyWN.net]
テキトーな仕様のオレオレCSVの自作を勧める奴がいまだに存在するとは。



927 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 23:45:11.41 ID:r/G6SK9c.net]
1行ずつ読んでいくんじゃないのか

928 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 23:47:22.25 ID:pyTHmoe6.net]
オレオレ仕様のcsvが氾濫してるから今更どうしようもない
それが問題になるようなら保存形式にcsvを用いる事自体が間違い

929 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 23:49:18.87 ID:r/G6SK9c.net]
csvってカンマ区切りということ以外の仕様ってあるのか?

930 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 00:09:05.24 ID:Em9B638f.net]
無い
オレオレの中でもメジャーなのに後付けでRFCが出来ただけ

931 名前:デフォルトの名無しさん [2016/09/20(火) 00:30:40.31 ID:o1tJ3Pdk.net]
>>907
普通に見たことあるけど
vectorじゃなくlist使って遅いとか
>>911
質問読めてない糞民が何言ってんだか

932 名前:デフォルトの名無しさん [2016/09/20(火) 02:23:46.55 ID:E+J9y3sP.net]
ポインタの無いC++を誰か作ってくれないかな…。

933 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 03:38:57.96 ID:MJf3DPDB.net]
>>919
C++なら、あんまりポインタ意識しなくてもできるでしょ。
ライブラリが吸収してくれるんだし。

934 名前:デフォルトの名無しさん [2016/09/20(火) 06:57:10.89 ID:83nQEiQC.net]
> vectorじゃなくlist使って遅いとか

Javaしか使えないやつの付け焼き刃か

935 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 07:29:03.31 ID:l/rjpK7G.net]
>>916
区切り文字(カンマと改行)をデータとして含む場合にどうするかについての仕様がある。
それが面倒くさいなら最初からタブ区切りテキストにしておけと思うが。

936 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 07:41:11.11 ID:h/QlA5En.net]
ここで休んでいくか
o.8ch.net/fg0j.png



937 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 08:17:39.33 ID:yT+pR0RD.net]
CSVは汎用性とか規格準拠とか考え始めると面倒らしいね。
カーニハンとパイクの有名な『プログラミング作法』第4章でも
素朴なプロトタイプから汎用ライブラリに磨き上げていくネタに使われてる。

引用符でくくられた文字列フィールドに含まれるカンマを読み飛ばすとか、
文字列に引用符文字を含ませる場合のエスケープ処理、
フィールド先頭以外にいきなり出てきた引用符文字はどう扱うべきか、
そういった問題。

結局、仕様のあいまいな部分は、データをExcelに処理させて
どう解釈するかを観察し、それに動作を合わせるという妥協策とか。
面白いけど奥深い(面倒くさい)話が載ってる。

938 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 08:23:33.04 ID:pi/Zyw6M.net]
面倒くさがりの俺はカンマのあとのスペースの扱いをどうするか考えるのをやめた

939 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 08:30:50.00 ID:nnGYYj6O.net]
実際問題、業務で扱うCSVがRFCにそってた試しがない
データ中に,とダブルクォーテーションがないこと前提で全フィールド囲みなしとか
データの改行かどうかはフィールド数から判断しろとか

940 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 08:34:47.14 ID:9l0NUqqb.net]
空白は有効な値として取り込みマズければ前処理でなんとかしてくれというのがかんたん

941 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 08:49:26.68 ID:pi/Zyw6M.net]
>>927
空白のあとの引用符出現とか考えると面倒

942 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 15:15:36.96 ID:sn1HJBVo.net]
裏でExcel立ち上げてそいつにCSV読み込ませる
ってのがスマートなやり方かもしれん。

943 名前:デフォルトの名無しさん [2016/09/20(火) 16:11:59.45 ID:83nQEiQC.net]
手作業でか? COM使えよ

944 名前:デフォルトの名無しさん [2016/09/20(火) 16:34:35.12 ID:83nQEiQC.net]
ところでさ
bitsetって複数ビットへのアクセスってできたっけか?
00001111 から
0001 のprvalueを得たり、
00000000 を
00011100 にするのに
bs(4,2) = 0b111; みたいなこと

945 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 18:42:56.25 ID:yRlSWmtK.net]
今すぐN4606をダウンロードして20.9を読め

946 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 19:03:07.64 ID:ChLW8Xs7.net]
C++標準についてですが
よく言われる「ゼロオーバーヘッド原則」はどのように守られているのでしょうか?
たとえば委員会はこの原則を明文化して守っていますか?
または原則が委員の思想や感情だけによって守られていますか?
今後のアップデートにより破られることはありますか?
D&Eには「思想も進化する」というような文が見られますが設計思想の変更プロセスはマニュアル化されているのでしょうか?



947 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 20:52:23.19 ID:DFwXwRkO.net]
ゼロオーバーヘッドの意味するところはなんなのか知らんが、
仮想関数使った時点で間接参照になって現代のキャッシュマシンには厳しいオーバーヘッドになっていると思いますけどね。

948 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 20:54:50.75 ID:ChLW8Xs7.net]
たぶんあなたは「ゼロオーバーヘッド原則」を何かわかっていないですね。
とにかく標準規格の委員会の設計方針のルールをしりたいのです

949 名前:デフォルトの名無しさん [2016/09/20(火) 20:58:56.89 ID:k+TyjvZt.net]
キタ━━━━(゚∀゚)━━━━!!

950 名前:デフォルトの名無しさん [2016/09/20(火) 21:04:19.73 ID:obZzfy4A.net]
そりゃ原則なんだから、原則守られるだろう。
原則Goto文が使われる事は絶対無いのと同じだ。

951 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 21:10:11.42 ID:3ENBAG3F.net]
てかここで聞く質問じゃないだろ。直接委員会にメール送れよ。

952 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 21:12:30.36 ID:DFwXwRkO.net]
>>938
知らないなら答えないでください
とかいいだすぞwwwwwww

953 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 21:16:42.79 ID:tBN6CcRw.net]
よし教えてやろう
その言語機能を使わない人にとって(マシン語レベルで)余分な命令が生成されないこと
ただしそれは書いたコードに対する局所的なもので
スタートアップ時の処理のオーバーヘッドやワーキングセットの肥大化によるキャッシュヒット率低下ついては触れないのが常

954 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 21:17:17.91 ID:5hgqMPTY.net]
あかんやつか

955 名前:デフォルトの名無しさん [2016/09/20(火) 21:57:22.02 ID:83nQEiQC.net]
>>932
それはともかく、おまえは氏ね

956 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 21:59:44.26 ID:26fGody7.net]
>>933
明文化されたルールはないんじゃない?ルールにするメリットないからやらないだろうし。



957 名前:デフォルトの名無しさん [2016/09/20(火) 22:01:25.46 ID:83nQEiQC.net]
ヘリコプターがシアトル付近を飛行中に、ナビゲーション・システムと通信系が故障してしまい、現在位置を把握することができなくなってしまった。
機長は、近くに見えた高いビルにヘリコプターを寄せ、周りを旋回しながら、副操縦士に「私は今どこにいますか?」と大きな紙に書かせ、それをビルの中の人間に見せるように命じた。
ビルの中の人間は、大きな紙に「あなたは今、ヘリコプターの中です」と書いて答えてきた。

958 名前:機長はにっこりと笑って手を振り、副操縦士に言った。
「あれはマイクロソフトの本社ビルだ。ここから東へ向かえば空港があるはずだ」
「どうしてマイクロソフトの本社ビルだと分かったんです?」
「奴らはいつも、技術的には完璧だが、まったく役に立たない答えしか寄こさないからさ」
[]
[ここ壊れてます]

959 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 22:15:01.88 ID:ChLW8Xs7.net]
>>943
そうですか。ありがとうございます。

960 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 22:16:07.34 ID:Em9B638f.net]
>>933
そんな自縄自縛ルールを明示したらjavaみたいになってしまうだろ。

961 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 22:26:54.29 ID:A2psZARz.net]
>>912
えっ

962 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 22:51:13.68 ID:9l0NUqqb.net]
>>940
そんな機種依存の最適化を気にするのも広い意味でオーバーヘッドや

963 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 22:54:34.83 ID:wtHZC2ze.net]
>>931
bitsetは改良したらもっと使われると思うんだけどなあ
boostみたいにサイズを動的に変えられるようにするのとバイト列として取り出せるようにして欲しい

964 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 23:04:57.83 ID:2u6BtGm8.net]
>>947
バカにふれるな

965 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 23:45:29.10 ID:g6KAU3qV.net]
ゼロヘア・アラウンド・オーバーヘッドの略

966 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 01:01:45.84 ID:vGo10QGu.net]
>>933
江添に訊け



967 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 06:53:20.55 ID:t4AsfpX5.net]
>>949
サイズを動的に変えるとなるとメモリーアロケーションが必要になるからなぁ
上限を 32bit/64bit に制限する手もあるけど中途半端感が拭えないし...
そもそも普通にビット演算で事足りるし

968 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 09:03:47.17 ID:K2D2Rq8+.net]
>>933 は例の人物の再来って感じだなぁ。
前スレッド終盤から、このスレッド序盤で活動した人の口調(文体)に似ている。

自分が理解しているレベルにぴったり適合し、自分が理解できる説明をされないと
「そんなことは聞いていません」「もっと実のある回答をお願いします」などと
慇懃無礼な態度で読み手の神経を逆撫でする質問者がいたんだよ。


ちなみに >>933 の質問には答えられません。

969 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 10:48:52.21 ID:7D4j/v4w.net]
シュトラウプ(うろ覚え)さんに直接メールすれば答えてくれそう。
そんな英語力は無いんだろうけど。

970 名前:デフォルトの名無しさん [2016/09/21(水) 14:04:05.66 ID:6wq1WTZb.net]
>>949 >>953
thx
なさそうってことはわかった

971 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 20:33:55.57 ID:mzpKxj3U.net]
>>954
神経を逆撫でをしたレスには見えたが
回答者がアスペな回答をしたからだったと記憶しているが。
お前、その時の回答者か?

972 名前:デフォルトの名無しさん [2016/09/21(水) 20:59:57.83 ID:6wq1WTZb.net]
スルー検定中

973 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 21:04:36.22 ID:49I69gX0.net]
ここもワッチョイ入れた方がいいと思うよ
C#の初心者スレとか酷かったのが大分良くなったし

974 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 23:57:14.58 ID:juClqO0A.net]
>>952
メールしてみゆ

975 名前:デフォルトの名無しさん mailto:sage [2016/09/22(木) 00:08:42.02 ID:G5ENlyOZ.net]
諸事情と成り行きでコンストラクタがこんな風になったんだけど糞コードですか?
hoge(bool type) : base(type ? static_cast<base>(new a) : static_cast<base>(new b)){}

976 名前:デフォルトの名無しさん mailto:sage [2016/09/22(木) 00:19:01.74 ID:RtaHiGLM.net]
>>961
ポインタがstatic_cast<base>できるのか?



977 名前:デフォルトの名無しさん mailto:sage [2016/09/22(木) 00:21:49.80 ID:G5ENlyOZ.net]
>>962
ミス
正しくはstatic_cast<base*>

978 名前:デフォルトの名無しさん mailto:sage [2016/09/22(木) 00:46:02.45 ID:Pt+3vwTk.net]
実装はどうでもいいが
boolを取ってそれによってインスタンスの性質が(大きく?)変わるコンストラクタというのが


979 名前:用者視点からの一般論では糞っぽい設計だな []
[ここ壊れてます]

980 名前:デフォルトの名無しさん [2016/09/22(木) 00:54:34.74 ID:6AgJgQbd.net]
static_castしてる意味が解らん

981 名前:デフォルトの名無しさん mailto:sage [2016/09/22(木) 01:00:01.33 ID:G5ENlyOZ.net]
>>965
三項演算子だから型を合わせないといけない

982 名前:デフォルトの名無しさん mailto:sage [2016/09/22(木) 01:44:09.82 ID:eab4XCGG.net]
hogeにcreate_aとcreate_bみたいなstaticメソッド作って、ユーザーコード側で参考演算子書かせりゃいいのに
馬鹿すぎてそんなことも思いつかないなら、今すぐコプログラマーやめろ(´;ω;`)

983 名前:デフォルトの名無しさん mailto:sage [2016/09/22(木) 01:59:14.64 ID:sh3eyHdy.net]
きっと何かのテンプレートか何かに渡すとかで
コンストラクタがあの形じゃなきゃダメな制約が云々でしょ

984 名前:デフォルトの名無しさん mailto:sage [2016/09/22(木) 02:01:04.64 ID:G5ENlyOZ.net]
>>967
これが全く良くないのは分かってるがやりたくなさすぎる仕事だったから横着しすぎた感はある

985 名前:デフォルトの名無しさん mailto:sage [2016/09/22(木) 03:01:20.41 ID:7BuONNwf.net]
>>145
S只
ST只
STL只

貞子

986 名前:デフォルトの名無しさん mailto:sage [2016/09/22(木) 04:45:30.88 ID:uum3cLOt.net]
new bって初心者っぽい



987 名前:デフォルトの名無しさん mailto:sage [2016/09/22(木) 05:28:33.71 ID:gyLxLatL.net]
>>967
参考にします

988 名前:デフォルトの名無しさん mailto:sage [2016/09/22(木) 07:30:27.01 ID:RG/iP2c6.net]
ファクトリーメソッドが要るとみんなは気付いているが
政治的問題でなし崩しになっていると見た

989 名前:デフォルトの名無しさん mailto:sage [2016/09/22(木) 07:40:14.43 ID:vdVnk2cw.net]
ファクトリーメソッドでいい引数の渡し方ってある?っていうか引数の設計?
パラメータばっか増えてうまくまとめられない。

990 名前:デフォルトの名無しさん mailto:sage [2016/09/22(木) 14:13:51.56 ID:7wkfE+LH.net]
>>974
条件がわからんけどbuilderパターン使うとか

991 名前:デフォルトの名無しさん mailto:sage [2016/09/22(木) 14:39:48.97 ID:sh3eyHdy.net]
俺も条件がわからんが
テンプレートのパーフェクトフォワードが使えるかもしれないね

992 名前:デフォルトの名無しさん mailto:sage [2016/09/22(木) 23:49:28.05 ID:vdVnk2cw.net]
サンキュー。

993 名前:デフォルトの名無しさん [2016/09/23(金) 02:38:31.47 ID:FrbFFvPo.net]
初めから読んでみたんですが、
このスレ恐い人もいますね。

994 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 13:12:24.83 ID:z2QCychJ.net]
おっかない人が鉞持って茂みに潜んでることもあるので覚悟して臨んで

995 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 13:37:45.42 ID:ircl/elV.net]
C++やる人は怖いのですね

996 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 15:04:30.06 ID:z2QCychJ.net]
C++をやったから怖くなったのか、それとも怖い人はC++に魅入られるのか、それともその両方なのか、それはまだ判りません



997 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 16:12:15.84 ID:1AYxo37g.net]
std::array<int,3> ia = {1,2,3};
なんでいちいちサイズをしていなきゃいけないの?
コンパイラは右式からサイズを知れるはずだよね

998 名前:デフォルトの名無しさん [2016/09/23(金) 16:43:56.15 ID:DI5cYQNa.net]
arrayがクラステンプレートだからだよ
テンプレート実引数を推定できるのは関数テンプレートだけ

999 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 16:50:29.51 ID:Z6rdhOh4.net]
もともと生配列なんて狭いスコープ内に閉じた使い方しかしてなかったし、あえてstd::array に変える気が起こらん。

1000 名前:デフォルトの名無しさん [2016/09/23(金) 16:56:36.61 ID:SmlWzTAW.net]
arrayってoparator[]が境界チェック無いとか困る〜

1001 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 17:02:31.08 ID:1AYxo37g.net]
>>983
そう・・・・
使い物にならんな、標準なんかにするなよw

1002 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 17:04:21.59 ID:k0FhbiHl.net]
サイズとか取れて便利じゃん。俺ベクタしか使ってないけど。

1003 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 18:19:30.71 ID:z2QCychJ.net]
"std::array<int> ia = {1,2,3}" という文字列を読んで、括弧内の要素数を数えて
std::array<int,3> ia = {1,2,3}として書き換えてくれるテンプレートメタプログラミングすればいんじゃね?

1004 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 18:28:49.47 ID:Z6rdhOh4.net]
template<std::size_t N> の文脈の中でだったら不要だしな

1005 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 18:41:44.36 ID:jjS354wW.net]
配列をstd::arrayに置き換えなくてはならなくなった。
と被害妄想してグチを2chで垂れるのは間違いなく人生負け組

1006 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 19:45:39.19 ID:k/GEXWfz.net]
新しいコンパイラならstd::experimental::make_arrayが使えるんでねぇの?

en.cppreference.com/w/cpp/experimental/make_array



1007 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 20:07:45.67 ID:1AYxo37g.net]
ベタに配列でよくね?

1008 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 20:08:53.66 ID:1AYxo37g.net]
>>990
2ちゃんに居る時点で負けだろw

1009 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 20:23:26.18 ID:Z6rdhOh4.net]
algorithmにbeginとendを渡すときでも生配列でいいしな

1010 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 20:26:55.96 ID:x7wdola9.net]
シンタックスシュガー

1011 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 21:01:07.45 ID:FB5yu9xq.net]
サイズ欲しい時に変数用意したり、演算したりするのが面倒だし、余分な処理になるからじゃないの?
std::arrayはサイズ変数を保持していないし、演算もしていないし
at()使えば範囲チェックしてくれるし、生配列にも直接アクセスできるし
凄く便利だと思うけどな

1012 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 21:20:41.97 ID:kJ5RCJcw.net]
超薄型コンドームがでて、感覚上生挿入と変わらないことが統計学的に証明されていても、気持ちの問題だからと生を求める人がいる

1013 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 21:39:11.65 ID:nEqelPbM.net]
はい

1014 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 21:39:50.82 ID:tPpdE/S0.net]
難しいなぁ

1015 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 21:49:35.34 ID:pyQwxOFM.net]
arrayのメリット:コピーができる

1016 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 21:59:45.45 ID:x7wdola9.net]
std::copy



1017 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<234KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef