- 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
- 35 名前:デフォルトの名無しさん mailto:sage [2018/08/28(火) 19:45:32.21 ID:FmvTK/aC0.net]
- まぁポートだけ、というかリスニングの処理だけ特殊とは言えるかも
- 36 名前:デフォルトの名無しさん mailto:sage [2018/08/28(火) 20:36:55.08 ID:jw/yHSMpr.net]
- このスレって競プロerいる?
- 37 名前:デフォルトの名無しさん mailto:sage [2018/08/28(火) 23:15:21.08 ID:q8rsvszA0.net]
- >>35
いる
- 38 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 00:22:05.79 ID:9tKCPoRq0.net]
- 関数からreturnされる値は必ず自動的にmoveされる?
- 39 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 00:25:41.59 ID:uf5REJu50.net]
- コンパイラと設定によると思う
- 40 名前:デフォルトの名無しさん [2018/08/29(水) 00:26:07.98 ID:zRPnCBM00.net]
- 計算機S 192.168.0.1:40000 ⇔ 計算機A 192.168.0.16:41769
計算機S 192.168.0.1:40000 ⇔ 計算機B 192.168.0.17:61544 計算機S 192.168.0.1:40000 ⇔ 計算機C 192.168.0.18:61568 計算機S 192.168.0.1:40000 ⇔ 計算機D 192.168.0.19:63490 ↑ ↑最初に接続する計算機のポートは通常自動的に空き番が使われるようにする 計算機Sからみてpeerは 計算機Sが受付を待っているポートに 接続する必要がある
- 41 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 01:16:31.78 ID:nUvoSPGm0.net]
- え、TCPいうてたしサーバーのIPとポート指定して接続してつなぎっぱなしを想定してたんだけど違うのか
いちいち切って繋ぎ直すなら別だけど
- 42 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 01:39:42.75 ID:+EFc44O50.net]
- 受付嬢は一人、ご相談は各担当に回す
みたいな
- 43 名前:はちみつ餃子 mailto:sage [2018/08/29(水) 01:56:45.22 ID:iljSGsda0.net]
- >>37
値が rvalue でムーブコンストラクタが存在するならばムーブされる。 (lvalue も状況によっては rvalue になることもある。) ただし、 RVO の適用条件に叶う場合は RVO が適用されるかもしれないのでコピーもムーブもされないことは有りうる。
- 44 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 13:02:14.24 ID:3zmBLDqv0.net]
- Hogeというクラスがあったとして、
Hoge getHoge(); という関数があるときに、 Hoge &hoge = getHoge(); と参照で受けて問題ない?
- 45 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 13:31:26.82 ID:8DgsmGan0.net]
- ダメ
getHoge()の返却値はprvalueなので constのない左辺値参照で受けることはできない 右辺値参照か、 constのついた左辺値参照が必要
- 46 名前:はちみつ餃子 mailto:sage [2018/08/29(水) 15:21:15.25 ID:iljSGsda0.net]
- >>43
getHoge() の返却値は一時的なオブジェクトなので 原則としては完全式の終わりに解体されることに なっているが、 >>44 の述べる通りの方法で参照で受けたときに限って 例外的に寿命が延長される規則がある。 参照のスコープの終わりがオブジェクトの寿命になる。 RVO が発動するだろうから、そもそも参照で受ける意味があんまり無いと思う。
- 47 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 00:25:01.05 ID:kCgj5iLA0.net]
- 書籍スレで聞いたらスレチ(?)と言われたので質問させて下さい(m´・ω・`)m
C++で新し目(出来れば2016年以降に発売したもの)の入門書でオススメがあれば教えていただきたいのですが… よろしくお願い致します。
- 48 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 01:05:42.98 ID:RsXRD1vR0.net]
- ありません( ー`дー´)キリッ
- 49 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 02:11:48.32 ID:0LlXI/R20.net]
- Effective Modern C++は読んどいたほうがいいけど入門書じゃねえな
うーん
- 50 名前:デフォルトの名無しさん [2018/08/30(木) 02:18:12.89 ID:VcrE/h+O0.net]
- >>43
全く問題ない。 規格にもしっかり書いてある。
- 51 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 05:39:20.37 ID:zs5ycFHj0.net]
- >>49
どこに?
- 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
|

|