C++相談室 part131 at TECH
[2ch|▼Menu]
[前50を表示]
600:デフォルトの名無しさん
17/09/05 13:50:03.50 MHv2cVQ40.net
printf("We are the World."); ←わかる
cout << "We are the World" <<endl; ←わからない
printfは「関数」だからわかります。
coutの<<はシフト?よくわからないです。
なぜC++はこんな文字の出力のさせ方にしたんでしょうか?関数じゃダメだったんですか?

601:デフォルトの名無しさん
17/09/05 13:54:25.72 5+GcycqS0.net
方法が増えただけ
以前どおり関数でも大丈夫だよ

602:デフォルトの名無しさん
17/09/05 14:03:50.06 CTfci4Vl0.net
>>583
<<は演算子オーバーロードだけどcoutなんて使う必要ないよprintfでOK

603:デフォルトの名無しさん
17/09/05 14:04:00.15 5KjI8r3d0.net
>>583
それはまさにC++の作者(以下、禿)が
彼の著書でアピールしていたことだ
coutとは何か? <<とは何か?
記号と意味はどこでどのように関連付いているのか
意味は関数で表記することにしよう
<<の意味を表記する関数の関数名をoperator<<としよう
プログラム言語の命令とデータは動詞と目的語だ
動詞は関数と1対1対応でよいが目的語の定義は動詞の蓄積だ
・・・てな具合

604:デフォルトの名無しさん
17/09/05 17:31:12.14 LcvSXQg0d.net
>>583
シフト演算子を全く別の意味に使う
ひどい設計だと思う

605:デフォルトの名無しさん
17/09/05 18:16:33.48 FAzSlJ+ld.net
それほどでもない

606:デフォルトの名無しさん
17/09/05 18:16:37.41 deDONG/TM.net
cout.<<("We are the World"). <<(endl);
があれば少しはマシだったかね。

607:デフォルトの名無しさん
17/09/05 18:45:41.20 fgaIXgJY0.net
>>583
演算子のオーバーロードのよいお題ということで無理矢理ねじこんだんじゃないかな

608:デフォルトの名無しさん
17/09/05 18:48:59.76 Ol0Fklqi0.net
using namespace std;
double value = 1.23;
cout << "value = " << value << endl;

609:デフォルトの名無しさん
17/09/05 19:06:29.40 /x4Q9Nfh0.net
>>587
お約束を破っているが流し込んでる感が出ているので芸術点高い

610:デフォルトの名無しさん
17/09/05 19:25:16.50 FAzSlJ+ld.net
+-*/と違って<< がシフト演算子なんて決まってないから「本来と違う」なんて意味なさない

611:デフォルトの名無しさん
17/09/05 19:34:59.61 TUBHCjnbM.net
vectorオブジェクトが破棄されるとき、要素の解放順は要素順であることは保証されていますか?

612:デフォルトの名無しさん
17/09/05 19:39:42.84 DJL8TJyoM.net
>>594
されてない

613:デフォルトの名無しさん
17/09/05 19:39:47.76 LcvSXQg0d.net
>>593
いや決まってる
ライブラリを抜きにした純粋な言語ではシフトの意味しかない
元の言語のC言語も同じ
* の方がいろいろな意味で使われている

614:デフォルトの名無しさん
17/09/05 19:42:00.05 FAzSlJ+ld.net
>>596
べつにc/c++の話じゃなく、一般に<<をIOの意味で使ってもなんとも思わんでしょ
+-*/はさすがに刷り込まれている

615:デフォルトの名無しさん
17/09/05 20:04:52.50 Xvi9WQb30.net
数学の演算子とプログラム言語の演算子のことじゃないかな。
+ - は数学とプログラム言語で一致
* / は数学と違うけど文字セットに乗除の記号がないし妥当な代用
<< をシフトに使うのはC系プログラム言語の独特の使い方
だったら << が出力になってもええじゃないか、という話。

616:デフォルトの名無しさん
17/09/05 20:10:04.82 CG6xGPaC0.net
向きは違うけどbashみたいなイメージだと思ってた

617:デフォルトの名無しさん
17/09/05 20:10:32.88 gdvLxkwI0.net
お前がそう思うんならそうなんだろうお前ん中ではな

618:片山博文MZ
17/09/05 20:11:08.83 HWiXORhGd.net
数学では、比較してずっと小さい、ずっと大きいという意味で<<、>>を使うことがあるみたいだが。

619:デフォルトの名無しさん
17/09/05 20:11:12.82 TUBHCjnbM.net
>>595
ありがとうございます
保証するにはどうすればいいですか?
ググってstackoverflowとか見たんですが、できないという人もいたり
clear()を使えという人もいてよくわかりません

620:デフォルトの名無しさん
17/09/05 20:17:36.79 5KjI8r3d0.net
禿が言い出した<<と
おまいらが言い出す<<では
悪いが社会への影響度がまるで違う
大勢のPGが<<はI/Oだと素直に従うかどうかでだ
新しい言語に旧来の言語と似た記号が出てきたからって
同じ意味でなければならないという法はどこにもない

621:デフォルトの名無しさん
17/09/05 20:19:03.84 D99g/mXF0.net
>>602
なんで順番が気になるんだ?

622:デフォルトの名無しさん
17/09/05 20:21:01.51 eN2J5TsS0.net
ローテート命令が演算子化されてないのは何故なんだぜ?

623:デフォルトの名無しさん
17/09/05 20:58:17.14 TUBHCjnbM.net
自己解決しました
>>604
必要な場面がありまして

624:デフォルトの名無しさん
17/09/05 21:12:58.72 Eko3GwfuM.net
printfをモダンにアレンジして新規格作ればいいのに。

625:デフォルトの名無しさん
17/09/05 21:50:59.32 5KjI8r3d0.net
>>605
それな
俺も


626:時々欲しくなるんだけど キャリーを含む/含まないとかCHAR_BITの違いとかで 移植性が確保しにくそうだよな 記号を何にするかなんて後から決めりゃいいことだ



627:デフォルトの名無しさん
17/09/05 22:29:35.14 NIuXE25q0.net
>>605
ローテートなんて頻繁に使うものじゃないから
ビットが立ってる数を数えるとか、
ビットが立ってる位置を調べるとか、
バイト単位の並び替えとか、
小数から整数へ四捨五入とか、
他にいくらでも足したいものはある

628:デフォルトの名無しさん
17/09/05 22:54:34.26 DO26xGrR0.net
誰がこんなクソ言語つくったんだよ
作者はたぶんバチが当たって禿げてるはず

629:デフォルトの名無しさん
17/09/05 23:01:40.29 nPfvfHCk0.net
だいたい最初にアスタリスクを乗算演算子にした奴は誰だよ。

630:デフォルトの名無しさん
17/09/05 23:58:08.13 5KjI8r3d0.net
ジョンバッカスだろ

631:デフォルトの名無しさん
17/09/05 23:58:19.96 qAaUk7C50.net
operator:=とかoperator!?とか定義できるようにしてくれたら
お前らが度肝を抜くような使い方して見せるのに、残念でならない。

632:デフォルトの名無しさん
17/09/06 00:21:11.51 eLdBXtqw0.net
operator?:ならマジで提案してみそ
あわよくば大手柄だぞ

633:デフォルトの名無しさん
17/09/06 00:25:00.50 VYubvLfh0.net
>>613
コンパイルエラーになろうが、ソース書くだけなら現状でもできるだろうから、度肝を抜いてくださいな。

634:デフォルトの名無しさん
17/09/06 00:47:00.85 eLdBXtqw0.net
613なりのcxxfrontでも作ればいい

635:デフォルトの名無しさん
17/09/06 06:39:00.29 lz1Lh31S0.net
>>611
あなたならどれにする?

636:デフォルトの名無しさん
17/09/06 06:40:33.11 lz1Lh31S0.net
同じかどうかの比較が = ではないのが欠陥

637:デフォルトの名無しさん
17/09/06 07:17:47.41 xbyXQy+0M.net
>>615
なんか面白いこと言おうとしてるの?

638:デフォルトの名無しさん
17/09/06 08:45:25.92 6GspjXt70.net
>>618
BASICのように=の意味が文脈で変わるべきだと?

639:デフォルトの名無しさん
17/09/06 08:49:59.58 /Hhi3W4sd.net
いや、代入を別の記号に
それこそ := でも

640:デフォルトの名無しさん
17/09/06 08:50:33.96 ZK3Q9QYA0.net
いやっすいやっす!代入に2タイプも使うのいやっす!

641:デフォルトの名無しさん
17/09/06 08:51:14.26 DE0YQ4Kk0.net
数学の方を現代に合わせて変えるべき

642:デフォルトの名無しさん
17/09/06 08:57:40.90 zxwumig7M.net
>>623
勝手に変えたらどう?
数学はコンパイル不要だから、最初に定義さえすればお前の使いたい記号を好きなだけ使えるよ

643:デフォルトの名無しさん
17/09/06 09:44:12.68 f82uiC9X0.net
自民党の恐怖の言論弾圧が迫る! 
売国安倍は憲法改正で国民主権と基本的人権
を奪うつもりだ。 ← 民主主義の崩壊
URLリンク(www.data-max.co.jp)
↑ マスコミは 9条しか報道しないが 自民案
の真の恐さは21条など言論の自由を奪うこと
自民案が通ると 政府批判しただけで逮捕されるぞ!
URLリンク(www.youtube.com)
上のビデオで 自民党は 日本人に基本的人権
は必要ないと 異常なことを平気で言う。
URLリンク(xn--nyqy26a13k.jp)
↑ 都民ファーストも安倍と同じく 憲法改正で 人権
無視の大日本帝国憲法に戻すつもりだから
絶対に投票してはだめだ。 民主主義が崩壊する
URLリンク(blog.goo.ne.jp)


644:9f65988fe0f35496934dc972e2489 ↑ ネトウヨ= 安倍サポーター工作員はネットで国民を騙す。 https://dot.asahi.com/aera/2016071100108.html?page=3 http://blog.goo.ne.jp/kimito39/e/c0dd73d58121b6446cf4165c96ebb674 ↑ 安倍自民を操るカルト右翼「日本会議」は国民主権否定。 国民投票や選挙では自民党、維新、小池新党に絶対に入れるな。



645:デフォルトの名無しさん
17/09/06 11:33:15.11 Mqa6x7N10.net
2003年8月の第1回から2007年3月の第6回までいずれも中国北京で計9次の会合が行なわれた
話し合いで解決しなかった
原爆、弾道ミサイルの開発にカネ、時間を与えてしまった
軍事力でつぶすしかないのに、まだこんなこといってる

         ,,-―--、
        |:::::::::::::;;;ノ  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
        |::::::::::( 」 < 対話で解決しよう
        ノノノ ヽ_l   \______________
       ,,-┴―┴- 、    ∩_
     /,|┌-[]─┐| \  (  ノ
      / ヽ| |  バ  | '、/\ / /
     / `./| |  カ  |  |\   /
     \ ヽ| lゝ    |  |  \__/
     \ |  ̄ ̄ ̄   |
      ⊂|______|
       |l_l i l_l |
       |   ┬   

646:デフォルトの名無しさん
17/09/06 12:26:18.39 8RU3q9uiM.net
>>623
数学は、最初に定義さえすれば自由にしていいんだよ。

647:デフォルトの名無しさん
17/09/06 12:36:56.86 /66SkMcqd.net
話が成り立たないアホばっかりだな

648:デフォルトの名無しさん
17/09/06 15:29:10.13 fXx7GStM0.net
プログラミング勉強し始めた初心者ですが
手詰まりになったので質問させてください
URLリンク(judge.u-aizu.ac.jp)
この問題をやっていますが、以下のコードで「Time Limit Exceeded」となってしまいます
他の正解者のコード見てもやってることは同じな気がするのですが
なにがいけないのでしょうか?
C++14コード
URLリンク(codepad.org)

649:デフォルトの名無しさん
17/09/06 15:33:28.13 I6k6pGLy0.net
多分出力のコードが間違ってる。

650:629
17/09/06 15:40:37.11 fXx7GStM0.net
追記です
Case#8までは「Accepted」でOKなんですが
Case#9が「Time Limit Exceeded」でした
Case#9は入力が2000000行もあるっぽいです
でも他の人とやってること自体は同じなんだから
このコードでできるはずと思い込んでしまって
何が悪いのかさっぱり検討つきません。。。

651:デフォルトの名無しさん
17/09/06 15:54:34.75 I6k6pGLy0.net
2個出力してみ?

652:デフォルトの名無しさん
17/09/06 15:55:29.34 I6k6pGLy0.net
あれ?勘違いだ。

653:デフォルトの名無しさん
17/09/06 15:59:43.73 I6k6pGLy0.net
Listそのものがそんなに早くないとかかなぁ。
デリートはO(1)で終わるけど、ポインタの付け替えとかあるから、雑に遅いカモね。
最近のコンピュータだと配列の方が早かったりする。

654:デフォルトの名無しさん
17/09/06 16:38:37.77 I6k6pGLy0.net
もしかしたら、sstringしてるのが重いかもなぁ。
cinで取れるのに何でssteamしてるのかよくわからん。

655:デフォルトの名無しさん
17/09/06 17:25:42.27 I6k6pGLy0.net
URLリンク(judge.u-aizu.ac.jp)
これで通った。

656:デフォルトの名無しさん
17/09/06 17:28:16.47 I6k6pGLy0.net
URLリンク(judge.u-aizu.ac.jp)
すまんこれでは通らなかった。

657:デフォルトの名無しさん
17/09/06 17:33:31.55 I6k6pGLy0.net
URLリンク(judge.u-aizu.ac.jp)
これは通った。

658:デフォルトの名無しさん
17/09/06 17:37:32.00 I6k6pGLy0.net
適当なこと言ってすまんかった。

659:デフォルトの名無しさん
17/09/06 18:55:53.01 p


660:ROvgKjd0.net



661:デフォルトの名無しさん
17/09/06 19:15:05.29 fXx7GStM0.net
>>630
>>632-639
ありがとうございます!
まさに>>635だったみたいです
1行ごとに入力を読み込みたいからsstream使ってたのですが
そのせいでwhileループで毎回sstreamとstringの変数を定義しているせいでした
cinとstringだけで入力を読み込むようにして
変数の定義をループの外にしたらようやく自分のコードで通りました
sstream使わなくてもstring変数の定義をループ内に書いたままにしてたら
ずっと通らなくてそれで何時間も四苦八苦してようやくすっきりしました
変数の定義って思いの外処理時間がかかるんだなあとしみじみ実感しました
わざわざコーディングまでしてくださってありがとうございました

662:デフォルトの名無しさん
17/09/06 21:33:01.28 6GspjXt70.net
> 変数の定義って思いの外処理時間がかかるんだなあとしみじみ実感しました
ものによる
テキトーこくな

663:デフォルトの名無しさん
17/09/06 21:57:51.28 P+VnvHZA0.net
>>642
> ものによる
string だろ
話の流れも読めないのか?
> テキトーこくな
実際にやってるだろうに何を言ってるんだよ
いちゃもんつけたいだけか?

664:デフォルトの名無しさん
17/09/06 22:53:02.57 OHCEwHay0.net
変数の定義って処理なのか?
stringが遅いのはどの言語でも同じ。ヒープに確保してるから。
Cの特権は固定長ならスタックに文字配列を確保できること。

665:デフォルトの名無しさん
17/09/06 23:16:43.16 LeFS08p/0.net
>>644
COBOLとかFORTRANヒープの概念があるとは

666:デフォルトの名無しさん
17/09/07 00:17:30.43 E8QDgFBm0.net
デフォルトだとcinがstdioと同期取ってやたら遅かったりもする罠

667:デフォルトの名無しさん
17/09/07 02:37:57.68 t89SIQGa0.net
コンストラクタがやけに重いクラスとかあるんだよ、標準でも。

668:デフォルトの名無しさん
17/09/07 06:02:40.83 sowmLjiv0.net
C++のstream関連は全て糞
operator<<()の多重定義で自作クラスのフォーマット文字列化(stringizing)ができる、というのがちょっと嬉しかったけど
しょせんコードの見かけだけの話やし、実行速度は速いし改造もしにくい、
(printf()ならvprintf()を使って関数1個書けば良いところをstd::streambufの派生クラスを作る羽目に、、
 行単位の排他とかの作り方を比べたらワカル
だいたい一般に1つのクラスに対して一般に
 (1) 人間が読むためのフォーマット文字列化
 (2) ストレージか何かへのシリアライズ
 (3) ストレージか何かからのデシリアライズ
の3つの要求が生じるのに対してoperator<<()とoperator>>()の多重定義の2個では数が足りない
だったら上記3メソッドのインターフェースを全部Cのstdioベースで実装して済ませるわ;
とにかくC++の中にあってstreamはパフォーマンスよりもコードの見かけに拘ってみました感が異端

669:デフォルトの名無しさん
17/09/07 06:46:38.33 9W4DbE9gM.net
>>644
> 変数の定義って処理なのか?
コンストラクタって知ってるか?
> stringが遅いのはどの言語でも同じ。ヒープに確保してるから。
そもそもstring型はすべての言語にないし文字列型と言う意味ならFORTRAN77のように固定領域にとる言語もある
>>645
モダンなバージョンなら普通にあるでしょ
Fortran ⇒ Allocate 文
Cobol もオブジェクト指向になってるぐらいだからあると思う

670:デフォルトの名無しさん
17/09/07 07:52:40.01 E5YdMpMh0.net
相談室ということで
C++でディープラーニングのライブラリといったらTensor Flowとtiny dnn以外にあります?

671:デフォルトの名無しさん
17/09/07 08:09:04.47 6e0QaN8o0.net
>>650
ソニーから nnabla だったかな

672:デフォルトの名無しさん
17/09/07 08:40:05.33 BwtgUJJf0.net
ライブラリなど不要

673:デフォルトの名無しさん
17/09/07 12:48:57.45 ccNhwHbvd.net
学習など不要

674:デフォルトの名無しさん
17/09/07 12:51:16.16 m/W0Vwq0M.net
>>648
おちつけ。
> 実行速度は速いし改造もしにくい、
> だいたい一般に1つのクラスに対して一般に

675:デフォルトの名無しさん
17/09/07 15:45:42.89 lWzPhy/F0.net
>>649
つまりインスタンス生成を「変数の定義」って言ってるのか。分りにくいな。

676:デフォルトの名無しさん
17/09/07 16:59:31.64 WeVFjmVDd.net
宣言でなく定義ならそういうことだろう

677:デフォルトの名無しさん
17/09/07 17:17:37.39 E5YdMpMh0.net
>>651
ありがとうございます
調べてまいります

678:デフォルトの名無しさん
17/09/07 23:11:06.34 sowmLjiv0.net
でけた!
URLリンク(judge.u-aizu.ac.jp)
>>654
スマンorz

679:デフォルトの名無しさん
17/09/08 10:17:30.47 28eiJ4Rm0.net
>>658
お、ちょっと早いな。

680:デフォルトの名無しさん
17/09/08 21:05:50.39 VlEBq8a5M.net
>>648
モダンな言語の多くはprintfライクだし、javaも結局追加された。
printfライクのほうが効率的なことは経験的にわかってるのだからstreamにイマドキのformat関数を追加してくれればいいのに。

681:デフォルトの名無しさん
17/09/08 21:16:51.55 EwiEYpeM0.net
もっと50 msばかり速くすた、
URLリンク(judge.u-aizu.ac.jp)

682:デフォルトの名無しさん
17/09/08 22:55:01.80 EwiEYpeM0.net
さらに1桁速くしたわふーん(0.65 sec → 0.06 sec)
URLリンク(judge.u-aizu.ac.jp)
メモリ消費量も1/4未満になた、(34520 KB → 7432 KB)

683:デフォルトの名無しさん
17/09/09 14:52:21.58 4g0rauvm0.net
>>662
それって双方向連結リストなの?

684:デフォルトの名無しさん
17/09/09 19:52:47.52 FtyOtgZ20.net
URLリンク(ideone.com)
これ、なんで通らないの?
頭爆発しそう。

685:デフォルトの名無しさん
17/09/09 20:19:57.93 FtyOtgZ20.net
あぁ、色々いじってたら通った。
わけわかめ。

686:デフォルトの名無しさん
17/09/09 20:23:23.69 FtyOtgZ20.net
と思ったらイデオンGCCで動かねーでやんの。
URLリンク(ideone.com)
VC2017では動く魔法のコード。

687:デフォルトの名無しさん
17/09/09 20:39:58.02 iTjZctD80.net
もちつけ URLリンク(ideone.com)

688:デフォルトの名無しさん
17/09/09 20:47:48.75 FtyOtgZ20.net
うほ。素晴らしい。
が、今度はVCで動かなくなった。
なんじゃそれ。

689:デフォルトの名無しさん
17/09/09 21:07:39.82 FtyOtgZ20.net
なんか、VCもGCCも半分くらいずつ間違えてる予感。
Setだけだとストレージがないからなんかバグの予感するし。
ストレージ持たせようとすると修飾が間違ってるって言われてる感じがする。
なんだこれ。

690:デフォルトの名無しさん
17/09/09 21:15:58.82 FtyOtgZ20.net
識者求!急募だ!!

691:デフォルトの名無しさん
17/09/09 21:53:02.98 FtyOtgZ20.net
URLリンク(ideone.com)
これで手打ち。
よくわからん回り方されたなぁ。
とほほほ・・・。

692:デフォルトの名無しさん
17/09/09 21:58:32.95 FtyOtgZ20.net
最後に。さんきゅーそー。

693:デフォルトの名無しさん
17/09/09 23:23:25.26 iTjZctD80.net
VC++のバグ…ではなくいつもの標準非準拠の独自仕様の気はする
URLリンク(ideone.com)

694:デフォルトの名無しさん
17/09/10 00:32:56.15 8Jhjgi9Q0.net
>>673
およ、折衷案できそうか?
自分はVC動けばいいんだけど、
コード公開するときに動かないと間抜けっぽいから良対応しようと一応やってる。
visualデバッガが便利すぎてVCやめるの大変。

695:デフォルトの名無しさん
17/09/10 00:56:23.48 ldnMOHDz0.net
デバッガのフロントエンドは自作するもの

696:デフォルトの名無しさん
17/09/10 00:57:46.72 9qoMDsB9r.net
完全な解決策も規格の規定も知っているが、
再現する最小限のコードにしてから他人に見せる知能も持ち合わせていない者には時間の無駄

697:デフォルトの名無しさん
17/09/10 02:34:17.64 8GGB49VK0.net
非修飾名


698:フ探索の問題だから発想を変えて明示的修飾で回避すればいいって話? https://ideone.com/YTnOF2



699:デフォルトの名無しさん
17/09/10 06:00:54.71 Jp2o0TJ00.net
templateの使い方を完全に勘違いしてやがる。

700:デフォルトの名無しさん
17/09/10 07:35:26.76 8Jhjgi9Q0.net
折衷案色々あるなぁ、感心する。
>>676
別に個人のコードでどこかに迷惑かけてるわけじゃないし、この程度のコードも読めない方が問題。
それに高慢なお方は最初から相手にしてない。マウントしてほしくてやってるんじゃないんだよ。

701:デフォルトの名無しさん
17/09/10 07:49:26.32 8Jhjgi9Q0.net
URLリンク(ideone.com)
>>677を採用。これで解決しました。
明示の仕方がいまいちよくわかってなかった。
大変ありがとうございました。

702:デフォルトの名無しさん
17/09/10 10:50:41.00 Ch3ZHKVB0.net
プロパティー実装例か…
しかしまぁクソ面倒だ罠

703:はちみつ餃子
17/09/11 21:22:51.45 +dEH7rh50.net
auto で受けるとおかしげなことになるんちゃう?

704:デフォルトの名無しさん
17/09/12 01:44:38.63 uA5S/Coo0.net
馬鹿に触らせるなテンプレートって昔から言うしな。
フレームワークのテンプレートライブラリ提供する側だけが使っていいんだよ。

705:デフォルトの名無しさん
17/09/12 08:52:24.85 n2tkiU0+0.net
テンプレートはSTLやboostのまねをしていれば下手なことにはならないはずだが

706:デフォルトの名無しさん
17/09/12 08:56:45.99 aShF6cdKa.net
真似するだけでも、それなりのスキルが必要だ

707:デフォルトの名無しさん
17/09/12 09:35:13.31 M9yu8us30.net
何故そういうコードになっているかを理解せずに猿真似して意味があるかどうかはわからんけど
autoで受けるとおかしなことになるのは、キャストや代入で望む結果を得る方法(expression templateなど)全部そう
暗黙のキャストでなく関数呼び出しを強制すればautoでも大丈夫だけど

708:デフォルトの名無しさん
17/09/12 10:11:33.04 CGKPtYms0.net
> 馬鹿に触らせるなテンプレートって昔から言うしな。
自分が触りたくないのはわかったから

709:デフォルトの名無しさん
17/09/12 19:29:46.28 mgCIj6GX0.net
>>682
コピコン切ってあるから大丈夫だと思う。あとは推論性能。

710:デフォルトの名無しさん
17/09/12 19:43:33.31 8IhLGzTX0.net
コピコン

711:デフォルトの名無しさん
17/09/12 20:29:35.11 mgCIj6GX0.net
コピーコンストラクタ!

712:はちみつ餃子
17/09/12 22:54:11.94 cQiNwo4o0.net
>>688
あ、なるほど、状況を勘違いしてた。
C++17 からは RVO が使える場合は常に RVO で処理する (従来は「してもよい」というオプショナルな動作) ことと、
そのときはコピー (ムーブ) コンストラクタが無くても良いというルールが念頭にあったのだけれど、
この場合は RVO は関係なかった。 スマソ

713:デフォルトの名無しさん
17/09/12 23:35:09.46 q3PtGkEdr.net
>C++17 からは RVO が使える場合は常に RVO で処理する
ほうほう、それは本当ですか

714:はちみつ餃子
17/09/14 16:51:14.81 HER/jB+d0.net
そうです。

715:デフォルトの名無しさん
17/09/14 17:39:29.28 7On5vAcFr.net
>>693
だとすると
URLリンク(wandbox.org)
この二つのアドレスは同じになるはずでは?

716:デフォルトの名無しさん
17/09/14 22:59:53.42 AfykdPhZ0.net
いい流れだ

717:デフォルトの名無しさん
17/09/15 15:29:03.53 zUPCfesd0.net
"clacla.h"
class Clacla {
void func1();
void func2();
void func3();
};
"clacla.cpp" //実装部
クラスClacla くくり { <-ここ
void func1() { printf( "1" ); }
void func2() { printf( "2" ); }
void func3() { printf( "3" ); }
};
のように関数の実装時にClacla::を省


718:ェする方法ってあるでしょうか?



719:はちみつ餃子
17/09/15 15:33:45.29 leF15WXE0.net
>>694
最適化が有効なら C++17 であろうがなかろうが clang なら RVO が効くはずだけど、 u.p の値は null になっちゃうな。
RVO がどうこうじゃなくて this の挙動に関するなんか変なルールが適用されてるとかかも?

720:片山博文MZ
17/09/15 16:07:51.71 RQr5TBB1d.net
>>696
クラス内部にインライン関数を埋め込む方法しかない。

721:696
17/09/15 16:35:44.21 zUPCfesd0.net
>698
やっぱり無いですよね。
ありがとう。

722:デフォルトの名無しさん
17/09/15 21:02:35.06 86K7wrSvr.net
>>697
いやだからISO/IEC DIS 14882:2017 15.2/p3の規定により常にRVOが働くわけではないのではないかと申しているのですよ
ついでにu.pがnullptrになることはない

723:デフォルトの名無しさん
17/09/15 21:24:40.19 xDlOGQNS0.net
実にC++相談室らしい流れ

724:デフォルトの名無しさん
17/09/15 21:27:27.94 5X/IRSU20.net
右辺値参照の暗黙適用は例外の処理で不都合があるよね
元の値をTmpにコピっといて例外発生で書き戻すにしても
関数A処理内で呼び出した関数Bからの例外をAのユーザコードでは完スルーなのに
コンパイラコードではコッソリ捕まえて書き戻す必要が有る
そんときロックでも掛かってたらどーすんのよと
呼び出し繋がりを横断的に管理要するとんでもないコスト増なんじゃね?

725:デフォルトの名無しさん
17/09/15 21:36:23.16 xDlOGQNS0.net
Tmpのアドレスを関数B(およびその先の関数)が知る可能性がコンパイラから見て排除できない限り
関数Aから関数Bを呼び出す前にTmpは元の値の完コピーにならざるおえないのでは…
(そうでなければ副作用のある関数を安全にコンパイルできない&安心して書けない
さらにロックに入るときと出るときは上と同じ理由で結果的に完コピーになる上に、
まともなOSならメモリバリアまで手当てしてくれるんじゃ…

726:デフォルトの名無しさん
17/09/15 21:42:30.18 xDlOGQNS0.net
つまり右辺値参照の暗黙適用が効力を持つのはスゲー広範にインライン展開されるような場合
(当然いかなるOSのAPIやシステムコール類の呼び出しも含まない
「だけ」
であって、通常のプログラマーにはあんまありがたみがはっきりしない仕様
※ 個人の感想です

727:デフォルトの名無しさん
17/09/15 22:02:45.85 1aOT1P+6d.net
コンパイラに頼らないで、素直にパラメーターの参照にしよう

728:はちみつ餃子
17/09/15 22:04:08.03 leF15WXE0.net
>>700
意図するところをあらためて説明すると、
最適化オプションを有効にする (RVO が効くはず) と実際に null になるんだから
clang があてにならないのじゃない? という話。

729:デフォルトの名無しさん
17/09/15 22:08:16.65 5X/IRSU20.net
いや noexcept 付きを呼ぶ場合も有難味あると思うよ
C++は const祭りに noexcept祭り追加でござる
特殊化も爆発

730:デフォルトの名無しさん
17/09/15 22:34:11.14 1joZngjnr.net
>>706
なるほど理解した
C++11の頃に輝いたclangはその後、規格的にはG++にも劣るゴミなのでそのへんは致し方ない

731:デフォルトの名無しさん
17/09/16 11:22:55.52 u7cVvkyR0.net
forward祭り

732:デフォルトの名無しさん
17/09/18 10:24:11.11 lVEmBRA9d.net
tcp/ipの勉強のためにC++で何か作れば勉強になるかな?って思ってるのだけど
こういうものを作れば勉強になるよってものある??
パケットの動きだったり階層の考え方だったりを学びたい

733:デフォルトの名無しさん
17/09/18 10:40:29.87 U79GLBVsM.net
>>710
TCP/IPの勉強ならWireSharkの使い方覚えた方が早いかも
その上のプロトコルレベルなら勉強したいプロトコルの簡単なクライアントから始めればいいと思う
ちなみに俺はNetNewsに流れるむふふ画像を取り込みたかったのでnntpのクライアントをperlで組んで勉強した

734:デフォルトの名無しさん
17/09/18 11:05:46.29 lVEmBRA9d.net
>>711
プロトコルレベルの勉強をしたい
そうなるとhttpサーバを立てることになるのかな?
そういう場合は簡単なhttpサーバとクライアントを作成すれば良いのかね?
それで通信しあってwiresharkで中身を見てtcpだったりhttpだったりを見るべき?

735:デフォルトの名無しさん
17/09/18 11:39:07.40 9mrqYCJU0.net
おれは一昔前、深夜ボリュームでかくする姉貴のPCが煩くてTCP通信でマスターボリューム弄るサーバー&クライアント作ってコッソリ仕込んでコントロールしてたな。
まぁ、やってやるぞというモチベーションは大事だとおもうよ。
ガンバってね。

736:デフォルトの名無しさん
17/09/18 11:41:39.15 qrTqFTlir.net
>>713
それ仕込んでるとき超ワクワクしそう

737:デフォルトの名無しさん
17/09/18 11:43:19.16 lVEmBRA9d.net
>>713
姉貴のパソコンにサーバプログラム常駐させる
そいつがポートXXXで待ち構える
同じ家なのでネットワーク帯は同じで
自分のpcからポートXXXにメッセージ送信する
姉貴のサーバプログラムが受け取ってボリューム下げる処理をする
こんなことしてたってことかね?

738:デフォルトの名無しさん
17/09/18 12:01:08.52 9mrqYCJU0.net
>>715
まぁ大体そんな感じなんだが、急に音量小さくすると即効でばれるので、まず、姉貴PCの音量を取得するのが第一だな。
そこからスライダーでボリューム下げていった値をサーバーに順次送信しサーバープログラムがその値に応じて音量を徐々にフェードコントロールするといった具合だな。

739:デフォルトの名無しさん
17/09/18 12:08:20.13 nt0hX0ohr.net
>>716>>715の三人きょうだいの次女である可能性が否定できない

740:デフォルトの名無しさん
17/09/18 12:10:35.92 lVEmBRA9d.net
>>716
いつも音量小さくなってたのはあんたのせいだったのね??

ってことはそれって通信はhttp?

741:デフォルトの名無しさん
17/09/18 12:15:30.74 9mrqYCJU0.net
>>718 http関係ない
ボリュームと改行の平文を繰り返し送るだけの超簡易仕様
だれでも作れる

742:デフォルトの名無しさん
17/09/18 12:57:21.32 lVEmBRA9d.net
>>719
相互にsend recvしてるだけってことかな

743:デフォルトの名無しさん
17/09/18 13:48:18.24 U79GLBVsM.net
>>712
サーバーよりクライアントの方が簡単だからサーバーは適当な奴持ってきて簡単なクライアントを作るところから始めればいいと思う

744:デフォルトの名無しさん
17/09/18 14:27:41.23 lVEmBRA9d.net
>>721
IISサーバとかってことかな?
あの辺の使い方も基本は同じよね?
ポート指定して使うみたいな

745:デフォルトの名無しさん
17/09/18 15:08:42.19 eqWC6Q8G0.net
>>722
> IISサーバとかってことかな?
環境ならWindows IISが簡単だろうね
ネットでググれば情報たくさんあるし

746:デフォルトの名無しさん
17/09/18 17:35:56.07 UWkHQHZA0.net
そもそも、TCP/IPの練習にC++は妥当なのか?

747:デフォルトの名無しさん
17/09/18 17:55:46.62 lVEmBRA9d.net
>>724
CとC++しか言語知らんのや...
IISサーバーと通信できない
これのポートとかどう設定するんや...

748:デフォルトの名無しさん
17/09/18 18:29:11.61 Of28e9o20.net
ネットワークライブラリは現在策定中だっけ。

749:デフォルトの名無しさん
17/09/18 18:34:59.92 HogVByKA0.net
>>725
以前ネットワークプログラム勉強するのにこのサイト利用させてもらった
わかりやすいと思う
URLリンク(x68000.q-e-d.net)

750:デフォルトの名無しさん
17/09/18 20:33:20.53 lVEmBRA9d.net
>>727
今読み始めたけど丁寧でわかりやすい

751:デフォルトの名無しさん
17/09/19 10:23:20.37 mIuFgC1Fd.net
初歩の初歩の初歩の質問なんだけど
あるPCにポートXXを口とするサーバソフトを同時に二つ立てることはできないよね?
1つめはXXを使うとしてその後にたてられた2つめはどうなる?
(スレチっぽくなってますがよろしくです...)

752:デフォルトの名無しさん
17/09/19 10:38:02.75 S6233VLa0.net
出来ます
サーバー側はリクエストに応じて複数のプロセスを起動し、
同じポート番号を使って複数のプロセスが受け答えします
各プロセスはそれぞれで生成したソケットを使ってクライアントとやり取りします

753:デフォルトの名無しさん
17/09/19 10:57:49.02 mIuFgC1Fd.net
>>730
それってプログラム内でforkして子プロセスを作る場合の話です?
サーバソフトAとサーバソフトBの両立ができたとすると
ポートXX使用します!ってのはどこでどちらを使うと判断するのでしょうか...

754:デフォルトの名無しさん
17/09/19 13:04:43.06 TdcUa1CK0.net
特定ポートでlistenするプロセスは一つだけです。
複数のプロセスで共用は出来ません。

755:デフォルトの名無しさん
17/09/19 17:39:27.17 5tfXl8chM.net
>>729
LANポートが複数あればできるし、LANポートがひとつしかなくてもIPアドレスを複数割り当てられるなら可能

756:デフォルトの名無しさん
17/09/19 18:44:47.92 PcYxkZC90.net
>>733
ああ言えばこういうの典型
どうでもいいけどC++と関係ないクソ話もうヤメロよカスども

757:デフォルトの名無しさん
17/09/19 18:49:41.83 Poc3cQP+M.net
しかも間違ってるという

758:デフォルトの名無しさん
17/09/19 18:57:54.46 5tfXl8chM.net
>>735
ん?
どこか違ってたっけ?

759:デフォルトの名無しさん
17/09/19 19:48:42.76 SHe+skknr.net
>>736
二つ前のレスくらい読んでほしいものだ

760:デフォルトの名無しさん
17/09/19 20:12:29.29 4ZFv917O0.net
C++98ではできない
C++11以後できるようになった
だろ、通信は本質的にマルチタスクだ

761:デフォルトの名無しさん
17/09/20 00:14:27.26 zNeStlMI0.net
なにをいってるかよくわからんがすごい自信だ。

762:デフォルトの名無しさん
17/09/20 01:48:22.84 E2xZjesx0.net
規格外のライブラリならほぼ何でもありといえばありだけどさ。
ライブラリ自信はまだ策定中でしょ。

763:デフォルトの名無しさん
17/09/20 03:12:29.17 E3lPvo/Y0.net
bind()する時のローカルのIPアドレスを別々にすれば同一ポートで別々のサーバプログラムって動かないの?

764:デフォルトの名無しさん
17/09/20 04:49:07.58 uOAr6bd90.net
>>741
だから動くってば
ユニークである必要があるのはIPアドレス:ポート番号の組み合わせだから
>>730
>各プロセスはそれぞれで生成したソケットを使って
まさかその生成されたソケットがサーバーと同じポート番号を持つとか思ってないよな?
いずれにせよこんなのはネットワーク初心者の話題であってC++とは何も関係ない

765:デフォルトの名無しさん
17/09/20 06:46:32.53 k3KNfXHnM.net
>>737
それが間違ってるって話
>>741が言うようにローカルアドレスを指定すれば同じPCで同じポートを使用するサーバーを複数立てられる

766:742
17/09/20 10:56:07.53 uOAr6bd90.net
自己訂正
>まさかその生成されたソケットがサーバーと同じポート番号を持つとか思ってないよな?
あはは、これは俺の勘違いだったわ
acceptで返されるソケットはlistenポートと同じポート番号を持っている

767:デフォルトの名無しさん
17/09/21 05:09:49.50 t8iqXrAz0.net
質問です。
{ 10/*%*/ } = { a,b,c };
というのは、
a = 10%
b = 10%
c = 10%
なのでしょうか?それとも、
a+b+c = 10%
なのでしょうか?

768:デフォルトの名無しさん
17/09/21 05:48:27.92 eSaSp7RC0.net
C++を習得するのに莫大な時間を費やしました。
C++のプロフェッショナルなプログラマーになりたかった。
なのに、ハード系の知識が無いと言う理由で、もらう仕事はVB.NET、C#.NET系ばかりでした。

769:デフォルトの名無しさん
17/09/21 05:51:26.56 eSaSp7RC0.net
質問を書くのを忘れやんした。
C++の仕事ってハード系、通信系、制御系以外、通常業務のシステム開発はないんでしょうか?

770:デフォルトの名無しさん
17/09/21 06:00:29.19 Bo0/1phe0.net
ポート重複で同じアドレスでBananaサーバーみたいなラックマウントサーバーの仕組みってあれは一つのサーバーがlistenで待って接続してきたクライアントの処理を複数の子サーバーに割り振っているだけなのか?

771:デフォルトの名無しさん
17/09/21 08:18:42.29 E1HbcZFyr.net
struct unko { unko()=delete; };
int main() { unko u{}; }
何故コンパイルが通るのかを理解するのに半日かかった
やはりこの言語はクソ

772:デフォルトの名無しさん
17/09/21 08:46:59.52 iktVOuYO0.net
>>746
他人から降って湧いてくることしか期待してないからそうなる
自分がやりたいことは自分で始めろ

773:デフォルトの名無しさん
17/09/21 10:13:00.29 JjsSVLys0.net
>>747
C++はC#とかでできないことがあるときに仕方なく使うイメージがある

774:デフォルトの名無しさん
17/09/21 11:36:34.81 p6kNBh4ir.net
>>749
あれ
何で動くんだ?
plain old dataあたりの話が噛んでる?

775:デフォルトの名無しさん
17/09/21 12:35:00.95 iktVOuYO0.net
C#の方が楽なところが特に無いのでC#という選択肢が無い

776:デフォルトの名無しさん
17/09/21 13:21:38.51 TbHBi0+x0.net
>>752
PODがかかわってる部分はあるけど基本として理解しておくべきことは
=default,=delete指定はコンストラクタの宣言でも定義でもない
ということ
つまり>>749の文脈では
struct unko { unko()=delete; };
int main() { unko u{}; }

struct unko {};
int main() { unko u{}; }
と等価でありuはaggregate初期化されコンストラクタは呼ばれないからエラーにならない
(unko();みたいにはっきりとデフォルトコンストラクタが呼ばれる状況ならエラーになる)

777:
17/09/21 16:15:38.61 na02B6ss0.net
>>750
お、おう!

778:デフォルトの名無しさん
17/09/21 17:36:23.55 E1HbcZFyr.net
>>752
規格によると unko u{}; は
8.5/p17『If the initializer is a (non-parenthesized) braced-init-list, the object or reference is list-initialized』によりリスト初期化される
リスト初期化は8.5.4/p3『If T is an aggregate, aggregate initialization is performed』
に該当するのでコンストラクターが呼ばれずにaggregate初期化される。
なおaggregateの定義は8.5.1/p1により『array or a class (Clause 9) with no user-provided constructors (12.1), no (略)』
ここで8.4.1/p1により「=delete」は関数本体だが、
8.4.2/p5によりuser providedではないと見なされている(たぶん)

779:デフォルトの名無しさん
17/09/21 22:11:37.04 VzX3yrPwM.net
>>748
パケットレベルで振り分けたり、プロキシとして動作したり色々
ロードバランサ 仕組み
とかでググるがよろし
あとそこまで行くと完全にスレチなので
ネットワーク
URLリンク(mevius.2ch.net)
とかに行っとくれ

780:デフォルトの名無しさん
17/09/21 23:20:34.43 Bo0/1phe0.net
ほほう

781:デフォルトの名無しさん
17/09/23 11:36:40.13 2CJ5RW/30.net
>>747
20年前は普通にあった、ていうかそれしか方法がなかったが
今はもっと楽な方法があるのでほぼ無くなった
僅かな例外はパフォーマンスを求めるようなプログラムを作る場合だが
それでもライブラリなどの表から見えない部分の作成に限られる

782:デフォルトの名無しさん
17/09/23 21:53:53.16 DdQqqOWmH.net
各添字が 1 から X まで動く多次元配列を一次元で
A[i + X*j + X*X*k]
のように表しているのですが、この多次元配列の各添字を入れ替える操作を頻繁に行うので、関数にしたいです。
どのようにするのが良いでしょうか。
たとえば
f(A, B, 2, 3, 1);
のように引数をとって B という配列に
B[j + X*k + X*X*i] = A[i + X*j + X*X*k]
と要素を入れたいです。
「2, 3, 1」を関数の中で解釈する方法も分からなくて困っています。

783:デフォルトの名無しさん
17/09/23 22:14:21.88 dWsmcDp10.net
>>760
その例だと A[X][X][X] の3次元相当だけど3次元限定でいいの?

784:デフォルトの名無しさん
17/09/23 22:34:01.05 qTNnvPi+0.net
URLリンク(ideone.com)
こんなんでええやろ

785:デフォルトの名無しさん
17/09/23 22:36:10.87 dWsmcDp10.net
>>760
こういう解釈でいいかな?
template <typename T, std::size_t X>
void fillA2B(T (&A)[X*X*X], T (&B)[X*X*X], int ax1, int ax2, int ax3)
{
int i, j, k;
int& ii = (ax1==1)? i: ( (ax1==2)? j: k );
int& jj = (ax2==1)? i: ( (ax2==2)? j: k );
int& kk = (ax3==1)? i: ( (ax3==2)? j: k );
for ( i = 0 ; i < X ; ++i )
for ( j = 0 ; j < X ; ++j )
for ( k = 0 ; k < X ; ++k )
B[ii + X * jj + X * X * kk] = A[i + X * j + X * X * k];
}
int main()
{
const int N = 2;
int A[N*N*N], B[N*N*N];
int n{0};
for ( int a = 0 ; a < N*N*N; ++a )
A[a] = n++;
fillA2B<int, N>(A, B, 1, 2, 3);
fillA2B<int, N>(A, B, 2, 3, 1);
fillA2B<int, N>(A, B, 3, 1, 2);
return 0;
}

786:デフォルトの名無しさん
17/09/23 22:38:24.75 cFmXNXGU0.net
左辺が j, k ,i 右辺が i, j, k のようだが

787:デフォルトの名無しさん
17/09/23 22:45:31.08 dWsmcDp10.net
あ、一気に全要素にFillしなくてもいいのかな?

788:デフォルトの名無しさん
17/09/24 00:03:03.61 7FyCscw80.net
……素直に3次元の配列にすりゃあいいんじゃねえのかなコレ
どーーーしても1次元にしなきゃいけない重大な理由が背後に控えてんのかな?

789:デフォルトの名無しさん
17/09/24 00:08:42.25 xnpjieyid.net
普通にメモリ確保したら1次元だからな

790:デフォルトの名無しさん
17/09/24 00:21:25.13 J5lzydll0.net
B[ii][jj][kk] = A[i][j][k];
でも通るな

791:デフォルトの名無しさん
17/09/24 00:25:12.68 QX+6yKIgH.net
>>761
もちろん任意の次元を一度に扱えたら最高です。
ゆくゆくは各添字の次元を変えることも考えています。
>>762>>765
すみません。
全要素を並び替えたいです。
>>766
カラムメジャー、ロウメジャーを任意にしたいという背景があります。
また、各添字の次元が本当は任意であるということもあります。
>>763
ありがとうございます。
確かにこれで>>760はできそうです。
パーミュテーションの実装の仕方が分かりました。
原理的にはこれで任意の添字の数、次元に対応できる (それぞれ関数を作る必要はある) と思うのですが、もっとアカデミックな方法ともあるのでしょうか?

792:デフォルトの名無しさん
17/09/24 02:35:34.07 0uAENq5F0.net
>>769
アカデミックは知らんが一般化するなら
B[ i*bi[0] + j*bi[1] + k*bi[2] + ... ]
と各次元ごとの係数を変数にして設定だな
>>760のたとえばでは bi[0] = X*X, bi[1] = 1, bi[2] = X
あとはインターフェイスにあわせてヘルパ処理を用意すればいい
f(... int x, int y, int z)
int bi[3];
bi[x - 1] = 1;
bi[y - 1] = X;
bi[z - 1] = X*X;

793:デフォルトの名無しさん
17/09/24 17:29:12.46 vw1eQBGxr.net
>>770
ありがとうございます。
あとは任意個数の引数を取れるようにすれば添字がいくつあっても、各添字がどのように走っても一つの関数で対応できますね。
勉強になりました。

794:デフォルトの名無しさん
17/09/25 00:05:50.55 KE0eJu6Z0.net
C++とほとんど関係ないな

795:デフォルトの名無しさん
17/09/25 10:20:39.11 c/fcx1bx0.net
任意個数の引数って、まさか省略記号と可変個数実引数では・・・
と思ったらモロじゃねえか おいおい
このスレ的にはinitializer_listやtemplate parameter packだろ

796:デフォルトの名無しさん
17/09/25 11:38:31.09 VZWzPiEFd.net
>>773
template parameter pack って variadic template と同じもの?
後者の呼び方には馴染んでるんだけど。

797:デフォルトの名無しさん
17/09/25 12:51:53.80 ML1gBCAMM.net
>>774
同じ

798:デフォルトの名無しさん
17/09/25 16:12:14.99 b+XdOI/H0.net
>>773
ほっといたっていずれ覚えるだろうに何故押し付けるのか

799:デフォルトの名無しさん
17/09/25 17:17:22.88 RnBeI/QIM.net
>>776
より良い代替案があるんだったらそっちに誘導すべきだろう。
実際使うべきじゃないし。

800:デフォルトの名無しさん
17/09/25 18:34:40.87 iFpSSPyJr.net
>>774
違う

801:デフォルトの名無しさん
17/09/26 10:35:57.85 DAuKDJeY0.net
>>776
このスレ的にはって書いてあるのが読めてないのか
自分が苦手なものに触れられたくないのか
どっちだ?

802:デフォルトの名無しさん
17/09/26 11:02:34.83 XbrOuhiT0.net
>>779
最近お前みたいなニワカが増えてうんざりするわ
というかCの可変長引数がどこに出てきた?

803:デフォルトの名無しさん
17/09/26 11:38:28.30 XSwUFkBD0.net
つかぬことを伺いますが、
あるクラス内で定義した構造体を同クラス内でstatic constメンバとして宣言し、
外部で定義しようとしたところ、「〜との互換性がありません」と出て上手く行きません
どうすればよいのでしょうか
〜ヘッダ内
class Hage{
public:
struct A{
int a;
int b;
};
static const struct A M;
}
〜ソース内
#include "ヘッダ"
const struct A Hage::M; //不正

804:デフォルトの名無しさん
17/09/26 11:39:54.54 XSwUFkBD0.net
あ、行頭の半角スペース消されるの忘れてた

805:デフォルトの名無しさん
17/09/26 11:48:05.08 XbrOuhiT0.net
const struct Hage::A Hage::M;

806:デフォルトの名無しさん
17/09/26 11:48:55.33 r3ztyMSNd.net
>>781
少なくとも Hoge::A としなけりゃダメなんじゃないか
>>771を読んでもCの可変長引数とは決めつけられなかった

807:デフォルトの名無しさん
17/09/26 11:51:53.92 XSwUFkBD0.net
うわあ何でこんな初歩的なことに躓いていたんだアホらしい
>>783-784サンクス


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

462日前に更新/267 KB
担当:undef