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


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

C++相談室 part137



1 名前:デフォルトの名無しさん [2018/08/27(月) 16:02:00.94 ID:vY3QDx2y0.net]
次スレを立てる時は本文の1行目に以下を追加して下さい。
!extend:on:vvvvv:1000:512

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

前スレ
C++相談室 part137
https://mevius.5ch.net/test/read.cgi/tech/1531558382/

このスレもよろしくね。
【初心者歓迎】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

52 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 07:30:44.91 ID:3T0jr2180.net]
>>46
あるわけいだろ
C++は入門言語じゃない

53 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 07:40:22.80 ID:zs5ycFHj0.net]
>>46
このへん

ISBN-10: 4797394633
日本人の著者では柴田氏の作風が俺的にはお奨め
入門だからって抜いちゃいかんことを押さえてる

ISBN-10: 4798119598
C++といえばこの人
出版が2011年とやや古めだが
プログラミングの地頭を鍛えてくれる

54 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 08:03:54.88 ID:ff0XXJ3a0.net]
そもそも、何も知らない初心者がなんで「2016年以降」とか限定するんだ?
何か根拠があるわけでもないだろう。

55 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 08:35:46.61 ID:GbaSH31o0.net]
古い本だと古い規格で説明されてるから、初心者には良くないって点はあるね。
#include <cstdio.h> みたいな中途半端な古さは特にやっかい。

『プログラミング言語C++』第4版を読んどきゃええじゃろ、と思ったけど
初版が2015年3月だから「古い本」だな。

56 名前:デフォルトの名無しさん [2018/08/30(木) 09:34:44.57 ID:CAfiYqURM.net]
2016年に何かあったの?

57 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 10:11:29.31 ID:zs5ycFHj0.net]
> #include <cstdio.h>

こんな時代あったか?

58 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 10:17:39.13 ID:ABjDmLki0.net]
ときどきCがわかってない日本人が入門書書いてたりして余計路頭に迷わせたりする

59 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 10:25:15.01 ID:Usgn3Z4yr.net]
>>48
effective 「modern」 c++ って良いの?
ただの effective は良いってほぼ全員認めてるが、more とか modern はあまり勧められないしどうでも良い本なのかと思ってた

60 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 10:56:25.83 ID:6+1XpMNpM.net]
math.hとcmathってどっちがいいの?
そもそもcmathインクルードしてもM_PI使えんしよく分からない



61 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 10:58:18.11 ID:OpvYfh8NM.net]
>>58
effectiveならいいっていう老害なんだろ

62 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 11:01:43.96 ID:OpvYfh8NM.net]
>>52
柴田の本は辞めとけ
初心者には無理
あれは大学の講義でかわされるやつ

63 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 11:49:16.45 ID:zs5ycFHj0.net]
>>61
初心者つーかオマエだろ?
大学の授業についていけない二回転5

難癖ばっかりつけてないで
幼児用のC++の本を出してみな

64 名前:はちみつ餃子 mailto:sage [2018/08/30(木) 12:34:40.85 ID:8c0RjkhV0.net]
>>59
cmath を使うべき。
C のヘッダは互換性のために残されているだけで、積極的に使うようなものではない。

M_PI は C の規格にも C++ の規格にもないマイクロソフト独自の拡張だから、
マイクロソフトがどういう気持ちで用意しているのかは知らないけど、
_USE_MATH_DEFINES マクロを #define しておけば Visual Studio では有効になるらしいぞ。

https://msdn.microsoft.com/ja-jp/library/4hwaceh6.aspx

65 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 12:46:26.01 ID:zs5ycFHj0.net]
C++17でcmathが大幅強化されたね
ISO/IEC29124の特殊関数を取り入れた

66 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 12:52:55.39 ID:5ZKhK1u9d.net]
>>58
modernはC++11以降を使うなら必読だぞ
むしろ素effectiveやmoreの方が古くてあんまり役に立たなくなってる

67 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 13:14:44.70 ID:ypFQk8hw0.net]
>>63
gccの独自拡張じゃねえの
むしろMSはそれに合わせてる

長いものには巻かれろ、ってヤツだ
長い方はMSじゃなくgcc

68 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 13:37:08.32 ID:ZM/Yh9noM.net]
柴田の本は昔から悪書扱いされてる
あえて読むことはないと思うわ

69 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 13:37:55.22 ID:zs5ycFHj0.net]
だから読んでないわけか

70 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 13:58:51.87 ID:ZM/Yh9noM.net]
昔は読んでたよ
20年以上前かな
いまでもjavaやc++のやつは図書館でたまにペラペラしてみるけど
読みづらくて全然合わないと感じる


同じジャンルで山田祥寛の本があったらそっちを読む



71 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 14:09:38.78 ID:zs5ycFHj0.net]
つまり読んでないってことだろ

図書館でペラペラってなぜそんなことをするんだ
C++を20年以上やってるんだろ

72 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 14:38:25.23 ID:A7u5khVs0.net]
人にC++言語について教える時に、人口に膾炙した書籍の表現を使うのが無難だからでしょ。

73 名前:54 mailto:sage [2018/08/30(木) 15:34:47.96 ID:GbaSH31o0.net]
>>56 すまん <cstdio.h> は変ね。<stdio.h> と <cstdio> が混ざってしまった。
<cstdio.h> というヘッダが存在する処理系もあるか知れんけど、
#include で使えと教えてる本はないだろうな。

主旨は「半端に古い本だと」で変わらないけど、良い例が出せんわ。

74 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 15:49:06.15 ID:zs5ycFHj0.net]
>>72
それを言うなら
<stream.h> //cfront 1.0
<iostream.h> //ARM
<iostream> //C++98
じゃね?

75 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 16:04:11.38 ID:pLYrs11p0.net]
質問なんだがコンパイル時間の観点から見て、ヘッダをインクルードするときは必要でない限りcppファイルでincludeするべき?

76 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 16:13:39.13 ID:zs5ycFHj0.net]
#includeのネストを避けろということか?
そう主張する連中もいるが、俺は反対

77 名前:はちみつ餃子 mailto:sage [2018/08/30(木) 16:18:52.75 ID:8c0RjkhV0.net]
>>74
ちょっと質問の意図がよくわかんないんだけど、逆に言えば
「ヘッダファイル (*.h) が他のヘッダファイルを include するのはコンパイル時間を増大させるか?」という意味?

あんまり関係ないよ。
よっぽど大きいプロジェクト (gcc とか) ならちょっとしたことで結構な差が出ることは無いとは言えないけど、
それでもプリコンパイルヘッダとかを活用すればだいぶん時間は短縮できるし、
更に高速化したいならキャッシュサーバを使うコンパイラもある。

https://github.com/yrnkrn/zapcc

・ 小さいプロジェクトでは気になるほどの差はない
・ 大きいプロジェクトではツールで解決しよう

78 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 16:23:45.00 ID:zs5ycFHj0.net]
コンパイラは可能な限り高性能なマシンで使うべし

79 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 16:52:55.72 ID:pLYrs11p0.net]
例えばstd::stringをhoge.hでは使わずhoge.cppのみで使われている場合
hoge.hで#include<string>と書くと、他のファイルからhoge.hをincludeしたとき無駄が出るはず
だからhoge.cppで#include<string>と書いた方がいいのが、それとも些細な差なので全部hoge.hにぶち込んでもいいのかということ

80 名前:デフォルトの名無しさん [2018/08/30(木) 16:55:06.24 ID:zs5ycFHj0.net]
なるほど、実装で使うだけで宣言にはいらないものか
だったらhoge.cppで#includeしたほうがいいね



81 名前:デフォルトの名無しさん [2018/08/30(木) 17:19:10.16 ID:X06N8JK80.net]
www.geekpage.jp/programming/linux-network/select.php

なんかソケットごとに違うポートを割り振るものだと思ってたのですが、

listen(srcSocket, 1);//第二引数はクライアント上限数

この第2因数をいじったら同じポートでも普通に接続できました。
このまま気にせずselect処理書いていっても大丈夫ですかね...?
通信関係あまり知らないのでバグったりするとどうなるか分からずちょっと怖いです。

相手用のソケットは
int dstsocket[5]の様な感じで作って中身は全部一緒です

82 名前:はちみつ餃子 mailto:sage [2018/08/30(木) 17:49:39.07 ID:8c0RjkhV0.net]
>>78
その場合だと .cpp に書いた方が当然良い。

83 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 18:56:44.69 ID:aIx07XQj0.net]
プリコンパイル済みヘッダを、いちいち書かなきゃいけなくなるのがあれだから使わない方がいいと言われたことがある
なぜそれでコンパイルが遅いって文句言ってるのか分からない・・・

84 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 21:34:38.22 ID:A5r5+/4B0.net]
https://ezoeryou.github.io/cpp17book/
辞書にするならこれ。役に立ったら書籍版買ってあげよう。

85 名前:デフォルトの名無しさん [2018/08/30(木) 22:17:19.27 ID:/0YXnEsV0.net]
書いても大丈夫だが、そういうやりかたにするならselectでブロックしないように注意したほうがいい
selectをブロックしたままの状態にすると、当然、そのあと永遠にacceptされない
きっとスレッドにしたほうが簡単

86 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 23:08:40.56 ID:yw5JoOBN0.net]
>>78
hoge.hでstd::stringを使ってないのに#include<string>を書く、という発想が理解できない
#include<string>はstd::stringを使ってるところに書く、使ってないところには書かない、でいいじゃん

変更があって使わなくなったのに#includeは残ってるのがありがちで嫌なところ
静的解析とかで指摘して欲しい

87 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 23:48:27.87 ID:Eu7R++g90.net]
>>80 ひきすう

88 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 14:08:47.35 ID:KIctO/Rq0.net]
>>80
変な心配せずに書いて覚えた方が早いよ
あと最初TCPって言ってたよね?
もしTCPで通信ごとにポート変えなきゃいけないなら、Yahoo見に行く時毎回ポート変えてんの?
HTTPは80番って決まってるやろ?
あと何のためにその第二引数があるの?

89 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 19:45:34.91 ID:3sSjwoo80.net]
恥ずかしながら char と signed char が違うものだって知りませんでした…(独り言)

90 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 19:48:20.37 ID:+YiNyVyB0.net]
処理系による



91 名前: mailto:sage [2018/08/31(金) 19:53:07.91 ID:saaKamBG0.net]
>>88
signed char とか unsigned char とか明言されず、ただ char としか書いていない場合、
その char が signed char になるのか、それとも unsigned char なのかは
「処理系依存」・コンパイラ依存だった、という経緯が C の時代からあったのでした

「signed char でも unsigned char でもない『「alternative な char』がある」
という意味ではないのです
"alternative char"…なんかだ魅惑される響きだと感じ入ってしまうのは、私だけですか…

92 名前:はちみつ餃子 mailto:sage [2018/08/31(金) 20:24:19.94 ID:NWzNDPzW0.net]
>>90
char は signed char でも unsigned char でもないです。
C でも C++ でも。

93 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 20:30:14.89 ID:LcHwdHfr0.net]

charとsigned charとunsigned charは全部別の型だろ。

94 名前:はちみつ餃子 mailto:sage [2018/08/31(金) 20:39:51.15 ID:NWzNDPzW0.net]
char は (型システム的には) signed char でも unsigned char でもないけど、
符号付きか符号なしのどちらかではあり、
その表現は処理系によって signed char か unsigned char のどちらかと実質的に等しいことになってる。

だいたいは暗黙の型変換が自然にうまいことやってくれるんだけど、
C++ だとオーバーロードの解決にかかわるところとかややこしいな。

95 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 20:40:27.43 ID:fKtAGZM00.net]
std::byteとかいうゴミはどう使えばいいんだ?

96 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 20:41:47.58 ID:jQ6ZKbRRM.net]
>>89-90
そういう話じゃなくて文字列型にはchar, unsigned char, signed charの3つがあるって話じゃないの?

97 名前:はちみつ餃子 mailto:sage [2018/08/31(金) 20:50:33.26 ID:NWzNDPzW0.net]
>>94
数値計算のための演算子が定義されてないのが重要なポイントだな。
なんらかの入力をビットパターンとして処理したいときに使える。

ビット表現に関する C/C++ での規則は未定義の部分もあって、
数値とビット表現の対応付けは処理系 (アーキテクチャ) によるので、
数値としての演算の結果 (の数字をビットパターンとして見た場合) は一意ではない。
std::byte でデータを保持しておけばうっかり数値計算してしまったりしない。

std::byte があることで特にできるようになることがあるわけじゃないけど、
うっかりを防止するために防衛的に使うもんだと思う。

98 名前: mailto:sage [2018/08/31(金) 20:57:38.41 ID:saaKamBG0.net]
>>91
https://ideone.com/5zhQcP
…なるほど、そういう風に解釈するんですか!?
また一つ賢くなりました

99 名前:はちみつ餃子 mailto:sage [2018/08/31(金) 21:21:37.54 ID:NWzNDPzW0.net]
>>97
もうひとつ面白い点としては、そこから void f(char c) の定義を消すと
char c = -12; f(c); という呼出しは解決できずエラーになる。

char, unsigned char, signed char は「順位」が同じなので、
呼出し候補としては同格になってしまい、ひとつに絞れないから。

もしも char が unsigned char か signed char かのどちらかなら、
どちらが呼び出されるにしてもひとつには絞れるのでこういう問題にはならないのだけれど。

ストリームに対する operator<< が char と unsigned char と signed char のそれぞれに用意されているのは、
そういう曖昧さが起こらないようにするため。

100 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 22:36:19.33 ID:mXpACRvK0.net]
>>95
文字列型はchar
signed char, unsigned charは小さい数を格納する



101 名前:はちみつ餃子 mailto:sage [2018/08/31(金) 23:16:56.24 ID:NWzNDPzW0.net]
「文字列型」という言葉を使うと語弊がある気がするぞ。

102 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 23:21:39.46 ID:R+q9F3xyM.net]
現在時刻(またはPCやexe起動からの経過時間)をmillisecondsで取得する方法ってありますか?
mm-dd-yyみたいな形式ではなくて全部数字で取得したいです

103 名前:デフォルトの名無しさん [2018/08/31(金) 23:24:08.56 ID:4ZfpOo1s0.net]
exeだからwindows
つまりGetTickCount()

104 名前: mailto:sage [2018/08/31(金) 23:59:05.22 ID:saaKamBG0.net]
>>101
https://ideone.com/H6bajN

105 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 00:01:43.12 ID:eGvEpu9E0.net]
なんでCの頃にcharを符号付きを許したのかが謎
文字は負の値にならないとかいうルールまで定めながら
charをunsignedと定義することを頑なに拒んだ古代の連中は一体何を守ろうとしたのか

106 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 00:06:54.80 ID:eGvEpu9E0.net]
charのsignedとunsignedの処理系依存の混乱さえなければ今でもmalloc()はchar*(サイズ1の型のポインタ)を返してくれて便利だったかもしれんのに、

107 名前:デフォルトの名無しさん [2018/09/01(土) 00:09:21.94 ID:/wwW4VSs0.net]
asciiは7bit

いまでもC++はどんなオブジェクトでも(char*)でキャストすることは
仕様で許されてる

108 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 00:09:26.78 ID:Lo8welT80.net]
>>99
そうであればよかったんだけどstreamsでの扱いは全部文字型なんだよな。
おかげでuint8_tをstreamに出力したら文字が出てくる羽目に。

109 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 00:15:47.63 ID:eGvEpu9E0.net]
>>106
E B C D I C は 8 b  i  t  じ ゃ わ !

>>106
キ  ャ  ス  ト  し  た  だ  け  で  は  c h a r *  か  な  に  か  の  中  間  変  数  に  代  入  せ  ね  ば  
標  準  の  言  語  規  格  で  は  + +  や  - -  が  で  き  ん


110 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 00:21:54.31 ID:eGvEpu9E0.net]
スマン訂正;
誤: キ  ャ  ス  ト  し  た  だ  け  で  は  c h a r *  か  な  に  か  の  中  間  変  数  に  代  入  せ  ね  ば  
正: v o i d * 引  数  は  キ  ャ  ス  ト  し  た  だ  け  で  は  c h a r *  か  な  に  か  の  中  間  変  数  に  代  入  せ  ね  ば  




111 名前:デフォルトの名無しさん [2018/09/01(土) 00:24:45.17 ID:/wwW4VSs0.net]
知見が狭い低学歴知恵遅れの世界では
伝統的なテキストがacsiiをさしてることすら
わかってないらしいわ

普通に古代のネットワークで7bitのネットワークとかあったからな

char*の変数に代入しないと
ポインターをインクリメントできないとかあたりまえやんけ
C++とか関係ない

相変わらず低学歴知恵遅れはなにをいってるのか意味不明

112 名前:デフォルトの名無しさん [2018/09/01(土) 00:28:15.78 ID:/wwW4VSs0.net]
昔、なんでメールがiso-2022-jpしかかたくなにダメといわれてたか
きっとその理由も分かってない

113 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 00:36:37.58 ID:eGvEpu9E0.net]
>>110
えっっつ!?
伝統的なテキストの7 bitの文字コードはISO 646のことじゃないの;

ていうかASCIIが7 bitで表現できることはなんでCの頃にcharを符号付きを許したのか(>>104)を完全には説明しない
charをunsguned charにキめとけばアドレス全般を現す型としてのvoid*なんてものを別途作り出す必要も無く全員ニッコニコー☆だったかもしれんのに…

114 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 00:37:24.15 ID:gChyprIt0.net]
>>106
「どんなオブジェクトポインターでも」の間違い?

115 名前:デフォルトの名無しさん [2018/09/01(土) 00:42:50.43 ID:/wwW4VSs0.net]
MSBに1がたってるオクテットが1つでも入ってたら
それはバイナリだ

オブジェクトを(char*)を普通にキャストできる
低学歴知恵遅れのどうでもいい感想やどうでもいい願望なんか関係ない
そういう仕様だからな

安全なPODは普通にキャストされることがある

116 名前:デフォルトの名無しさん [2018/09/01(土) 00:44:26.13 ID:/wwW4VSs0.net]
オブジェクトポインターなのは
あたりまえ

117 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 01:14:05.21 ID:xvCOhCpk0.net]
7ビットでも8ビットでも表現できる言語の数は変わらないから

118 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 06:51:29.42 ID:QGdL6q/H0.net]
acsiiってなあに?低学歴知

119 名前:b遅れさん []
[ここ壊れてます]

120 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 07:13:19.96 ID:hKSBbo0T0.net]
>>117
涙拭けよ老眼



121 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 07:40:58.94 ID:/JMJVp6oa.net]
>>110

122 名前:デフォルトの名無しさん [2018/09/01(土) 07:48:51.59 ID:vnjaDev80.net]
情報系大学3年生
恥ずかしいことに今までやっていた言語がC++じゃなくてCだったことを知った…
(だってVisualStudio起動するときにC++開発モードを選ぶように言われたんだもの)
そういうわけでC++はどんなもんかなと本屋でちらっと明解C++を手に取ってみたら全く別物じゃねえか…
わかんねえよ……ネットで調べてみたら複雑らしいし
Cならatcoderで緑色になるくらいは書けるけど、でも就活のときCしか書けませんC++わかりませんってかなり致命的?

123 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 08:00:36.94 ID:np0z0HoI0.net]
>>104
単なる char を int に変換する時に、符号拡張でも0拡張でも、
そのCPUで都合の良い(速く動作させることのできる)命令を使っていいよ、
っていう部分を重視したんじゃないかな。
文字コードは負にならないから、どっちで拡張しても結果に違いは生じない、
という保証が先にあっての話ということで。
MSBが1になる可能性がある8bit値なら signed/unsigned を明示しろと。

>>112
俺はむしろ「値を格納することを目的としない、抽象的な void* ポインタ」が
総称ポインタとして追加されたのを好ましいと思うけど。
「char* には他のどんなポインタもキャストして代入可能、そのポインタを介して
メモリアクセスすることも許す」の方が苦し紛れな気がする。
もちろん、このルールがないと本当に苦しい、ないと困るものだけど。

124 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 08:15:34.02 ID:Pcb6gvc+0.net]
>>120
C++は、Cの後置インクリメントという名のとおり
最初はCのつもりで使ってよく
次から少しずつCに対する拡張を憶えていけばよい

Cをマスターしている人にとって
ごく自然に入っていける言語だから
慌てないでじっくりやってみそ

C++の発案者(通称、禿)が書いている有名な本が
まさしくCがわかる人のための論調だ
ISBN-10: 4797375957

就活では何言語が使えるかより
何を作ったかが大事
C++使えます、なんて新人が自称してても
たいていすぐボロが出るし

125 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 08:45:34.91 ID:np0z0HoI0.net]
>122
書籍の紹介をする際にAmazonさんのページへのリンクを貼る人は多いけど、
ISBNだけでタイトルも書かないパターンは初めて見たよ。
『プログラミング言語C++』第4版だね。

おかげで ISBN-10 と ISBN-13 という2種類のISBNがあることも知った。

126 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 10:57:23.80 ID:yZa51HUHa.net]
uint8_tとint8_tを使う。
移植性が良くなる。

127 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 11:04:56.69 ID:o5EcbkDPa.net]
んだ
cstdintとかcinttypesとか使えば良いじゃん

128 名前: mailto:sage [2018/09/01(土) 11:30:44.62 ID:xvMvXv+W0.net]
>>120
私はC++を覚えるのに20年くらいかかっています、アマチュアベースなので

129 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 12:18:34.89 ID:Pcb6gvc+0.net]
みんなそうだよ
C++はC with Classesから30年以上経っているが
未だに発展途上の言語で
新しい機能がどんどんできているから

130 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 12:35:41.52 ID:+BAvd4bna.net]
文法覚えてもそこがスタート地点

推奨される最先端の実装例を見てみたいがどこにそういう例があるのかも知らない
だれかしらないかなあ



131 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 12:51:44.34 ID:Pcb6gvc+0.net]
cl /std:c++latestや
clang-cl -Xclang -std=c++2aとかか?

132 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 13:05:09.71 ID:eGvEpu9E0.net]
レスdクス今全てがつながったわC++完全に理解した!
char→signed int変換を符号拡張でやっても良いという余地を残しておけば、
char→signed int変換を0拡張でやる命令が無いアーキテクチャーであっても、
(たまたま)使う文字コードセットがcharのMSBまで使わないやつ(acsiiとか)であれば
(運よく)変換を1命令で済ませられる

しかしcharをunsigned charとする案に対するアドバンテージはそれだけ…
我々は滅び去

133 名前:った腸古代のアーキテクチャーの痕跡を毎朝目の当たりにしているわけや []
[ここ壊れてます]

134 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 13:20:25.67 ID:eGvEpu9E0.net]
>>130は、>>121へのレス
痕跡というのは、C++において(オーバーロードとの絡みで)charがsigned charでもunsigned charでもない別の型である件のこと。

>>127
職業的に使う言語とアマチュアベースで使う言語は接する時間が違うから、上達の速度も違う
C++はCに擬態することで職場でも家でも継続的に新規の機能を試せたから成功した
D言語は職場で12時間C/C++を触った後に家に帰ってD言語脳に切り替えねばならなかったからめんどくさがられて失敗した

この反省を踏まえ、Pythonはいつでも初心者モードでも問題なく使える簡単言語になったそうな
(ちな職場でこっそり使い倒せる言語はやっぱPerlとJavaScrip(ゲフンゲフン

135 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 14:18:13.49 ID:kUpkBQ3x0.net]
Linux プログラミング・インタフェース、Michael Kerrisk、2012
翻訳者・千住治郎

C++11/14 コア言語、江添 亮、2015
組込み開発者におくるMISRA‐C:2004―C言語利用の高信頼化ガイド、MISRA‐C研究会、2006

これらが、神の書!
膨大なOK・NG パターンを列挙している

これらの本を持って、数年山籠もりすべし!w

初心者用の文法書なんて、一部分しか書いていない。
氷山の一角

ドワンゴ江添の本でも、詳細には切りがないので省略しますとかw
無限に出てくるw

こういう本を書ける、Kerrisk・千住・江添は、頭がおかしくなってるはず!w

136 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 14:22:45.69 ID:xvCOhCpk0.net]
上の本高いな

137 名前:132 mailto:sage [2018/09/01(土) 15:18:22.65 ID:kUpkBQ3x0.net]
「Finnegans Wake」の著者、James Joyce も、
翻訳者の柳瀬尚紀も、頭がおかしいと思ったけど、

132 の本は、まさにそう

頭がおかしくないと、これだけ書けないw

138 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 16:12:55.71 ID:wj4q5AyAd.net]
vcのwriteFileとかの関数って非同期の時戻り値とかどう処理すべきもんなの?
waitforsingleobjectでまつのはセオリーっぽいが
そこにたどり着くまでに非同期の処理が終了とかまだ終わってないとかいろんなケース想定されるじゃん?

139 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 16:31:40.14 ID:sbs5rSlN0.net]
MSDNのWaitForSingleObjectのページ読んだ?
実際に書いてみた?

140 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 16:45:34.07 ID:JqoAQjEz0.net]
>>135
WaitForSingleObjectまでに非同期処理が終わってたらWaitForSingleObjectからすぐに抜ける
非同期処理が終わってなければ終わるまでWaitForSingleObjectで待つ
要するにWaitForSingleObjectから帰って来たら非同期処理は終わってる



141 名前:デフォルトの名無しさん [2018/09/01(土) 17:05:45.30 ID:/wwW4VSs0.net]
いまだにメールで昔半角カナを使ってはいけないといわれてた理由すらわかってないのが
よくわかったわ

EBCDICは8bitとかいってるぐらいだからな
そんなもん意味不明なバイナリだからな
当然utf8も意味不明なバイナリ

頭悪い知恵遅れでも分かったふりしてテキトーなこと書けるのが
2ちゃんねるだからな

2ちゃんねるは頭の悪さを自白するのに最適

142 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 17:09:37.10 ID:wj4q5AyAd.net]
>>136
書いてみた
パイプを使ったデータのやり取りをしようとしていて
writeFileだけでなくConnectNamedPipeだったりの非同期処理の異常系で困っている
通常の操作はおそらくできてると思うんだが.

143 名前:...

>>137
やっぱりそういうことで良いんやね
[]
[ここ壊れてます]

144 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 17:46:30.13 ID:C1azqw0O0.net]
>>130
>C++完全に理解した!

小悟を経て大悟に至る長大なステップのほんの一段に過ぎない・・・

145 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 18:01:58.23 ID:QGdL6q/H0.net]
C++erは3種類しかいない
C++を理解せずに書いている素人、C++を理解したと勘違いしてる素人、いつか人類はC++を理解できるのだろうかと日夜考え続けている素人だ

146 名前:デフォルトの名無しさん [2018/09/01(土) 18:06:49.23 ID:IaxL4QGW0.net]
C++はわしが育てた。

147 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 18:20:12.88 ID:TMvFd8Nda.net]
>>141
.0.5%ぐらいは真のC++プログラマーがいると信じたい
今まで出会ったことがない

148 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 19:13:37.84 ID:np0z0HoI0.net]
>>141
「完全な理解」に到達できないようゴールを動かしつづける黒幕、
てのがいそうな感じね。

日々の学習が新規格に追いつかないヘボの愚痴だけど。

149 名前:デフォルトの名無しさん [2018/09/01(土) 19:30:28.67 ID:YT761AP20.net]
実際これ本物じゃないかと思うよね
www.kh.rim.or.jp/~nagamura/misc/stroustrup-interview.html

150 名前:デフォルトの名無しさん [2018/09/01(土) 20:34:01.15 ID:IaxL4QGW0.net]
>>145
Javaで読み替えてみ。



151 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 20:50:59.81 ID:z2qK7ugE0.net]
javaに必要だったのはGCじゃなくてデストラクタだったりして。
噂によると、参照切るために使い終わったらオブジェクトにNULL入れてるらしい。
それってfreeと違うんかい?

152 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 20:53:31.39 ID:xvCOhCpk0.net]
今使われてるあらゆる言語に置き換えられそう






[ 続きを読む ] / [ 携帯版 ]

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

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