次スレを立てる時は本文の1行目に以下を追加して下さい。
!extend:on:vvvvv:1000:512
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ
C++相談室 part133
http://mevius.5ch.net/test/read.cgi/tech/1511509970/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.102【環境依存OK】
http://mevius.5ch.net/test/read.cgi/tech/1509780815/
■長いソースを貼るときはここへ。■
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
探検
C++相談室 part134
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 5fcb-Q2eK)
2018/01/20(土) 09:05:42.21ID:mJKRg6iz0642デフォルトの名無しさん
2018/03/15(木) 07:15:43.22643デフォルトの名無しさん (ワッチョイ dfe3-MOYc)
2018/03/15(木) 08:58:15.76ID:x1WHRaDf0 >>641
下のつもりで上書いたらただのバグじゃん
下のつもりで上書いたらただのバグじゃん
644デフォルトの名無しさん (ワッチョイ a3dd-hKdO)
2018/03/15(木) 09:19:10.68ID:3Ym40JOm0 算術と混用するときは結合順位に注意せよ、というだけのことを
いちいち必ずだ!ルールだ!と金切り声で吠えついてくるやつはウザい
いちいち必ずだ!ルールだ!と金切り声で吠えついてくるやつはウザい
645デフォルトの名無しさん (ブーイモ MM61-R9c4)
2018/03/15(木) 09:55:31.41ID:LkpAylTJM >>642
可読性悪くしてかえって品質低下招きそうな指摘だな
可読性悪くしてかえって品質低下招きそうな指摘だな
646デフォルトの名無しさん (ワッチョイ 87cc-SCBH)
2018/03/15(木) 13:29:47.33ID:O2sRH7tT0 vectorをつなげる際、copyが良いとか、insertを使えとか色々書いてあるのですが、どれが良いのでしょうか?
647デフォルトの名無しさん (ワッチョイ af7e-hKdO)
2018/03/15(木) 13:54:37.80ID:XNo6/02A0 あらかじめ領域を広げておく必要があるけどinsertの方がチェックが入らない分速い
648デフォルトの名無しさん (ワッチョイ 7b34-HLM0)
2018/03/15(木) 15:23:48.90ID:9f/t5+6G0 reserveしてinsertだな
649デフォルトの名無しさん (アウアウウー Sa9d-mp3k)
2018/03/15(木) 15:36:42.69ID:q9z+dA6Ga insertの直前にreserveって意味あるのか?
650デフォルトの名無しさん (ワッチョイ af7e-hKdO)
2018/03/15(木) 16:32:16.09ID:XNo6/02A0 reserveは終端のポインタが更新されないからresizeじゃないとだめ
651デフォルトの名無しさん (ワッチョイ 7b34-HLM0)
2018/03/15(木) 16:57:46.96ID:R5/WYUtW0 reserveしてback_inserterでcopy
652デフォルトの名無しさん (ワッチョイ 7bcb-R9c4)
2018/03/15(木) 17:05:27.14ID:QEAEy0DH0653デフォルトの名無しさん (ワッチョイ 7bcb-R9c4)
2018/03/15(木) 17:09:09.32ID:QEAEy0DH0654デフォルトの名無しさん (ワッチョイ af7e-hKdO)
2018/03/15(木) 17:21:30.23ID:XNo6/02A0 ごめんinsertとcopy逆だった
655デフォルトの名無しさん (アウアウウー Sa9d-mp3k)
2018/03/15(木) 17:28:15.72ID:q9z+dA6Ga656デフォルトの名無しさん (ワッチョイ 7bcb-R9c4)
2018/03/15(木) 19:10:49.64ID:QEAEy0DH0 >>655
失礼。挿入位置のiteratorもあるから、3つ受け取るタイプの誤り。
失礼。挿入位置のiteratorもあるから、3つ受け取るタイプの誤り。
657デフォルトの名無しさん (アウアウウー Saaf-0FUd)
2018/03/15(木) 22:07:51.82ID:dQGk6ayHa cpprefjpの任意の式によるSFINAEの頁でdecltype(a + b, bool())と記載されているコードがあるんだけれど、
このa+b, bool()はラムダ式?
該当頁
https://cpprefjp.github.io/lang/cpp11/range_based_for.html
このa+b, bool()はラムダ式?
該当頁
https://cpprefjp.github.io/lang/cpp11/range_based_for.html
658デフォルトの名無しさん (アウアウウー Saaf-0FUd)
2018/03/15(木) 22:09:23.09ID:dQGk6ayHa659デフォルトの名無しさん (ワッチョイ a3dd-hKdO)
2018/03/15(木) 22:15:55.91ID:3Ym40JOm0 ラムダ式が[で始まらないことってあるのか?
660デフォルトの名無しさん (ワッチョイ 9beb-85/6)
2018/03/15(木) 22:41:44.53ID:ubsUN4Yb0 >>657
カンマ演算子とdecltypeでコンパイル時に評価される
decltypeの中身を左から順に評価し、結果は一番右の型が帰る
この場合はa+bの型が評価出来ればbool、できなければSFINAE
カンマ演算子とdecltypeでコンパイル時に評価される
decltypeの中身を左から順に評価し、結果は一番右の型が帰る
この場合はa+bの型が評価出来ればbool、できなければSFINAE
661デフォルトの名無しさん (ワッチョイ af7e-hKdO)
2018/03/15(木) 22:41:47.80ID:XNo6/02A0 >>657
>a + b
a + bが可能かどうか調べる
>,
次の式を評価する
>bool()
bool型の初期値を返す
つまりdecltype(a + b, bool())はa + bでSFINAEをしつつカンマ演算子でdecltypeにbool型の値を与えて返り値の型をbool型にしている
>a + b
a + bが可能かどうか調べる
>,
次の式を評価する
>bool()
bool型の初期値を返す
つまりdecltype(a + b, bool())はa + bでSFINAEをしつつカンマ演算子でdecltypeにbool型の値を与えて返り値の型をbool型にしている
662デフォルトの名無しさん (アウアウウー Saaf-0FUd)
2018/03/15(木) 22:57:18.20ID:dQGk6ayHa decltypeで,も使えたんですね。一番右の型が帰るということはdecltype(a+b,a-b,a*b,a/b,bool())とかしてもよさそう。。。
自分ではその機能を説明してるページを見つけれませんでした。
ありがとうございます。
自分ではその機能を説明してるページを見つけれませんでした。
ありがとうございます。
663はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 3b6f-hKdO)
2018/03/15(木) 23:50:51.42ID:VBbQqJBt0664デフォルトの名無しさん (スップ Sddb-dtcO)
2018/03/16(金) 07:54:12.89ID:UGENGinrd decltypeって実行時の型を得れる?
665デフォルトの名無しさん (アウアウウー Sa9d-mp3k)
2018/03/16(金) 09:23:42.20ID:Qbg0TjKpa >>656
a.reserve(a.size()+b.size());
a.insert(a.end(),b.begin(),b.end());
こんな感じのことをやるのかと思ったんだけど、これ意味ないでしょ?
a.reserve(a.size()+b.size());
a.insert(a.end(),b.begin(),b.end());
こんな感じのことをやるのかと思ったんだけど、これ意味ないでしょ?
666デフォルトの名無しさん (スッップ Sd2f-JcB1)
2018/03/16(金) 10:04:08.28ID:SYp9l/ZId >>664
declとはdeclareの略であることを考えると
declとはdeclareの略であることを考えると
667デフォルトの名無しさん (ワッチョイ 7b34-HLM0)
2018/03/16(金) 10:17:31.56ID:g2YO+i2m0 a.reserve(a.size()+b.size());
copy(b.begin(),b.end(),back_inserter(a));
copy(b.begin(),b.end(),back_inserter(a));
668デフォルトの名無しさん (ブーイモ MM3f-R9c4)
2018/03/16(金) 15:36:10.69ID:0r9PteXTM >>665
random iteratorの場合の特殊化実装がありました。ごめんなさい
random iteratorの場合の特殊化実装がありました。ごめんなさい
669デフォルトの名無しさん (ササクッテロレ Sp6f-N9vq)
2018/03/16(金) 18:08:23.55ID:Al45BtF0p >>662
decltype comma trickでググれ
decltype comma trickでググれ
670デフォルトの名無しさん (ワッチョイ f3e7-dVgQ)
2018/03/16(金) 20:56:30.80ID:DBylbaSH0 まあoperator,()が定義されてるとまずいんだけどな
671デフォルトの名無しさん (アウアウアー Sa83-2N1f)
2018/03/19(月) 18:07:03.75ID:/U1oheuNa インスタンスにdeleteかけたとき、メンバ変数が破壊されるのとデストラクタが実行されるのはどっちが先?
今書いてるコードがデストラクタでメンバ変数アクセスすると落ちることがあるから、破壊されるのが先なんだろうか?
今書いてるコードがデストラクタでメンバ変数アクセスすると落ちることがあるから、破壊されるのが先なんだろうか?
672はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 3b6f-hKdO)
2018/03/19(月) 18:15:15.06ID:RG1qd9Pc0 >>671
原則としては構築の逆順って覚えておくと間違えない。
原則としては構築の逆順って覚えておくと間違えない。
>>671
delete this; とかしてませんか、これは基本的に避けたほうがいい
delete this; とかしてませんか、これは基本的に避けたほうがいい
674片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdd7-5vKF)
2018/03/19(月) 18:43:06.07ID:SpFx62hRd >>673に同意。確保と破棄は生ポインタを触らずに自動化した方がいい。スマートポインタとかコンテナとか。
二回deleteを避けるためにポインタにNULLを代入する技もある。
二回deleteを避けるためにポインタにNULLを代入する技もある。
675デフォルトの名無しさん (アウアウウー Saaf-0FUd)
2018/03/19(月) 21:03:24.06ID:kCg91IvDa そろそろNULLは駆逐してnullptrに移行させたい
676デフォルトの名無しさん (ワッチョイ 53bd-mA8b)
2018/03/19(月) 22:46:40.23ID:jnDGFLZz0 >今書いてるコードがデストラクタでメンバ変数アクセスすると落ちることがある
へ〜んなの
ていうかメモリを壊しているかすでにdeleteされた死骸を再deleteしてるとしか、
>二回deleteを避けるためにポインタにNULLを代入
OpenCVのC言語インターフェースのやつ、
へ〜んなの
ていうかメモリを壊しているかすでにdeleteされた死骸を再deleteしてるとしか、
>二回deleteを避けるためにポインタにNULLを代入
OpenCVのC言語インターフェースのやつ、
677デフォルトの名無しさん (ワッチョイ c193-7BQk)
2018/03/19(月) 22:57:33.17ID:cmSuhSLP0 C++勉強中の者です。
http://codepad.org/C8t9k4fD
ソース自体をプログラムに読み込ませると
#includ
で止まってしまいます。
Cのfgets()のようには使えないのでしょうか。
http://codepad.org/C8t9k4fD
ソース自体をプログラムに読み込ませると
#includ
で止まってしまいます。
Cのfgets()のようには使えないのでしょうか。
678デフォルトの名無しさん
2018/03/19(月) 23:06:01.35 >>677
According to the C++ reference
http://en.cppreference.com/w/cpp/io/basic_istream/getline
getline sets the ios::fail when count-1 characters have been extracted.
You would have to call filein.clear(); in between the getline() calls.
According to the C++ reference
http://en.cppreference.com/w/cpp/io/basic_istream/getline
getline sets the ios::fail when count-1 characters have been extracted.
You would have to call filein.clear(); in between the getline() calls.
679デフォルトの名無しさん (ワッチョイ c193-+EIL)
2018/03/19(月) 23:26:45.72ID:cmSuhSLP0 >>678
区切り文字を読まないとfail状態になってそれ以降は失敗し続けるので止まってしまうということですかね
区切り文字を読まないとfail状態になってそれ以降は失敗し続けるので止まってしまうということですかね
680デフォルトの名無しさん (ワッチョイ 53bd-mA8b)
2018/03/19(月) 23:27:24.60ID:jnDGFLZz0 std::getline()は読み込んだ文字列に改行文字を含めないから
行末まできちんと読んだのか
文字数カウントのせいで読み込みが行の途中でぶちきれたのか
直ちにはわからないといいうアホウな仕様
判別には結局std::basic_istream<T>::unget()の助けが要る
C++標準ライブラリのうちストリーム関連だけは腐っているからC言語のを使いなしゃれ
※ 個人の感想です
行末まできちんと読んだのか
文字数カウントのせいで読み込みが行の途中でぶちきれたのか
直ちにはわからないといいうアホウな仕様
判別には結局std::basic_istream<T>::unget()の助けが要る
C++標準ライブラリのうちストリーム関連だけは腐っているからC言語のを使いなしゃれ
※ 個人の感想です
681デフォルトの名無しさん (ワッチョイ 53bd-mA8b)
2018/03/19(月) 23:28:25.97ID:jnDGFLZz0 訂正
△: C++標準ライブラリのうちストリーム関連だけは腐っているからC言語のを使いなしゃれ
◎: C++標準ライブラリのうちストリーム関連だけは本当に腐っているからC言語のを使いなしゃれ
△: C++標準ライブラリのうちストリーム関連だけは腐っているからC言語のを使いなしゃれ
◎: C++標準ライブラリのうちストリーム関連だけは本当に腐っているからC言語のを使いなしゃれ
682デフォルトの名無しさん (ワッチョイ f3e7-dVgQ)
2018/03/20(火) 01:02:22.15ID:mI6/gPTY0 入出力はCもC++もクソまみれだからなぁ
ちょっとコンソール出力を整形しようとして、あの肥溜めのクソくだらない落とし穴地獄にいちいち付き合わされた結果
プログラミングそのものが嫌いになる人達が山のようにいるのが本当に残念だ
ちょっとコンソール出力を整形しようとして、あの肥溜めのクソくだらない落とし穴地獄にいちいち付き合わされた結果
プログラミングそのものが嫌いになる人達が山のようにいるのが本当に残念だ
683デフォルトの名無しさん (ワッチョイ e19f-M10G)
2018/03/20(火) 01:12:22.56ID:PXcTmg8I0 いるか?
684デフォルトの名無しさん (ワッチョイ f3e7-dVgQ)
2018/03/20(火) 01:20:34.94ID:mI6/gPTY0 自分が知ってる昔はいっぱいいたけど
最近だとスクリプト言語から先に入るから減ってるのかね?
最近だとスクリプト言語から先に入るから減ってるのかね?
685はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 3b6f-hKdO)
2018/03/20(火) 01:21:52.68ID:N1yoGURK0 オブジェクトの外部表現を型ごとに定義できる iostream は悪くない設計だと思うんだけどなぁ。
686デフォルトの名無しさん (ワッチョイ 7bcb-R9c4)
2018/03/20(火) 01:41:51.26ID:PjVFN34O0 ローカライズに向いてない。
打鍵数が倍増どころじゃない。
モダン言語はみなprintfライクだしねー
打鍵数が倍増どころじゃない。
モダン言語はみなprintfライクだしねー
687デフォルトの名無しさん (ワッチョイ e19f-hKdO)
2018/03/20(火) 02:48:01.36ID:PXcTmg8I0 printf()は便利ではあるが桁を揃えて出す時に面倒になることもある。
特にこの頃は UTF-8 で漢字混ざりだと文字幅とバイト数または文字数が一致しない。
そもそもそんなものの一致をあてにすること自体が間違いかも知れないが、Unicode
には一応 HALF WIDTH, FULL WIDTH 等があるんだから何とかしてこれを生かした
フォーマッタが欲しいところではある。
特にこの頃は UTF-8 で漢字混ざりだと文字幅とバイト数または文字数が一致しない。
そもそもそんなものの一致をあてにすること自体が間違いかも知れないが、Unicode
には一応 HALF WIDTH, FULL WIDTH 等があるんだから何とかしてこれを生かした
フォーマッタが欲しいところではある。
688デフォルトの名無しさん (アウーイモ MMb3-2N1f)
2018/03/20(火) 06:49:53.60ID:eswqOupsM689デフォルトの名無しさん (ワッチョイ af7e-hKdO)
2018/03/20(火) 06:55:01.02ID:83N3dpVy0 streamはコンソールの入出力のためだけにあるわけじゃないから
690デフォルトの名無しさん (ワッチョイ 1ff3-hKdO)
2018/03/20(火) 06:55:05.50ID:Wsijl5j90 つーてもcoutだってsetw/setfillはあんまり使いやすくないしなあ
operator<<をユーザー定義できるのはありがたいけどね
operator<<をユーザー定義できるのはありがたいけどね
691デフォルトの名無しさん (ワッチョイ a723-tAvx)
2018/03/20(火) 13:10:27.33ID:geezFnQ40692デフォルトの名無しさん (ワッチョイ f3e7-dVgQ)
2018/03/20(火) 19:32:56.49ID:mI6/gPTY0 別の原因に見える
まずデストラクタじゃなくて普通のメンバ関数で明示的に呼んで止めた時に大丈夫か確認してはどうか
まずデストラクタじゃなくて普通のメンバ関数で明示的に呼んで止めた時に大丈夫か確認してはどうか
693デフォルトの名無しさん (スップ Sd03-tAvx)
2018/03/20(火) 19:45:17.42ID:KQMGt9+Dd pthread_cancel はいろんなことがよく分かっている人しか使ってはいけない
694デフォルトの名無しさん (ワッチョイ 53bd-mA8b)
2018/03/20(火) 22:33:41.91ID:f35CyiEk0 >>685
「<<」と「>>」の2種類しか用意できんやんけ
それらを表示と入力に割り当ててしまえば結局シリアライズのための固有なメソッドなりインターフェースなりを別途作らねばならんぬ、
そもそもの構想からして頓挫してゐる、
頓挫してゐるのだ…!
「<<」と「>>」の2種類しか用意できんやんけ
それらを表示と入力に割り当ててしまえば結局シリアライズのための固有なメソッドなりインターフェースなりを別途作らねばならんぬ、
そもそもの構想からして頓挫してゐる、
頓挫してゐるのだ…!
695はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 3b6f-hKdO)
2018/03/20(火) 23:55:08.06ID:N1yoGURK0696デフォルトの名無しさん (ワッチョイ 53bd-mA8b)
2018/03/21(水) 00:33:52.80ID:7c9Ne47J0 ちょっなんで数億年の生物史史上はじめて
ようやっとSTDINとSTDOUTとSTDERRの3種類に世界が抽象化されたストリームという概念|を
細分化するという元の木阿弥にしますか;;
藻前は
some_command | tee result.txt > some_file.bin
とかいったパイプやリダイレクトを表示専用とかシリアライズ専用とかに分けたいのかっていうか、
ようやっとSTDINとSTDOUTとSTDERRの3種類に世界が抽象化されたストリームという概念|を
細分化するという元の木阿弥にしますか;;
藻前は
some_command | tee result.txt > some_file.bin
とかいったパイプやリダイレクトを表示専用とかシリアライズ専用とかに分けたいのかっていうか、
697デフォルトの名無しさん (ワッチョイ e17f-hKdO)
2018/03/21(水) 00:44:24.33ID:p0rFESlF0 なに藻前って
698はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 3b6f-hKdO)
2018/03/21(水) 01:10:44.31ID:MouF+uE40 >>696
お前は何を言ってるんだ。
ここで言ってるストリームは C++ 用語のストリームだぞ。
「ストリーム『型』」ってわざわざ書いてるんだからわかれよ。
下位レイヤでは好きなところに繋げればいい。
お前は何を言ってるんだ。
ここで言ってるストリームは C++ 用語のストリームだぞ。
「ストリーム『型』」ってわざわざ書いてるんだからわかれよ。
下位レイヤでは好きなところに繋げればいい。
699デフォルトの名無しさん (ワッチョイ af7e-hKdO)
2018/03/21(水) 01:18:27.48ID:9NBOfW2C0 streamとstreambufの違いを理解しよう
700はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 3b6f-hKdO)
2018/03/21(水) 01:24:40.58ID:MouF+uE40 要するに std::basic_ostream を継承した何かを作ればいいんだ。
701デフォルトの名無しさん (ワッチョイ b180-lboF)
2018/03/21(水) 06:52:22.30ID:fTbDiwfs0 ストリームはもう捨てたほうが良いぞ。
おじさんからの警告だ。
おじさんからの警告だ。
702デフォルトの名無しさん (ワッチョイ 7b34-HLM0)
2018/03/21(水) 07:14:12.04ID:2n7LolrI0 便利そうに見えて便利に使えない
それがstream
それがstream
703デフォルトの名無しさん (ワッチョイ ebb6-CZ08)
2018/03/21(水) 07:18:35.01ID:zecIlzA/0 「29歳既婚、2年前に会社を辞めた。ボードゲーム作りを始めて3700万円を
売り上げたけど何か聞きたいことはある?」回答いろいろ
http://labaq.com/archives/51880196.html
日本ボードゲーム界の異端児に聞く!ボードゲームデザイナーとして生きていくには?
https://bodoge.hoobby.net/columns/00013
はじめてボードゲームを作ってはじめてゲームマーケットに出店した ので、ひとり反省会をしてみる。
http://datecocco.hatenablog.com/entry/2015/11/26/000000
はじめて作ったボードゲームを売った話
http://nrmgoraku.hateblo.jp/entry/2017/05/17/210000
ボードゲームイベント「ゲームマーケット」から業界が見えた!
https://entertainmentstation.jp/61107
ゲームマーケットに挑む人向けガイド
http://spa-game.com/?p=4830
ボードゲームはどう作るのか、自分なりに考えた
http://roy.hatenablog.com/entry/2014/07/09/124824
オトナも遊べるボードゲーム!自作するといくらになるのか
http://www.d-laboweb.jp/special/sp312/
ボードゲームの展示イベント「ゲームマーケット」の成長記録からこれからの
市場に必要なことを妄想してみた。6年間の来場者数推移(2016年4月時点調べ)
https://bodoge.hoobby.net/columns/00001
ボードゲーム市場がクラウドファンディングの出現で急成長を遂げ市場規模を拡大中
http://gigazine.net/news/20150820-board-game-crowdfunding/
売り上げたけど何か聞きたいことはある?」回答いろいろ
http://labaq.com/archives/51880196.html
日本ボードゲーム界の異端児に聞く!ボードゲームデザイナーとして生きていくには?
https://bodoge.hoobby.net/columns/00013
はじめてボードゲームを作ってはじめてゲームマーケットに出店した ので、ひとり反省会をしてみる。
http://datecocco.hatenablog.com/entry/2015/11/26/000000
はじめて作ったボードゲームを売った話
http://nrmgoraku.hateblo.jp/entry/2017/05/17/210000
ボードゲームイベント「ゲームマーケット」から業界が見えた!
https://entertainmentstation.jp/61107
ゲームマーケットに挑む人向けガイド
http://spa-game.com/?p=4830
ボードゲームはどう作るのか、自分なりに考えた
http://roy.hatenablog.com/entry/2014/07/09/124824
オトナも遊べるボードゲーム!自作するといくらになるのか
http://www.d-laboweb.jp/special/sp312/
ボードゲームの展示イベント「ゲームマーケット」の成長記録からこれからの
市場に必要なことを妄想してみた。6年間の来場者数推移(2016年4月時点調べ)
https://bodoge.hoobby.net/columns/00001
ボードゲーム市場がクラウドファンディングの出現で急成長を遂げ市場規模を拡大中
http://gigazine.net/news/20150820-board-game-crowdfunding/
704デフォルトの名無しさん (ワッチョイ 1ff3-hKdO)
2018/03/21(水) 10:36:30.48ID:DQv7yGEy0 >>696
カンブリア紀からオルドビス紀にかけて行われた抽象化は
今でいうインターフェイスの考え方で、当たり前だが
インターフェイスを継承する実装クラスは無数にあってよい
そういうのは元の木阿弥とは言わないぞ
カンブリア紀からオルドビス紀にかけて行われた抽象化は
今でいうインターフェイスの考え方で、当たり前だが
インターフェイスを継承する実装クラスは無数にあってよい
そういうのは元の木阿弥とは言わないぞ
705はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 3b6f-hKdO)
2018/03/21(水) 15:09:48.71ID:MouF+uE40 >>705
空いているディスクリプタが使用されるとしても、自分で特定の数字を指定してディスクリプタにすることはできなかったんじゃなかったかな?
空いているディスクリプタが使用されるとしても、自分で特定の数字を指定してディスクリプタにすることはできなかったんじゃなかったかな?
>>706
失礼、dup2() というのがあったね…
失礼、dup2() というのがあったね…
708デフォルトの名無しさん (ワッチョイ af7e-hKdO)
2018/03/21(水) 15:58:29.69ID:9NBOfW2C0 coutがSTDOUTにつながってるだけでここは何につなげてもいいということ
streambufの中身はただの配列でもいいし、アプリケーションのロガーでもいいし、循環バッファでもいいし、通信のポートでもいい
streambufの中身はただの配列でもいいし、アプリケーションのロガーでもいいし、循環バッファでもいいし、通信のポートでもいい
709デフォルトの名無しさん (ワッチョイ a723-tAvx)
2018/03/21(水) 19:28:41.53ID:TV3lE0eZ0 シリアライズするときはバイナリ表現にしたいし
ログするときは文字列表記にしたいし
ログするときは文字列表記にしたいし
710はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 3b6f-hKdO)
2018/03/21(水) 20:00:34.84ID:MouF+uE40 >>709
だからそれはストリームオブジェクトの型で切り替えろって言ってるんだろうが
だからそれはストリームオブジェクトの型で切り替えろって言ってるんだろうが
711デフォルトの名無しさん (スプッッ Sd13-tAvx)
2018/03/21(水) 20:30:34.07ID:VVSY5O5Ed それを嫌だって言ってんだよ
バイナリの読み書きは write() だの read() で十分
バイナリの読み書きは write() だの read() で十分
712はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 3b6f-hKdO)
2018/03/21(水) 20:33:11.12ID:MouF+uE40 read なり write なりを「使う」のは別にいいよ。
それを C++ 上でどのように抽象化すればいいかって話なんだから。
そういうレイヤの違う話を混ぜ込んでくるなよ。
それを C++ 上でどのように抽象化すればいいかって話なんだから。
そういうレイヤの違う話を混ぜ込んでくるなよ。
713デフォルトの名無しさん (スップ Sd03-tAvx)
2018/03/21(水) 20:43:51.09ID:KgSvodNyd そこで新しい型を設けてまで << を使う意味がない
cout にバイナリでシリアライズするときはどうすんの?
size_t serialize(const T& t, ostream& os)
とかを各型用に書く方がマシ
cout にバイナリでシリアライズするときはどうすんの?
size_t serialize(const T& t, ostream& os)
とかを各型用に書く方がマシ
714デフォルトの名無しさん (スップ Sd03-tAvx)
2018/03/21(水) 20:47:43.15ID:KgSvodNyd バイナリでシリアライズするに際して
別の型のストリームオブジェクトを作ってまで
<< だの dec だの endl を使えるようにすることの利点を説明して欲しい
別の型のストリームオブジェクトを作ってまで
<< だの dec だの endl を使えるようにすることの利点を説明して欲しい
715デフォルトの名無しさん (ワッチョイ af7e-hKdO)
2018/03/21(水) 21:36:05.23ID:9NBOfW2C0 例外を除いて
operator<<()は書式化出力
write()は非書式化出力
なのでバイナリを出力するときはwrite()を使うべき
>size_t serialize(const T& t, ostream& os)
シリアライズのような複雑な操作をするときはこれは悪い選択じゃない
というかstreamそのものを放り込むのはたまに見かける
operator<<()は書式化出力
write()は非書式化出力
なのでバイナリを出力するときはwrite()を使うべき
>size_t serialize(const T& t, ostream& os)
シリアライズのような複雑な操作をするときはこれは悪い選択じゃない
というかstreamそのものを放り込むのはたまに見かける
716デフォルトの名無しさん (ブーイモ MM61-/CVT)
2018/03/21(水) 22:02:23.07ID:52xrh1HkM えっブロックデバイスにもStreamを
717はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 3b6f-hKdO)
2018/03/21(水) 22:15:54.63ID:MouF+uE40 >>715
書式化 (formatted) ってのと、結果がバイナリかというのは直行する概念だよ。
シリアライズってのはオブジェクトのバイト列をそのまま出力することじゃなくて、
バイナリ形式の特定のフォーマットにして出力することだろ。
それは書式化って言うんだよ。
書式化 (formatted) ってのと、結果がバイナリかというのは直行する概念だよ。
シリアライズってのはオブジェクトのバイト列をそのまま出力することじゃなくて、
バイナリ形式の特定のフォーマットにして出力することだろ。
それは書式化って言うんだよ。
718はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 3b6f-hKdO)
2018/03/21(水) 22:26:24.75ID:MouF+uE40 >>714
マニピュレータを使える意味はないかもな。
使えないように定義することも出来るし、意味がないなら使えないようにしておくべき。
ここでは抽象化の話をしているんだ。
出力先が人向けのテキスト表現であるか機械向けのシリアライズ表現であるかによって
書き方を変えなきゃならない、相手を意識しなきゃならないというよりは、
相手によって自動で切り替わって欲しいってことなんだよ。
意識しなくていいデザインってのは意識しにくくなるってことと表裏一体だから、
見えなくなるのが気にくわないってのならわかる。
マニピュレータを使える意味はないかもな。
使えないように定義することも出来るし、意味がないなら使えないようにしておくべき。
ここでは抽象化の話をしているんだ。
出力先が人向けのテキスト表現であるか機械向けのシリアライズ表現であるかによって
書き方を変えなきゃならない、相手を意識しなきゃならないというよりは、
相手によって自動で切り替わって欲しいってことなんだよ。
意識しなくていいデザインってのは意識しにくくなるってことと表裏一体だから、
見えなくなるのが気にくわないってのならわかる。
719デフォルトの名無しさん (ワッチョイ 23f9-y9O9)
2018/03/21(水) 22:26:32.59ID:OwhHF7Zm0 直交
720はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 3b6f-hKdO)
2018/03/21(水) 22:29:29.81ID:MouF+uE40721デフォルトの名無しさん (ワッチョイ 2b50-bRBW)
2018/03/21(水) 23:13:33.75ID:NRxI71LE0 無意味な処理が嫌だとか言っておきながら
ここでは無駄の塊みたいな方法を勧める
アホですね
ここでは無駄の塊みたいな方法を勧める
アホですね
722はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 3b6f-hKdO)
2018/03/21(水) 23:50:04.75ID:MouF+uE40 >>721
俺は一貫して抽象化の話をしてるつもりなんだが。
プログラマの意図を表現できる書き方をすべきって話をしてんの。
無意味な処理をしろと書いてあるのをプログラマの意図として読み取っていいのか?
そうじゃないだろう。
C++ がせっかく用意しているライブラリを活用するのが無駄なのか?
そうじゃないだろう。
俺は一貫して抽象化の話をしてるつもりなんだが。
プログラマの意図を表現できる書き方をすべきって話をしてんの。
無意味な処理をしろと書いてあるのをプログラマの意図として読み取っていいのか?
そうじゃないだろう。
C++ がせっかく用意しているライブラリを活用するのが無駄なのか?
そうじゃないだろう。
723デフォルトの名無しさん (ワッチョイ 5b80-AyCB)
2018/03/22(木) 07:21:49.59ID:tiDItZ1f0 ハッキリ言ってストリームは蛇足だったわ。
廃止したほうが良いわ。
廃止したほうが良いわ。
724デフォルトの名無しさん (ワッチョイ 5b80-AyCB)
2018/03/22(木) 07:25:52.15ID:tiDItZ1f0 Boostもそうだけど、有り余るC++のパワーをカッコよく使いこなそうとしてやっちまったみたいな。
もうちょっと使う側の立場にたつべきだな。
もうちょっと使う側の立場にたつべきだな。
725デフォルトの名無しさん (ワッチョイ 8a7e-zkh5)
2018/03/22(木) 08:38:59.71ID:0Y4DSJfq0 黒魔術だなんだ言って楽しめないようではC++は向いていない
726デフォルトの名無しさん (ワッチョイ 37f3-zkh5)
2018/03/22(木) 10:14:29.52ID:Q5Rs9TJ/0 蛇足ねえ。。。
禿本1stでoperator overloadのデモ用に作られたサンプルなんだが
そういうのは後で取って付けた存在といえるのか?
禿本1stでoperator overloadのデモ用に作られたサンプルなんだが
そういうのは後で取って付けた存在といえるのか?
727デフォルトの名無しさん (ワッチョイ 1a12-aRf7)
2018/03/22(木) 17:28:14.63ID:PBLsyShY0 業界全体としては奥の深さを求める人(求道者)を一か所に集め留めるのには非常に有益な言語
728デフォルトの名無しさん (ワッチョイ 8a7e-zkh5)
2018/03/22(木) 17:34:08.02ID:0Y4DSJfq0 そのうちAsioやRangeあたりも標準化されるだろうし
もうその方向に突き抜けてほしい
使いやすい言語なんか他にいくらでもある
もうその方向に突き抜けてほしい
使いやすい言語なんか他にいくらでもある
729はちみつ餃子 ◆8X2XSCHEME (ワッチョイ b66f-zkh5)
2018/03/22(木) 17:41:04.44ID:HExEyyqO0 具体的にどういうときに不便なのか語れよ。
使いにくいってだけじゃ何にもわからん。
使いにくいってだけじゃ何にもわからん。
730デフォルトの名無しさん (ワッチョイ 8a7e-zkh5)
2018/03/22(木) 17:43:00.10ID:0Y4DSJfq0 C++に関しては慣れてない人がそう言ってるだけだから
731デフォルトの名無しさん (ワッチョイ a393-4ZrE)
2018/03/22(木) 19:57:57.53ID:sR+euIcT0 >>726
どの資料だったか覚えてないけど、演算子オーバーロードに関して
先生は「元の演算子の意味とかけ離れた挙動をさせるのは避けるべきだ」
みたいなことも書いてるよな。
まぁ、原則は指針であって絶対の規則じゃないわけだけど、
<< >> をビットシフトからストリーム入出力に振り替えておいて
どの口で言うか、このハゲッー! とか思ったり。
どの資料だったか覚えてないけど、演算子オーバーロードに関して
先生は「元の演算子の意味とかけ離れた挙動をさせるのは避けるべきだ」
みたいなことも書いてるよな。
まぁ、原則は指針であって絶対の規則じゃないわけだけど、
<< >> をビットシフトからストリーム入出力に振り替えておいて
どの口で言うか、このハゲッー! とか思ったり。
732デフォルトの名無しさん (ワッチョイ 8a7e-zkh5)
2018/03/22(木) 20:06:11.34ID:0Y4DSJfq0 >>731
ストリームのような周知の事実になっているものはそれには当てはまらないでしょ
ストリームのような周知の事実になっているものはそれには当てはまらないでしょ
733はちみつ餃子 ◆8X2XSCHEME (ワッチョイ b66f-zkh5)
2018/03/22(木) 20:22:42.90ID:HExEyyqO0 >>731-732
まああれくらいのものになると、オブジェクトに追加で突っ込んでいくような動作が「元の演算子の意味」になっちゃってるよな。
そんなことより C++20 に入る予定のカレンダーでは日付を 2018y/mar/22 とか書けるらしくて、
これはさすがにクソやろ……。
これもいずれ普通に受け入れる気持ちになるだろうか。
まああれくらいのものになると、オブジェクトに追加で突っ込んでいくような動作が「元の演算子の意味」になっちゃってるよな。
そんなことより C++20 に入る予定のカレンダーでは日付を 2018y/mar/22 とか書けるらしくて、
これはさすがにクソやろ……。
これもいずれ普通に受け入れる気持ちになるだろうか。
734デフォルトの名無しさん (ワッチョイ 8a7e-zkh5)
2018/03/22(木) 20:47:25.31ID:0Y4DSJfq0735デフォルトの名無しさん (ワッチョイ 37f3-zkh5)
2018/03/22(木) 22:18:28.94ID:Q5Rs9TJ/0736デフォルトの名無しさん (アウアウカー Sac3-2dLA)
2018/03/23(金) 00:38:32.35ID:2SqL+aT8a >>733
日付の表記は何種類かあるし年/月/日でも日/年/月でも表せるなら結構便利だと思う。
日付の表記は何種類かあるし年/月/日でも日/年/月でも表せるなら結構便利だと思う。
737デフォルトの名無しさん (ワッチョイ a393-4ZrE)
2018/03/23(金) 08:21:50.21ID:VCdaFb7Y0 >>733
標準に「日付を表す型」みたいのが追加され、
それ用リテラルの接尾語(のひとつ)が ""y で 2018y は2018年を表す、
さらにこの型では / は日付要素を区切る演算子としてオーバーロードされてる。
…といった感じか?
確かに虚心坦懐に / を見れば、割り算のコンピュータ向け代用記号だけでなく
日付の区切りや、ファイルシステムの階層区切りでもあるけど。
標準に「日付を表す型」みたいのが追加され、
それ用リテラルの接尾語(のひとつ)が ""y で 2018y は2018年を表す、
さらにこの型では / は日付要素を区切る演算子としてオーバーロードされてる。
…といった感じか?
確かに虚心坦懐に / を見れば、割り算のコンピュータ向け代用記号だけでなく
日付の区切りや、ファイルシステムの階層区切りでもあるけど。
738デフォルトの名無しさん (ワッチョイ 1a12-aRf7)
2018/03/23(金) 09:13:18.25ID:xSYf1jdZ0 aのb乗
a^b
a**b
a^b
a**b
739デフォルトの名無しさん (スフッ Sdba-5bpY)
2018/03/23(金) 10:31:52.82ID:fMiQp2pkd こんだけ演算子は深いのになぜか未だに[]は引数を一つしか取れない
740デフォルトの名無しさん (アウアウウー Sac7-zkh5)
2018/03/23(金) 10:45:38.60ID:COiOJTLla 「静的」、「動的」というのがよく分からないのですが、詳しく書いてある本はありますか?
ヒープ領域がどうたらとかいうのもよく分かりません。
スタックとかいうのもよく分かりません。
詳しく解説している本を教えてください。
ヒープ領域がどうたらとかいうのもよく分かりません。
スタックとかいうのもよく分かりません。
詳しく解説している本を教えてください。
741デフォルトの名無しさん (アウアウウー Sac7-zkh5)
2018/03/23(金) 10:48:57.55ID:COiOJTLla ロベールのC++の本を読んでいて疑問に思いました。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- テレビ朝日 本社から男性が転落し死亡。関連会社社員か 当たった通行人が左肩軽傷 [阿弥陀ヶ峰★]
- テレビ朝日本社から20~30代の関連会社社員とみられる男性が転落し死亡 六本木けやき坂通りの通行人にはけが人なし [少考さん★]
- 小島瑠璃子さん、代表取締役を務める会社を破産申請 [牛丼★]
- 「残クレ」でマイホーム、国が銀行向け保険 新型住宅ローン普及促す -日経 ★3 [少考さん★]
- 【サッカー】日本代表、FIFAランキング“4位”の強豪イングランドとの対戦が正式決定! 来年3月に聖地ウェンブリーで激突へ [久太郎★]
- 日本、G7への中国招待を懸念 議長国フランスに慎重な対応要請 [どどん★]
