C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ
C++相談室 part144
https://mevius.5ch.net/test/read.cgi/tech/1563769115/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.105【環境依存OK】
https://mevius.5ch.net/test/read.cgi/tech/1556142878/
■長いソースを貼るときはここへ。■
http://codepad.org/
https://ideone.com/
[C++ FAQ]
https://isocpp.org/wiki/faq/
http://www.bohyoh.com/CandCPP/FAQ/ (日本語)
----- テンプレ ここまで -----
探検
C++相談室 part145
レス数が950を超えています。1000を超えると書き込みができなくなります。
1デフォルトの名無しさん
2019/09/13(金) 17:13:24.60ID:/ygW08Jq882デフォルトの名無しさん
2019/11/04(月) 00:16:08.68ID:J7PIJnTc >>880 (732じゃないけど)
クラス実装の変更に対する再コンパイルの必要性の削減。
これが利益とならない環境では用はない。これが利益となる環境はある。
個人的には同じ目的ならインターフェースクラス+生成関数のほうが手間が少なくて好み。
公開済みのクラス(具象クラス)に後付けでも適用できるのが pimpl の強みじゃないかな。
クラス実装の変更に対する再コンパイルの必要性の削減。
これが利益とならない環境では用はない。これが利益となる環境はある。
個人的には同じ目的ならインターフェースクラス+生成関数のほうが手間が少なくて好み。
公開済みのクラス(具象クラス)に後付けでも適用できるのが pimpl の強みじゃないかな。
883デフォルトの名無しさん
2019/11/04(月) 00:45:00.04ID:sHXph+lc884デフォルトの名無しさん
2019/11/04(月) 00:50:27.63ID:HxncxYCK >>881
お前の老害頭では無理だと思う
お前の老害頭では無理だと思う
885デフォルトの名無しさん
2019/11/04(月) 01:01:50.05ID:qdasM095 コンパイル時にリフレクションできたらC++にはもう何も望まないんだけどな
886デフォルトの名無しさん
2019/11/04(月) 01:16:04.50ID:bOoSbled リフレクションしたいとか実行時にあれだとかこれだとかしたいとか
もっと安全性を高めたいとかいう人はC#にいったらいいとおもうんだが
なぜいかないのか
もっと安全性を高めたいとかいう人はC#にいったらいいとおもうんだが
なぜいかないのか
887デフォルトの名無しさん
2019/11/04(月) 04:20:27.81ID:6RBgtjpd マングリングとかも規格で決めてほしいよね
そうすればクラスのエクスポートなんかも簡単になるのに
そうすればクラスのエクスポートなんかも簡単になるのに
888デフォルトの名無しさん
2019/11/04(月) 06:09:25.96ID:26dKwYrd 動的はともかく静的リフレクションはあって困る場面は無いだろ
冗長な記述や変なマクロを使わずに、enumを文字列化したりしたいだろ
冗長な記述や変なマクロを使わずに、enumを文字列化したりしたいだろ
889デフォルトの名無しさん
2019/11/04(月) 06:17:29.31ID:ktSXuT3K 名前マングリングの方法がコンパイラ毎に違うおかげで
互換性のないオブジェクトファイル同士がリンクされる事故を防げる、って
『More Effective C++』に出てたな。
便利さも欲しいが安全性も保ちたい、という要求のせめぎあいだな。
互換性のないオブジェクトファイル同士がリンクされる事故を防げる、って
『More Effective C++』に出てたな。
便利さも欲しいが安全性も保ちたい、という要求のせめぎあいだな。
890デフォルトの名無しさん
2019/11/04(月) 06:59:32.99ID:1EaGoi2+ 今生き残ってるC++のコンパイラってどのくらい種類あんの
特定ハード向けのもgccの派生なんでしょ?
特定ハード向けのもgccの派生なんでしょ?
891デフォルトの名無しさん
2019/11/04(月) 09:40:11.27ID:sHXph+lc892デフォルトの名無しさん
2019/11/04(月) 10:05:11.25ID:7p81GTJD つーかハンドルで渡して使う時にキャストするって面倒だからさ
privateだからいいでしょとかいう問題じゃない
privateだからいいでしょとかいう問題じゃない
893デフォルトの名無しさん
2019/11/04(月) 12:16:24.53ID:pwba8h1Q 記述の煩雑さはもう諦めるけどインラインPimplでゼロオーバーヘッドにしてほしい
894デフォルトの名無しさん
2019/11/04(月) 12:22:24.34ID:TNJ/Yj6e 煩雑さを許容できるならやれるでしょ
pointerでなくバイト配列にしておいて中でcastするやつ
気を付けないところいろいろあるけど
pointerでなくバイト配列にしておいて中でcastするやつ
気を付けないところいろいろあるけど
895デフォルトの名無しさん
2019/11/04(月) 12:35:35.98ID:jCRIC3rQ オーバーヘッドを気にしている人の大半は、気にする必要のあるものを作っていない
896デフォルトの名無しさん
2019/11/04(月) 12:35:45.49ID:DlV1X8tk 実装をpimplに押し込めて公開インターフェース上の変数メンバの増減を無くすのが肝なんだから
pimplのデリファレンスのオーバーヘッドは避けようがないだろう。
pimplのデリファレンスのオーバーヘッドは避けようがないだろう。
897デフォルトの名無しさん
2019/11/04(月) 12:41:44.84ID:7p81GTJD そもそもprivateな関数宣言をpublicなヘッダに
書かないといけないというC++言語仕様の欠陥
publicヘッダとprivateヘッダの二つに分けて
クラス宣言できればよかった
ちなみにC#ではpartialクラスといって
複数のファイルにまたがってクラスの定義ができる
書かないといけないというC++言語仕様の欠陥
publicヘッダとprivateヘッダの二つに分けて
クラス宣言できればよかった
ちなみにC#ではpartialクラスといって
複数のファイルにまたがってクラスの定義ができる
898デフォルトの名無しさん
2019/11/04(月) 13:33:20.96ID:TNJ/Yj6e899デフォルトの名無しさん
2019/11/04(月) 13:45:03.05ID:7wrIz40y まあ欠陥って言われてもprivateメンバー変数変更されたらインスタンスのサイズ変わったりするから
1) 参照してるソースも含めてリコンパイルする
2) ポインタで持つ(pimpl)
しかないからねぇ
C++的には現状の言語仕様でIDEでprivateは見せないようにもできるとかでいいと思う
1) 参照してるソースも含めてリコンパイルする
2) ポインタで持つ(pimpl)
しかないからねぇ
C++的には現状の言語仕様でIDEでprivateは見せないようにもできるとかでいいと思う
900デフォルトの名無しさん
2019/11/04(月) 13:47:25.16ID:ncwvkXHO >>898
パズルとしてはいいけど真顔で書いてたらちょっと引くわw
パズルとしてはいいけど真顔で書いてたらちょっと引くわw
901デフォルトの名無しさん
2019/11/04(月) 13:59:48.02ID:DlV1X8tk902デフォルトの名無しさん
2019/11/04(月) 14:00:47.43ID:7P/NsyXI 結局低レイヤーを考慮しないでバカが文句言ってるだけで
そんなことに付き合う必要はないんだよ。
そんなことに付き合う必要はないんだよ。
903デフォルトの名無しさん
2019/11/04(月) 14:16:11.73ID:TNJ/Yj6e >>901
バイナリ境界にしたときの拡張性のこと言ってる?
それはまさに配列のサイズでリザーブだね
溢れたら終わり
目的がヘッダー依存を切ることなら必要に応じて配列サイズ増やせばいいだけ
めんどいけどassertかけてあるからミスることはない
あとpimplは中でnewされるのがいやな場合あるからそれを避けられるってのも大きいね
バイナリ境界にしたときの拡張性のこと言ってる?
それはまさに配列のサイズでリザーブだね
溢れたら終わり
目的がヘッダー依存を切ることなら必要に応じて配列サイズ増やせばいいだけ
めんどいけどassertかけてあるからミスることはない
あとpimplは中でnewされるのがいやな場合あるからそれを避けられるってのも大きいね
904デフォルトの名無しさん
2019/11/04(月) 14:34:36.07ID:mRc+a4F8 >>897
(使う側が)、CPerson person[10]; や、new CPerson[10] のように書いたと
すると、C++は高速化のため、CPersonのバイトサイズを定数値として
静的にコンパイルして、スタックや Heapからそれらのオブジェクトの領域を
確保する。
なので、たとえC++でCPersonのprivateメンバがC#のpartialの様に分けて宣言できた
としても、それらを全て合わせた全体のバイトサイズが分からないと静的に処理できない。
故に結局、partialの一部であっても全体のサイズに影響のあるような変更が行われた
場合には、上記の様な形でCPersonを使うプログラムは再コンパイルが必要となる。
(使う側が)、CPerson person[10]; や、new CPerson[10] のように書いたと
すると、C++は高速化のため、CPersonのバイトサイズを定数値として
静的にコンパイルして、スタックや Heapからそれらのオブジェクトの領域を
確保する。
なので、たとえC++でCPersonのprivateメンバがC#のpartialの様に分けて宣言できた
としても、それらを全て合わせた全体のバイトサイズが分からないと静的に処理できない。
故に結局、partialの一部であっても全体のサイズに影響のあるような変更が行われた
場合には、上記の様な形でCPersonを使うプログラムは再コンパイルが必要となる。
905デフォルトの名無しさん
2019/11/04(月) 14:57:14.11ID:VEKGTWb6 プリコンパイルドヘッダが標準化されればなんとかなるかも
>>905
そういうのはやめてほしいです…
そういうのはやめてほしいです…
907デフォルトの名無しさん
2019/11/04(月) 16:31:03.20ID:q2OPdcJi908デフォルトの名無しさん
2019/11/04(月) 16:35:25.90ID:q2OPdcJi 差分とりづらいってのはあるか
909デフォルトの名無しさん
2019/11/04(月) 20:26:00.54ID:sHXph+lc >>897
構造体データメンバのメモリ配置を正確に定義したいという目的を捨てない限り
privateなデータメンバをprivateヘッダに分けて定義できるようにしたところで
pimplが目指すような解決にはならない
ほとんど意味が無い
構造体データメンバのメモリ配置を正確に定義したいという目的を捨てない限り
privateなデータメンバをprivateヘッダに分けて定義できるようにしたところで
pimplが目指すような解決にはならない
ほとんど意味が無い
910デフォルトの名無しさん
2019/11/04(月) 20:31:52.81ID:sHXph+lc pimplが目指すような解決というのは筆が滑ったorz
とにかくprivateなデータメンバをprivateヘッダに分けて定義できるようにしたところで
実装の隠蔽にはやっぱハンドル経由とかポインタ経由(pimpl)な間接参照が必要なままである
構造体データメンバの追加や削除や順序変更が
publicなヘッダに定義されたインターフェース仕様に影響しなくなりはしない
とにかくprivateなデータメンバをprivateヘッダに分けて定義できるようにしたところで
実装の隠蔽にはやっぱハンドル経由とかポインタ経由(pimpl)な間接参照が必要なままである
構造体データメンバの追加や削除や順序変更が
publicなヘッダに定義されたインターフェース仕様に影響しなくなりはしない
911デフォルトの名無しさん
2019/11/04(月) 21:34:38.56ID:TNJ/Yj6e912デフォルトの名無しさん
2019/11/04(月) 21:53:48.72ID:7wrIz40y913デフォルトの名無しさん
2019/11/04(月) 22:09:21.71ID:TNJ/Yj6e そこはどうにもならんな
他にいい方法あるなら知りたい
上で触れてるけど、逆にバイナリ互換とるときはそういうリザーブが役立つこともある
他にいい方法あるなら知りたい
上で触れてるけど、逆にバイナリ互換とるときはそういうリザーブが役立つこともある
914デフォルトの名無しさん
2019/11/04(月) 22:38:30.89ID:7wrIz40y915デフォルトの名無しさん
2019/11/04(月) 22:40:59.70ID:jCRIC3rQ そもそもポインタ参照ごときのオーバーヘッドをも許さないほどリアルタイム性を要求するもの作ってんの?
916デフォルトの名無しさん
2019/11/04(月) 22:51:45.72ID:TNJ/Yj6e917デフォルトの名無しさん
2019/11/04(月) 22:58:08.77ID:7wrIz40y918デフォルトの名無しさん
2019/11/04(月) 23:05:23.77ID:J+RS26ji >>915
C++の用途として可能な限りオーバーヘッドをゼロとすることが要求されるケースがあるのは当然の話であるが、別に議論に参加するものがそういう物を作っている必要性はないだろうに、何でこだわってるんだ?
C++の用途として可能な限りオーバーヘッドをゼロとすることが要求されるケースがあるのは当然の話であるが、別に議論に参加するものがそういう物を作っている必要性はないだろうに、何でこだわってるんだ?
919デフォルトの名無しさん
2019/11/04(月) 23:12:26.97ID:TNJ/Yj6e >>917
だから手間がかかると言ってるわけ
やる気になれば自動化できるスクリプトは作れるだろうけどね
バカと思うかもしれないけどreserveフィールドでバイナリ互換を保つってのは実際やるんだよ
未来を予測できないのはそのとおり
適当に決める
まぁお前の知らない世界の話だから気にするな
だから手間がかかると言ってるわけ
やる気になれば自動化できるスクリプトは作れるだろうけどね
バカと思うかもしれないけどreserveフィールドでバイナリ互換を保つってのは実際やるんだよ
未来を予測できないのはそのとおり
適当に決める
まぁお前の知らない世界の話だから気にするな
920デフォルトの名無しさん
2019/11/04(月) 23:25:59.73ID:DlV1X8tk 外部からはデストラクタもコピーコンストラクタも動かせないのにあえてインラインにする
理由がよくわからないな。
よっぽど特殊でピンポイントな要件なのかもしれないが。
理由がよくわからないな。
よっぽど特殊でピンポイントな要件なのかもしれないが。
921デフォルトの名無しさん
2019/11/05(火) 01:47:52.32ID:8w7ODMFL placement new を使った
char* ptr = (char *)malloc(sizeof(CPerson));
CPerson *pPerson = new(ptr) CPerson;
という書き方、実は、「コンストラクタの明示的呼び出し」なるものを使って、
CPerson *pPerson = (CPerson *)malloc(sizeof(CPerson));
pPerson->CPerson::CPerson(); // コンストラクタの明示的呼び出し
と書くことも出来るらしいことを最近知った。
char* ptr = (char *)malloc(sizeof(CPerson));
CPerson *pPerson = new(ptr) CPerson;
という書き方、実は、「コンストラクタの明示的呼び出し」なるものを使って、
CPerson *pPerson = (CPerson *)malloc(sizeof(CPerson));
pPerson->CPerson::CPerson(); // コンストラクタの明示的呼び出し
と書くことも出来るらしいことを最近知った。
922デフォルトの名無しさん
2019/11/05(火) 06:17:56.31ID:cY6SY5gz ああそうそれは良かったね〜
923デフォルトの名無しさん
2019/11/05(火) 07:19:41.62ID:UkGDCuYx >>919
手間の問題じゃないよ
せっかく変更に強くするためにやってるのに
> 適当がいやなら同じサイズにすりゃいいじゃん
なんてやったら本末転倒だろ
> やる気になれば自動化できるスクリプトは作れるだろうけどね
未来予知機能付きのスクリプトができたらいいねw
> バカと思うかもしれないけどreserveフィールドでバイナリ互換を保つってのは実際やるんだよ
ああ、昔のコボラー爺の発想ねw
ファイルとか通信とかで外部とやり取りするようなものだと今でも普通にあるけどメモリーレイアウトでやるのは流石に悪手でしかない
> まぁお前の知らない世界の話だから気にするな
時代遅れのお前の妄想に閉じ込めといてくれw
手間の問題じゃないよ
せっかく変更に強くするためにやってるのに
> 適当がいやなら同じサイズにすりゃいいじゃん
なんてやったら本末転倒だろ
> やる気になれば自動化できるスクリプトは作れるだろうけどね
未来予知機能付きのスクリプトができたらいいねw
> バカと思うかもしれないけどreserveフィールドでバイナリ互換を保つってのは実際やるんだよ
ああ、昔のコボラー爺の発想ねw
ファイルとか通信とかで外部とやり取りするようなものだと今でも普通にあるけどメモリーレイアウトでやるのは流石に悪手でしかない
> まぁお前の知らない世界の話だから気にするな
時代遅れのお前の妄想に閉じ込めといてくれw
924デフォルトの名無しさん
2019/11/05(火) 07:51:55.68ID:rlbxGVpf >>780
cygwinで配布してるwxwidgitはgcc3時代のabiでバイナリ作られてるが当然gcc8でもabiオプションで変えてリンクできる
cygwinで配布してるwxwidgitはgcc3時代のabiでバイナリ作られてるが当然gcc8でもabiオプションで変えてリンクできる
925デフォルトの名無しさん
2019/11/05(火) 07:55:46.59ID:Cze7w/ei >>921 何を見て「出来るらしい」と言ってるのかな?
926デフォルトの名無しさん
2019/11/05(火) 08:36:03.93ID:g61EG+/r 解放も自前でやるんなら別にいんじゃね?
927デフォルトの名無しさん
2019/11/05(火) 08:47:49.22ID:wVD+ILW8928デフォルトの名無しさん
2019/11/05(火) 12:36:38.02ID:UkGDCuYx929デフォルトの名無しさん
2019/11/05(火) 12:48:20.10ID:XPYDDbPn 日本人じゃないんじゃない?
930デフォルトの名無しさん
2019/11/05(火) 16:03:35.45ID:wVD+ILW8931デフォルトの名無しさん
2019/11/05(火) 17:28:48.96ID:X2+zjlng >>923
pimplの目的が変更に強いことってはお前の見方にすぎない
コンパイル時に検知できるんだから特別手間ではないし、
呼び出しコストを下げる目的は達している
技術的な話したいなら物事をフェアに見ような
pimplの目的が変更に強いことってはお前の見方にすぎない
コンパイル時に検知できるんだから特別手間ではないし、
呼び出しコストを下げる目的は達している
技術的な話したいなら物事をフェアに見ような
932デフォルトの名無しさん
2019/11/05(火) 18:57:55.00ID:lmPmis8+ 手間はあるけど(俺は)手間だと感じないだから、変更に強いとは思わない
って言ってるの?
って言ってるの?
933デフォルトの名無しさん
2019/11/05(火) 19:21:00.26ID:X2+zjlng934デフォルトの名無しさん
2019/11/05(火) 19:48:59.34ID:C6JaWlq+ 実装側のサイズが想定をオーバーしたら互換性無くなって再コンパイルになるんでしょ
それが許容される環境ならインターフェース切る意味が薄れるんじゃないの?
まぁ実際はオーバーしないようにするんだろうけど
それが許容される環境ならインターフェース切る意味が薄れるんじゃないの?
まぁ実際はオーバーしないようにするんだろうけど
935デフォルトの名無しさん
2019/11/05(火) 19:52:57.91ID:UkGDCuYx >>930
どうとも取ってないのに顔真っ赤にしてレスするとか珍しいなw
どうとも取ってないのに顔真っ赤にしてレスするとか珍しいなw
936デフォルトの名無しさん
2019/11/05(火) 19:54:47.54ID:UkGDCuYx937デフォルトの名無しさん
2019/11/05(火) 20:04:16.17ID:Rmlz0hln938デフォルトの名無しさん
2019/11/05(火) 20:18:38.99ID:GaJDeol8939デフォルトの名無しさん
2019/11/05(火) 20:37:36.25ID:UkGDCuYx940デフォルトの名無しさん
2019/11/05(火) 20:51:01.63ID:mHpC8FDb941デフォルトの名無しさん
2019/11/05(火) 21:09:19.41ID:uxZ9xTP+ 可愛そうなやつ…
942デフォルトの名無しさん
2019/11/05(火) 21:15:13.47ID:ZKJgPI6j 事務職だけど、C++使ってる
こんな便利なプログラミング言語があるとは
こんな便利なプログラミング言語があるとは
943蟻人間 ◆T6xkBnTXz7B0
2019/11/05(火) 21:19:49.70ID:36DcdPPB pimplesが顔に出たのは中学・高校時代だったか。
944蟻人間 ◆T6xkBnTXz7B0
2019/11/05(火) 21:23:07.90ID:36DcdPPB pointer to implementation
945デフォルトの名無しさん
2019/11/05(火) 22:48:13.18ID:5N1tjWFS946デフォルトの名無しさん
2019/11/05(火) 22:54:52.19ID:JFmkzqZr ピンプルはシンプルじゃないとダメでしょ
947デフォルトの名無しさん
2019/11/05(火) 23:19:34.53ID:+/SJ/H3y 他の言語ではprivateを隠すための努力なんてしなくていいよね
あくまでc++特有のパターンとしてpimplがある
pimplの肝は、ポインタだけなら前方宣言すればincludeしなくてOKっていう
抜け穴的なところからきていてポインタであることは妥協の産物
implクラスを変更しても互換性が保たれるというのはあくまで副次的
ゼロコストじゃないわけでc++の思想からも外れている
あくまでc++特有のパターンとしてpimplがある
pimplの肝は、ポインタだけなら前方宣言すればincludeしなくてOKっていう
抜け穴的なところからきていてポインタであることは妥協の産物
implクラスを変更しても互換性が保たれるというのはあくまで副次的
ゼロコストじゃないわけでc++の思想からも外れている
948デフォルトの名無しさん
2019/11/05(火) 23:26:17.64ID:+K1+YrIp 何をもって思想から外れていると?
C++の設計思想は最速を目指すことじゃないからな
C++の設計思想は最速を目指すことじゃないからな
949デフォルトの名無しさん
2019/11/05(火) 23:41:22.87ID:+/SJ/H3y Bjarne Stroustrupがそう言ってる
950デフォルトの名無しさん
2019/11/05(火) 23:55:16.05ID:+K1+YrIp 始まりはそうだったかも知れんが、現在の規格の設計思想は明らかに違う
951デフォルトの名無しさん
2019/11/05(火) 23:58:36.99ID:UFe3q3jM 最速を目指すって言うと少し外れてるけど、速度を重視するという所は変わってない
952デフォルトの名無しさん
2019/11/06(水) 00:01:20.76ID:x6qzxIK7 それ以上に集団での開発効率を重視したもの
>>898のような奇怪なものよりpImplの方がモダンC++の設計思想に合っているのは間違いない
>>898のような奇怪なものよりpImplの方がモダンC++の設計思想に合っているのは間違いない
953デフォルトの名無しさん
2019/11/06(水) 00:04:55.89ID:pco2p4E4 別に抜け穴でも何でもないだろ
なきゃこまるじゃん
なきゃこまるじゃん
954デフォルトの名無しさん
2019/11/06(水) 00:12:17.42ID:L0p3vvTY955デフォルトの名無しさん
2019/11/06(水) 00:18:49.38ID:L0p3vvTY956デフォルトの名無しさん
2019/11/06(水) 00:32:45.47ID:EoKh/jsd 設計の方針は曖昧なものではなく明文化されてるから調べてきてね
957デフォルトの名無しさん
2019/11/06(水) 01:17:04.07ID:mNM1KOm6 ピンプルってピンポンみたいだね
958デフォルトの名無しさん
2019/11/06(水) 01:37:31.84ID:clVAOuCS ハリソン・フォード主演映画「逃亡者」(1993年)の主人公の名前は、キンブルだったね。
この映画はサントラが良い。ジェームズ・ニュートン・ハワードが音楽担当。
このサントラの「Helicopter Chase」という曲は、「タクティクスオウガ」(1995年)というテレビゲームの「VENDETTA!」という曲によく似ている。
この映画はサントラが良い。ジェームズ・ニュートン・ハワードが音楽担当。
このサントラの「Helicopter Chase」という曲は、「タクティクスオウガ」(1995年)というテレビゲームの「VENDETTA!」という曲によく似ている。
959デフォルトの名無しさん
2019/11/06(水) 05:47:10.84ID:iGLzVPkM960デフォルトの名無しさん
2019/11/06(水) 05:56:01.23ID:iGLzVPkM961デフォルトの名無しさん
2019/11/06(水) 06:54:13.33ID:cnDla3Ge >>959
> ゼロオーバーヘッドの原則は言語が掲げるもので言語利用者を縛るものじゃねーよ
そうだよ、だからこの手の機能は言語仕様には含まれないってことな
> 実際それが便利でコストが問題にならない使い方ならどう使ってもいいだろ
誰もお前に使うななんて言ってないから使いたいなら勝手に使ってろよw
> ゼロオーバーヘッドの原則は言語が掲げるもので言語利用者を縛るものじゃねーよ
そうだよ、だからこの手の機能は言語仕様には含まれないってことな
> 実際それが便利でコストが問題にならない使い方ならどう使ってもいいだろ
誰もお前に使うななんて言ってないから使いたいなら勝手に使ってろよw
962デフォルトの名無しさん
2019/11/06(水) 07:21:04.31ID:GB7Qlzkj >>947
その主張にincludeは関係ないぞ
その主張にincludeは関係ないぞ
963デフォルトの名無しさん
2019/11/06(水) 07:24:02.54ID:hwyI/gg2 質問です。
サンプルプログラムで割り込み処理の一文で
ISR(TIMER1_CAPT_vect) {}でサブルーチンを呼び出してたんだけど、()内の意味わかりますか?
サンプルプログラムで割り込み処理の一文で
ISR(TIMER1_CAPT_vect) {}でサブルーチンを呼び出してたんだけど、()内の意味わかりますか?
964デフォルトの名無しさん
2019/11/06(水) 07:41:29.30ID:iGLzVPkM >>961
>そうだよ、だからこの手の機能は言語仕様には含まれないってことな
誰か言語仕様に含めろなんて言ってたか?
さすがに隠したいメンバをポインタ経由で隠して無駄にコストかかる言語なら俺もお断りだが
ちな俺はplmpl使いたいなどと書いてない、人の主張を勝手に捏造するな
>そうだよ、だからこの手の機能は言語仕様には含まれないってことな
誰か言語仕様に含めろなんて言ってたか?
さすがに隠したいメンバをポインタ経由で隠して無駄にコストかかる言語なら俺もお断りだが
ちな俺はplmpl使いたいなどと書いてない、人の主張を勝手に捏造するな
965デフォルトの名無しさん
2019/11/06(水) 08:14:41.32ID:N/klFKt1 あと>>961=947と想定してもう一つ言っておくと
ポインタ変数の宣言に型(クラス)の実際の定義が必要ないのは抜け穴じゃない
必要ないから要求されないだけだ
どうもC++に対する認識がおかしい気がする
D&Eでも読んでこい
ポインタ変数の宣言に型(クラス)の実際の定義が必要ないのは抜け穴じゃない
必要ないから要求されないだけだ
どうもC++に対する認識がおかしい気がする
D&Eでも読んでこい
966デフォルトの名無しさん
2019/11/06(水) 08:16:11.65ID:cnDla3Ge >>964
> 誰か言語仕様に含めろなんて言ってたか?
誰もお前が言語仕様に含めろと言ってるなんて言ってないぞ
自意識過剰すぎだろ
> ちな俺はplmpl使いたいなどと書いてない、人の主張を勝手に捏造するな
使いたい「なら」な
C++の前に日本語やり直してこいw
> 誰か言語仕様に含めろなんて言ってたか?
誰もお前が言語仕様に含めろと言ってるなんて言ってないぞ
自意識過剰すぎだろ
> ちな俺はplmpl使いたいなどと書いてない、人の主張を勝手に捏造するな
使いたい「なら」な
C++の前に日本語やり直してこいw
967デフォルトの名無しさん
2019/11/06(水) 08:17:38.83ID:cnDla3Ge968デフォルトの名無しさん
2019/11/06(水) 08:21:27.02ID:N/klFKt1 ただの荒らしなら出てけ
969デフォルトの名無しさん
2019/11/06(水) 08:31:26.58ID:zr2SzfAm970デフォルトの名無しさん
2019/11/06(水) 09:33:53.63ID:GEOrtix2 サイズの違うコンテナ同士で代入を試みたらセグメンテーション違反になったんだが、リサイズしつつ代入って簡単にできないの?
971デフォルトの名無しさん
2019/11/06(水) 09:54:01.45ID:B/9oP97H >>970 できるよ。
#include <vector>
#include <cassert>
int main()
{
std::vector v1{1}, v2{1,2};
v1 = v2;
assert(v1 == v2);
}
#include <vector>
#include <cassert>
int main()
{
std::vector v1{1}, v2{1,2};
v1 = v2;
assert(v1 == v2);
}
972デフォルトの名無しさん
2019/11/06(水) 10:35:41.19ID:GEOrtix2973デフォルトの名無しさん
2019/11/06(水) 10:42:41.76ID:rSUWYkcI そのためのstd::vectorのメンバ関数operator=だしな
974デフォルトの名無しさん
2019/11/06(水) 12:22:15.65ID:2MfY+5W5 >>968
頓珍漢な想定でくだらんことしか言えないお前が出て行けよw
頓珍漢な想定でくだらんことしか言えないお前が出て行けよw
975デフォルトの名無しさん
2019/11/06(水) 15:11:24.10ID:BVN8Da8w 今事務職であいてる時間C++やってるんだけど、事務職に特化したライブラリとかってない?
976デフォルトの名無しさん
2019/11/06(水) 15:24:12.57ID:EoKh/jsd >>975
awk,sed
awk,sed
977デフォルトの名無しさん
2019/11/06(水) 17:52:40.67ID:lpQz5w/v >>975
Excelのアドオン
Excelのアドオン
978デフォルトの名無しさん
2019/11/06(水) 18:44:11.86ID:XJugYxC8 char str[ ];
と宣言した場合、str[0] = '\0';というNULL終端をしなければなりませんが
string str[ ];
と宣言した場合は、特にNULL終端の必要性っていうのはないのでしょうか?
と宣言した場合、str[0] = '\0';というNULL終端をしなければなりませんが
string str[ ];
と宣言した場合は、特にNULL終端の必要性っていうのはないのでしょうか?
979デフォルトの名無しさん
2019/11/06(水) 19:20:03.22ID:x6qzxIK7 ?
980蟻人間 ◆T6xkBnTXz7B0
2019/11/06(水) 19:23:25.64ID:Z1hQUtYe std::stringはstd::string::c_strメソッドを使ってアクセスするとヌル終端になることが保証されている。
981デフォルトの名無しさん
2019/11/06(水) 19:45:32.35ID:o3tEvZiY char hoge[] は char の配列
別に文字列として扱う気がなければ 0 終端は必須ではない
string hoge[] は(突っ込まれるかもしれんが敢えて言うと) char[] の配列
上の char hoge[] とは別物
別に文字列として扱う気がなければ 0 終端は必須ではない
string hoge[] は(突っ込まれるかもしれんが敢えて言うと) char[] の配列
上の char hoge[] とは別物
レス数が950を超えています。1000を超えると書き込みができなくなります。
ニュース
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 ★2 [Hitzeschleier★]
- 【中国局長】両国関係に「深刻な影響」 首相発言の撤回要求 [蚤の市★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★3 [BFU★]
- 【維新】吉村知事「中国人観光客だけに頼るビジネスモデル変えていかないといけない」「高市総理の発言は撤回する必要はない」 [Hitzeschleier★]
- 【STARTO ENTERTAINMENT】timelesz篠塚大輝『大きな古時計』替え歌一発ギャグ「今はもう動かない おじいさんにトドメ~♪」が波紋 [Ailuropoda melanoleuca★]
- 【朗報】外務省局長、中国側の要求を断固拒否。「高市さんの答弁は日本政府の立場を変えるものではないし、撤回しない」 [519511584]
- 【高市速報】日本人の3割「中国への武力行使に踏み切る必要がある」ANN世論調査 [931948549]
- 外務省局長、よくわからないまま帰国へ [834922174]
- 【実況】博衣こよりのえちえち歌枠🧪
- 中国外務省「日中関係の悪化は高市早苗首相が原因」と名指しで強く非難。キタ━(゚∀゚)━! [153490809]
- たまにaカップの女いるけど何を楽しめばいいの?
