C++相談室 part142

■ このスレッドは過去ログ倉庫に格納されています
2019/04/01(月) 22:17:05.84ID:wmfpIKt/
次スレを立てる時は本文の1行目に以下を追加して下さい。
!extend:on:vvvvv:1000:512

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

前スレ
C++相談室 part137 (正しくはpart138)
http://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/

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

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

----- テンプレ ここまで -----
-
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
2019/04/07(日) 21:29:30.01ID:NOCaxMAw
OSつったって、どのレベルのこと言ってるかによってかわるしな
電源ONから自分でブートして起動できるレベルのものいってるならC+アセンブラ一択だし
ブラウザで仮想環境動けばいいぐらいなら、まあいろいろ変な言語系の実験できるけど
それ実際的な意味あるの?っていう話になってくるし・・
というわけでブラウザで C++ の実行環境を動かしてみるっていうのはどうだろう?
emscripten のオルタネートみたいな・・
2019/04/07(日) 21:58:15.58ID:GYBhj6UR
>>100
事実でもなんでもない勝手な想像を根拠とか言われても反論できんわ。
2019/04/07(日) 22:14:49.77ID:AvqFg232
>>110
> TeXの前にも色々プログラム書いてる
> 大学で俺ならもぅとうまくやれるとアセンブラとコンパイラを書き換える決心した
> あとTeX自体は今の基準だとそんなにでかく無い
> ソースは24ks程度で半分以上はweave出処理される解説だし
の中に事実でない箇所あるの?
2019/04/07(日) 22:51:26.81ID:KMX3xd+u
ソースがわからん…
113デフォルトの名無しさん
垢版 |
2019/04/07(日) 23:51:05.57ID:WwvhmWfk
ソース出せと言った人が、ソースが出てきたら、ソース出すのは反則と言い出したって流れかな。
2019/04/08(月) 07:00:51.66ID:lSCOP8uB
どうやったらそんな頓珍漢な解釈ができるのか…
2019/04/08(月) 09:33:48.87ID:gQiHeALa
>>113
ソース出せと言った人が(>>96)、ソースが出てきたら(>>97)、ソースじゃなくて根拠(?)に反論しろと言い出した(>>98,>>100,>>111)って流れかな。
2019/04/08(月) 10:03:38.99ID:xZraFIBG
クソどうでもいい話にこだわるな
2019/04/08(月) 12:15:44.74ID:lSCOP8uB
引っ込みつかなくなってるんだろww
話の内容変わってるし
2019/04/08(月) 13:16:50.24ID:/rKIWzXZ
>>109
ブラウザの仮想環境とは何?
osなのでcpuが見えてて欲しいのだけど
ひとまずqemuで始めるつもりです
2019/04/08(月) 14:17:17.10ID:B03nMGGM
ビャーネストロヴストルップ先生のプログラミング入門買ったんだけど、読破した人っている?
2019/04/08(月) 14:40:49.88ID:yFytPSzO
いないんじゃあないの
本当に読破したと言える人間は日本人で20人しかいないと聞いた
2019/04/08(月) 16:02:36.28ID:B03nMGGM
>>120
毎日30分読むことにした
C++は仕事で使ったことない
2019/04/08(月) 17:17:23.27ID:nF+E8GMD
>>108
まずベアメタルに対応してる必要があることを考えると、選択肢はそうないのでは?
2019/04/08(月) 18:57:24.65ID:j9hUx87z
>>119
もはやそれは「国語辞典」読破した奴おる?ってのに近い。
2019/04/08(月) 19:33:22.28ID:RJuwHc+q
ストラウストラップの『プログラミング入門』って
日本語版で1100ページもあるんか。

このとっつぁん、厚い本を書きまくっとるなぁ。
そもそもプログラミング入門のお題でそんなに語るネタあるんか。
2019/04/08(月) 20:02:21.26ID:lSCOP8uB
実は愛読書が辞書という人はそれなりに居たりするw
https://togetter.com/li/1119810
126124
垢版 |
2019/04/09(火) 17:49:07.46ID:ZAJK3xJP
>>119
なんか『C++によるプログラミングの原則と実践』て本が
同じ原書の新版の和訳みたいだけど。
おまけに『ストラウストラップのプログラミング入門』よりお安い。
2019/04/10(水) 00:37:04.74ID:weZfZZPq
この界隈では「入門」といいながらどうみてもマニア向けの本が多いよね
2019/04/10(水) 00:51:58.60ID:uYzixBoY
自分が読んだ本は全て入門書扱いする人多いよね
2019/04/10(水) 01:02:13.57ID:On8YhqHc
上級者の評価が高い入門書ってのは本質や精神を理解し免許皆伝まで至るような道の第一歩であるものだもの
素人が何も理解しないままこうすればこうなるでおいしいとこだけいきなり得ようとするようなハウツー本とは違う
2019/04/10(水) 09:04:52.41ID:ryP68qDF
「本質」を語るやつは大抵アホ
2019/04/10(水) 10:05:45.31ID:cwT5VSoK
結論のでないどうてもいい話題に食い付くやつはアホ
2019/04/10(水) 11:09:30.74ID:dQX53bJY
同価格帯のXeonとThreadripperではどっちの方がコンパイル速いか知ってる人いますか?
2019/04/10(水) 11:21:44.56ID:vfHnS1kx
C++はF35にも使われている戦争の兵器
C++erを見たら悪魔の手先と思え!
2019/04/10(水) 11:25:06.35ID:dQX53bJY
それかCかC++のソースコードのコンパイルのベンチマークをCPU別で取っているサイトがあれば教えてほしいです
2019/04/10(水) 19:23:50.56ID:xcPdAU38
effective c++読めるくらいになればまあその先に薦める本や文献なんかは結構あるが、
そこまでにどういう本勧めればいいかは相当難しい。
とりあえずcからとか言いたいとこだがそれからeffective c++までの間に読む本としては何が良いのだろうか。
136デフォルトの名無しさん
垢版 |
2019/04/10(水) 19:50:32.44ID:CKpW95z6
https://www.anandtech.com/bench/CPU/1858
こんなページがあるけど。
https://www.reddit.com/r/cpp/comments/6kncnu/compile_speed_or_recent_cpusryzen_surprisingly_bad/
マイクロソフトが悪い、すべてマイクロソフトのせいだという意見も出てるね。
2019/04/10(水) 20:42:17.28ID:P0TERnuJ
タイムマシンって何言語で、書かれてるの?
やっぱりc++
2019/04/10(水) 21:08:53.18ID:EODMjdpe
Objective-Cだろjk
2019/04/10(水) 23:10:10.82ID:dQX53bJY
>>136
ありがとう最新のはこれだった
https://www.anandtech.com/bench/CPU-2019/2223

i9が価格の割に速かったコンパイルはシングルコアの周波数が正義なのか
XeonはマルチCPUするためのものだな
2019/04/10(水) 23:38:55.47ID:57hoitEO
>>135
独習→acceleratedとプレC++11STL(ハーバードシルト)→テンプレート本、くらいを私は歩いてきました…
2019/04/11(木) 00:09:23.85ID:SMdbPkuM
>>135
どの言語でも、言語を学ぶ順番は、
1. 入門書
2. Effective 何々
3. 逆引き・レシピ本
4. (必要なら) メタプログラミング

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

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

もちろん他の言語でも良いけど、
プログラミング全般は、Rubyで学ぶのが、正確で紛れがないし、詳しい本が揃っている
2019/04/11(木) 00:18:20.98ID:+5scCOHz
このご時世に本読んでプログラミング勉強するってあほだろ
2019/04/11(木) 00:27:14.17ID:m6dr6a58
1周回ってきて本になるんだよなあ
2019/04/11(木) 00:36:20.66ID:MrjztWsK
Effective系以上は本でもいいと思う
2019/04/11(木) 00:47:54.22ID:XplD4nHz
少なくともeffective系統読んでもわけわからんレベルの人はまずはしっかりした本を読むべきと思う。
しかしc++は勧めたい本がない。。「独習c++」かな。。いいとは言いずらいがしかしほかに勧めたい本もない。
2019/04/11(木) 01:24:17.64ID:GbgLM3aJ
ネットさえありゃ本なんかいらんだろアホ、と思っていた時期が俺にもありました
実際ちょっと前まではそんな感じだったんだけど、最近は Google のアルゴリズムがポンコツなのか
それの裏をかく技がものすごく洗練されたからなのかしらんが、とにかく検索上位にアホみたいな
ページがひっかかる事が多い上に、ほんとうに必要な情報が見つからないことが多い
特に最近では Python 関係のネット情報はほんとどうしょうもなくぐらい腐ってるな
C++ 関係はまだかなりましな感じだが
147141
垢版 |
2019/04/11(木) 02:06:27.08ID:SMdbPkuM
外人が書いた「Effective 何々」には、良い本が多い

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

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

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

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

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

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

各部分の細かい仕様・バグは、後でよい。
そうしないと、バグってばかりで何も作れない
2019/04/11(木) 03:36:50.02ID:Fl8qN29n
ネットで学ぶのがアホってドワンゴ社員のあいつの主張繰り返すのかよ
誰が仕様書読むんだあほ
2019/04/11(木) 03:41:11.24ID:m6dr6a58
日本語でおk
2019/04/11(木) 06:24:23.60ID:wX/7fvyH
>>141,147
消えろ
2019/04/11(木) 06:54:46.28ID:QTZ5s2CM
>>146
例の医療関係のページビュー稼ぎ対策の影響で個人が細々とやってる良質なサイトが引っ掛かりにくくなってる
って新聞に書いてあったな
2019/04/11(木) 09:44:13.72ID:vYC2bkpl
具体的にC++でいいサイトはどこ
2019/04/11(木) 10:06:20.10ID:m6dr6a58
cpprefjp
2019/04/11(木) 11:14:37.00ID:Kj8z6I1B
>>146
お前のいうネットってqiitaとかだろ?
だからダメなんだよお前はw
155デフォルトの名無しさん
垢版 |
2019/04/11(木) 18:46:33.30ID:Ukf06xgg
cpprefjp一択。
2019/04/11(木) 19:07:44.03ID:XplD4nHz
リファレンスだけ並べたクソサイトじゃねーかw
2019/04/11(木) 19:27:25.55ID:yce5TkL4
この手のランキングは本当に十人十色だな。
人気言語ランキングC++3位
https://www.tiobe.com/tiobe-index/
2019/04/11(木) 19:30:26.87ID:m6dr6a58
リファレンスがあれば十分だわ
応用は頭使え
2019/04/11(木) 19:38:13.25ID:XplD4nHz
話にならん。。

とりあえずここら辺から始めるのが良いか。
https://www.tutorialspoint.com/cplusplus/cpp_quick_guide.htm
2019/04/11(木) 19:48:35.94ID:TKLgRtKS
cpprefjpは仕様の成り立ちから使用例まで載ってる
2019/04/11(木) 19:54:53.54ID:a2+oAAfA
cppreference.comの方が好き
2019/04/11(木) 19:58:11.07ID:m6dr6a58
cpprefjpは左の文字が小さすぎるのをなんとかしてほしい
2019/04/11(木) 20:14:39.34ID:4WryY6sc
Ctrl+ホイールで画面拡大縮小
2019/04/11(木) 20:36:15.86ID:m6dr6a58
それはおかしい
2019/04/11(木) 20:40:05.89ID:mnND5pqz
>>145
独習の後は同じくハーバートシルトの stl 本(ただしC++11じゃない) でしょうけれども…
166デフォルトの名無しさん
垢版 |
2019/04/11(木) 21:41:21.15ID:Ukf06xgg
【小説】ストリームの悪魔
167デフォルトの名無しさん
垢版 |
2019/04/11(木) 21:42:54.19ID:Ukf06xgg
>>157
でも、C++17だと圏外かも。
168デフォルトの名無しさん
垢版 |
2019/04/11(木) 21:49:17.62ID:Ukf06xgg
C++の人気はだいたいWindowsと同期してて、XPで盛り上がり、その後下降して、Windows10発売後ちょっと盛り上がり、その後下降し始め、WSLでまたちょっと盛り上がり、みたいな感じで上下する。
2019/04/11(木) 23:00:30.59ID:Fl8qN29n
>>165
ビャーネストロヴストルップのプログラミング入門はどうですか?
2019/04/11(木) 23:10:49.56ID:Fl8qN29n
>>165
◆QZaw55cn4c さんはプログラマーですか?
2019/04/11(木) 23:16:43.21ID:4rTUFtuy
STLを解説した本として最も優れてるのどれ?
2019/04/11(木) 23:26:14.78ID:m6dr6a58
解説するほどのものか?
2019/04/11(木) 23:29:16.82ID:MrjztWsK
cpprefjpかcppreference.com眺めるのが一番いいのでは
2019/04/11(木) 23:35:00.33ID:Fl8qN29n
>>171
C++標準テンプレートライブラリがおすすめ
2019/04/11(木) 23:36:01.51ID:Fl8qN29n
https://cppmap.github.io/
個人的にはこっちもおすすめ
2019/04/12(金) 00:33:29.09ID:Oce6Eotz
C++ coding standards が、入門書と effective C++の間という感じで良かったのですが、今新品で買いやすい和書の中で同じくらい良い本ありますか
2019/04/12(金) 07:49:20.68ID:iSiavc0f
>>173
それでコードを書けるようになるとは全く思わん。
2019/04/12(金) 08:33:36.67ID:iSiavc0f
「ロベールのC++入門講座」を勧める
2019/04/12(金) 09:37:34.83ID:uO4ZqrOg
コード書くために勉強したことが無い人間とコード書くために勉強した人間に分かれるな
2019/04/12(金) 10:54:15.24ID:+AQGVq0O
RPGのバトルシステムがいつまでたっても出来ない
どうなってんだコレ
2019/04/12(金) 12:39:56.53ID:O/TRJpno
>>180
ドラクエの技術を解説した本を買えば
2019/04/12(金) 13:56:50.34ID:phN3RSne
そこでレポート プログラム ジェネレータを思い出さないと
文句はユニシスに言っとくれ
2019/04/12(金) 16:07:32.84ID:JVT+o1/N
RPGなつかしいなw
知人でそれの専門で仕事やってるやついたが
今ごろどうしているだろうか・・
2019/04/12(金) 16:19:27.39ID:lUKpExyl
>>180
自分が具体的に何を作るのか見えていないとか、自分が何が分からないかがわかっていないとか。
2019/04/12(金) 18:44:05.94ID:+CDO09PL
std::rpgの登場が待たれる
2019/04/12(金) 21:59:51.74ID:9AU6i9F6
>>179
どういう分類か興味がありますね…
2019/04/12(金) 22:35:09.99ID:20VLO3ye
これも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;
}
2019/04/12(金) 23:46:54.37ID:w8o2kbz2
SFINAEを理解してないな?
templateでわざと失敗させるんだぞ
2019/04/12(金) 23:50:14.00ID:WMCXK/Zp
それは関数のオーバーロード(オーバーロード関数)
SFINAEはテンプレートに関わる話
2019/04/12(金) 23:55:37.58ID:yQNXRLnI
SFINAE ていう単語みるたびになぜか
ソフバンの白犬が低い声で「スフィ姉ーーー」て言ってる映像が頭にうかぶ
2019/04/13(土) 00:08:44.65ID:pAXxDbKI
>>188
最初のplusで失敗して、次のオーバーロードを探しに行ってんじゃん。
もし最初でコンパイルエラーなら、このプログラムはコンパイルされないが、SFINAEのおかげでコンパイルエラーが出ない
2019/04/13(土) 00:43:18.21ID:2fZ9oexv
>>186
自分の興味のあることをやっていたら気づいたらコードが書けるようになっていた人と
コードを書けるようになることを目標に勉強をした人
前者は入門の仕方を聞かれると上手く答えられない傾向にある
とりあえず好きなもの作ってみて困ったらリファレンスとかみれば良いんじゃないの?とかは割とガチで言ってる
2019/04/13(土) 01:17:48.59ID:Gm2Aztfm
せやな
なぜそこでロベール!?とか思ったけど、なんか納得した
2019/04/13(土) 02:30:55.25ID:ExcsBrHj
rvalue・lvalueの見分け方について、=の左に書けないならrvalueって考えで良いですかね?
2019/04/13(土) 07:01:49.87ID:bq5Y4VLb
>>194 確かダメじゃないかな。
C の例でアレだけど、配列名 int a[5]; の a は
左辺値だけど代入の左辺に置けない、
「代入不可能な左辺値」というカテゴリになる。

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

…ムーブできるか出来ないかの判断を、左辺値か右辺値か見分けることで
やろうとしてるなら、この説明は循環論法でしかないけどね。
2019/04/13(土) 08:07:08.65ID:odoOG67D
その場で(1つの文の中で)ムーブされ得るやつが右辺値、ぐらいで良いのでは、
と言いたいところだが
 SomeType a = b = 1;
でbあ右辺値なのかと言われるとうーん…
実際bがその場で所有権を失うこともできる(SomeTypeにムーブコンストラが定義されていた場合
のだから当たらずしも遠からずだとは思うが知らん
2019/04/13(土) 09:00:05.96ID:TufrjDxL
てかリファレンスだけ必要な奴はここにそういうことを聞きには来ないだろ。
なんかその辺の感覚がすでにずれてるように思うが。
2019/04/13(土) 09:09:41.91ID:TufrjDxL
>>195
「代入できない」って視点で言えば194で合ってるんでは?
確かに a[0] =5 なんかはできるけど、 a = b みたいにポインタそのものは代入できないわけだし。
2019/04/13(土) 09:48:36.03ID:ubPOLJQD
>>196
右結合なんだから b は左辺値、 b = 1 が右辺値でいいんでは?
200L
垢版 |
2019/04/13(土) 11:50:51.08ID:U0TmzhoK
全く関係ない話になるけど、JNI = Java Native Interface(?) なるものを使えば、
C++で OS 非依存のアプリが作れるんだね。多分。
C++からJavaの任意のメソッドを呼び出せるし、逆も可能なので、
グラフィックをJavaに描かせて、キーやマウスのイベントをJavaからC++に
伝達すればよさそう。すると、LinuxやAndroidで共通に動くC++アプリ(?)
が出来てしまう。wasmも必要ない。
2019/04/13(土) 15:06:42.85ID:nqhK1mlk
>>200
C++の部分はネイティブなのでOSに依存する
2019/04/13(土) 15:20:25.21ID:U0TmzhoK
スマン。CPU毎にバイナリは必要で、
clangに -macrh=xxx-xxx-xxx オプションを指定して CPUやOSを
指定してコンパイルしておくことを想定していた。
ただし、複数のCPU/OS向けのバイナリを1つのAPKにパッケージして、
使用時に自動選択する事が出来るらしい。
2019/04/13(土) 15:31:06.15ID:pwnjfljv
わざわざjavaを使わなきゃいけないのが気にくわない
その場合、javaだけで書くこと以上のメリットある?
2019/04/13(土) 15:32:58.01ID:U0TmzhoK
速度が速い。
2019/04/13(土) 15:33:33.54ID:MSTjQ8pp
てかそれってjavaのアプリ作っているだけじゃ
2019/04/13(土) 15:36:48.83ID:U0TmzhoK
Androidアプリは、Javaで書くのが基本とされてるけど、
Chromeブラウザなんかはきっと、C++で書いたものを ARMなどの
CPU向けのnative binaryに直し、それをAPKにパッケージ化して
配布してるのではなかろうか? AmazonのFire7 や Fire HD 8 などの
タブレットのCPUはどちらもARMらしい。スマホもARMが多いのかな。
2019/04/13(土) 15:38:37.67ID:U0TmzhoK
>>205
基本的な描画系と入力系をライブラリ化しておけば、メインロジック部分は
C++で書けると思うよ。
2019/04/13(土) 15:42:52.17ID:U0TmzhoK
さっき、AdoptOpenJDK なるものをインストールしてみたら、
java と javac コマンドが起動することを確認した。
多分このJDKは、Oracle フリーで無料でクローズド商用利用できると思う。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。