[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 2ch.scのread.cgiへ]
Update time : 05/18 13:20 / Filesize : 132 KB / Number-of Response : 562
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


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

C++相談室 part142



1 名前:デフォルトの名無しさん mailto:sage [2019/04/01(月) 22:17:05.84 ID:wmfpIKt/.net]
次スレを立てる時は本文の1行目に以下を追加して下さい。
!extend:on:vvvvv:1000:512

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

前スレ
C++相談室 part137 (正しくはpart138)
mevius.5ch.net/test/read.cgi/tech/1535353320/
C++相談室 part139
https://mevius.5ch.net/test/read.cgi/tech/1538755188/
C++相談室 part140
https://mevius.5ch.net/test/read.cgi/tech/1547326582/
C++相談室 part141
https://mevius.5ch.net/test/read.cgi/tech/1550772463/

このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.103【環境依存OK】
https://mevius.5ch.net/test/read.cgi/tech/1530384293/

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

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

----- テンプレ ここまで -----
-
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured

2 名前:デフォルトの名無しさん [2019/04/01(月) 22:24:49.84 ID:2cPHsZN4.net]
すっぱい葡萄
ttps://ja.wikipedia.org/wiki/%E3%81%99%E3%81%A3%E3%81%B1%E3%81%84%E8%91%A1%E8%90%84
 自分のものにしたくてたまらないにもかかわらず、努力しても到底かなわない対象である場合、
 人はその対象を「価値の無いもの」「自分にふさわしくないもの」と見なそうとし、
 それをあきらめの理由として納得し、心の平安を得ようとするものである。
 フロイトの心理学では、これを防衛機制および合理化の例とする。また、社会心理学においては、認知的不協和の例とされる。
 英語には、この寓話を元に生まれた熟語として "sour grapes" があるが、これは「負け惜しみ」を意味する。

3 名前:デフォルトの名無しさん mailto:sage [2019/04/02(火) 01:05:02.56 ID:/U03ydJ3.net]
前スレの
やりたいことはこうかな
メンバ関数をバインドするときは&クラス名::関数名と変数を放り込むこと
https://wandbox.org/permlink/gDWEXupOcEbbhBzs

4 名前:デフォルトの名無しさん mailto:sage [2019/04/02(火) 01:47:19.91 ID:rKGqH4gv.net]
c言語でclassって使えるの?

5 名前:さまよえる蟻人間 mailto:sage [2019/04/02(火) 01:50:46.47 ID:wSWhi9Oz.net]
>>4
変数名として使える。

6 名前:デフォルトの名無しさん [2019/04/02(火) 07:55:15.08 ID:iDbW+eLG.net]
柴山昌彦
https://twitter.com/shiba_masa/status/1112661447366967296
 なるほど、新しい年数に「れいわ(018)」を足すと西暦か…

[GCC] error: invalid digit "8" in octal constant
[Visual C] Compiler Error C2041: 8 is not a base 8 digit
[Python] SyntaxError: invalid token
(deleted an unsolicited ad)

7 名前:デフォルトの名無しさん mailto:sage [2019/04/02(火) 18:51:10.44 ID:m0eX+8Q8.net]
>>4
オブジェクト指向の何たるかをきちんと理解していれば、概念として使えなくはない。
もっとも、C 言語に限った話ではないけど。

8 名前:デフォルトの名無しさん mailto:sage [2019/04/02(火) 19:17:21.52 ID:LpV8NoZ4.net]
>>4
原則、C言語ではclassは使えない。
そもそも、CをOOPの概念に対応させようとして、
classの概念(classというキーワードも)を追加したところから
始まったのがC++。

9 名前:デフォルトの名無しさん mailto:sage [2019/04/02(火) 23:46:57.28 ID:rKGqH4gv.net]
vcでCString使えるよ

10 名前:デフォルトの名無しさん [2019/04/03(水) 00:40:39.45 ID:94cMasUZ.net]
>>4
Win32API?
C++以前から(純粋OOPLな)smalltalk的な価値観をC言語に押し付けた結果。



11 名前:デフォルトの名無しさん mailto:sage [2019/04/03(水) 12:59:01.63 ID:cnGXlgmF.net]
はあ?

12 名前:デフォルトの名無しさん mailto:sage [2019/04/03(水) 18:43:28.55 ID:9GPCcesD.net]
テンプレートをテンプレートクラスで特殊化したい場合ってどうするの?

13 名前:デフォルトの名無しさん mailto:sage [2019/04/03(水) 18:44:12.24 ID:uuRoUePR.net]
>>12
普通にテンプレートにすればいい

14 名前:デフォルトの名無しさん [2019/04/03(水) 21:15:34.88 ID:2lV8d+D6.net]
次スレから>>2に登場人物を列挙してはどうでしょうか?

15 名前:デフォルトの名無しさん mailto:sage [2019/04/04(木) 01:13:57.58 ID:tIFeeQbc.net]
VS2019来てるじゃん
まともなメモリ使用量になってる奇跡だ

16 名前:デフォルトの名無しさん mailto:sage [2019/04/04(木) 01:26:19.69 ID:NSLfK+j2.net]
C++erはVS毛嫌いする人も多いけどVS2017あたりからC++対応もマジでかなり良くなってる

17 名前:デフォルトの名無しさん [2019/04/04(木) 01:29:18.48 ID:MCx08DTu.net]
一番使えるIDEなのに毛嫌いする人はいないと思います。

18 名前:デフォルトの名無しさん mailto:sage [2019/04/04(木) 01:33:25.98 ID:kff2Ii9e.net]
標準ライブラリの実装がいい加減だから使いたくない

19 名前:デフォルトの名無しさん [2019/04/04(木) 01:33:38.34 ID:MCx08DTu.net]
4/2を選んだのはエイプリルフールを避けたからかな。

20 名前:デフォルトの名無しさん [2019/04/04(木) 01:40:18.27 ID:l5IgkZnr.net]
>>16
そう言う輩はプログラマーではなく言語オタか、最新規格対応の入門書売って糧を得てる様な奴だけ。



21 名前:デフォルトの名無しさん mailto:sage [2019/04/04(木) 01:46:00.78 ID:tIFeeQbc.net]
最近はCMakeに優しいけど標準的なビルドシステムに優しくない
clのオプションが独特すぎる
Linuxで動かない
Windows上でのライブラリの取り回しが悪すぎる

wslやらvcpkgでだいぶましになったとはいえまだ若干抵抗がある

22 名前:デフォルトの名無しさん [2019/04/04(木) 01:48:02.16 ID:c6BVWPCA.net]
VS2017以前よりもコンパイルが速くなっている気がする。
色々細かい不満は出てくるかもしれないが、完全に乗り換える価値は十分ある。
私はVS2017をアンインストールして退路を断った。

23 名前:22 [2019/04/04(木) 01:55:45.14 ID:c6BVWPCA.net]
わかりにくかったので訂正。
VS2019はVS2017よりもコンパイルが速くなっている気がする。
デフォルトでスタックメモリ消費の静的解析をしてくれるので、
10KB以上のバッファをスタックからとるクセのある人は、
C++のstd::vectorなどへの置き換えを考える良い手助けになるなのでは。

24 名前:デフォルトの名無しさん mailto:sage [2019/04/04(木) 18:08:19.41 ID:USs/shwk.net]
Qt VS toolsの対応待ち

25 名前:デフォルトの名無しさん mailto:sage [2019/04/04(木) 18:37:00.98 ID:tIFeeQbc.net]
QtはCMakeでよくない?

26 名前:デフォルトの名無しさん mailto:sage [2019/04/04(木) 20:38:54.64 ID:O7o9gYjG.net]
つか、プラットホームに依存しないような
プログラミングをかける奴なんてほとんどいないだろ

素人が書いたようなおもちゃをなんで他に移植しなきゃいけないんだよ

27 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 00:33:23.07 ID:Zwa/Lf0S.net]
hppファイルに実装を書いてることがたまにあって、すごく違和感があるんですけどどういうメリットがあるんですかね?

28 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 00:43:12.95 ID:fDyBpfV8.net]
配布が容易
宣言と定義が分かれないから読みやすい(人による
宣言と定義が分かれないからリンケージとかの罠にはまりづらい(場合によってはむしろODRの罠にはまる
翻訳単位が大量にある状況ではヘッダに実装したうえで少数のcppからインクルードした方がコンパイル速い
テンプレートの場合はほぼそうせざるを得ない

などなど・・・

29 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 00:49:55.23 ID:1W3Y/f1q.net]
そもそもhppファイルは実装書くためのファイルじゃないの?
templateとかで、分割コンパイルできない場合の

30 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 00:54:41.98 ID:yOtZbpQl.net]
もしかしてhppをhとcppの間の子みたいに思ってる?
Cのヘッダと区別するためにhppにしてる人がいるだけでただのヘッダ拡張子だぞ
VCだとヘッダはhになるけど



31 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 01:19:03.58 ID:1W3Y/f1q.net]
いや、そう言う流儀もあるよ

32 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 02:32:36.17 ID:5WucuzOp.net]
流儀なんか10年もしたらガラっとかわるから拡張子なんか好きにやれ
c++ではじめの頃の昔はたまにソースを .c++ で書いてるやつもいた

33 名前:デフォルトの名無しさん [2019/04/05(金) 02:42:38.39 ID:qwUluuCg.net]
ファイルパスにプラス記号使うのは、文字コード自動判定でUTF-7と誤認されやすくなるからさけたほうがいいね。

34 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 06:43:01.93 ID:Z6l9czOn.net]
前スレのenumから文字列についてこんなのあったよ
https://qiita.com/ta_dragon/items/1828ceb16bc8733526e1

35 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 07:27:13.05 ID:Lymez0qU.net]
>>28
無理やりテンプレート使ってビルドを腐らせる典型的アンチパターンじゃねーか。

36 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 08:06:44.62 ID:a4VQ1u2O.net]
>>28
配布出来るようなコードかけるの?
誰もお前さんのなんて欲しがらないだろ

37 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 09:33:27.78 ID:XIaLs/Gd.net]
.C ならC++ なんてのも黎明期にはあったのう

38 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 14:59:43.19 ID:8pIebtc7.net]
>>34
ほう、すごいね、そんな方法があったんだ。
これなら、enumの定義から自動的にunorderd_mapに登録して逆変換テーブルを作るとかもできるかもね。

39 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 16:37:26.15 ID:Axh2Vo9Q.net]
なんで何でもライブラリでできるんだよ

40 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 20:58:14.82 ID:Qo5/2ixY.net]
.hは宣言だけ、.hppは実装ありって使い分けてたこともあったけどやめた
includeする方はそんなの知ったこっちゃないし、いちいちhかhppか判断させられるのが無駄だとわかった



41 名前: mailto:sage [2019/04/05(金) 21:25:06.14 ID:sL+JrEGq.net]
>>40
>hppは実装あり
それは悪手なのでは?

42 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 21:28:37.12 ID:Qo5/2ixY.net]
別に全部入りって意味じゃないよ
テンプレートとかinlineとか、処理の実装も書いてますよーっていうこと

43 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 21:42:34.57 ID:Axh2Vo9Q.net]
暗黙の了解でもそんなのないだろ
hppなら少なくともC言語ではないというくらいしかない

44 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 22:05:43.09 ID:YxBlyJP7.net]
そもそもユーザーがincludeする部分は拡張子書いてないライブラリもある

45 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 22:12:58.31 ID:Qo5/2ixY.net]
だから意味ないからやめたって言ってるじゃん
意味ないし有害だよやめた方がいいよ

46 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 23:31:31.45 ID:yvFnJ+4h.net]
そもそも素人が書いたテンプレートを用いたものなんて使い物にならん

47 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 23:51:13.69 ID:zbJZTl/M.net]
じゃあ玄人が書いたモンは形式だけで分かるのか?

48 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 00:02:05.00 ID:zp0ZZwhH.net]
実装隠しても公開しても同じだぞ

49 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 00:09:06.17 ID:tDMvjH1l.net]
むしろプロの方がゴミみたいなコード書いてる人多いよね

50 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 00:22:46.49 ID:K6S/+wtb.net]
>>47
boostみたいなのをかけるのか?



51 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 00:35:20.36 ID:zp0ZZwhH.net]
小規模なライブラリに6ヶ月かけていいなら書けるよ

52 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 00:55:05.26 ID:/WRt9p3o.net]
boostで開発効率上がるとか信じてるバカが世の中にはまだいるのな。

53 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 00:58:36.65 ID:zp0ZZwhH.net]
boostのどれだよ

54 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 01:19:45.64 ID:XiUalYkv.net]
実際上がるだろ
ライブラリ使えばコーディング量減るのは当然

55 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 01:22:34.24 ID:d3+s3AWp.net]
コーディング量を減らしたいならC++使うのやめるべき

56 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 01:27:27.25 ID:XiUalYkv.net]
速くてコンパクトなソフト作るのに最適だろ。
慣れてりゃ開発速度も同じようなのLLで作るのと大差ないし

57 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 01:41:14.78 ID:zp0ZZwhH.net]
言語によって作業量が増えるとか無いから
目的に合ったフレームワークがあるかどうかが重要

58 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 01:53:28.65 ID:d3+s3AWp.net]
>>57
残念ながらあるんだよね

59 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 01:54:41.01 ID:zp0ZZwhH.net]
そっか

60 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 02:02:09.95 ID:K6S/+wtb.net]
どうせお前らなんて、数十行程度の小さなもばっか書いて、あーでもないこーでもない言ってるだけだろ

会社にもいるわ、細かいことばっか、正論言って
実際の仕事では何にもできない、言語規格ヲタ



61 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 02:06:54.68 ID:zp0ZZwhH.net]
そっかそっか

62 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 02:59:01.41 ID:totkvsPq.net]
仕事してるより細かいとこ突き詰めてる方が楽しいんだ、ごめんね

63 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 03:15:48.33 ID:d3+s3AWp.net]
>>60
ドワンゴで働いてるのか?

64 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 06:57:44.30 ID:grJD5FiV.net]
ドワンゴ今やばいしあの人も首が涼しくなってそう

65 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 07:57:21.33 ID:/WRt9p3o.net]
ドワンゴでコード書いてて江添みたいなバカに
しょうもないアドバイスされたらそらキレるだろうな。

66 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 08:47:14.06 ID:dOsEQJqb.net]
あの手の連中って小さなサンプルしか書いたことないんだろ
実際の数百万行あるようなプロジェクトなんかには
参加したことないんだろうな

67 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 09:02:21.08 ID:jpD7ojAE.net]
弁理士みたいなもんだろ。
自分じゃモノ作らないけど複雑なルールに精通してて「それじゃ通らないよ」とアドバイスする。

68 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 10:37:53.59 ID:DWbJNRMu.net]
数百万ってOSとかミドルウエアでも作ってるのか?

69 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 10:40:30.76 ID:lEFKAYHm.net]
>>68
c++なんかでosなんか作れるかよ
遅すぎる

70 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 10:52:37.36 ID:DWbJNRMu.net]
>>69
じゃあ何作ってるの?



71 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 11:08:56.61 ID:oXBRKV1B.net]
>>70
ia32

72 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 11:11:25.61 ID:dOsEQJqb.net]
>>67
作らないじゃなくて、作れないんだろ
標準ライブラリの使い方を示す小さなものは作れるけど、現実的に使用するアプリケーションはかけないんだろう

73 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 11:26:29.61 ID:DWbJNRMu.net]
>>71
Intelの奴隷

74 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 11:27:31.68 ID:DWbJNRMu.net]
>>72
で数百万行で何を参加して、そのうち何行書いたの?

75 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 11:30:01.81 ID:g9dCbj7p.net]
>>74
自動機が約1000台あるCAMで40%は書いてるよ

76 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 11:33:57.74 ID:DWbJNRMu.net]
>>75
じゃあこのスレで一番C++に詳しい人は君ね

77 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 11:47:11.69 ID:XiUalYkv.net]
どうせその数百万行のコードで意味があるのは数万行から十数万行とかだろ

後は無駄なコピペやら、標準ライブラリにある機能を知らずに毎度一から書いて水増しされた無意味どころか保守考えたら害悪にしかならんくその塊

78 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 11:52:36.82 ID:jpD7ojAE.net]
>>72
弁理士の喩えで言えば、弁理士自身が発明できなくても別によくね?って話なんだが。

79 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 12:45:48.78 ID:zp0ZZwhH.net]
どうせ納期に追われて妥協に妥協を加えたやっつけのコードを○行書きましたwとか言われても自慢にもならん

80 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 12:59:26.47 ID:zp0ZZwhH.net]
>>78
ダメだぞ
弁護士は立法の経験が無いとダメだしスポーツの評論家は一流アスリートじゃないとダメだし調理器具を作る人は繁盛してるレストランで勤務したことがないとダメw
ライブラリ開発や教材の執筆には数百万行のシステム開発と組み込みの経験が無いとダメw
ちなみに数百万行のシステム開発や組み込みの経験があると自動的にライブラリ開発者や教材の執筆者より現実を知ってる格上()だし現場のニーズを満たした理想のライブラリを作れるようになるぞ



81 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 13:01:20.04 ID:dOsEQJqb.net]
ビャーネなんて、ロクなの作ってないよなw
数十行程度のものをあーでもないこーでもない言ってるだけだろ

82 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 13:04:46.19 ID:zp0ZZwhH.net]
せやなw
建築物の工法の研究者なんかろくに家も建てたこともない雑魚w
ネイルガンの一つも使えないくせに机上でああでもないこうでもないって言ってるだけw

83 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 14:13:10.98 ID:BcLgwe4j.net]
>>80
>立法の経験が無いとダメ
つまり議員の経験が無いとだめってことか

84 名前:デフォルトの名無しさん [2019/04/06(土) 14:25:22.19 ID:HZH6vgE1.net]
STLの美しさは時代を超越してるし、オーパーツに認定してもいいのではないか。

85 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 15:08:23.30 ID:FeLBMWFl.net]
直交性とか説明しても誰にも通じなかった

86 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 15:56:35.00 ID:DWbJNRMu.net]
ラムダ式使えない馬鹿「今まで書いたソースの行数は?」
そんなの気にしねえwwws

87 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 16:00:55.76 ID:grJD5FiV.net]
なるほどラムダ式が嫌いな奴は書く行数が減ってコードの生産量()が減るのが嫌なんだな
ボイラープレートコードを書き殴ってれば仕事したフリができる人たちは気楽っすなあ

88 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 16:07:07.88 ID:/WRt9p3o.net]
まあ実際クヌースなんかもtexプログラム作ってプログラムの大変さに気づいた
的なことは言っているしな。
偉い人でもその辺実際に作ってみると感覚が違うってのはあるんだろう

89 名前:デフォルトの名無しさん [2019/04/06(土) 16:49:06.59 ID:HZH6vgE1.net]
コンセプト来い。
コンセプトはよう来い。

90 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 16:52:05.91 ID:TQhcrP/j.net]
>>68, >>77
こいつらみたいな世間知らずの根拠のない自信はどっから来てるんだろう



91 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 17:41:57.80 ID:zQgZMa/6.net]
>>90
そもそも世間知らずほど自信にあふれがちではある
初心者ほど偉そうだったりもする

92 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 19:26:54.62 ID:/WRt9p3o.net]
クソライブラリやクソ開発メソッドを持ち込む怪しいコンサルと一緒なんだよな。
それが押し通ることが結構あるから怖い世の中なんだが。

93 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 00:51:26.62 ID:MFkC9rxe.net]
>>90
元号もろくに変えられない癖に何が自信だあほ

94 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 01:23:19.03 ID:27fxqR4U.net]
自分より劣る存在を想定してホルホルしててもお前の実力は上がらんよ

95 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 02:59:31.42 ID:KMX3xd+u.net]
コードを書くしか能が無いというのでは
業界に名が通った有名人クラスにならない限り
コンサルに勝つのは難しい

96 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 09:59:23.22 ID:AvqFg232.net]
>>88
それソースある?
TeXの前にも色々プログラム書いてるみたいだし、そもそも大学で俺ならもぅとうまくやれるとアセンブラとコンパイラを書き換える決心したらしいからTeXでどうのこうの言うのはちょっと考えづらい
あとTeX自体は今の基準だとそんなにでかく無い
ソースは24ks程度で半分以上はweave出処理される解説だし

97 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 15:25:28.13 ID:GYBhj6UR.net]
>>96
買って読め。
こんな普通に出てるものもチェックせずにクソイチャモンつけられると腹たつな。
https://www.amazon.co.jp/Coders-Work-%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E3%81%AE%E6%8A%80%E3%82%92%E3%82%81%E3%81%90%E3%82%8B%E6%8E%A2%E6%B1%82-Peter-Seibel/dp/4274068471

98 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 15:38:44.91 ID:7JuoUDJS.net]
そんなインタビュー集までチェックするのか普通とか言われてもなぁ

99 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 16:36:39.64 ID:Uqhse/UH.net]
>>98
自分は知らないからソースくれとだけ言えばいいところを、想像で要らんことをいうから反論されるのでは?

100 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 16:41:57.11 ID:7JuoUDJS.net]
>>99
根拠書いてあるんだから反論したいなら根拠に反論したら?



101 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 17:48:00.72 ID:OFkYw0l7.net]
なるべく高級な言語でちっさいOS作ろうと思うんだがよい言語ないかな?

102 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 17:59:05.12 ID:dyW8i1kK.net]
ハードウェアによるのでは

103 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 18:12:26.51 ID:OFkYw0l7.net]
armかrisc vの64bit
32bitでもいいです
比較対象のためにc/c++でも作る予定

104 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 18:19:23.23 ID:wdVE5f+b.net]
そもそも高級言語で小さいOS作れる言語ってC言語一択じゃね?

105 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 18:20:11.20 ID:lGwZZxlu.net]
>>103
rust

106 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 19:17:40.54 ID:rrYyxHxh.net]
rustでqemuでhelloworldして満足した(´・ω・`)

107 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 19:51:30.08 ID:VbL09+YA.net]
haskell

108 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 20:29:30.34 ID:OFkYw0l7.net]
>>105
rustぐらいですかね?
全然違うパラダイムの言語で作れないもんかと
アセンブラとの相性考えたら結局cっぽい言語しか選択肢ないのかな

109 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 21:29:30.01 ID:NOCaxMAw.net]
OSつったって、どのレベルのこと言ってるかによってかわるしな
電源ONから自分でブートして起動できるレベルのものいってるならC+アセンブラ一択だし
ブラウザで仮想環境動けばいいぐらいなら、まあいろいろ変な言語系の実験できるけど
それ実際的な意味あるの?っていう話になってくるし・・
というわけでブラウザで C++ の実行環境を動かしてみるっていうのはどうだろう?
emscripten のオルタネートみたいな・・

110 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 21:58:15.58 ID:GYBhj6UR.net]
>>100
事実でもなんでもない勝手な想像を根拠とか言われても反論できんわ。



111 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 22:14:49.77 ID:AvqFg232.net]
>>110
> TeXの前にも色々プログラム書いてる
> 大学で俺ならもぅとうまくやれるとアセンブラとコンパイラを書き換える決心した
> あとTeX自体は今の基準だとそんなにでかく無い
> ソースは24ks程度で半分以上はweave出処理される解説だし
の中に事実でない箇所あるの?

112 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 22:51:26.81 ID:KMX3xd+u.net]
ソースがわからん…

113 名前:デフォルトの名無しさん [2019/04/07(日) 23:51:05.57 ID:WwvhmWfk.net]
ソース出せと言った人が、ソースが出てきたら、ソース出すのは反則と言い出したって流れかな。

114 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 07:00:51.66 ID:lSCOP8uB.net]
どうやったらそんな頓珍漢な解釈ができるのか…

115 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 09:33:48.87 ID:gQiHeALa.net]
>>113
ソース出せと言った人が(>>96)、ソースが出てきたら(>>97)、ソースじゃなくて根拠(?)に反論しろと言い出した(>>98,>>100,>>111)って流れかな。

116 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 10:03:38.99 ID:xZraFIBG.net]
クソどうでもいい話にこだわるな

117 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 12:15:44.74 ID:lSCOP8uB.net]
引っ込みつかなくなってるんだろww
話の内容変わってるし

118 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 13:16:50.24 ID:/rKIWzXZ.net]
>>109
ブラウザの仮想環境とは何?
osなのでcpuが見えてて欲しいのだけど
ひとまずqemuで始めるつもりです

119 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 14:17:17.10 ID:B03nMGGM.net]
ビャーネストロヴストルップ先生のプログラミング入門買ったんだけど、読破した人っている?

120 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 14:40:49.88 ID:yFytPSzO.net]
いないんじゃあないの
本当に読破したと言える人間は日本人で20人しかいないと聞いた



121 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 16:02:36.28 ID:B03nMGGM.net]
>>120
毎日30分読むことにした
C++は仕事で使ったことない

122 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 17:17:23.27 ID:nF+E8GMD.net]
>>108
まずベアメタルに対応してる必要があることを考えると、選択肢はそうないのでは?

123 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 18:57:24.65 ID:j9hUx87z.net]
>>119
もはやそれは「国語辞典」読破した奴おる?ってのに近い。

124 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 19:33:22.28 ID:RJuwHc+q.net]
ストラウストラップの『プログラミング入門』って
日本語版で1100ページもあるんか。

このとっつぁん、厚い本を書きまくっとるなぁ。
そもそもプログラミング入門のお題でそんなに語るネタあるんか。

125 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 20:02:21.26 ID:lSCOP8uB.net]
実は愛読書が辞書という人はそれなりに居たりするw
https://togetter.com/li/1119810

126 名前:124 mailto:sage [2019/04/09(火) 17:49:07.46 ID:ZAJK3xJP.net]
>>119
なんか『C++によるプログラミングの原則と実践』て本が
同じ原書の新版の和訳みたいだけど。
おまけに『ストラウストラップのプログラミング入門』よりお安い。

127 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 00:37:04.74 ID:weZfZZPq.net]
この界隈では「入門」といいながらどうみてもマニア向けの本が多いよね

128 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 00:51:58.60 ID:uYzixBoY.net]
自分が読んだ本は全て入門書扱いする人多いよね

129 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 01:02:13.57 ID:On8YhqHc.net]
上級者の評価が高い入門書ってのは本質や精神を理解し免許皆伝まで至るような道の第一歩であるものだもの
素人が何も理解しないままこうすればこうなるでおいしいとこだけいきなり得ようとするようなハウツー本とは違う

130 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 09:04:52.41 ID:ryP68qDF.net]
「本質」を語るやつは大抵アホ



131 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 10:05:45.31 ID:cwT5VSoK.net]
結論のでないどうてもいい話題に食い付くやつはアホ

132 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 11:09:30.74 ID:dQX53bJY.net]
同価格帯のXeonとThreadripperではどっちの方がコンパイル速いか知ってる人いますか?

133 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 11:21:44.56 ID:vfHnS1kx.net]
C++はF35にも使われている戦争の兵器
C++erを見たら悪魔の手先と思え!

134 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 11:25:06.35 ID:dQX53bJY.net]
それかCかC++のソースコードのコンパイルのベンチマークをCPU別で取っているサイトがあれば教えてほしいです

135 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 19:23:50.56 ID:xcPdAU38.net]
effective c++読めるくらいになればまあその先に薦める本や文献なんかは結構あるが、
そこまでにどういう本勧めればいいかは相当難しい。
とりあえずcからとか言いたいとこだがそれからeffective c++までの間に読む本としては何が良いのだろうか。

136 名前:デフォルトの名無しさん [2019/04/10(水) 19:50:32.44 ID:CKpW95z6.net]
https://www.anandtech.com/bench/CPU/1858
こんなページがあるけど。
https://www.reddit.com/r/cpp/comments/6kncnu/compile_speed_or_recent_cpusryzen_surprisingly_bad/
マイクロソフトが悪い、すべてマイクロソフトのせいだという意見も出てるね。

137 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 20:42:17.28 ID:P0TERnuJ.net]
タイムマシンって何言語で、書かれてるの?
やっぱりc++

138 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 21:08:53.18 ID:EODMjdpe.net]
Objective-Cだろjk

139 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 23:10:10.82 ID:dQX53bJY.net]
>>136
ありがとう最新のはこれだった
https://www.anandtech.com/bench/CPU-2019/2223

i9が価格の割に速かったコンパイルはシングルコアの周波数が正義なのか
XeonはマルチCPUするためのものだな

140 名前: mailto:sage [2019/04/10(水) 23:38:55.47 ID:57hoitEO.net]
>>135
独習→acceleratedとプレC++11STL(ハーバードシルト)→テンプレート本、くらいを私は歩いてきました…



141 名前:デフォルトの名無しさん mailto:sage [2019/04/11(木) 00:09:23.85 ID:SMdbPkuM.net]
>>135
どの言語でも、言語を学ぶ順番は、
1. 入門書
2. Effective 何々
3. 逆引き・レシピ本
4. (必要なら) メタプログラミング

Ruby なら、
1. たのしいRuby 第6版
2. Effective Ruby
3. 改訂2版 Ruby逆引きハンドブック
4. メタプログラミング Ruby 第2版

先にRuby で、1〜3 を読んだ方が早いかも

もちろん他の言語でも良いけど、
プログラミング全般は、Rubyで学ぶのが、正確で紛れがないし、詳しい本が揃っている

142 名前:デフォルトの名無しさん mailto:sage [2019/04/11(木) 00:18:20.98 ID:+5scCOHz.net]
このご時世に本読んでプログラミング勉強するってあほだろ

143 名前:デフォルトの名無しさん mailto:sage [2019/04/11(木) 00:27:14.17 ID:m6dr6a58.net]
1周回ってきて本になるんだよなあ

144 名前:デフォルトの名無しさん mailto:sage [2019/04/11(木) 00:36:20.66 ID:MrjztWsK.net]
Effective系以上は本でもいいと思う

145 名前:デフォルトの名無しさん mailto:sage [2019/04/11(木) 00:47:54.22 ID:XplD4nHz.net]
少なくともeffective系統読んでもわけわからんレベルの人はまずはしっかりした本を読むべきと思う。
しかしc++は勧めたい本がない。。「独習c++」かな。。いいとは言いずらいがしかしほかに勧めたい本もない。

146 名前:デフォルトの名無しさん mailto:sage [2019/04/11(木) 01:24:17.64 ID:GbgLM3aJ.net]
ネットさえありゃ本なんかいらんだろアホ、と思っていた時期が俺にもありました
実際ちょっと前まではそんな感じだったんだけど、最近は Google のアルゴリズムがポンコツなのか
それの裏をかく技がものすごく洗練されたからなのかしらんが、とにかく検索上位にアホみたいな
ページがひっかかる事が多い上に、ほんとうに必要な情報が見つからないことが多い
特に最近では Python 関係のネット情報はほんとどうしょうもなくぐらい腐ってるな
C++ 関係はまだかなりましな感じだが

147 名前:141 mailto:sage [2019/04/11(木) 02:06:27.08 ID:SMdbPkuM.net]
外人が書いた「Effective 何々」には、良い本が多い

「Rubyのしくみ」も良い。
RubyVM(仮想マシン)の内部の仕組みがどうなっているのか、など

コンパイラ・インタープリタを作る人は、読んでおいた方がよい

C++ の場合「1. 入門書、2. Effective 何々」の間隔が大きい

つまり、仕様が複雑すぎるから、入門書の範囲が大きすぎる!
独習1冊で、Rubyの1〜3 まで軽く読める

常識的には、C++ の本を読めるレベルは、Rubyなど数言語をやった後の話。
とてもじゃないが、素人がやるような言語じゃない!

素人は、細かい仕様の話よりも、
まず、Ruby on Rails などのフレームワークなどで、アプリが動くまでの全体の構造・工程を学ぶのが先

各部分の細かい仕様・バグは、後でよい。
そうしないと、バグってばかりで何も作れない

148 名前:デフォルトの名無しさん mailto:sage [2019/04/11(木) 03:36:50.02 ID:Fl8qN29n.net]
ネットで学ぶのがアホってドワンゴ社員のあいつの主張繰り返すのかよ
誰が仕様書読むんだあほ

149 名前:デフォルトの名無しさん mailto:sage [2019/04/11(木) 03:41:11.24 ID:m6dr6a58.net]
日本語でおk

150 名前:デフォルトの名無しさん mailto:sage [2019/04/11(木) 06:24:23.60 ID:wX/7fvyH.net]
>>141,147
消えろ



151 名前:デフォルトの名無しさん mailto:sage [2019/04/11(木) 06:54:46.28 ID:QTZ5s2CM.net]
>>146
例の医療関係のページビュー稼ぎ対策の影響で個人が細々とやってる良質なサイトが引っ掛かりにくくなってる
って新聞に書いてあったな

152 名前:デフォルトの名無しさん mailto:sage [2019/04/11(木) 09:44:13.72 ID:vYC2bkpl.net]
具体的にC++でいいサイトはどこ

153 名前:デフォルトの名無しさん mailto:sage [2019/04/11(木) 10:06:20.10 ID:m6dr6a58.net]
cpprefjp

154 名前:デフォルトの名無しさん mailto:sage [2019/04/11(木) 11:14:37.00 ID:Kj8z6I1B.net]
>>146
お前のいうネットってqiitaとかだろ?
だからダメなんだよお前はw

155 名前:デフォルトの名無しさん [2019/04/11(木) 18:46:33.30 ID:Ukf06xgg.net]
cpprefjp一択。

156 名前:デフォルトの名無しさん mailto:sage [2019/04/11(木) 19:07:44.03 ID:XplD4nHz.net]
リファレンスだけ並べたクソサイトじゃねーかw

157 名前:デフォルトの名無しさん mailto:sage [2019/04/11(木) 19:27:25.55 ID:yce5TkL4.net]
この手のランキングは本当に十人十色だな。
人気言語ランキングC++3位
https://www.tiobe.com/tiobe-index/

158 名前:デフォルトの名無しさん mailto:sage [2019/04/11(木) 19:30:26.87 ID:m6dr6a58.net]
リファレンスがあれば十分だわ
応用は頭使え

159 名前:デフォルトの名無しさん mailto:sage [2019/04/11(木) 19:38:13.25 ID:XplD4nHz.net]
話にならん。。

とりあえずここら辺から始めるのが良いか。
https://www.tutorialspoint.com/cplusplus/cpp_quick_guide.htm

160 名前:デフォルトの名無しさん mailto:sage [2019/04/11(木) 19:48:35.94 ID:TKLgRtKS.net]
cpprefjpは仕様の成り立ちから使用例まで載ってる



161 名前:デフォルトの名無しさん mailto:sage [2019/04/11(木) 19:54:53.54 ID:a2+oAAfA.net]
cppreference.comの方が好き

162 名前:デフォルトの名無しさん mailto:sage [2019/04/11(木) 19:58:11.07 ID:m6dr6a58.net]
cpprefjpは左の文字が小さすぎるのをなんとかしてほしい

163 名前:さまよえる蟻人間 mailto:sage [2019/04/11(木) 20:14:39.34 ID:4WryY6sc.net]
Ctrl+ホイールで画面拡大縮小

164 名前:デフォルトの名無しさん mailto:sage [2019/04/11(木) 20:36:15.86 ID:m6dr6a58.net]
それはおかしい

165 名前: mailto:sage [2019/04/11(木) 20:40:05.89 ID:mnND5pqz.net]
>>145
独習の後は同じくハーバートシルトの stl 本(ただしC++11じゃない) でしょうけれども…

166 名前:デフォルトの名無しさん [2019/04/11(木) 21:41:21.15 ID:Ukf06xgg.net]
【小説】ストリームの悪魔

167 名前:デフォルトの名無しさん [2019/04/11(木) 21:42:54.19 ID:Ukf06xgg.net]
>>157
でも、C++17だと圏外かも。

168 名前:デフォルトの名無しさん [2019/04/11(木) 21:49:17.62 ID:Ukf06xgg.net]
C++の人気はだいたいWindowsと同期してて、XPで盛り上がり、その後下降して、Windows10発売後ちょっと盛り上がり、その後下降し始め、WSLでまたちょっと盛り上がり、みたいな感じで上下する。

169 名前:デフォルトの名無しさん mailto:sage [2019/04/11(木) 23:00:30.59 ID:Fl8qN29n.net]
>>165
ビャーネストロヴストルップのプログラミング入門はどうですか?

170 名前:デフォルトの名無しさん mailto:sage [2019/04/11(木) 23:10:49.56 ID:Fl8qN29n.net]
>>165
◆QZaw55cn4c さんはプログラマーですか?



171 名前:デフォルトの名無しさん mailto:sage [2019/04/11(木) 23:16:43.21 ID:4rTUFtuy.net]
STLを解説した本として最も優れてるのどれ?

172 名前:デフォルトの名無しさん mailto:sage [2019/04/11(木) 23:26:14.78 ID:m6dr6a58.net]
解説するほどのものか?

173 名前:デフォルトの名無しさん mailto:sage [2019/04/11(木) 23:29:16.82 ID:MrjztWsK.net]
cpprefjpかcppreference.com眺めるのが一番いいのでは

174 名前:デフォルトの名無しさん mailto:sage [2019/04/11(木) 23:35:00.33 ID:Fl8qN29n.net]
>>171
C++標準テンプレートライブラリがおすすめ

175 名前:デフォルトの名無しさん mailto:sage [2019/04/11(木) 23:36:01.51 ID:Fl8qN29n.net]
https://cppmap.github.io/
個人的にはこっちもおすすめ

176 名前:デフォルトの名無しさん mailto:sage [2019/04/12(金) 00:33:29.09 ID:Oce6Eotz.net]
C++ coding standards が、入門書と effective C++の間という感じで良かったのですが、今新品で買いやすい和書の中で同じくらい良い本ありますか

177 名前:デフォルトの名無しさん mailto:sage [2019/04/12(金) 07:49:20.68 ID:iSiavc0f.net]
>>173
それでコードを書けるようになるとは全く思わん。

178 名前:デフォルトの名無しさん mailto:sage [2019/04/12(金) 08:33:36.67 ID:iSiavc0f.net]
「ロベールのC++入門講座」を勧める

179 名前:デフォルトの名無しさん mailto:sage [2019/04/12(金) 09:37:34.83 ID:uO4ZqrOg.net]
コード書くために勉強したことが無い人間とコード書くために勉強した人間に分かれるな

180 名前:デフォルトの名無しさん mailto:sage [2019/04/12(金) 10:54:15.24 ID:+AQGVq0O.net]
RPGのバトルシステムがいつまでたっても出来ない
どうなってんだコレ



181 名前:さまよえる蟻人間 mailto:sage [2019/04/12(金) 12:39:56.53 ID:O/TRJpno.net]
>>180
ドラクエの技術を解説した本を買えば

182 名前:デフォルトの名無しさん mailto:sage [2019/04/12(金) 13:56:50.34 ID:phN3RSne.net]
そこでレポート プログラム ジェネレータを思い出さないと
文句はユニシスに言っとくれ

183 名前:デフォルトの名無しさん mailto:sage [2019/04/12(金) 16:07:32.84 ID:JVT+o1/N.net]
RPGなつかしいなw
知人でそれの専門で仕事やってるやついたが
今ごろどうしているだろうか・・

184 名前:デフォルトの名無しさん mailto:sage [2019/04/12(金) 16:19:27.39 ID:lUKpExyl.net]
>>180
自分が具体的に何を作るのか見えていないとか、自分が何が分からないかがわかっていないとか。

185 名前:デフォルトの名無しさん mailto:sage [2019/04/12(金) 18:44:05.94 ID:+CDO09PL.net]
std::rpgの登場が待たれる

186 名前:デフォルトの名無しさん mailto:sage [2019/04/12(金) 21:59:51.74 ID:9AU6i9F6.net]
>>179
どういう分類か興味がありますね…

187 名前:デフォルトの名無しさん mailto:sage [2019/04/12(金) 22:35:09.99 ID:20VLO3ye.net]
これもSFINAE???

int plus(int a,int b){return a + b;}
double plus(double a,double b){return a + b;}

int main( int argc, char *argv[] )
{
double c = plus(1.0,2.0);
return 0;
}

188 名前:デフォルトの名無しさん mailto:sage [2019/04/12(金) 23:46:54.37 ID:w8o2kbz2.net]
SFINAEを理解してないな?
templateでわざと失敗させるんだぞ

189 名前:デフォルトの名無しさん mailto:sage [2019/04/12(金) 23:50:14.00 ID:WMCXK/Zp.net]
それは関数のオーバーロード(オーバーロード関数)
SFINAEはテンプレートに関わる話

190 名前:デフォルトの名無しさん mailto:sage [2019/04/12(金) 23:55:37.58 ID:yQNXRLnI.net]
SFINAE ていう単語みるたびになぜか
ソフバンの白犬が低い声で「スフィ姉ーーー」て言ってる映像が頭にうかぶ



191 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 00:08:44.65 ID:pAXxDbKI.net]
>>188
最初のplusで失敗して、次のオーバーロードを探しに行ってんじゃん。
もし最初でコンパイルエラーなら、このプログラムはコンパイルされないが、SFINAEのおかげでコンパイルエラーが出ない

192 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 00:43:18.21 ID:2fZ9oexv.net]
>>186
自分の興味のあることをやっていたら気づいたらコードが書けるようになっていた人と
コードを書けるようになることを目標に勉強をした人
前者は入門の仕方を聞かれると上手く答えられない傾向にある
とりあえず好きなもの作ってみて困ったらリファレンスとかみれば良いんじゃないの?とかは割とガチで言ってる

193 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 01:17:48.59 ID:Gm2Aztfm.net]
せやな
なぜそこでロベール!?とか思ったけど、なんか納得した

194 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 02:30:55.25 ID:ExcsBrHj.net]
rvalue・lvalueの見分け方について、=の左に書けないならrvalueって考えで良いですかね?

195 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 07:01:49.87 ID:bq5Y4VLb.net]
>>194 確かダメじゃないかな。
C の例でアレだけど、配列名 int a[5]; の a は
左辺値だけど代入の左辺に置けない、
「代入不可能な左辺値」というカテゴリになる。

『プログラミング言語C++』第4版 §6.4.1 (p. 175)の図によると
左辺値 lvalue は「アイデンティティを持ち、ムーブ不可能」
右辺値 rvalue は「(アイデンティティの有無によらず)ムーブ可能」

…ムーブできるか出来ないかの判断を、左辺値か右辺値か見分けることで
やろうとしてるなら、この説明は循環論法でしかないけどね。

196 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 08:07:08.65 ID:odoOG67D.net]
その場で(1つの文の中で)ムーブされ得るやつが右辺値、ぐらいで良いのでは、
と言いたいところだが
 SomeType a = b = 1;
でbあ右辺値なのかと言われるとうーん…
実際bがその場で所有権を失うこともできる(SomeTypeにムーブコンストラが定義されていた場合
のだから当たらずしも遠からずだとは思うが知らん

197 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 09:00:05.96 ID:TufrjDxL.net]
てかリファレンスだけ必要な奴はここにそういうことを聞きには来ないだろ。
なんかその辺の感覚がすでにずれてるように思うが。

198 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 09:09:41.91 ID:TufrjDxL.net]
>>195
「代入できない」って視点で言えば194で合ってるんでは?
確かに a[0] =5 なんかはできるけど、 a = b みたいにポインタそのものは代入できないわけだし。

199 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 09:48:36.03 ID:ubPOLJQD.net]
>>196
右結合なんだから b は左辺値、 b = 1 が右辺値でいいんでは?

200 名前:L mailto:sage [2019/04/13(土) 11:50:51.08 ID:U0TmzhoK.net]
全く関係ない話になるけど、JNI = Java Native Interface(?) なるものを使えば、
C++で OS 非依存のアプリが作れるんだね。多分。
C++からJavaの任意のメソッドを呼び出せるし、逆も可能なので、
グラフィックをJavaに描かせて、キーやマウスのイベントをJavaからC++に
伝達すればよさそう。すると、LinuxやAndroidで共通に動くC++アプリ(?)
が出来てしまう。wasmも必要ない。



201 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 15:06:42.85 ID:nqhK1mlk.net]
>>200
C++の部分はネイティブなのでOSに依存する

202 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 15:20:25.21 ID:U0TmzhoK.net]
スマン。CPU毎にバイナリは必要で、
clangに -macrh=xxx-xxx-xxx オプションを指定して CPUやOSを
指定してコンパイルしておくことを想定していた。
ただし、複数のCPU/OS向けのバイナリを1つのAPKにパッケージして、
使用時に自動選択する事が出来るらしい。

203 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 15:31:06.15 ID:pwnjfljv.net]
わざわざjavaを使わなきゃいけないのが気にくわない
その場合、javaだけで書くこと以上のメリットある?

204 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 15:32:58.01 ID:U0TmzhoK.net]
速度が速い。

205 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 15:33:33.54 ID:MSTjQ8pp.net]
てかそれってjavaのアプリ作っているだけじゃ

206 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 15:36:48.83 ID:U0TmzhoK.net]
Androidアプリは、Javaで書くのが基本とされてるけど、
Chromeブラウザなんかはきっと、C++で書いたものを ARMなどの
CPU向けのnative binaryに直し、それをAPKにパッケージ化して
配布してるのではなかろうか? AmazonのFire7 や Fire HD 8 などの
タブレットのCPUはどちらもARMらしい。スマホもARMが多いのかな。

207 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 15:38:37.67 ID:U0TmzhoK.net]
>>205
基本的な描画系と入力系をライブラリ化しておけば、メインロジック部分は
C++で書けると思うよ。

208 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 15:42:52.17 ID:U0TmzhoK.net]
さっき、AdoptOpenJDK なるものをインストールしてみたら、
java と javac コマンドが起動することを確認した。
多分このJDKは、Oracle フリーで無料でクローズド商用利用できると思う。

209 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 15:46:26.77 ID:MSTjQ8pp.net]
jniはjavaのプラットフォームにc++での開発成果物を持ち込むためのもので、そうでないならわざわざそんなもの使う意味は薄い

マルチプラットフォームなアプリを作りたいならQtなりwxなりを使った方が速いし楽

210 名前:デフォルトの名無しさん [2019/04/13(土) 15:47:10.35 ID:Uq+8Y9kK.net]
>>208
でもいつ訴えられるかわからないから怖いですう。



211 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 15:58:39.59 ID:U0TmzhoK.net]
そもそも、Androidアプリにとってのシステムコール(API)とは、Javaの関数だと
思うので、この構造自体は Android における「最も高速なアプリ」になっている
と思う。

212 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 15:59:50.41 ID:U0TmzhoK.net]
>>210
一般アプリ作者は大丈夫だと思うな。一番危ないのは、オイラみたいに、
ToolKit作って儲けようなんて思ってる人なのさ。(^_^;)

213 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 16:11:49.69 ID:U0TmzhoK.net]
>>209
それらはサイズが大きい。

214 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 16:14:38.06 ID:MSTjQ8pp.net]
糞デカイ上に更新面倒なjavaのruntime入れさせるほうが害悪だろ

flashより糞度が高い

215 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 16:22:55.04 ID:U0TmzhoK.net]
AndroidはJREはプリインストール済みなんじゃないの?
オイラは実機持ってないので全く分からないんだな。

216 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 16:32:58.01 ID:MSTjQ8pp.net]
androidで実質c++でのアプリ開発する仕組みなら既にある
jniそのまま使うよりは大分マシ

217 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 16:36:12.19 ID:jD4Gkzzm.net]
>>216
どうやるの?

218 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 16:39:07.74 ID:2fZ9oexv.net]
何でグラフィックをわざわざJavaに?


>>217
QtならほぼC++で書ける

219 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 16:42:39.35 ID:U0TmzhoK.net]
Qt は、内部的に Backend で Java を使ってるのかな。

220 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 17:18:44.33 ID:ubPOLJQD.net]
なんかJavaを間違って理解してるっぽい。



221 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 17:21:04.26 ID:YpOFfnix.net]
>>219
もういい加減スレ違いだから消えてくれ

222 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 19:21:24.16 ID:mZFqlfzi.net]
vector に格納されてる値から添え字の番号を取得するための最も手軽な方法はなんでしょうか

イテレータから添え字番号を取得することはできますが、あくまで値からやりたいです

223 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 19:26:24.27 ID:ujTcdvrD.net]
格納してる値にインデックスの手がかりがないんだったら
findで探して結果のイテレータから取得するしかないな

224 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 19:26:44.48 ID:2fZ9oexv.net]
>>222
findしてdistance

225 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 19:31:01.29 ID:mZFqlfzi.net]
>>223-224
ありがとうございます
格納する値の範囲もサイズも小さいvectorなので、今回は辞書を作って対応しようと思います

226 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 19:42:14.61 ID:2fZ9oexv.net]
>>225
そんな単純な検索なら3行くらいなんだから作ればいいのに

227 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 20:12:30.52 ID:mZFqlfzi.net]
奇遇なことに辞書も三行くらいです

228 名前:デフォルトの名無しさん [2019/04/14(日) 01:05:39.34 ID:dZAE6IVm.net]
そら奇遇ですな。

229 名前: mailto:sage [2019/04/14(日) 06:41:11.16 ID:AVvjfIV7.net]
>>200
とても興味を覚えました
私は、そろそろ言語間でライブラリも共用されるべきだと考えています
一つの記述体で各言語共通というのはさすがに難しいにせよ、
Java のライブラリと同等なもの(名前と機能が共通のもの)が C++ にもあってもいいんじゃないか?と数年前から妄想しています…

230 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 07:17:55.90 ID:/tPpXRHC.net]
もうJavaのことは忘れて生きろ



231 名前:デフォルトの名無しさん [2019/04/14(日) 07:42:20.38 ID:YohaqxbG.net]
JavaとC++に共通インターフェースを作るのは反対。
車輪の再発明にしかならない。自由を奪うだけの愚策。

232 名前: mailto:sage [2019/04/14(日) 07:51:31.17 ID:AVvjfIV7.net]
>>231
強要するのではなく、オプション(選択肢)として提供するのはどうでしょうか?

233 名前:デフォルトの名無しさん [2019/04/14(日) 08:04:00.89 ID:YohaqxbG.net]
>>232
共通ライブラリを使う側にとってはオプションであることは当然。
共通ライブラリを作る側の話をすべき。共通ライブラリの規格決定権者が増えすぎること自体が好ましくない。
これはEU諸国がトルコがEU参加することを拒否する感覚に近い。

234 名前: mailto:sage [2019/04/14(日) 08:50:47.24 ID:AVvjfIV7.net]
>>233
私は EU には否定的(グローバリストの巣窟であり、普通選挙/自由選挙による合意形成をスキップするポジションを作って人を操作するからくり、トルコもたぶん目が覚めているのでは?)ですが、それはさておき、
すでにある java/classpath スケルトンを真似してしまおう、という低姿勢・低いプライドを貫くのであれば、規格策定者は基本要らなくなりませんか?だって真似するだけだし…

235 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 08:59:21.33 ID:k2b6YaL9.net]
まだC++98しか知らないと、取り残されますか。

236 名前:デフォルトの名無しさん [2019/04/14(日) 09:09:36.38 ID:YohaqxbG.net]
まずは、Javaと瓜二つな C#、.NET、C++/CLIが今どうなっているか考えてみては。

237 名前:L mailto:sage [2019/04/14(日) 09:28:45.12 ID:Y1IcINvd.net]
>>229
ちょっと話しはズレるけど、あなたの賛同で嬉しくなったので、入手した耳寄りな
情報を書いておこうと思う。既に知ってる人も当然いると思うけど、
WebAssemblyで作ったようなWebAppliは、ブラウザのURL欄やタイトルバーなどが
表示されてしまうのが難点として残っていた。ところがなぜかElectronでは消せて
いたのでChromeではなくChromiumを使っているからかと思っていた。
ところが、manifest.json なるものを書いて、HTMLにそのファイルを使うように
書いておいて、display プロパティーを standalone やfullscreen にすると、
URL欄が消せるらしい。

238 名前: mailto:sage [2019/04/14(日) 09:41:42.35 ID:AVvjfIV7.net]
>>237
もう時代はすっかり html/css/js ですね…
VSCode も Electron ですし…

239 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 10:28:52.88 ID:k2b6YaL9.net]
質問を変えてみよう。
C++11やC++14のコードは、職場で取り入れられてますか。

240 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 11:49:20.77 ID:q+cUY/8y.net]
>>239
ガンガン取りいれてるよ。

なにげにでかいのが日本語識別子の保証。適切に使うと可読性が笑っちゃうくらい上がるw
ヘッダーのプロトタイプ宣言とかが特におすすめかな。

あとchar16_t/char32_tも結構ありがたい。WindowsとUNIX系のOS間で同じ文字コードとして共通で使える型が以前はなかったからね。
20でようやく入るみたいだが、なぜchar8_tを入れかったのか(´・ω・`)

std::initializer_listもかなり便利。型安全で個数も分かる上に、引数の一番後ろじゃなくてもいいので、cの...と違って気軽に使える。

あとよく使うのは範囲for文と、イテレータの簡略化かな。いくつかの演算子をオーバーロードすれば良いだけだから、
結構気軽に範囲for文対応のイテレータを書ける。

ラムダ式も関数の引数に直接関数を埋め込んだりできて便利。



241 名前: mailto:sage [2019/04/14(日) 12:36:24.13 ID:AVvjfIV7.net]
>>240
>char16_t/char32_tも結構ありがたい

確かに
char16_t と u"" がなければ win32api W 系とか途方に暮れていたとおもいます… https://mevius.5ch.net/test/read.cgi/tech/1434079972/53

242 名前:はちみつ餃子 mailto:sage [2019/04/14(日) 12:43:45.83 ID:+qOUcSLR.net]
ガンガン最新を追うべきとまでは思わないけど、
C++11 は最低限度じゃないかなぁ。

243 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 14:27:39.08 ID:6Gooiv09.net]
17便利すぎ
variant,visit,lambda,if constexpr
のコンボで捗る

244 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 14:34:56.13 ID:GSX89KOm.net]
つーか今はもうC++11の機能は使わずにC++で書け!といわれても
やりきる自信がなくなった・・

245 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 14:39:38.95 ID:krJLkXqZ.net]
古い環境だと最近のサンプルがビルドできなくて困る

246 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 16:02:33.26 ID:YQLb8Tsj.net]
c++11とか名乗るから誤解されるんだよ。
c++++とかのがイメージ的に正しい。

247 名前:デフォルトの名無しさん [2019/04/14(日) 16:06:36.29 ID:dZAE6IVm.net]
C#ってことか。

248 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 16:12:40.18 ID:YQJCzKEv.net]
repeat文って入らないの?

249 名前:はちみつ餃子 mailto:sage [2019/04/14(日) 16:16:59.50 ID:+qOUcSLR.net]
>>248
どんな機能?

250 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 16:20:53.89 ID:YQJCzKEv.net]
>>249
repeat(int i; n) で for(int i; i<n; i++) と同じ意味な機能



251 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 16:22:55.01 ID:6Gooiv09.net]
>>250
そんなどうでも良いもののために予約語追加する意味って
その文法じゃ初期値すら変えられない

252 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 16:24:45.44 ID:6Gooiv09.net]
初期値はi=0とかすればいいのか
でもそうなるとi=1にした場合何回ループするのか混乱しそう

253 名前:デフォルトの名無しさん [2019/04/14(日) 16:32:41.09 ID:IovzG98E.net]
>>229
QtとかGtk、wxとか色々有るじゃん。。。
入れるの面倒くさいなら、Power Builder(だっけ?)とかの有料開発環境はVSを除いてマルチプラットフォームなライブラリが売りだぞ。

254 名前: mailto:sage [2019/04/14(日) 16:36:01.32 ID:AVvjfIV7.net]
>>253
Java の人も C# の人も c++ の人も python も ruby も一緒の名前で一緒の機能が使えたら,コストの中でも一番高くつく勉強コストを減らせるのではないでしょうか

255 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 16:44:39.61 ID:YQJCzKEv.net]
>>251
Linuxのカーネルにrepeatマクロ大量にあるもん

256 名前:はちみつ餃子 mailto:sage [2019/04/14(日) 16:52:53.22 ID:+qOUcSLR.net]
>>255
ならマクロでいいじゃねぇか。

257 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 16:53:20.02 ID:6Gooiv09.net]
こんなので十分だろ
https://ideone.com/I6e8NZ

258 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 16:59:12.33 ID:6Gooiv09.net]
>>254
wxでもQtでもメジャー言語のbinding位あるだろ

259 名前:デフォルトの名無しさん [2019/04/14(日) 17:09:53.36 ID:IovzG98E.net]
>>254
うん。
それはまさにそうで、だからQt,Gtk,wxあたりのメジャー所は色んな言語にラッパーがある。

260 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 17:10:32.89 ID:h7KNzBMl.net]
webプログラマーなんですが、右辺値、fowardっていつ使うのか気になります
というかなんでそこまで、厳密に分ける必要があるのか 
業務で使ってる方、使用例を教えてください



261 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 17:20:10.51 ID:sCsh6GnA.net]
右辺値というかムーブ関数の定義といらなくなるオブジェクトにstd::move付けとくのは絶対損にはならないからとりあえずやっとく
forwardはテンプレートライブラリ作るなら必須だけど自分では使ったことないなあ

262 名前:さまよえる蟻人間 mailto:sage [2019/04/14(日) 17:25:45.47 ID:86P3zzV7.net]
コピーにコストがかかる場合は、std::swapやstd::moveのが早い場合があるからね。ムーヴはコピーじゃなくて引っ越しだから。

263 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 17:27:07.70 ID:YQLb8Tsj.net]
まあ理論上はね。。そういう実装になってるかどうかはコード見ないとわからんけどね。

264 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 17:29:38.84 ID:6Gooiv09.net]
基本的には高速化が目的でmove使わなくてもなんとかなるが、
所有権絡むとmoveは必須になる

forwardはtemplateで引数渡すときにmoveやら参照やらの完全転送する場合必須

265 名前:さまよえる蟻人間 mailto:sage [2019/04/14(日) 18:16:04.21 ID:86P3zzV7.net]
ちょっと実際にやってみようか。コピーコンストラクタで十秒待つコードを書く。ムーヴコンストラクタとムーヴ代入でなにもしない。
この状態でstd::moveを使わないで代入すると十秒かかる。

266 名前:さまよえる蟻人間 mailto:sage [2019/04/14(日) 18:17:20.92 ID:86P3zzV7.net]
訂正。「コピー代入で十秒待つコードを追加」

267 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 18:47:05.84 ID:xCvd3oj/.net]
>>264
>所有権絡むとmoveは必須
必須とまでは言えない
 T::T(const T& obj)
という通常のコピコンを定義して、コピコンの中でconst剥がししたら
とりあえず所有権の移動もmove無しで逝ける

268 名前:はちみつ餃子 mailto:sage [2019/04/14(日) 18:50:44.06 ID:+qOUcSLR.net]
>>260
高速化のために出来るのは、アルゴリズムのレベルでの工夫を別にすれば、出来ることはショートカットだ。
高速化とは近道なんだよ。

場合分けが出来るなら、どうしてもやらなければならないこと、やらなくてもいいことを「区別」できる。
区別できるなら、やらなくてもいいことは省略できる。

言語での区別が無くても、たとえば C でも区別を陽に書けばムーブみたいなことだって、そりゃあ出来るけども、
そんなクソ面倒くさいことはしたくないので言語でのサポートがあるとありがたい。

まあ速度的にそこまで必要ないってのなら、区別を積極的に利用しなくてもかまわないよ。
でも、必要なときに出来る方法が用意されているとうれしいし、
C++ を使うときというのはそれなりに実行速度が必要なときだろうし。

269 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 18:52:09.33 ID:xCvd3oj/.net]
とわいえmoveコンストラクタの方が意図が明確なコードが書けるから良い。
moveコンストラクタがふさわしい例っていやーつぎごケース。
class BarWithBigData {
  Foo* m_pBigData;
  BarWithBigData() : m_pBigData(new Foo[1000000000000] { }
  ~BarWithBigData() { delete[] m_pBigData; }
  BarWithBigData(BarWithBigData&& rhs) { m_pBigData = rhs.m_pBigData; rhs.m_pBigData = NULL; }
  Foo* refBigData() { return m_pBigData; }
};

ちなstd::arrayは使った無いから知らん

270 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 18:53:54.12 ID:xCvd3oj/.net]
訂正orz、

誤:
  Foo* m_pBigData;
  BarWithBigData() : m_pBigData(new Foo[1000000000000] { }

正:
  Foo* m_pBigData;
public:
  BarWithBigData() : m_pBigData(new Foo[1000000000000]) { }



271 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 18:54:00.95 ID:mEGAHR/Y.net]
コピコンの中でconst剥がしってちょっと何言ってるか分からない

272 名前:さまよえる蟻人間 mailto:sage [2019/04/14(日) 18:55:03.68 ID:86P3zzV7.net]
十秒待つ待つコードはWindowsなら#include <windows.h>してSleep(10*1000);であり、
Linuxなら#include <unistd.h>してsleep(10);だ。
C++11ならstd::chronoに待つ関数があったはず。

273 名前:さまよえる蟻人間 mailto:sage [2019/04/14(日) 18:57:07.74 ID:86P3zzV7.net]
const_castだろ。jk

274 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 18:57:37.12 ID:xbTIwD1q.net]
>>271 「move無しで(未定義動作に)逝ける」ってことでしょ。

275 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 18:57:39.39 ID:xCvd3oj/.net]
>>271
こうじゃわ;
BarWithBigData::BarWithBigData(const BarWithBigData& rhs) { m_pBigData = rhs.m_pBigData; const_cast<BarWithBigData&>(rhs).m_pBigData = NULL; }

>>269もmoveコンストラの変わりに↑のように書いても逝ける

276 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 19:10:15.32 ID:sCsh6GnA.net]
まあ実際にはそんなムーブをゴリゴリ書くことはなくて
m_pBigDataをunique_ptr<array<Foo, 1000000000000>>にしてムーブctor、ムーブop=、デストラクタを=defaultにするけどな

277 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 19:21:51.01 ID:kBfBajGR.net]
auto_ptrよりヤバイ奴
const_castでconst外した後実際に書き換えてしまうとかw

278 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 19:38:34.53 ID:xCvd3oj/.net]
>>277
ちなconst T&で渡されたブツを関数内でconst_castして書き換えることはそれ自体は合法
ROM上のオブジェクトを渡して死ぬことは有り得るがしたら呼び出し側の違反
また最適化にしくるとしたらそれはコンパイラーのバグ

279 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 19:46:40.04 ID:xbTIwD1q.net]
>>278
ROM上になくても const T 型で構築されたオブジェクトを書き換えたら未定義動作になるから、
値が変わらない前提の最適化は許されてるよ。

const 無しで構築されたオブジェクトを指す const& の話と混同してそうだね。

280 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 19:53:21.04 ID:uvZ0DMTi.net]
質問: c🐴++のrust相対の優位性はなんですか?



281 名前:はちみつ餃子 mailto:sage [2019/04/14(日) 19:57:27.42 ID:+qOUcSLR.net]
>>280
正しくないコードをコンパイル出来る。
C++ はプログラマを信頼するのだ。

282 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 19:57:44.28 ID:6Gooiv09.net]
>>278
未定義じゃないか
c++03 5.2.11の7にはこんなことが書いてある
[Note: Depending on the type of the object, a write operation through the pointer, lvalue or pointer to data
member resulting from a const_cast that casts away a const-qualifier68) may produce undefined behav-
ior (7.1.5.1). ]

283 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 20:14:45.20 ID:xCvd3oj/.net]
>>282
Depending on the type of the objectにおいてmay produce undefined behaviorである
すわなちオブジェクトの型によっては未定義動作に成りえる、
と言っているだけなのでconst T&渡しされたパラメータの書き換えがNGの祥子にはなんね

>>279
>const T 型で構築されたオブジェクトを書き換えたら未定義動作になる
それはそう。しかしconst T&渡しされた関数内でコンパイラはそれを判断できないから
そういった関数内で、参照型かポインタ型引数で関数に渡されたlvalueのconst_castした結果はあくまでlvalue扱い
のはず…

284 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 20:25:38.94 ID:xbTIwD1q.net]
>>283
関数内では const& であることを根拠に最適化に使えないのは合ってる。
でもだからといって const& で受け取ったものを書き換えてもよいとは言えない。

void f1(int const&);
int f2()
{
int const x = 1;
f1(x);
return x;
}

x は int const なので、 f2() の return x は f1() が const_cast して x を
書き換える可能性を無視して return 1 に最適化できる、という話。

BarWithBigData const x; が >>275 のコピーコンストラクタに渡された後も
const_cast<BarWithBigData&>(rhs).m_pBigData = NULL; を無視して書き換え前の
m_pBigData が使われる可能性がある。

285 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 20:33:37.36 ID:mEGAHR/Y.net]
規格が云々言わなくても、9割のプログラマの意図に反してるで終わる話
頼むからそんなコードは頭の中にしまっといてほしい

286 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 20:37:26.81 ID:6Gooiv09.net]
つまりはそれ自体は問題ないが、constとして生成したオブジェクトを渡した瞬間にダメになると言うことか
で、渡すこと自体は制限できないから
プログラム中に罠を仕掛ける事が出来るわけだ。

287 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 20:39:28.07 ID:6Gooiv09.net]
てか、mutable付けとけば問題なくなるな。

288 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 20:40:25.78 ID:6Gooiv09.net]
const_castも要らないし良いことずくめじゃないかw

289 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 20:45:26.81 ID:xCvd3oj/.net]
>>285
わかりたそうする。>>275のケースは素直にムーブコンストラクタを使えば良い。または↓でもだいたいおk
BarWithBigData::BarWithBigData(BarWithBigData& rhs) { m_pBigData = rhs.m_pBigData; rhs.m_pBigData = NULL; }

だいたいというのはムーブコンストラクタ有りの規格のC++コンパイラで↑の非constなコピコンだけ書く警告が出ることがあるからイヤン、

>>286
>つまりはそれ自体は問題ないが
いや問題がある可能性が潰せていない。
void f1(int const&);
int f2()
{
int x = 1;
f1(x);
return x;
}
(xがconst無し)の場合であってもf1(x)がxを書き換えない前提の最適化がf2()にかかったりすると、
f1(x)内で変更したxの値がreturnされるxの値に反映されない可能性がある(f1(x)の呼び出し前後でxがレジスタに乗ったままであるとか、

290 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 21:11:05.08 ID:xbTIwD1q.net]
>>289
その x の型は const じゃないから return x は最適化できないよ。



291 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 21:48:29.79 ID:uvZ0DMTi.net]
>>281
わからないです。それはメリット?

292 名前:デフォルトの名無しさん mailto:sage [2019/04/15(月) 01:36:50.54 ID:20PlYkfs.net]
ラムダに11個の引数を参照で渡すのと、キャプチャするの、どっちが速いかな?

293 名前:デフォルトの名無しさん mailto:sage [2019/04/15(月) 02:40:05.27 ID:e1RUhzz1.net]
測ればいいだろ

294 名前:はちみつ餃子 mailto:sage [2019/04/15(月) 02:50:17.52 ID:94OTneyx.net]
>>291
メリットのときもデメリットのときもあるだろう。

295 名前:デフォルトの名無しさん mailto:sage [2019/04/15(月) 02:59:24.82 ID:XbOtvNIU.net]
参照渡しな時点でその場で呼び出すのだろ。
最適化かければ結局同じようなアセンブリになるよ。

296 名前:デフォルトの名無しさん mailto:sage [2019/04/15(月) 09:13:13.35 ID:+swIGlrx.net]
それはわからんだろ
ブロック待ちするかもしれないわけで

297 名前:デフォルトの名無しさん [2019/04/15(月) 19:29:41.18 ID:8vw8m6ly.net]
引数で渡すとスタックに積まれる可能性があるけど、キャプチャするとそうならないのでは。

298 名前:デフォルトの名無しさん mailto:sage [2019/04/15(月) 19:36:28.26 ID:XbOtvNIU.net]
いや、形式上は無名クラスにキャプチャを変数としてぶちこんだもののインスタンス作ってメンバ関数のoperator()呼ぶのだから、スタックは使うだろ。

299 名前:デフォルトの名無しさん mailto:sage [2019/04/15(月) 20:08:47.93 ID:Auf6nZgf.net]
C言語じゃダメなんですか!

300 名前:デフォルトの名無しさん mailto:sage [2019/04/15(月) 20:20:07.70 ID:NSErsM12.net]
いいよ



301 名前:デフォルトの名無しさん mailto:sage [2019/04/15(月) 20:25:01.30 ID:IXPbMXJW.net]
無駄に複雑にしとるな。

302 名前:デフォルトの名無しさん [2019/04/16(火) 01:01:07.13 ID:ZVmLHBMP.net]
>>298
じゃあ、引数で渡すとスタックに積まれない可能性があるので、速い場合もあるのでは?

303 名前:デフォルトの名無しさん mailto:sage [2019/04/16(火) 02:15:09.28 ID:WfxisTJA.net]
海外だと、Javaに負けて、Rustに圧倒的実力で追いやられるC++

304 名前:デフォルトの名無しさん mailto:sage [2019/04/16(火) 02:27:07.22 ID:WfxisTJA.net]
>>303
https://insights.stackoverflow.com/survey/2019#technology-_-what-languages-are-associated-with-the-highest-salaries-worldwide

305 名前:デフォルトの名無しさん mailto:sage [2019/04/16(火) 15:01:04.19 ID:RMLQoksE.net]
本当に、コンパイル時に何かしたいならRustだけどね

306 名前:デフォルトの名無しさん [2019/04/16(火) 18:28:44.44 ID:ZVmLHBMP.net]
>>304
Java圧倒的な強さだな。

307 名前:デフォルトの名無しさん [2019/04/16(火) 18:30:10.89 ID:ZVmLHBMP.net]
全部足すと500%位になりそうだから、複数の言語を使う人が多いんだろね。

308 名前:デフォルトの名無しさん mailto:sage [2019/04/16(火) 21:18:54.40 ID:dFuxCqAG.net]
江添が転職できずに困っとるw
まあこいつがクソなだけでc++の問題ってわけじゃないんだがイメージは悪いわな。

309 名前:デフォルトの名無しさん mailto:sage [2019/04/16(火) 21:36:49.03 ID:jMhdT2ep.net]
こうしてみるとホッシーの全タクシー移動ってのは理に適ってるな
バカな公害に捕まる心配が減る

310 名前:デフォルトの名無しさん mailto:sage [2019/04/16(火) 23:25:27.27 ID:LsPOsuul.net]
なんか私怨でもあるんかいな



311 名前:デフォルトの名無しさん mailto:sage [2019/04/16(火) 23:41:35.10 ID:InK+cNH/.net]
喫煙者が目に入った途端癇癪起こして殴り掛りかかる狂犬なんだっけ?

312 名前:デフォルトの名無しさん mailto:sage [2019/04/17(水) 00:03:12.24 ID:vVzTJh6n.net]
知らね
よく人を招いているようだし揉めたことがある人も少なくはないんじゃいか

313 名前:はちみつ餃子 mailto:sage [2019/04/17(水) 01:12:11.58 ID:UWuCQ9XR.net]
>>310-311
当事者の様々な主張の食い違いがあるので、結論としては「わからない」。
少なくとも彼自信の主張としては掴みかかってきたのを払いのけた結果として眼鏡が割れたということになっている。
(江添が殴りかかったわけではなく、むしろ防衛した側、と江添は主張している。)

江添が煙草について過激な意見を持っているのは確かだが、
シェアハウス内で禁煙場所であると合意がなされている場所で煙草を吸った客人がいたというところは当事者全体が認めているようだ。

314 名前:デフォルトの名無しさん mailto:sage [2019/04/17(水) 08:21:52.75 ID:DaACwh1w.net]
恨みというかまともにコード書かない奴がクソ意見で現場荒らすって事自体がクソだと思うわけで、
まあその反動で現場で働くことができないって事になればザマァって思う。

315 名前:デフォルトの名無しさん mailto:sage [2019/04/17(水) 09:46:31.27 ID:vVzTJh6n.net]
現場を荒らしてる?

316 名前:デフォルトの名無しさん mailto:sage [2019/04/17(水) 09:53:30.15 ID:vVzTJh6n.net]
どのプロジェクトにも参加してないと認識してたけど乗り込んでケチつけてたりするのかな
まあ俺ドワンゴとは縁が無いからどこで何してようが関係ないけど

317 名前:デフォルトの名無しさん mailto:sage [2019/04/17(水) 17:08:02.09 ID:I32j715f.net]
C++がPython抜いて3位 - 4月TIOBE言語ランキング 2019/04/17 10:55 後藤大地
https://news.mynavi.jp/article/20190417-810363/

TIOBE Softwareから、2019年4月のTIOBE Programming Community Index (PCI)が公開された。
TIOBE PCIは、複数の検索エンジンの検索結果から、対象となるプログラミング言語が
どれだけ話題になっているかをインデックス化したもの。

4月TIOBE Programming Community Index / 円グラフ
https://news.mynavi.jp/article/20190417-810363/images/001.jpg

2019年4月はC++がPythonを抜いて3位に返り咲いた。ただし、Pythonのシェアが下落したの
ではなく、Pythonの増加傾向をC++の増加が上回ったことによる結果と思われる。C++は
長期にわたって下落傾向が続いていいたものの、2019年に入ってから増加傾向へ転じている。
Pythonも増加傾向が続いており、どちらも今後さらにインデックス値を増やす可能性がある。

長期にわたって1位を確保しているJavaは依然として1位のポジションにあるが、下落の
傾向が続いている。2位のC言語も長期で見ると下落を続けており、C++やPythonの存在感が
強くなってきている。

318 名前:デフォルトの名無しさん mailto:sage [2019/04/17(水) 17:11:50.34 ID:hoIwj+sG.net]
>>317
何回だからみんな何回もググってるんだよ

319 名前:デフォルトの名無しさん [2019/04/17(水) 18:34:58.84 ID:LllPIzo0.net]
俺が検索しまくったからだろうな。

320 名前:デフォルトの名無しさん mailto:sage [2019/04/17(水) 19:59:29.56 ID:fJF68+PR.net]
今もしインターネットが完全にシャットダウンされると
プログラム書けなくなるプログラマけっこう数いるだろうな



321 名前:はちみつ餃子 mailto:sage [2019/04/17(水) 20:18:46.81 ID:UWuCQ9XR.net]
>>320
cpprefjp はとりあえず手元にダウンロードしてあるけど。

322 名前:デフォルトの名無しさん mailto:sage [2019/04/17(水) 20:35:09.94 ID:P5fp2rRi.net]
どうやってダウンロードしたの?
巡集じゃできなかった…

323 名前:デフォルトの名無しさん mailto:sage [2019/04/17(水) 20:39:18.77 ID:WWgiT6Ow.net]
githubじゃない?

324 名前:デフォルトの名無しさん mailto:sage [2019/04/17(水) 21:27:54.32 ID:P5fp2rRi.net]
そうなんだ、ありがとう

325 名前:デフォルトの名無しさん [2019/04/19(金) 02:16:29.43 ID:/DYxLH/O.net]
どういたしまして。

326 名前:デフォルトの名無しさん mailto:sage [2019/04/19(金) 08:26:54.03 ID:gmGy9oTC.net]
江添は職質裁判でも、不当判決が出たので控訴するみたい

警官は、複数人で口裏合わせするから、民間人は勝てない

漏れもやられたけど、酒酔い運転でも、漏れが機械に息を吹き掛けても、ランプが点かない。
そこで、警官がクルッと後ろを向くと、ランプが点く

そっと見たら、酔っ払い警官が、自分で息を吹きかけて、ランプを点ける

こういう裁判で争っている人もいるけど、
警官は複数人で口裏合わせするから、絶対に勝てない!

警官は皆、このやり方で出世しとる

327 名前:デフォルトの名無しさん mailto:sage [2019/04/19(金) 08:33:03.47 ID:PWe5dNBv.net]
ありゃ普通に対応してりゃ済む話だと思うがね。

やってることは完全に当たり屋だろ。

328 名前:デフォルトの名無しさん mailto:sage [2019/04/19(金) 09:27:15.01 ID:biH+fvR8.net]
>>326
Rubyバカの人か。相変わらず思い込みが激しく、言っていることが滅茶苦茶だな。

329 名前:デフォルトの名無しさん mailto:sage [2019/04/19(金) 12:05:02.85 ID:rPSCrubJ.net]
どんだけ江添好きなの?w

330 名前:デフォルトの名無しさん mailto:sage [2019/04/19(金) 13:28:48.91 ID:W5tFDDw/.net]
日本でC++真剣にやってるのって彼だけだし



331 名前:はちみつ餃子 mailto:sage [2019/04/19(金) 13:41:25.74 ID:mypEidUJ.net]
だけ、というのは言い過ぎだと思うが、
日本語で最新の C++ の事情を本にしているのは江添くらいしかいないからなぁ。

江添本人は自分のことを実務家ではなく教育者だと考えているようだし、
(肩書は何なんだろ? エヴァンジェリストのようにも見えるが……)
今のポストは妥当なとこだろ。
そのままやってくれればありがたいもんだ。

332 名前:デフォルトの名無しさん mailto:sage [2019/04/19(金) 13:41:50.58 ID:i8rhoxHy.net]
つまり他の日本人は竹刀とか木刀ってことか。

333 名前:デフォルトの名無しさん mailto:sage [2019/04/19(金) 13:50:35.12 ID:rPSCrubJ.net]
江添個人の裁判は完全にスレチなんだよなあ
仮に違法な取り締まりだと判断されても警察のやり方が改まるわけもないだろうし

334 名前:デフォルトの名無しさん mailto:sage [2019/04/19(金) 14:15:26.68 ID:JVA9qfGz.net]
江添すなわちC++なのだから
江添の話題は全てC++の話題だょ

335 名前:デフォルトの名無しさん mailto:sage [2019/04/19(金) 15:08:33.32 ID:j263LUSd.net]
宗教の話はよそでやってくれないか

336 名前:デフォルトの名無しさん mailto:sage [2019/04/19(金) 15:16:01.57 ID:JwgM4FAg.net]
もう少しc++の話をしてくれと思う事もある

337 名前:デフォルトの名無しさん [2019/04/19(金) 18:50:10.05 ID:/DYxLH/O.net]
はちみつさんも真剣にやってると思います。

338 名前:デフォルトの名無しさん mailto:sage [2019/04/19(金) 19:16:13.92 ID:yj9Iz3m1.net]
こんな事言うと勘違いされそうだが、はちみつ餃子はちゃんとしてると思うよ
C++に関しておかしなことは言っていない
ていうか、はちみつ餃子ってものすごい不味そうなんだがそんなの本当にあるのだろうか・・?

339 名前:デフォルトの名無しさん mailto:sage [2019/04/19(金) 19:17:39.46 ID:j263LUSd.net]
肉料理にはちみつを入れること自体はわりと普通
量の問題

340 名前:デフォルトの名無しさん mailto:sage [2019/04/19(金) 19:28:19.17 ID:PWe5dNBv.net]
いや明らかに開発してねーだろって感覚じゃねーか。
まあここならそれでもいいんだろうけれど。



341 名前:はちみつ餃子 mailto:sage [2019/04/19(金) 19:51:37.44 ID:mypEidUJ.net]
>>338
ググればわかるけどはちみつ餃子はそこそこありふれた料理だよ。

その昔、 higepon が自分でもどうして higepon などと名乗ったかわからない
と述べていたので、そのくらい意味不明感じにしようと思って適当に
思いついた語をコテハンにした。
Scheme スレが本来の住処なので当初は SCHEME餃子 と名乗っていたけど、
他のスレにも顔を出すようになったのでなんとなくはちみつ餃子になった。
およそ意味不明な組合せにしたつもりだったんだけど、
実際にある料理だとは後になってから知った。

342 名前:デフォルトの名無しさん mailto:sage [2019/04/19(金) 21:11:54.81 ID:fEN/Hp+M.net]
initializer_listを引数に取るオブジェクトを引数に取る関数で
下記のケースでUniversal Initializationが効かないのですが
何かいい手はないでしょうか

using KVPCollectionType = std::map<std::string, std::string>;
void f(const KVPCollectionType&& kvps = {});

f(); // OK
f({}); // OK
f(KVPCollectionType{{"key1", "value1"},{"key2","value2"}}); // OK

f({{"key1", "value1"},{"key2","value2"}}); // NG これをやりたい!!

343 名前:デフォルトの名無しさん mailto:sage [2019/04/19(金) 21:13:17.21 ID:UQpKfTQY.net]
エピ…いや何でもない

344 名前:デフォルトの名無しさん mailto:sage [2019/04/19(金) 21:17:05.52 ID:fEN/Hp+M.net]
すみません、訂正です
× void f(const KVPCollectionType&& kvps = {});
○ void f(const KVPCollectionType& kvps = {});

345 名前:デフォルトの名無しさん [2019/04/19(金) 21:22:53.30 ID:/DYxLH/O.net]
アークエンジェルに搭載されてるstd::variant<>。

346 名前:デフォルトの名無しさん mailto:sage [2019/04/19(金) 22:49:42.25 ID:DWxUZ3pl.net]
wandboxで試したらclangでもgccでもc++11 -pedanticで通ったけど?

347 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 00:01:37.25 ID:a7z6m7l4.net]
ごめんなさい、ごめんなさい。本当にごめんなさい。
勝手に脳内で要約したのが間違えまくってました

正確には以下の通りです。
#include <map>
#include <memory>
using KVPCollectionType = std::map<std::string, std::string>;
class c {
public:
c(const KVPCollectionType&& kvps = {}){}
};
int main()
{
auto ok = std::make_shared<c>(KVPCollectionType{{"key1", "value1"},{"key2","value2"}}); // OK
auto ng = std::make_shared<c>({{"key1", "value1"},{"key2","value2"}}); // NG!!!
}

348 名前:デフォルトの名無しさん [2019/04/20(土) 10:47:21.77 ID:5oa1AZjP.net]
全てのバグを絶滅せよ。
「今日は死に日和」好評発売中。

349 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 11:08:43.59 ID:3kBWifqd.net]
C++11や14を使ってる人、コンパイラは何ですか。

350 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 11:25:30.96 ID:m+a2EYsq.net]
ゲームエンジン作ってる人いますか



351 名前:デフォルトの名無しさん [2019/04/20(土) 11:30:38.02 ID:5oa1AZjP.net]
clとgcc。

352 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 13:20:15.93 ID:lwVpLCzw.net]
c+11以降はバージョン違うと全く別のコンパイラ

353 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 13:23:19.12 ID:8Vh3F1FF.net]
Twitchでプログラミングしてるやつの中でゲームエンジンも居たような

354 名前:はちみつ餃子 mailto:sage [2019/04/20(土) 13:30:02.11 ID:7hm/FBJ7.net]
>>347
テンプレートの推論ルールとして「関数テンプレートのパラメータとして波カッコの初期化子リストを渡して型推論させることはできない。」
ということになっている。 ( https://cpprefjp.github.io/lang/cpp11/uniform_initialization.html )
make_shared の実際の型は template <class T, class... Args> shared_ptr<T> make_shared(Args&&... args); なので、
このとき Args が推論できない以上はどうにもならん。
型を固定した専用の関数をはさんでこんな感じにするくらいのことしか思いつかないな。

#include <map>
#include <memory>
#include <initializer_list>
#include <utility>

using KVPCollectionType = std::map<std::string, std::string>;
class c {
public:
c(const KVPCollectionType&& kvps = {}){}
c(const std::initializer_list<typename KVPCollectionType::value_type>){}
};

std::shared_ptr<c> make_c_shared(std::initializer_list<typename KVPCollectionType::value_type> a) {
return std::make_shared<c>(std::move(a));
}

std::shared_ptr<c> make_c_shared(KVPCollectionType&& a) {
return std::make_shared<c>(std::move(a));
}

int main() {
auto ok = make_c_shared(KVPCollectionType{{"key1", "value1"},{"key2","value2"}});
auto ng = make_c_shared({{"key1", "value1"},{"key2","value2"}});
}

355 名前:はちみつ餃子 mailto:sage [2019/04/20(土) 13:32:51.70 ID:7hm/FBJ7.net]
>>347 >>354
呼出す側で

auto ng = std::make_shared<c, std::initializer_list<typename KVPCollectionType::value_type>>({{"key1", "value1"},{"key2","value2"}});

というように型を明記してもかまわないけど、使う側でいちいちこんなこと書きたいわけじゃないだろ?

356 名前:はちみつ餃子 mailto:sage [2019/04/20(土) 13:35:42.76 ID:7hm/FBJ7.net]
>>347
ちゃんと考えたら >>354 はいらんことしとるな……
これで充分か

#include <map>
#include <memory>
#include <utility>

using KVPCollectionType = std::map<std::string, std::string>;
class c {
public:
c(const KVPCollectionType&& kvps = {}){}
};

std::shared_ptr<c> make_c_shared(KVPCollectionType&& a) {
return std::make_shared<c>(std::move(a));
}

int main() {
auto ok = make_c_shared(KVPCollectionType{{"key1", "value1"},{"key2","value2"}});
auto ng = make_c_shared({{"key1", "value1"},{"key2","value2"}});
}

357 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 08:19:35.76 ID:jJhiZdMc.net]
>>354-356
ありがとうございます、その手を使わせていただきます
状況によって推定ルールが変わるのはやめて欲しいなってちょっと思ったんですけど。

358 名前:デフォルトの名無しさん mailto:sage [2019/04/22(月) 23:55:58.01 ID:uyfay/gq.net]
メンバアクセスにthis->つける?

359 名前:デフォルトの名無しさん mailto:sage [2019/04/23(火) 00:01:58.24 ID:cW1os5L0.net]
エディタの補完機能使いたいときにたまにそうやって補完して最後に消す。
が、たまに忘れる。

360 名前:デフォルトの名無しさん mailto:sage [2019/04/23(火) 00:02:35.52 ID:BSgCsXpz.net]
IDEの都合で付ける事が良くある
付けないと補完候補多すぎて



361 名前:デフォルトの名無しさん mailto:sage [2019/04/23(火) 00:09:08.10 ID:JKfCESEZ.net]
ああなるほど
補完候補を絞るのには便利ですね

362 名前:デフォルトの名無しさん [2019/04/23(火) 18:16:01.64 ID:Wx+D+gzo.net]
メンバであるという保証ができるので付ける

363 名前:デフォルトの名無しさん mailto:sage [2019/04/23(火) 19:39:28.32 ID:cE0Yu4R7.net]
メンバ名は頭にm_付けろみたいなクソルールよりずっといいと思うので付けるべき

364 名前:デフォルトの名無しさん mailto:sage [2019/04/23(火) 19:42:38.83 ID:JKfCESEZ.net]
仮引数と別の名前つけるのだるいからm_は別に良いと思う

365 名前:デフォルトの名無しさん mailto:sage [2019/04/23(火) 20:02:01.86 ID:8XemHsTC.net]
メンバ変数に専用の色付けたらいいじゃん

366 名前:デフォルトの名無しさん mailto:sage [2019/04/23(火) 20:13:43.06 ID:sktjqElV.net]
引数そのままメンバに入れるなら引数に_つけてvar(_var)って初期化してるわ

367 名前: mailto:sage [2019/04/23(火) 20:16:13.74 ID:JSYnwir1.net]
>>366
それって var(var) でも問題ないんですよ…

368 名前:さまよえる蟻人間 mailto:sage [2019/04/23(火) 21:18:06.78 ID:DAl4rXky.net]
バーバー

369 名前:デフォルトの名無しさん mailto:sage [2019/04/23(火) 21:32:08.36 ID:BSgCsXpz.net]
>>367
綴り間違えたら悲惨なことになった

370 名前:デフォルトの名無しさん [2019/04/23(火) 21:34:08.78 ID:3k1+3l7a.net]
ハンガリアン記法は、入力補完のないエディタ上での可読性を高めるのに役立ってるでしょ。今でも。



371 名前:デフォルトの名無しさん mailto:sage [2019/04/23(火) 21:35:06.30 ID:8XemHsTC.net]
ゴミ使ってる奴のことなんか知らん

372 名前:デフォルトの名無しさん mailto:sage [2019/04/23(火) 21:36:10.37 ID:BSgCsXpz.net]
あれ可読性落ちるだろ

373 名前:デフォルトの名無しさん mailto:sage [2019/04/23(火) 21:39:11.30 ID:lLaZpSEH.net]
定期的にunsignedとsigned混在させてハマるアホをみるとハンガリアン必要だと思うわ

374 名前:デフォルトの名無しさん mailto:sage [2019/04/23(火) 21:40:37.34 ID:lAbUfbw7.net]
C#で入力補完のないエディタがどうとかさすがにナンセンスでは
だってvisual studio使うじゃん

375 名前:デフォルトの名無しさん mailto:sage [2019/04/23(火) 21:41:16.53 ID:ZkNEZW45.net]
どっちでもいいわ。
大抵の場合そんなとこに気を使わんといかんコードになってることのが問題。

376 名前:デフォルトの名無しさん mailto:sage [2019/04/23(火) 21:45:47.89 ID:lLaZpSEH.net]
>>375
こういうやつがそのうちハマって丸1日つぶしたりするんだよなw

377 名前:デフォルトの名無しさん mailto:sage [2019/04/23(火) 21:51:11.17 ID:8XemHsTC.net]
>>373
関係なくて草

378 名前:デフォルトの名無しさん mailto:sage [2019/04/23(火) 21:55:03.06 ID:lLaZpSEH.net]
関係あることわかってなくて草

379 名前:デフォルトの名無しさん mailto:sage [2019/04/23(火) 21:55:54.04 ID:8XemHsTC.net]
黙ってろゴミw

380 名前:デフォルトの名無しさん mailto:sage [2019/04/23(火) 21:59:25.62 ID:ZkNEZW45.net]
>>376
だから人を嵌めるようなコード書くなつってんだよばか。



381 名前:デフォルトの名無しさん mailto:sage [2019/04/23(火) 22:06:36.15 ID:lLaZpSEH.net]
>>380
コードの問題じゃなくて言語仕様の問題だから
こういうえらそうなくせに何もわかってないカスが一番始末に困る

382 名前:デフォルトの名無しさん mailto:sage [2019/04/23(火) 22:53:19.60 ID:ZkNEZW45.net]
いつの間にかハンガリアンが言語仕様になってた。。

383 名前:デフォルトの名無しさん mailto:sage [2019/04/23(火) 23:10:13.77 ID:lLaZpSEH.net]
ハンガリアンも防御的なプログラミングと考えたら悪くないよ
成り立ち調べてみな
でも基本型とポインタだけだな
クラスには無用だと思う

384 名前:デフォルトの名無しさん mailto:sage [2019/04/23(火) 23:27:23.37 ID:8XemHsTC.net]
てめーらはまともなIDEかエディタ使ってねえのかよ

385 名前:デフォルトの名無しさん mailto:sage [2019/04/23(火) 23:37:57.35 ID:JKfCESEZ.net]
むしろVSがないと何も書けない

386 名前:デフォルトの名無しさん [2019/04/23(火) 23:55:15.96 ID:UPBQPhwq.net]
VSがあっても何も書けない。

387 名前:デフォルトの名無しさん mailto:sage [2019/04/23(火) 23:55:30.60 ID:ZkNEZW45.net]
c++みたいに型情報ありがデフォルトの言語でハンガリアンとか二重メンテもいいとこだわ。

388 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 01:00:02.97 ID:pnt3hUol.net]
前方宣言したクラスをTにしたスマポメンバでコンパイル通るときと通らないときがあって調べてたら
デストラクタがインライン(暗黙)だと駄目だとわかった
しかもこの問題が起こるのはunique_ptrのときだけでshared_ptrはデストラクタの定義に関係なく通る
わけわからんぞ
教科書に書いておいてくれ

class ClassB;
class ClassA{
public:
ClassA();
private:
std::unique_ptr<ClassB> u; // NG
std::shared_ptr<ClassB> s; // OK
}

---

class ClassB;
class ClassA{
public:
ClassA();
~ClassA(); ←これでunique_ptrもOK
private:
std::unique_ptr<ClassB> u; // OK
std::shared_ptr<ClassB> s; // OK
}

389 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 07:38:59.52 ID:IdP8M60W.net]
>>388
unique_ptr<T>のデストラクタはインスタンス化するときにTが完全型であることを要求する(デストラクタで直接Tのデストラクタを呼ぶ)
unique_ptrを内包するクラスのデストラクタが暗黙だとクラス内でコンパイラによって実装されるけど、その場でunique_ptrのデストラクタを要求する
しかし、その翻訳単位内でTの定義が無ければコンパイルエラーとなる

unique_ptr<T>を内包するクラスのデストラクタがとりあえず宣言だけでもあると
実際の定義がある場所で同様の事が起こるので、その場所でTの定義が見つかればいい
その場合に定義を書かないと、コンパイラさんが適切な翻訳単位内に定義をおいてくれるみたい

shared_ptrは動的削除子のおかげでデストラクタが呼ばれるところで適切にデリータを定義し、デストラクタを呼ぶようになっているのでこの様な問題は起こらない
shared_ptr<T>のデストラクタ内ではTのデストラクタを直接呼び出すようなコードが無い

390 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 18:54:26.06 ID:pnt3hUol.net]
>>389
解説ありがとう



391 名前:デフォルトの名無しさん mailto:sage [2019/04/26(金) 01:05:34.79 ID:UW94aXeh.net]
うーんC++プライマー8500円かぁ。本家のプログラミング言語C++第4版はもっとするし
情報量からすると安いが本一冊にポンと出すにはお高い……日本語である程度網羅的な本となるとこの2冊くらいよね

392 名前:デフォルトの名無しさん mailto:sage [2019/04/26(金) 19:40:01.51 ID:aJMYFNVy.net]
set<double> って int のときと同様にちゃんとソートされるんですか?

393 名前:デフォルトの名無しさん mailto:sage [2019/04/26(金) 20:34:04.97 ID:Fns+A8Ou.net]
NaNが無ければ大丈夫NaNじゃね

394 名前:デフォルトの名無しさん mailto:sage [2019/04/26(金) 20:34:22.70 ID:Fns+A8Ou.net]
NaNが無ければ大丈夫NaNじゃね

395 名前:デフォルトの名無しさん mailto:sage [2019/04/26(金) 22:17:06.30 ID:PbDaLlJb.net]
のちに永久保存される平成最後のスベり

396 名前:デフォルトの名無しさん mailto:sage [2019/04/26(金) 23:59:20.16 ID:LBUDtqYL.net]
たしかにそうだな・・いよいよ平成最後なんだな
みなさん、>>393-394 みたいな事にならないよう、気をひきしめましょう

397 名前:デフォルトの名無しさん mailto:sage [2019/04/27(土) 00:20:06.56 ID:nrL5Mhiq.net]
平成最後っていう言い回し使われすぎて嫌いになってきた

398 名前:デフォルトの名無しさん mailto:sage [2019/04/27(土) 00:23:11.48 ID:v7q7vgVx.net]
イテレータの参照を次に移すときってなんでitr++ではなく++itrなの?

399 名前:デフォルトの名無しさん mailto:sage [2019/04/27(土) 00:33:20.40 ID:nrL5Mhiq.net]
ヤフーでぐぐれ

400 名前:デフォルトの名無しさん mailto:sage [2019/04/27(土) 01:04:24.73 ID:oB7jkl++.net]
素直な実装だとitr++より++itrのほうが速いんじゃないかなあ、となんとなくみんなが思っているから



401 名前:デフォルトの名無しさん mailto:sage [2019/04/27(土) 01:07:57.61 ID:v7q7vgVx.net]
速度に差が出るのか
知らなかった

402 名前:デフォルトの名無しさん mailto:sage [2019/04/27(土) 01:35:51.19 ID:KjSesqKI.net]
インクリメント後のイテレーターの値を返す処理の実装を考えると
先の場合はインクリメントしてそのまま渡せばいいけど
後の場合はインクリメント前の値を保存しといてそれを渡さないといけないので一手間かかるから
・・なんだけど諸々の最適化とか色んな条件とか考えたらそこまで差がでるかどうかはよくわからん

403 名前:デフォルトの名無しさん mailto:sage [2019/04/27(土) 01:38:33.58 ID:EJ6OYH9I.net]
it++だと、戻り値をコピーしてとっておいてから、ポインタなりを進めた後にreturnする必要があるが、
++itだと、ポインタを進めた後に参照を返すだけでするからな。

404 名前:デフォルトの名無しさん mailto:sage [2019/04/27(土) 01:39:08.58 ID:EJ6OYH9I.net]
被ったw

405 名前:デフォルトの名無しさん mailto:sage [2019/04/27(土) 11:13:20.29 ID:qp4sR6Ay.net]
>>398
ite++と++iteなんて気持ちの問題
てか範囲for文使えばいい

406 名前:デフォルトの名無しさん [2019/04/27(土) 11:46:20.51 ID:Tan1PMrG.net]
>>402-405
cppcheck にかけたらちゃんと警告出るね。

407 名前:デフォルトの名無しさん mailto:sage [2019/04/27(土) 14:06:33.77 ID:dwPa57iA.net]
どうせ戻り値捨てるんだったら++itを選んでおいて損はない
無駄にit++を使うのは時期尚早な最不適化って奴だ

408 名前:デフォルトの名無しさん mailto:sage [2019/04/27(土) 19:31:57.61 ID:Ht8C3PIL.net]
C++で書くんだから後置インクリメントの方がメインに決まってんじゃん
前置は異端だ

409 名前:デフォルトの名無しさん mailto:sage [2019/04/27(土) 19:37:22.12 ID:nrL5Mhiq.net]
殺せ

410 名前:デフォルトの名無しさん mailto:sage [2019/04/27(土) 20:12:28.01 ID:uerCNQ9f.net]
++C



411 名前:デフォルトの名無しさん mailto:sage [2019/04/27(土) 20:53:36.82 ID:hHA0b+W+.net]
C++でいいんだよ。
規格は一歩進むけど、使ってるやつはbetter Cばかりってな

412 名前:デフォルトの名無しさん mailto:sage [2019/04/27(土) 20:55:05.03 ID:nrL5Mhiq.net]
++C++まだかよ

413 名前:デフォルトの名無しさん mailto:sage [2019/04/27(土) 22:37:09.45 ID:Czz6ceI0.net]
>>411
vectorとかstringとか使わんの?

414 名前:デフォルトの名無しさん mailto:sage [2019/04/28(日) 03:35:47.43 ID:c2OY2Ben.net]
CArrayとCStringだぞ
コピコンは定義されてないから自分で作るぞ

415 名前:デフォルトの名無しさん [2019/04/28(日) 11:01:20.49 ID:DJV+PGkd.net]
CArrayは、<algorithm>ヘッダーで定義された信頼性の高いユーティリティ関数を使えないのがね・・・。

416 名前:デフォルトの名無しさん mailto:sage [2019/04/28(日) 13:46:52.13 ID:nadmD8id.net]
>>413
この思考がbetter C

417 名前:デフォルトの名無しさん mailto:sage [2019/04/28(日) 14:25:38.47 ID:n1RanWws.net]
>>416
わけわからん

418 名前:デフォルトの名無しさん mailto:sage [2019/04/28(日) 14:29:28.69 ID:c2OY2Ben.net]
俺がBest Cだ

419 名前:はちみつ餃子 mailto:sage [2019/04/28(日) 14:56:12.05 ID:mA4VukHK.net]
>>415
イテレータをうまいこと定義すれば使えるやつも結構あるんじゃね?
そうでもない?

420 名前:デフォルトの名無しさん mailto:sage [2019/04/28(日) 15:37:56.41 ID:UbqPSgHc.net]
inconsistent begin/end types in range-based ‘for’ statement

gcc(g++) 8.2で -std=c++17オプションでコンパイルで
範囲forでこのエラーが出るんだが
begin endの型不一致の制限緩和されいるはずだよな?
原因わかる方いますか?



421 名前:デフォルトの名無しさん mailto:sage [2019/04/28(日) 15:49:39.60 ID:4R543R/q.net]
>>415
GetData()とGetData()+GetSize()を渡せば、とりあえず動くんじゃね?

422 名前:デフォルトの名無しさん mailto:sage [2019/04/28(日) 16:05:30.47 ID:n1RanWws.net]
>>420 比較演算子定義されてないとか?

423 名前:デフォルトの名無しさん mailto:sage [2019/04/28(日) 16:22:25.11 ID:UbqPSgHc.net]
>>422
int _n = 0;
auto __begin = _container.begin();
auto __end = _container.end();
for (; __begin != __end; ++__begin) {
_n = *__begin;
}
比較演算子はちゃんと定義してるし
上のコードは何故かコンパイル通る
だけど
for (const auto _n : _container) {
//hoge
}

は何故か通らない

424 名前:デフォルトの名無しさん mailto:sage [2019/04/28(日) 16:41:14.97 ID:n1RanWws.net]
範囲for文のconst autoをconst auto&かauto&&に変えるとどうなる?

425 名前:デフォルトの名無しさん mailto:sage [2019/04/28(日) 16:43:13.35 ID:UbqPSgHc.net]
>>424
auto&&にした時のみエラーが増えます
cannot bind rvalue reference of type ‘const long unsigned int&&’ to lvalue of type

426 名前:デフォルトの名無しさん mailto:sage [2019/04/28(日) 16:54:13.46 ID:/ZzCGjK1.net]
beginとendのシグニチャは?

427 名前:デフォルトの名無しさん mailto:sage [2019/04/28(日) 17:02:57.34 ID:UbqPSgHc.net]
>>426
using iterator = typename std;;vector<int>::iterator;
using const_iterator = typename std;;vector<int>::const_iterator;
using my_iterator = MYIterator;
my_iterator begin();
iterator end();
const my_iterator begin() const;
const_iterator end() const;
const my_iterator cbegin() const;
const_iterator cend() const;

428 名前:デフォルトの名無しさん [2019/04/28(日) 17:18:10.81 ID:HBE/zmE6.net]
これで動かん?
for (auto&& _n : _container) {
}

429 名前:デフォルトの名無しさん mailto:sage [2019/04/28(日) 17:28:42.95 ID:UbqPSgHc.net]
>>428
動かないです

430 名前:デフォルトの名無しさん mailto:sage [2019/04/28(日) 18:12:40.94 ID:/ZzCGjK1.net]
MYIteratorの実体がunsigned longみたいだけど
vector<int>::iteratorの実体がポインタだったらoperator!=の定義できなくない?



431 名前:デフォルトの名無しさん mailto:sage [2019/04/28(日) 18:13:25.64 ID:7uO4eV2c.net]
>>420
wandboxで再現コード作って出直すか、それができないんならエスパーに頼んだほうがいいんじゃないかな。
https://mevius.2ch.net/test/read.cgi/tech/1187922645/

432 名前:デフォルトの名無しさん mailto:sage [2019/04/28(日) 20:53:07.97 ID:B+3vkW9O.net]
>>423
bool operator != (〜) const ← これ付け忘れてないか?

433 名前:デフォルトの名無しさん mailto:sage [2019/04/28(日) 20:57:20.67 ID:HwAGJ3yN.net]
constつけ忘れは時々はまる

434 名前:デフォルトの名無しさん mailto:sage [2019/04/28(日) 23:15:17.87 ID:UbqPSgHc.net]
>>427
自己解決
const iteratorとconst_iteratorが一緒だと勘違いしていた
const my_iteratorではなくmy_const_iteratorを実装して返り値とすべきでした

435 名前:デフォルトの名無しさん mailto:sage [2019/04/29(月) 08:12:30.69 ID:caHZo185.net]
struct A{
int member;
};
struct B: A{
void run(){member = 0;}//ok
};

template<typename T>
struct TA{
T member;
};
template<typename T>
struct TB:TA<T>{
void run(){member = 0;}//NG。this->memberとするとok
};
クラステンプレートを継承してクラステンプレートを作成した場合にthisでないと継承元のメンバーが見えないのは仕様?

436 名前:デフォルトの名無しさん mailto:sage [2019/04/29(月) 10:32:33.68 ID:ytpB6N2f.net]
仕様
一寸前までのmsvcではなぜか通っていたけど

437 名前:デフォルトの名無しさん mailto:sage [2019/04/29(月) 11:47:53.29 ID:atpu4K08.net]
>>436
なんでそんな仕様になってるんだろう…

438 名前:デフォルトの名無しさん mailto:sage [2019/04/29(月) 12:13:25.59 ID:TWBg2sM/.net]
>>437
2phase lookupだから
最初のTB解釈時にはTAが型引数一つのtemplate classであるという情報以外使わない
だいたいTAが特殊化される可能性があるだろ

439 名前:デフォルトの名無しさん [2019/04/30(火) 10:16:07.47 ID:5viqjSMx.net]
8bitや16bitのintしか使えない環境で、
32bitなどの大きな数を扱うにはどうすれば良いですか?
変数をいくつかつなげて大きな数を表現できないかと思っているのですが、やり方が分りません。
ご存知の方いらっしゃいましたら教えて頂けると嬉しいです。

440 名前:439 [2019/04/30(火) 10:20:33.67 ID:5viqjSMx.net]
補足させて下さい。
足し算、引き算は出来るようにしたいです。
可能でしたら、掛け算や割り算もできると助かります。



441 名前:デフォルトの名無しさん mailto:sage [2019/04/30(火) 10:25:07.05 ID:l5C1eDEl.net]
多倍長演算で検索

442 名前:デフォルトの名無しさん mailto:sage [2019/04/30(火) 10:45:28.19 ID:Cm5pFeJF.net]
>>438
> だいたいTAが特殊化される可能性があるだろ
なるほどそりゃそうか、サンクス

443 名前: mailto:sage [2019/04/30(火) 11:43:40.55 ID:iYYZTFZo.net]
>>439-440
https://mevius.5ch.net/test/read.cgi/tech/1434079972/51
近々、委譲をやめて継承に戻すつもりです
あと掛け算はkaratsubaを適用できる目処がたちました
x64 に特化してインラインアセンブラ化することも考えています

444 名前:はちみつ餃子 mailto:sage [2019/04/30(火) 12:03:49.54 ID:MGpUBTsC.net]
karatsuba はかなり桁数が多いときじゃないと効果がないとも聞くけど

445 名前: mailto:sage [2019/04/30(火) 12:09:22.58 ID:iYYZTFZo.net]
>>444
多分それは乗算FFTのことかと

446 名前:デフォルトの名無しさん mailto:sage [2019/04/30(火) 12:28:54.66 ID:44LYo/LT.net]
>>439
stdint.h で int_least32_t とか使えるのでは?

447 名前: mailto:sage [2019/04/30(火) 13:43:58.68 ID:iYYZTFZo.net]
>>446
8bit/16bit CPU で int_least32_t とかはそもそも存在しないのでは?

448 名前:デフォルトの名無しさん mailto:sage [2019/04/30(火) 14:19:40.82 ID:44LYo/LT.net]
>>447
「8bitや16bitのintしか使えない」を見て long や long long はもっと大きいんじゃないの?と思ったんだよ。
「整数型」の意味で"int"って書いてたんなら、確かに存在しない環境のことを言ってるのかもしれない。
その場合は ISO C/C++ の LONG_MAX の最低絶対値の要求に準拠できないってことになるんだけど。

449 名前:デフォルトの名無しさん mailto:sage [2019/04/30(火) 14:19:47.17 ID:gDkH0fQs.net]
8bit pic用XCでもlongは32bitなのに

450 名前: mailto:sage [2019/04/30(火) 15:03:05.44 ID:iYYZTFZo.net]
>>449
それはそれですごいインプリメンテーションですね…
8 bit PIC で 32bit int がさくさく書けちゃうとは、そのインプリメンターは根性がありますね、それか頭のねじが何本か外れていて「無理を無理と思わない人」とか…



451 名前:デフォルトの名無しさん [2019/04/30(火) 15:29:16.24 ID:0LsajAP1.net]
shortは16bit固定でlongは32bit固定でしょ。何言ってんの?

452 名前:デフォルトの名無しさん mailto:sage [2019/04/30(火) 16:18:35.89 ID:coQMvXAj.net]
>>451
いや、お前こそ何を言ってるんだ?

453 名前: mailto:sage [2019/04/30(火) 16:37:10.66 ID:iYYZTFZo.net]
>>451
残念でした、short も long もインプリメンターが好きに実装していいのですっ!きりっ!

454 名前:さまよえる蟻人間 mailto:sage [2019/04/30(火) 16:45:08.36 ID:lzNlO/OB.net]
>>451
64-bit Linux でsizeof(long) が8だった。移植がある場合は<cstdint>使わんとあかん

455 名前:デフォルトの名無しさん mailto:sage [2019/04/30(火) 17:46:03.06 ID:bcA0O1+B.net]
intが16bitならISOの規格は満たしてることになるかな。

32bit以上の長い整数はクラスと演算子オーバーロードで誤魔化すか。
頑張ってもリテラル表記もダメだろうから、使い勝手は悪いよな。

456 名前:デフォルトの名無しさん [2019/04/30(火) 19:51:46.33 ID:tnl21ewQ.net]
>>451
うろ覚えだが
VC Win32bit: int 32bit long 32bit pointer 32bit
gcc Linux32bit: int 32bit long 32bit pointer 32bit -ここまでは同じ

VC Win64bit: int 32bit long 32bit pointer 64bit -int64_tで64bit整数
gcc Linux32bit: int 32bit long 64bit pointer 64bit

457 名前:デフォルトの名無しさん mailto:sage [2019/04/30(火) 20:17:37.41 ID:YvhWBPAF.net]
既にLP64とかLLP64とかの呼び方が存在するんだから、そっちを使おうよ
https://ja.wikipedia.org/wiki/64%E3%83%93%E3%83%83%E3%83%88#64%E3%83%93%E3%83%83%E3%83%88%E3%83%87%E3%83%BC%E3%82%BF%E3%83%A2%E3%83%87%E3%83%AB

458 名前:デフォルトの名無しさん mailto:sage [2019/04/30(火) 20:34:29.38 ID:4LCMFhXh.net]
厳密なbit長が必要なときにintだのlongだの使っちゃ駄目よ

459 名前:デフォルトの名無しさん mailto:sage [2019/04/30(火) 20:56:09.36 ID:ba2OmOyM.net]
じゃあ何を使えばいいの?

460 名前:デフォルトの名無しさん mailto:sage [2019/04/30(火) 20:59:46.66 ID:jq/I62+g.net]
int_leastシリーズでは?



461 名前:デフォルトの名無しさん mailto:sage [2019/04/30(火) 21:02:03.72 ID:tJFiug19.net]
intの配列のラッパーのようなものから再発明すりゃーいい

class Bignumber{
int number[4];

Bignumber(const String num){
for(int i=0; i<4; i++){
number[i] = //考えるのが面倒臭い
}
}

Bignumber operator+(){
//以下、延々とオペレータオーバーロードが続く
}

};

462 名前: mailto:sage [2019/04/30(火) 21:02:11.05 ID:iYYZTFZo.net]
>>459
int64_t とか int32_t とか cstdint の面々を使うしかないでしょうね…私もデフォでそうするようになりました

463 名前:デフォルトの名無しさん [2019/04/30(火) 21:08:03.86 ID:0LsajAP1.net]
あ…ありのまま 今 起こった事を話すぜ。
平成の終わりにいろんな奴からshort/longに対する認識の誤りを指摘される恥辱を味わった。
何言ってるかわからねーと思うが(以下略

464 名前:デフォルトの名無しさん mailto:sage [2019/04/30(火) 21:08:35.71 ID:QYmLdpSV.net]
なんかもうビットという表現すら無くそうとしてるんじゃなかった?

465 名前:デフォルトの名無しさん mailto:sage [2019/04/30(火) 21:19:14.38 ID:l5C1eDEl.net]
制限された環境で使える多倍長整数のライブラリくらいいくらでもありそうだけど

466 名前:デフォルトの名無しさん mailto:sage [2019/04/30(火) 21:42:28.23 ID:ba2OmOyM.net]
>>462
なるほど、cstdint ですか!
教えてくださりありがとうございます

467 名前:デフォルトの名無しさん mailto:sage [2019/04/30(火) 23:24:19.16 ID:xHYWEb3z.net]
ビット数を付けるのは、MISRA-C で決まっているだろ

int8, 16, 32
uint8, 16, 32

468 名前:デフォルトの名無しさん mailto:sage [2019/05/01(水) 00:05:54.61 ID:rGIFhODV.net]
C++の規格上はintは16 bit以上(ターゲットのアーキテクチャで一番自然なサイズ
、longは32 bit以上
だったと思った

469 名前:デフォルトの名無しさん mailto:sage [2019/05/01(水) 06:23:13.87 ID:EdGuPz7E.net]
class ClassA
class ClassB: public ClassA
class ClassA::ClassC

のときに、ClassBはClassAのサブクラスと言いますがClassCはなんと呼ぶものですか?

470 名前: mailto:sage [2019/05/01(水) 06:32:09.33 ID:JcO9/TOD.net]
>>469
>class ClassA::ClassC
この意味はなんですか?



471 名前:デフォルトの名無しさん mailto:sage [2019/05/01(水) 06:32:44.82 ID:TS5dpT59.net]
基底クラス
スーパークラス
親クラス
ベースクラス

472 名前:デフォルトの名無しさん mailto:sage [2019/05/01(水) 06:56:41.43 ID:q4ZM9Khf.net]
細かいことを言えば、規格準拠の処理系でも
int32_t (ピッタリ32bit) が定義されるとは限らないのね。
int_fast32_t, int_least32_t なら定義される。

8bit単位じゃないCPUへの配慮らしいから、
普通の(この表現も危険だけど)コンピュータを使う分には
int32_t があると仮定して書いてもたいがい大丈夫だろうけど。
コンパイルエラーが出るから出たら対処、で十分かと。

473 名前:デフォルトの名無しさん mailto:sage [2019/05/01(水) 07:06:00.95 ID:EdGuPz7E.net]
>>470
クラス内で定義したクラスです

class ClassA {
public:
...
private:
class ClassC;
ClassC * C;
}

class ClassA::ClassC {
...
}
の場合class ClassA::ClassC からClassA::を取るとコンパイルが通りません

474 名前:デフォルトの名無しさん mailto:sage [2019/05/01(水) 07:25:40.44 ID:shCLaGGL.net]
「プログラミング言語C++」だと、入れ子クラス(nested class)とか
メンバクラス(member class)とか呼んでるみたい。

475 名前:デフォルトの名無しさん mailto:sage [2019/05/01(水) 07:36:13.31 ID:EdGuPz7E.net]
おお、なるほど
ありがとうございます

476 名前:デフォルトの名無しさん mailto:sage [2019/05/01(水) 09:29:42.19 ID:HwrGV3PF.net]
内部クラス(inner class)もよく聞くけど調べたらJava用語っぽいな

477 名前:デフォルトの名無しさん mailto:sage [2019/05/01(水) 10:28:09.06 ID:imZnb7dZ.net]
Inner Class、Java用語なのか。そう呼んじゃってたわ

478 名前:デフォルトの名無しさん mailto:sage [2019/05/01(水) 17:22:15.78 ID:Ul5/0sra.net]
今よみがえる構造体ネストの悪夢

479 名前:はちみつ餃子 mailto:sage [2019/05/01(水) 17:31:05.65 ID:Gk4iJJA0.net]
>>473-474
nested class は仕様にあるので、
これが公式な用語と思って良いみたいだね。

480 名前:デフォルトの名無しさん [2019/05/01(水) 19:23:34.42 ID:DLNQH846.net]
以前、「完全さを求めるあまり今存在する良い物を犠牲にしてはならない」という趣旨のことわざをBBCハードトークで仄聞したのだが、原典はなんだろうか?



481 名前: mailto:sage [2019/05/01(水) 19:59:09.50 ID:JcO9/TOD.net]
>>480
ググってヒットしたもののうち、これについてめぐらせています(ことわざとは関係ありません…)
www.kt.rim.or.jp/~hisashim/gabriel/WIB.ja.html
この人(原著者)、最後まで間違ったままでいるような気がしてなりませんが、実際のところどうでしょうか

482 名前:デフォルトの名無しさん mailto:sage [2019/05/01(水) 22:03:28.27 ID:EdGuPz7E.net]
>>479
ありがとう

483 名前:デフォルトの名無しさん mailto:sage [2019/05/04(土) 17:19:13.49 ID:x8LtSB02.net]
>>480 https://en.wikipedia.org/wiki/Perfect_is_the_enemy_of_good

484 名前:デフォルトの名無しさん [2019/05/06(月) 08:44:53.70 ID:Omhj+R8I.net]
ストリームの遅さは凄い凄すぎる。
ほとんどの場合、遅くても問題ないということはわかる。
でもあそこ迄遅くする必要があったのだろうか。

485 名前:デフォルトの名無しさん mailto:sage [2019/05/06(月) 10:41:12.07 ID:ZJRraXBB.net]
突然何?

486 名前:デフォルトの名無しさん mailto:sage [2019/05/06(月) 12:17:09.96 ID:jqdyfBGc.net]
3.5  ストリーム
ttps://sicp.iijlab.net/fulltext/x350.html

これだろう
理想的にはこうなるべきだが、技術的には未だに追いついてないだけであり、将来的には解決される

なのでC++では他のどの言語も真似してない<<や>>がある
逆に言うとストリーム・プログラミングが主流になったらC++が主流の座に返り咲く

487 名前:デフォルトの名無しさん mailto:sage [2019/05/06(月) 15:05:44.09 ID:XjarcZ9f.net]
今やどの言語もprintfのような書式付き文字列を指定する方式に回帰した(jsすら!)。
少なくとも書式付き出力に限れば、ストリームはプログラミング言語の中ではもう淘汰されてしまったんだと思うよ。
早いとこ、string::format()とかbasic_ostream::format()とか作ってほしいわ

488 名前:デフォルトの名無しさん [2019/05/06(月) 15:24:11.52 ID:ecbY6TsO.net]
多言語対応するためにはC#みたいに %1, %2みたいに引数を番号で指定できる書式じゃないとダメでしょ。

489 名前:デフォルトの名無しさん mailto:sage [2019/05/06(月) 15:30:05.12 ID:HRNpJ9Fc.net]
ストリームの精神はrangeに受け継がれて生き残るよ
だから書式はそろそろ負けを認めよう

490 名前:デフォルトの名無しさん mailto:sage [2019/05/06(月) 16:03:09.57 ID:ZJRraXBB.net]
どうしてprintf使わないの?



491 名前:デフォルトの名無しさん mailto:sage [2019/05/06(月) 16:28:48.00 ID:YSlWnmwv.net]
オーバーロードできないから

492 名前:デフォルトの名無しさん mailto:sage [2019/05/06(月) 16:36:53.99 ID:oGUqqIoM.net]
<<には<<なりの良さがあると思うので、ストリームというより、stringがoperator <<をサポートすれば良いと思う。

493 名前:デフォルトの名無しさん mailto:sage [2019/05/06(月) 16:40:04.95 ID:DF3zK1Xx.net]
文字列操作するためのインターフェイスとしては最悪だよ。
考えた奴は自分では絶対使わないで人に使わせるだけのタイプだろうな。

494 名前:デフォルトの名無しさん mailto:sage [2019/05/06(月) 16:45:40.32 ID:Yv9FD/Sb.net]
そもそもだけど、なんで文字って表示されるのに
<< とか %s とかこういうのが必要なの?
どの言語でもprint(a);だけで表示させればよくない?aが文字列でも整数でも小数でもさ。
引数で判断してくれよ。

495 名前:デフォルトの名無しさん mailto:sage [2019/05/06(月) 16:51:17.77 ID:oGUqqIoM.net]
>>493
え、そう?
文字列を連結する時に、+=と+を使い分けるより<<だけですむ方が楽だし、連結する順番も自明だし結構良くない?
std::string str;
str << "hoge" << 123 << ".txt";
みたいな。

496 名前: mailto:sage [2019/05/06(月) 17:27:51.75 ID:vu8V8zIe.net]
>>492
それは私も考えていました、cerr に都度吐いているメッセージを、もう一度プログラムの最後にまとめて吐きなおす、とかをやってみたいんです…

497 名前:デフォルトの名無しさん mailto:sage [2019/05/06(月) 17:37:23.51 ID:QULX0INn.net]
>>495
そのやり方は引数の順序を変えられないから語順が違う言語間での翻訳で困る

498 名前:デフォルトの名無しさん [2019/05/06(月) 17:37:57.33 ID:ecbY6TsO.net]
コンストラクタの引数に出力先stringインスタンスを渡すostream派生クラスを作ればいいじゃない。
string str;
hogestream sstr(str);
sstr << "hoge" << 128;

499 名前:デフォルトの名無しさん mailto:sage [2019/05/06(月) 17:42:30.68 ID:B4KNKrTg.net]
別にstringstreamで良いじゃない

500 名前:デフォルトの名無しさん mailto:sage [2019/05/06(月) 17:42:46.83 ID:B4KNKrTg.net]
別にstringstreamで良いじゃない



501 名前:デフォルトの名無しさん [2019/05/06(月) 18:13:11.14 ID:L6nFhRY+.net]
iostreamの<<はC++の黒歴史の一つだね

502 名前:はちみつ餃子 mailto:sage [2019/05/06(月) 18:19:09.50 ID:K/rO19sE.net]
stream の機能はいらんからとにかく文字列に差し込むだけ出来ればいいってのなら
単に operator<< を定義すれば出来るけど……。

https://wandbox.org/permlink/dIkEh0LDZEixGoiF

503 名前:デフォルトの名無しさん [2019/05/06(月) 18:27:12.43 ID:ecbY6TsO.net]
>>499,500,501
ostream派生クラスじゃなくて独自のクラスのほうが軽量でいい。
stringインスタンスへのポインタのほかに、数値書き込み時の進数設定(oct,dec,hexを覚えておく)などをメンバ変数に持てばOK。

504 名前:デフォルトの名無しさん mailto:sage [2019/05/06(月) 18:58:24.90 ID:oGUqqIoM.net]
>>502
をを、なるほど、これは素晴らしいw

505 名前:デフォルトの名無しさん mailto:sage [2019/05/06(月) 21:02:54.05 ID:ZJRraXBB.net]
>>492
stringstream・・・

506 名前:デフォルトの名無しさん mailto:sage [2019/05/07(火) 19:51:10.38 ID:FbrTB0S1.net]
basic_ostream使えよっていつも思う
なんで決め打ちするのかわからない

507 名前:デフォルトの名無しさん [2019/05/08(水) 21:52:50.27 ID:iQQm+nuQ.net]
to_charsというものをみつけました。

508 名前:デフォルトの名無しさん mailto:sage [2019/05/09(木) 18:03:02.17 ID:PdPEbd3c.net]
b配列全てをa配列のケツにコピーするとき

std::vector<char> a;
char b[]={0,1,1,3,4};
a.insert(a.begin(),&b[0],&b[sizeof b]);

これでいいの?

&b[sizeof b]
これが死ぬほど気持ち悪いんだけど

509 名前:デフォルトの名無しさん mailto:sage [2019/05/09(木) 18:18:44.76 ID:JXKWFyOS.net]
そんな気色悪い書き方しなくてもこれでいいよ
a.insert(a.end(), std::begin(b), std::end(b));

510 名前:デフォルトの名無しさん mailto:sage [2019/05/09(木) 18:25:51.81 ID:PdPEbd3c.net]
なるほど!ありがとう



511 名前:はちみつ餃子 mailto:sage [2019/05/09(木) 18:44:16.05 ID:IVoLxnXn.net]
>>508-509
std::copy に back_inserter を渡す方が効率的という豆知識。

512 名前:デフォルトの名無しさん mailto:sage [2019/05/09(木) 18:53:31.44 ID:vbHvKAwn.net]
>>511
insertのが速いんでね?
resizeしてmemcpyになるはず

513 名前:デフォルトの名無しさん mailto:sage [2019/05/09(木) 23:40:45.34 ID:q7ofaYCv.net]
アルゴリズムよりvector::insertのほうが実装による最適化の余地は大きそうだな

514 名前:デフォルトの名無しさん mailto:sage [2019/05/10(金) 00:47:30.50 ID:5C678nxv.net]
ポインタがイテレータとして渡された時点で相手が連続バッファだってわかるからね

515 名前:デフォルトの名無しさん mailto:sage [2019/05/10(金) 11:00:01.95 ID:KAkBQh2y.net]
&b[sizeof b]でもstd::end(b)でもやってることは変わらないんだけどな
見映えは重要だな

516 名前:デフォルトの名無しさん mailto:sage [2019/05/10(金) 11:08:59.15 ID:pPfi71KH.net]
sizeof bじゃcharでしか使えないんで、そういう意味でもイケてないかも

517 名前:はちみつ餃子 mailto:sage [2019/05/10(金) 12:01:59.87 ID:g2QrvVju.net]
>>515
見栄えというか、名前が付いているってのはそれだけで単純にわかりやすいな。
(名前が妥当であれば。)

518 名前:デフォルトの名無しさん mailto:sage [2019/05/10(金) 19:02:43.61 ID:UhKi+qPE.net]
嫌儲で、東京五輪チケットのソースコードが出てるけど
C++使ってるお前らなら、こんなソースコードじゃないよね?
https://gogotsu.com/wp-content/uploads/2019/05/01-9.jpg

519 名前:デフォルトの名無しさん mailto:sage [2019/05/10(金) 19:05:10.83 ID:curN/h5M.net]
>>518
サーバーサイドあまりやってないけどこんな泥臭い書き方するのか

520 名前:デフォルトの名無しさん mailto:sage [2019/05/10(金) 19:05:16.55 ID:TAwz/zT/.net]
javascriptやん



521 名前:デフォルトの名無しさん mailto:sage [2019/05/10(金) 19:36:57.50 ID:tfYAY6pz.net]
こんなもんだろ
SIerが間違ってコンシューマ系のWeb制作を請けてしまうとこんな感じになる

522 名前:デフォルトの名無しさん mailto:sage [2019/05/10(金) 21:47:05.61 ID:oOPMkjEw.net]
てかこんなもの韓国に出すのね
安くなさそう
ってもしや北の方?

523 名前:デフォルトの名無しさん mailto:sage [2019/05/10(金) 21:53:19.07 ID:oOPMkjEw.net]
parseInt(Num).lengthって動かなそう

524 名前:デフォルトの名無しさん mailto:sage [2019/05/10(金) 21:57:58.16 ID:TAwz/zT/.net]
ほんまやw桁でも返ってくるのかと思ったがundefinedじゃんかw

525 名前:デフォルトの名無しさん mailto:sage [2019/05/10(金) 22:59:11.84 ID:HK1/2Yro.net]
型に無駄にこだわった結末がstreamと知っとくのは重要。
あの間違いを覚えとけ。

526 名前:デフォルトの名無しさん mailto:sage [2019/05/10(金) 23:25:31.58 ID:u3uVdMgu.net]
ゲームのシーンを管理するクラスとシーンクラスがあり、管理するクラスはシーンクラスを保持しています
シーンクラスから管理クラスのシーンチェンジを行う関数を呼び出したいのですがどうやったらいいでしょうか
シーンクラスが管理クラスのインスタンスを持ちたくありません

527 名前:デフォルトの名無しさん mailto:sage [2019/05/10(金) 23:30:31.35 ID:0WVRNDv3.net]
>>518
webにあげるなら難読化まではしないにしても最低限圧縮するよね

528 名前:デフォルトの名無しさん mailto:sage [2019/05/10(金) 23:55:31.69 ID:tshfuAdx.net]
>>526
シーンクラスに管理クラスへの参照(ポインタ)を持たせればいいんじゃないのか

529 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 03:16:15.93 ID:xsmcwCcm.net]
早速情報漏洩やらかしたの?

530 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 10:30:07.92 ID:f5HniSEP.net]
>a.insert(a.begin(),&b[0],&b[sizeof b]);


これ、添字オーバーしてるけどメモリエラーとかにならないの?



531 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 10:54:36.87 ID:RjxICFG6.net]
>>530
イテレータ範囲のendは配列の場合最後の要素の次のアドレス
それは普通の実装ではアクセスされることはない
規格的にも最後の次の要素へのポインタだけは未定義じゃない

532 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 11:55:52.83 ID:Y1ZlGg0p.net]
>>530
アクセスしてるからダメそう

533 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 12:40:07.82 ID:3XjGQ6E0.net]
[]はただのアドレス計算じゃん

534 名前:デフォルトの名無しさん [2019/05/11(土) 12:42:52.29 ID:DVWj7ai3.net]
&p[N]はp + Nと同じって規格にあったっけ?

535 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 12:44:31.45 ID:RjxICFG6.net]
確かに&b[sizeof b]はデリファレンスしてるわ
これはあかんそう

536 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 12:56:49.51 ID:FaKAPAIh.net]
>>533
a[i]は a+i ではなく *{a+i}

537 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 13:12:17.25 ID:2v2BzL6t.net]
経験上出来るプログラマーは言語オタクが多いイメージ?(ただし浅い)

538 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 18:44:16.82 ID:fU686pnk.net]
&*pはデリファレンスなしで単にpと評価するってどっかで特別に決められてなかったっけ?

539 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 06:58:46.18 ID:x4ccFx6b.net]
>>530
int a[5];
int *p = &a[5];
というコードが有効、つまり
「配列の最終要素の次の要素」(現実には存在しないデータ)のアドレスを取れる、
という仕様から、この場合は許される、というのが >>531 の指摘か。
一般的に >>538 が成り立つなら便利だけど、調べ切れなかった。

流れの元になった >>508 を見返したら、
a.insert(a.begin(),&b[0],&b[sizeof b]);
これだと b[] の内容はベクタ a の先頭に挿入されちゃうね。

540 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 07:43:52.68 ID:2y1+p9UL.net]
>>530
>>a.insert(a.begin(),&b[0],&b[sizeof b]);
>>

>これ、添字オーバーしてるけどメモリエラーとかにならないの?

508だけど、これは
a.insert(a.begin(),&b[0],&b[sizeof b]);

こっちの間違いです。ごめんなさい。
a.insert(a.end(),&b[0],&b[sizeof b]);

&b[sizeof b]);
この部分は

b+sizeof(b)
これなら問題ない感じ?
どちらでも動くけど、たまたまいてる可能性捨てきれないから不安なんだよね。

実際のソースはsizeof(b)がbに格納されているデータのサイズを示していて、

char b[256];
int s = read( fd, b, sizeof b);

a.insert(a.end(),&b[0],&b[s]);

みたいな感じで書いてます。
んで、b最大数来た場合にちゃんと動くか気になったというわけっす。

int s = read( fd, b, (sizeof b)-1);
無難にこれの方がいいですかね?



541 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 11:19:05.13 ID:k8bUqGvO.net]
>>539
>int *p = &a[5];
これは多分だめで、ポインタ値としての存在なら許される
int *p = a+5;

542 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 11:53:09.39 ID:nuZIUjqi.net]
ややこしいからoperator <<を定義しようw

543 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 15:25:00.10 ID:8/5ODvoI.net]
VC++だと
std::vector<T> a; &a[a.size()]はoperator[]のassertionに引っかかるね

544 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 22:25:11.86 ID:yr8YjJOU.net]
std::transformって並列処理されてますか?

545 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 23:20:05.82 ID:jFoQmc6B.net]
c++17のparallel版使えば並列実行されるかもしれない

546 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 01:24:36.27 ID:RKe/NLvg.net]
visual studioでC++17にしたけどいまいち並列版の使い方が分からなかった
普通にfor回すのと、OpenMP使ってfor並列化するのと、transform(非並列)使うの比較したら
OpenMP>普通にfor≧transform だった

547 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 20:49:38.54 ID:YS57w6Jq.net]
おとなしくpthead使えよ。

548 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 20:56:12.40 ID:WUu3P+2G.net]
非並列使ったならそりゃそうなるだろ

549 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 02:02:33.17 ID:1v50lv4I.net]
struct AとAを継承したstruct Bがあって
Aの内容をBの共通部分にコピーする方法ってないですか?
A a;
B b = a;
みたいにしたいんですけど親を派生先にキャストはできないので困ってます

550 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 02:06:57.91 ID:mZDDPYlt.net]
struct B : public A
{
B* operator=(const A& a){ this->hoge = a.hoge;}
};
これ初期時にも使えるんかな



551 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 02:25:05.62 ID:1v50lv4I.net]
コピーコンストラクタが実装できたとしてメンバ変数は1個ずつコピーするしかないですかね

552 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 02:28:08.55 ID:mZDDPYlt.net]
スライシングをさせるとか?
安全に?スライシング起こす方法ってあったっけな?
なんか危ういからやろうともしなかったが

553 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 06:25:17.13 ID:/dAesd8e.net]
cloneメソッド用意するとか

554 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 06:31:42.80 ID:ebJ8HHSX.net]
>>549
初期化時は普通にコンストラクタ初期化リストで A(a) って書けるでしょ。残りのメンバをどうするのか知らんけど。
代入なら static_cast<A&>(b) = a か b.A::operator=(a) で済みそう。

555 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 06:33:37.60 ID:C3C4SHXA.net]
普通にコンストラクタかオペレーター作ればいいんじゃね
B::B(const &A)
B::operator =(const &A)
A::operator B()
雑なキャストでよければdynamic_cast<A>でおk

556 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 06:38:27.18 ID:C3C4SHXA.net]
↑dynamic_cast<B>の間違い
B b = dynamic_cast<B>(a);

557 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 11:40:14.21 ID:74mGoL8y.net]
>>551
sturctでまとめればデフォルトコピーコンストラクタが使えるけどね。
あとはintとかPODオブジェクトだけだったらmemcpyしちゃうとかも、俺はたまにやるなw

558 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 17:20:00.24 ID:PgzYowjZ.net]
549です
解決しましたありがとうございます

以下のように書いたら思っていたことが出来ました
(派生先のコンストラクタで親のデフォルトコピーコンストラクタ呼べるの知りませんでした)
代入は現状使う予定がないので大丈夫です
B::B(const &A a) : A(a) {}

559 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 18:17:29.46 ID:mr2QiBZl.net]
その内容だったら=defaultでいいよ

560 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 21:32:58.41 ID:/aEDSlbd.net]
引数付きコンストラクタって、=default使えるの?



561 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 22:09:55.18 ID:jJO9F8Je.net]
使えないよね
うかうかっと読み過ごしてたわw






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

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

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