次スレを立てる時は本文の1行目に以下を追加して下さい。
!extend:on:vvvvv:1000:512
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ
C++相談室 part134
http://mevius.5ch.net/test/read.cgi/tech/1516406742/
このスレもよろしくね。
【初心者歓迎】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++相談室 part135
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 5fcb-q1Nq)
2018/03/31(土) 20:20:06.25ID:o3PNwIlC0436デフォルトの名無しさん (ワッチョイ 2be8-A9Qv)
2018/04/28(土) 09:54:13.99ID:EXYGb8MJ0 具体的な話になったら一気にレベル下がったなw
437デフォルトの名無しさん (ワッチョイ 93b3-tYAq)
2018/04/28(土) 10:21:03.59ID:amQJLuCm0438デフォルトの名無しさん (ワッチョイ 4150-LNFl)
2018/04/28(土) 10:24:05.76ID:ibkTuaSK0 目的は
インクルードのループを防ぎたいのと
同じ定義を複数回行うことでエラーになるのを防ぎたい
ってことだよな
これをインテリジェントに行ってくれるのが理想
インテリジェントな物を仕様にするのは難しいし、
時代が進めばインテリジェント具合も変わる
>>418みたいなあまりにショボい仕様だと
後々不満が出ることになる
インクルードのループを防ぎたいのと
同じ定義を複数回行うことでエラーになるのを防ぎたい
ってことだよな
これをインテリジェントに行ってくれるのが理想
インテリジェントな物を仕様にするのは難しいし、
時代が進めばインテリジェント具合も変わる
>>418みたいなあまりにショボい仕様だと
後々不満が出ることになる
439デフォルトの名無しさん (ワッチョイ d3c3-luqG)
2018/04/28(土) 10:28:01.67ID:WRqkde3l0440デフォルトの名無しさん (ワッチョイ 93bd-Mk12)
2018/04/28(土) 10:28:57.76ID:BHnoJcFn0 >>429
>>434
現行のヘッダファイルでうまく行っているのならそのままでええ(>>418項番4はそのためにある
そうではなくて、もしも(例えば)マイクロソフトのVisual C++の#pragma onceを使って書かれた過去の遺産の尊重が大事なら
そのときは>>418の方の#pragma onceを#pragma once2とかに代えれば良いが
そりゃー(例えば)マイクロソフトのVisual C++の#pragma onceが先行して規格になった後の話なので今は無視
>>435
>417からの流れと考え合わせるに、
「僕ちゃんの考えた理想の#pragma onceじゃないと嫌なの!!!>418のクソ単純な仕様は正しくとも認められん!!!」ってことですかそうですか…
なお>>431の指摘は評価する
>>436
抽象的な言い回しで無意味に高尚な議論に見せかけている連中の方が多数派
空っぽなのに…
>>434
現行のヘッダファイルでうまく行っているのならそのままでええ(>>418項番4はそのためにある
そうではなくて、もしも(例えば)マイクロソフトのVisual C++の#pragma onceを使って書かれた過去の遺産の尊重が大事なら
そのときは>>418の方の#pragma onceを#pragma once2とかに代えれば良いが
そりゃー(例えば)マイクロソフトのVisual C++の#pragma onceが先行して規格になった後の話なので今は無視
>>435
>417からの流れと考え合わせるに、
「僕ちゃんの考えた理想の#pragma onceじゃないと嫌なの!!!>418のクソ単純な仕様は正しくとも認められん!!!」ってことですかそうですか…
なお>>431の指摘は評価する
>>436
抽象的な言い回しで無意味に高尚な議論に見せかけている連中の方が多数派
空っぽなのに…
441デフォルトの名無しさん (ワッチョイ 4150-LNFl)
2018/04/28(土) 10:29:34.95ID:ibkTuaSK0442デフォルトの名無しさん (ワッチョイ 93bd-Mk12)
2018/04/28(土) 10:33:35.22ID:BHnoJcFn0443デフォルトの名無しさん (ワッチョイ 4150-LNFl)
2018/04/28(土) 10:33:47.48ID:ibkTuaSK0 >>429の例で
2重インクルードを防ぎたい場合とそれぞれ別にインクルードしたい場合があるってのは書かなくてもわかるよな
中身が全く同じであれば防ぎたいし
全く別の定義であればそれそれぞれをインクルードしたい
2重インクルードを防ぎたい場合とそれぞれ別にインクルードしたい場合があるってのは書かなくてもわかるよな
中身が全く同じであれば防ぎたいし
全く別の定義であればそれそれぞれをインクルードしたい
444デフォルトの名無しさん (ワッチョイ 4150-LNFl)
2018/04/28(土) 10:35:03.59ID:ibkTuaSK0 >>442
#pragma onceの仕様はVisual C++しか実装してないと思ってる?
#pragma onceの仕様はVisual C++しか実装してないと思ってる?
445デフォルトの名無しさん (ワッチョイ 93bd-Mk12)
2018/04/28(土) 10:38:47.00ID:BHnoJcFn0446デフォルトの名無しさん (ワッチョイ 4150-LNFl)
2018/04/28(土) 10:42:05.24ID:ibkTuaSK0 いずれにしろ>>418みたいなチープな仕様じゃ誰にも支持されない
447デフォルトの名無しさん (ワッチョイ d3c3-luqG)
2018/04/28(土) 10:45:00.58ID:WRqkde3l0 ツッコミ殺到でボコボコなのに勝利宣言してやがるな
つっこんだ人たち(ここのほぼ全員)にバレバレなのに滑稽な
つっこんだ人たち(ここのほぼ全員)にバレバレなのに滑稽な
448デフォルトの名無しさん (ワッチョイ 419f-TsVf)
2018/04/28(土) 11:10:27.31ID:ueAKslGb0 >>418,421はミニマムの仕様を提示しただけで、つまり、
この仕様で問題ない場合は #pragma once で手抜きが出来て、
無理な場合は従来通りインクルードガード使えってことだろ。
俺はありだと思うぜ。仕様ってのはこういう割り切り方をしないと決まらない。
C++のラムダなんて後付で仕様を拡張して行っているし。(このやり方がいいとは思わないが)
ただ、この仕様だと現行の #pragma once よりも割り切っているのがイマイチで、
「今」この仕様では却下されるだろう。
「#pragma once が全くない世界」なら、とりあえずここから出発するのもありだっただろう。
現行の #pragma once は常識的に考えて、
・ファイル実体が同じ場合(ハードリンク/シンボリックリンク)は対応可能
・コピーの場合(ローカルに xxx.h を tmp_xxx.h にしてデバッグ出力を改変したり)には対応不能
だろう。だから使用条件としては、
・全ファイルがローカルファイルシステム上にあり、ヘッダファイルの改変は行わない
であり、普通に個人レベルで開発する場合はこれで全く問題ないし、妥当だ。
会社で10-20人レベルで開発する場合、どのみちルールを子細に決めることになるし、
そういう場合は従来のインクルードガードでやれ、という割り切りも妥当だよ。
この仕様で問題ない場合は #pragma once で手抜きが出来て、
無理な場合は従来通りインクルードガード使えってことだろ。
俺はありだと思うぜ。仕様ってのはこういう割り切り方をしないと決まらない。
C++のラムダなんて後付で仕様を拡張して行っているし。(このやり方がいいとは思わないが)
ただ、この仕様だと現行の #pragma once よりも割り切っているのがイマイチで、
「今」この仕様では却下されるだろう。
「#pragma once が全くない世界」なら、とりあえずここから出発するのもありだっただろう。
現行の #pragma once は常識的に考えて、
・ファイル実体が同じ場合(ハードリンク/シンボリックリンク)は対応可能
・コピーの場合(ローカルに xxx.h を tmp_xxx.h にしてデバッグ出力を改変したり)には対応不能
だろう。だから使用条件としては、
・全ファイルがローカルファイルシステム上にあり、ヘッダファイルの改変は行わない
であり、普通に個人レベルで開発する場合はこれで全く問題ないし、妥当だ。
会社で10-20人レベルで開発する場合、どのみちルールを子細に決めることになるし、
そういう場合は従来のインクルードガードでやれ、という割り切りも妥当だよ。
449デフォルトの名無しさん (ワッチョイ 419f-TsVf)
2018/04/28(土) 11:11:35.35ID:ueAKslGb0 なお俺が推す仕様は、
・#pragma once のファイル内では複数定義のエラーを無視する
というものだ。従って、
・現行の#pragma once とは違い、対象ファイルは必ず「ファイルとしては」「読み込まれる」
(これは現行のインクルードガードとも同じ)
・定義されている物のシグネチャが既に存在するものと全く同一だった場合、無視する。
・シグネチャが異なっている場合、普通に読み込む(コンパイル対象とする)
(勝手にデバッグ関数を追加されていた場合、その関数だけはコンパイルされる)
・#pragma once のファイルを全部パースし終わった際、「全部重複」「全部新規」ではなかった場合、警告を出す。
(正しく使えば「全部重複」「全部新規」のどちらかになる。
改変《追加》した場合は「一部新規」となり、警告にする。「一部欠落」は検知しない。)
というものだ。
この場合、要するに「読み込んで同じだったら無視」なので、
#ifdef 内等、かなりアクロバティックに使われても、問題なく、使用者の直感通りに動作する。
改行の追加、コメント変更等は全く問題ない。
ただし常に全部のファイルを読み込み、初段階のパースは行うことになるので、
現行の #pragma once やインクルードガードよりは速度は劣る。
とはいえ、今更ここが問題になる時代ではないし、問題になるようならインクルードガードを使えと割り切る。
つまり、面倒なら #include を使わずに、全部 #pragma once にも出来る、というもので、
実際これで問題無いと思うんだがな。
・#pragma once のファイル内では複数定義のエラーを無視する
というものだ。従って、
・現行の#pragma once とは違い、対象ファイルは必ず「ファイルとしては」「読み込まれる」
(これは現行のインクルードガードとも同じ)
・定義されている物のシグネチャが既に存在するものと全く同一だった場合、無視する。
・シグネチャが異なっている場合、普通に読み込む(コンパイル対象とする)
(勝手にデバッグ関数を追加されていた場合、その関数だけはコンパイルされる)
・#pragma once のファイルを全部パースし終わった際、「全部重複」「全部新規」ではなかった場合、警告を出す。
(正しく使えば「全部重複」「全部新規」のどちらかになる。
改変《追加》した場合は「一部新規」となり、警告にする。「一部欠落」は検知しない。)
というものだ。
この場合、要するに「読み込んで同じだったら無視」なので、
#ifdef 内等、かなりアクロバティックに使われても、問題なく、使用者の直感通りに動作する。
改行の追加、コメント変更等は全く問題ない。
ただし常に全部のファイルを読み込み、初段階のパースは行うことになるので、
現行の #pragma once やインクルードガードよりは速度は劣る。
とはいえ、今更ここが問題になる時代ではないし、問題になるようならインクルードガードを使えと割り切る。
つまり、面倒なら #include を使わずに、全部 #pragma once にも出来る、というもので、
実際これで問題無いと思うんだがな。
450デフォルトの名無しさん (スップ Sdb3-LNFl)
2018/04/28(土) 11:15:31.75ID:aIENMcPWd もう書かなくて良いよ
アホだってこはみんなわかったから
アホだってこはみんなわかったから
451デフォルトの名無しさん (スップ Sdb3-LNFl)
2018/04/28(土) 11:18:31.52ID:aIENMcPWd ヒント
インクルードループ
インクルードループ
452デフォルトの名無しさん (スップ Sdb3-LNFl)
2018/04/28(土) 11:22:35.75ID:aIENMcPWd インクルードのネストがn段
それぞれの段、m個のインクルードファイルからm個インクルードしてるとします
何パス必要でしょう
それぞれの段、m個のインクルードファイルからm個インクルードしてるとします
何パス必要でしょう
453デフォルトの名無しさん (ワッチョイ d9f2-luqG)
2018/04/28(土) 12:14:39.04ID:wZlaoeXA0 >(ディレクトリパスは無視)
現行の#pragma onceでこんな実装になってる処理系あるかなぁ
現行の#pragma onceでこんな実装になってる処理系あるかなぁ
454デフォルトの名無しさん (ワッチョイ 93b3-tYAq)
2018/04/28(土) 12:22:28.92ID:amQJLuCm0 >>439
日本語で桶
日本語で桶
455デフォルトの名無しさん (ワッチョイ 93b3-tYAq)
2018/04/28(土) 12:24:23.32ID:amQJLuCm0456デフォルトの名無しさん (スップ Sdb3-LNFl)
2018/04/28(土) 12:26:40.87ID:aIENMcPWd 具体的にたくさんあがってるのが見えないのかな
457デフォルトの名無しさん (ワッチョイ c1b3-luqG)
2018/04/28(土) 12:51:19.85ID:NasUyYi90 プリプロセッサが諸悪の根源
458デフォルトの名無しさん (ワッチョイ c1b3-luqG)
2018/04/28(土) 12:51:48.61ID:NasUyYi90 #define多いと読む気しない
459デフォルトの名無しさん (ワッチョイ 93b3-tYAq)
2018/04/28(土) 13:09:32.49ID:amQJLuCm0 >>456
レス番も引用もできないクズ乙 w
レス番も引用もできないクズ乙 w
460デフォルトの名無しさん (ワッチョイ 9391-/P+7)
2018/04/28(土) 14:18:44.28ID:0IOpQOT30 static変数(クラスのインスタンス)がプログラム実行時にそのメンバ関数呼び出し時にその中で、
newをすると既存のヒープ領域を破壊することはありますか?
どうもこのように解釈できる現象が起きているようなのですが、調べても分からずアドバイスを頂ければ幸いです。
環境はMacのHighSierra、コンパイラはbrewから持ってきたLLVMです。
newをすると既存のヒープ領域を破壊することはありますか?
どうもこのように解釈できる現象が起きているようなのですが、調べても分からずアドバイスを頂ければ幸いです。
環境はMacのHighSierra、コンパイラはbrewから持ってきたLLVMです。
461デフォルトの名無しさん (ワッチョイ 419f-TsVf)
2018/04/28(土) 16:33:32.77ID:ueAKslGb0462デフォルトの名無しさん (ワッチョイ 419f-TsVf)
2018/04/28(土) 16:51:34.89ID:ueAKslGb0 ああすまん、何となく1行目の意味は分かった。
・クラスインスタンスをstatic変数に入れ、そのメソッドを呼んだ
事をそう表現したのかな?
だったらはっきり言ってstatic云々関係ない。
GCなんて無いから「statc変数に入れたら忘れてGCされてしまう」みたいなことはそもそも無い。
ヒープを壊しているのはユーザーです。つーか、ランタイムもないし。
ガチでコンパイラのバグだと思っているのなら、
どのみち再現コード(その場合は20行程度か)を作るしかない。
その過程で君のバグだと気づけるだろうさ。
ただこのように「下から」デバッグをするのは時間がかかるから、俺は嫌いだけど、
君がそう思うのならやるしかない。
C/C++は広く長く使われて来ている言語だから、
現在もバリバリに使われているコンパイラなら、この辺の基本的な部分にバグは無いと思うよ。
static変数に確保するのはマイナーかもしれないが、滅多にやらないってほどではないし、
そもそも上記の通り、コンパイラにとって危険のある(バグに命中する可能性のある)使い方でもない。
・クラスインスタンスをstatic変数に入れ、そのメソッドを呼んだ
事をそう表現したのかな?
だったらはっきり言ってstatic云々関係ない。
GCなんて無いから「statc変数に入れたら忘れてGCされてしまう」みたいなことはそもそも無い。
ヒープを壊しているのはユーザーです。つーか、ランタイムもないし。
ガチでコンパイラのバグだと思っているのなら、
どのみち再現コード(その場合は20行程度か)を作るしかない。
その過程で君のバグだと気づけるだろうさ。
ただこのように「下から」デバッグをするのは時間がかかるから、俺は嫌いだけど、
君がそう思うのならやるしかない。
C/C++は広く長く使われて来ている言語だから、
現在もバリバリに使われているコンパイラなら、この辺の基本的な部分にバグは無いと思うよ。
static変数に確保するのはマイナーかもしれないが、滅多にやらないってほどではないし、
そもそも上記の通り、コンパイラにとって危険のある(バグに命中する可能性のある)使い方でもない。
463デフォルトの名無しさん (ワッチョイ 93e7-R5Nf)
2018/04/28(土) 16:59:13.74ID:9z8isRDe0 >>460
破壊って何?
破壊って何?
464デフォルトの名無しさん (スップ Sdb3-LNFl)
2018/04/28(土) 17:20:06.35ID:aIENMcPWd ふつうに、
クラスのインスタンスがstatic宣言と読んだけだ
static MyClass a;
スコープローカルかファイルローカルかはわからん
クラスのインスタンスがstatic宣言と読んだけだ
static MyClass a;
スコープローカルかファイルローカルかはわからん
465デフォルトの名無しさん (ワッチョイ 419f-TsVf)
2018/04/28(土) 17:29:35.84ID:ueAKslGb0466デフォルトの名無しさん (スップ Sdb3-LNFl)
2018/04/28(土) 17:46:24.07ID:aIENMcPWd おれは数学の専門家だぞ
わからないわけがない
わからないわけがない
467デフォルトの名無しさん (スップ Sdb3-LNFl)
2018/04/28(土) 17:46:53.04ID:aIENMcPWd なぜ問題を出したのか考えてみ
468デフォルトの名無しさん (ワッチョイ 419f-TsVf)
2018/04/28(土) 18:39:11.84ID:ueAKslGb0 ひとまず俺の一つ目の予言は的中だな。
次に行こう。
>>467
ID:aIENMcPWd
お前の日本語の間違いをすべて訂正してみろ。
2つ目の予言をする。お前は言えない。
なぜならお前はゴキブリ韓国人であり、間違いを認識できていないから。
次に行こう。
>>467
ID:aIENMcPWd
お前の日本語の間違いをすべて訂正してみろ。
2つ目の予言をする。お前は言えない。
なぜならお前はゴキブリ韓国人であり、間違いを認識できていないから。
469デフォルトの名無しさん (アウアウカー Sadd-YAdU)
2018/04/29(日) 02:23:46.17ID:UY96NiMha C++でプラットフォームに依存しない音楽再生ライブラリってある?特にlinuxで使いたいんだけど。
mpg123とかいうのもみてみたんだけどプログラムに組み込むやり方が分からない
mpg123とかいうのもみてみたんだけどプログラムに組み込むやり方が分からない
470デフォルトの名無しさん (ワッチョイ 9334-WSc7)
2018/04/29(日) 02:25:23.22ID:kTR2ZRC/0 MIDAS
471デフォルトの名無しさん (ワッチョイ 59a7-BHYV)
2018/04/29(日) 07:28:51.71ID:riHNUW7H0 Gstreamer
472デフォルトの名無しさん (ワッチョイ 93bd-Mk12)
2018/04/29(日) 10:01:20.67ID:4Txko8z40 質問ですが
Q1.
浮動小数点型について表現しえる最小の値(負の値のうちの絶対値が最大のやつ)を取得する
環境非依存なやり方はどうすれば良いの?
-std::numeric_limits<double>::max()とか
-DBL_MAX
でおk?
Q2.
テンプレートを型引数が整数型と浮動小数点型で分けたいんですが
同じ名前のテンプレート名のまま、テンプレートの特殊化的な簡単に済ませる方法は無い?
Q1.
浮動小数点型について表現しえる最小の値(負の値のうちの絶対値が最大のやつ)を取得する
環境非依存なやり方はどうすれば良いの?
-std::numeric_limits<double>::max()とか
-DBL_MAX
でおk?
Q2.
テンプレートを型引数が整数型と浮動小数点型で分けたいんですが
同じ名前のテンプレート名のまま、テンプレートの特殊化的な簡単に済ませる方法は無い?
473デフォルトの名無しさん (ワッチョイ 8133-d4kB)
2018/04/29(日) 10:55:07.91ID:6B047Ccs0 >Q2
template <typename T, bool = std::is_floating_point<T>::value>
struct hoge {};
template <typename T>
struct hoge<T, true> {};
template <typename T, bool = std::is_floating_point<T>::value>
struct hoge {};
template <typename T>
struct hoge<T, true> {};
474デフォルトの名無しさん (ワッチョイ 73a5-luqG)
2018/04/29(日) 11:05:23.85ID:iHQcqnOH0475デフォルトの名無しさん (ワッチョイ 13a2-luqG)
2018/04/29(日) 13:22:08.35ID:WuAwAiPA0 >>472
std::numeric_limits<double>::lowest()
std::numeric_limits<double>::lowest()
476デフォルトの名無しさん (ワッチョイ 93bd-Mk12)
2018/04/29(日) 13:56:48.76ID:4Txko8z40477デフォルトの名無しさん (スップ Sdf3-LNFl)
2018/04/29(日) 15:24:36.24ID:AQKaesvCd たまにはlong doubleも思い出してあげてください
478デフォルトの名無しさん (ワイモマー MMb3-XMtE)
2018/04/30(月) 23:11:41.90ID:xhvNrk1GM Boost.Optionalを使う際に、
対象クラスが自分自身の有効無効を変更できるようにしようとしてみたところ、
宣言時に宣言対象を引数にとって初期化できることに気づきました。
変数の引数に変数自身を使うのは仕様的にありなのでしょうか?
ttps://wandbox.org/permlink/YLKYol7KdEOhpyGU
対象クラスが自分自身の有効無効を変更できるようにしようとしてみたところ、
宣言時に宣言対象を引数にとって初期化できることに気づきました。
変数の引数に変数自身を使うのは仕様的にありなのでしょうか?
ttps://wandbox.org/permlink/YLKYol7KdEOhpyGU
479デフォルトの名無しさん (ワッチョイ 5be7-3HeQ)
2018/04/30(月) 23:32:18.45ID:9aMn2TSu0 ポインタか参照なら問題ない
中身は使えない
中身は使えない
480デフォルトの名無しさん (ワッチョイ 9368-c97c)
2018/05/01(火) 23:40:40.03ID:dOOCYV+Z0 CObject obj;
for(i=0; i<N; i++)
{
obj = new CObject();
・・・(処理)・・・
}
↑みたいにdeleteせずにnew演算子でクラスオブジェクトを割り振り続けるプログラムってお行儀悪い?
CObject obj;
for(i=0; i<N; i++)
{
obj = new CObject();
・・・(処理)・・・
delete(obj);
}
↑こういうふうにすべき? 👀
Rock54: Caution(BBR-MD5:1341adc37120578f18dba9451e6c8c3b)
for(i=0; i<N; i++)
{
obj = new CObject();
・・・(処理)・・・
}
↑みたいにdeleteせずにnew演算子でクラスオブジェクトを割り振り続けるプログラムってお行儀悪い?
CObject obj;
for(i=0; i<N; i++)
{
obj = new CObject();
・・・(処理)・・・
delete(obj);
}
↑こういうふうにすべき? 👀
Rock54: Caution(BBR-MD5:1341adc37120578f18dba9451e6c8c3b)
481デフォルトの名無しさん (ワッチョイ 93eb-Kx3O)
2018/05/01(火) 23:49:10.85ID:+P0DkpYu0 unique_ptr使うべき
482デフォルトの名無しさん (ワッチョイ 5be7-3HeQ)
2018/05/01(火) 23:54:52.50ID:2ADD+YWD0 今時newなんかを自分で書いてることに疑問を持ったほうがいい
483デフォルトの名無しさん (ワッチョイ 419f-TsVf)
2018/05/01(火) 23:55:37.66ID:b3AAvo5J0 >>480
お行儀の次元の話じゃない
お行儀の次元の話じゃない
484デフォルトの名無しさん (ワッチョイ 4150-LNFl)
2018/05/02(水) 00:01:31.48ID:LLl+2Gg10 手っ取り早く動かしたいその場限りのコードならそういうことをやることもある
くらいかな
くらいかな
485デフォルトの名無しさん (ワッチョイ 2b81-0GBF)
2018/05/02(水) 00:09:49.83ID:HN9ze8O60 ビンラディン並みのテロリストだな
486デフォルトの名無しさん (ワッチョイ 9368-c97c)
2018/05/02(水) 00:09:55.64ID:MK7npuGj0 そんなにお行儀悪いんでつか(´;ω;`)・・・
487デフォルトの名無しさん (ワッチョイ 5be7-3HeQ)
2018/05/02(水) 00:43:03.85ID:VeqNn1690 そういうのやりたいならJavaやC#やれ
488デフォルトの名無しさん (ワッチョイ 9334-WSc7)
2018/05/02(水) 01:21:31.16ID:9riosu0F0 ポインタじゃないものにnewしたもの格納できるとでも思っているのかジャバグラマ上がりのトーシロー
489デフォルトの名無しさん (ワッチョイ db9b-zfJY)
2018/05/02(水) 01:32:41.73ID:G9KSYPOz0 なんでdeleteしなくていいと思ったんや
490デフォルトの名無しさん (ワッチョイ 2b81-0GBF)
2018/05/02(水) 01:39:46.98ID:HN9ze8O60 釣りだと思う
491デフォルトの名無しさん (ワッチョイ 9368-c97c)
2018/05/02(水) 03:44:38.96ID:MK7npuGj0492デフォルトの名無しさん (ワッチョイ 93b3-tYAq)
2018/05/02(水) 06:00:07.99ID:3K4Hzh4Z0493デフォルトの名無しさん (ワッチョイ 8133-M5g1)
2018/05/02(水) 10:02:54.88ID:EfCiDMro0 大規模なコードで大量にオブジェクト生成するならアリだと思うけど
その場合もnewしたものをdeleteするための仕組みは必須だしね
追跡できなくなる、もしくは自分で自分を破棄する仕組みも無いようではダメ
その場合もnewしたものをdeleteするための仕組みは必須だしね
追跡できなくなる、もしくは自分で自分を破棄する仕組みも無いようではダメ
494デフォルトの名無しさん (ワッチョイ c1b3-luqG)
2018/05/02(水) 11:01:41.50ID:lsKTgXIy0 ライブラリに分ける利点ってなんですかね
495デフォルトの名無しさん (ワッチョイ 9368-c97c)
2018/05/02(水) 14:44:29.23ID:MK7npuGj0496デフォルトの名無しさん (ワッチョイ db9b-zfJY)
2018/05/02(水) 14:47:38.93ID:G9KSYPOz0497デフォルトの名無しさん
2018/05/02(水) 15:02:47.22498デフォルトの名無しさん (ワッチョイ 9368-c97c)
2018/05/02(水) 16:18:42.29ID:MK7npuGj0 >>497
class CTest
{
CFoo cfoo;
void CTest()
{
cfoo = new CFoo();
}
};
こんなんとかどうでしょう
class CTest
{
CFoo cfoo;
void CTest()
{
cfoo = new CFoo();
}
};
こんなんとかどうでしょう
499デフォルトの名無しさん (アウアウウー Sa45-M5g1)
2018/05/02(水) 16:23:28.41ID:BwUG32HZa500デフォルトの名無しさん (アウアウウー Sa45-luqG)
2018/05/02(水) 16:28:43.53ID:hqQx66t6a 山口メンバーも初期化できたらいいのに
501デフォルトの名無しさん (ワッチョイ 9334-WSc7)
2018/05/02(水) 16:29:15.41ID:9riosu0F0 ヤバいなジャバ上がりw
502デフォルトの名無しさん (アウアウウー Sa45-M5g1)
2018/05/02(水) 16:36:00.09ID:BwUG32HZa ちなみに非PODならメンバ初期化子に書かなくてもデフォルトコンストラクタで初期化子される
503デフォルトの名無しさん
2018/05/02(水) 16:36:35.49 そもそも>>498の例なら初期化子自体いらんしw
504デフォルトの名無しさん (ワッチョイ 9368-c97c)
2018/05/02(水) 17:10:02.19ID:MK7npuGj0 >>499
そ、そうやって初期化したcfooはdeleteしなくてもいいんでつか?
そ、そうやって初期化したcfooはdeleteしなくてもいいんでつか?
505デフォルトの名無しさん (アウウィフ FF45-M5g1)
2018/05/02(水) 17:15:22.77ID:2RgXx2xAF506デフォルトの名無しさん (ワッチョイ 9334-WSc7)
2018/05/02(水) 17:19:29.16ID:9riosu0F0507デフォルトの名無しさん (ワッチョイ 318a-23pz)
2018/05/02(水) 17:35:57.58ID:EH+UkdGd0 教えてください
やりたい事は ↓
https://stackoverflow.com/questions/14706954/how-to-override-the-text-displayed-for-a-property-in-the-propertygrid
ここに出てるようなPropertyGridで、数値配列の値を16進で表示したい
[0] 0x0001
[1] 0x0002
[2] 0x0003
....
例えば↑とか、単にこれだけ
そうとう調べまくったんだが、配列の例はみつけられなかった
配列でなければ、実装例は結構見つかるんだが・・・
一見簡単そうなんだけど、俺のレベルでは不可能
やりたい事は ↓
https://stackoverflow.com/questions/14706954/how-to-override-the-text-displayed-for-a-property-in-the-propertygrid
ここに出てるようなPropertyGridで、数値配列の値を16進で表示したい
[0] 0x0001
[1] 0x0002
[2] 0x0003
....
例えば↑とか、単にこれだけ
そうとう調べまくったんだが、配列の例はみつけられなかった
配列でなければ、実装例は結構見つかるんだが・・・
一見簡単そうなんだけど、俺のレベルでは不可能
508デフォルトの名無しさん (アウウィフ FF45-M5g1)
2018/05/02(水) 18:09:52.99ID:2RgXx2xAF509デフォルトの名無しさん (ワッチョイ 318a-23pz)
2018/05/02(水) 18:25:45.38ID:EH+UkdGd0 いや、c# です
511デフォルトの名無しさん (ワッチョイ 318a-23pz)
2018/05/02(水) 18:29:31.79ID:EH+UkdGd0 ごめん間違えた、ここ C++のスレだった
隣で聞きます。
隣で聞きます。
>>504
delete しなくてもいいのです
delete しなくてもいいのです
513デフォルトの名無しさん (ワッチョイ 9368-c97c)
2018/05/02(水) 19:04:04.70ID:MK7npuGj0514デフォルトの名無しさん (オッペケ Sr0d-OwZ7)
2018/05/02(水) 19:06:49.69ID:U7aQES8cr515デフォルトの名無しさん (ドコグロ MMa3-tYAq)
2018/05/02(水) 20:14:18.27ID:sTDjib3HM516デフォルトの名無しさん
2018/05/02(水) 23:29:42.51517はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5b6f-luqG)
2018/05/02(水) 23:41:46.06ID:g0SlpjdS0 可能な限りスマートポインタを使え、そしてスマートポインタで駄目な場合はほとんどないってのはその通りなんだけど、
初心者が生ポインタをちゃんと理解したことのないままスマートポインタを使いこなせるとも思えぬ。
そこらへんはちゃんと分けて、今回の場合はまずは生ポインタを理解するという方向性で説明する場面じゃろ。
初心者が生ポインタをちゃんと理解したことのないままスマートポインタを使いこなせるとも思えぬ。
そこらへんはちゃんと分けて、今回の場合はまずは生ポインタを理解するという方向性で説明する場面じゃろ。
518デフォルトの名無しさん (ワッチョイ 9368-c97c)
2018/05/02(水) 23:47:44.17ID:MK7npuGj0519デフォルトの名無しさん (ワッチョイ c6e7-PabT)
2018/05/03(木) 00:10:52.91ID:XlBZHwDZ0 もうスマポはスマポとして理解させたほうがいいような気がするけどな
下手な生ポの知識は初心者に有害だ
下手な生ポの知識は初心者に有害だ
520デフォルトの名無しさん (ワッチョイ bb65-f8tT)
2018/05/03(木) 01:53:27.71ID:OyWVOyw+0 ていうかコンストラクタだから返却値型いらんやん
521デフォルトの名無しさん (ワッチョイ 1ae9-P8oq)
2018/05/03(木) 02:06:40.03ID:jt77zXjA0 ポインターをdeleteせずに扱う猛者がいると聞いて駆け付けてきた
522はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 466f-XJxX)
2018/05/03(木) 02:41:54.13ID:HFudy7bE0 delete をしない戦略ってのは無くはないよ。
アプリケーションの起動時直後にガッと大量のメモリを必要として、
終了直前に全部解放するってパターンなら、
どうせプロセスの終了と一緒にリソースは回収されるのでわざわざメモリ解放の処理を入れる必要はない。
(C++ だとデストラクタは必ずしもメモリを解放するだけではないので注意が必要だが)
だけどそういう戦略をとれるのはちゃんと理解した上で問題にならないことを確信できるだけの知識があってこそだわな。
というか、それ以上に、確保したのを解放しないのは「気持ち悪い」と感じる心が C/C++er にはある。
アプリケーションの起動時直後にガッと大量のメモリを必要として、
終了直前に全部解放するってパターンなら、
どうせプロセスの終了と一緒にリソースは回収されるのでわざわざメモリ解放の処理を入れる必要はない。
(C++ だとデストラクタは必ずしもメモリを解放するだけではないので注意が必要だが)
だけどそういう戦略をとれるのはちゃんと理解した上で問題にならないことを確信できるだけの知識があってこそだわな。
というか、それ以上に、確保したのを解放しないのは「気持ち悪い」と感じる心が C/C++er にはある。
523デフォルトの名無しさん (スップ Sd4a-EqUg)
2018/05/03(木) 05:19:48.86ID:qNLpdLzsd 組み込みだとそもそも終了なんてものがなかったりする
524デフォルトの名無しさん (ワッチョイ 6a22-XJxX)
2018/05/03(木) 20:37:30.17ID:giVWGYEy0 解放しないメモリをnewとか頭湧いてんのか
525はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 466f-XJxX)
2018/05/03(木) 20:40:51.26ID:HFudy7bE0 あたまがあったまってるんだ。
526デフォルトの名無しさん (ブーイモ MMef-+yEv)
2018/05/03(木) 21:00:46.14ID:Nqnp2049M 確保済みメモリに対してのnewってあるよ
>>526
placement new の意味が今でもよくわかりません…どんなときに使うのかなあ…
placement new の意味が今でもよくわかりません…どんなときに使うのかなあ…
528片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdaa-AL4z)
2018/05/03(木) 21:18:01.47ID:RMsmDfZSd char buf[MAX_BUF];
new(buf) MY_STRUCT(1, 2, 3);
new(buf) MY_STRUCT(1, 2, 3);
529片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdaa-AL4z)
2018/05/03(木) 21:18:51.15ID:RMsmDfZSd char buf[sizeof(MY_STRUCT)];
new(buf) MY_STRUCT(1, 2, 3);
new(buf) MY_STRUCT(1, 2, 3);
530はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 466f-XJxX)
2018/05/03(木) 21:19:45.60ID:HFudy7bE0 >>527
VRAM みたいな特殊なメモリを C++ のオブジェクトに見せかけたい場合とか
VRAM みたいな特殊なメモリを C++ のオブジェクトに見せかけたい場合とか
531片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdaa-AL4z)
2018/05/03(木) 21:20:25.98ID:RMsmDfZSd すでに確保したメモリーブロック上でコンストラクターを発動させる。
532デフォルトの名無しさん (ワッチョイ 0b33-f8tT)
2018/05/03(木) 21:23:27.91ID:IMqmw2mT0 組み込みとかゲーム機のような、最初に一気に確保する環境で使うんじゃないかね
といっても確保済みのメモリに対して断片化しないように管理する仕組み作ったら、必然的にnew演算子もオーバーロードするだろうから結局placement new使わんかもしれんけど
といっても確保済みのメモリに対して断片化しないように管理する仕組み作ったら、必然的にnew演算子もオーバーロードするだろうから結局placement new使わんかもしれんけど
533デフォルトの名無しさん (ブーイモ MMc7-+yEv)
2018/05/04(金) 04:49:56.51ID:JszYn0L4M クラスを丸ごとDLL化するときにはnew系をオーバーロード
しておかないと解放時にエラーになるべ。
ヒープはDLL単位にあるので集めておきたい場合はplacement使う
しておかないと解放時にエラーになるべ。
ヒープはDLL単位にあるので集めておきたい場合はplacement使う
534デフォルトの名無しさん (アウアウウー Sacf-a7mP)
2018/05/04(金) 11:44:28.56ID:8Ch7v1Nca unique_ptrの配列版でメモリの再確保を行いたい場合どのように行うのがベターですか?
535デフォルトの名無しさん (スッップ Sdaa-EqUg)
2018/05/04(金) 11:50:52.58ID:Z8Fitafid 何に対してベター?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市首相、トランプ米大統領に「早期に会いたい」 日中関係悪化受け… ★4 [BFU★]
- 「もうキモくてキモくて…」29歳女性が語る“おぢアタック”の実態。「俺ならイケるかも」年下女性を狙う勘違い中年男性には共通点が [Hitzeschleier★]
- 【コメ】卸売業者「簡単に安売りできない」「大暴落起きれば大赤字に」 JA「新米の販売進度が近年になく遅い。コメの回転が悪い」 ★5 [Hitzeschleier★]
- テレビ朝日 本社から男性が転落し死亡。関連会社社員か 当たった通行人が左肩軽傷 [阿弥陀ヶ峰★]
- テレビ朝日本社から20~30代の関連会社社員とみられる男性が転落し死亡 六本木けやき坂通りの通行人にはけが人なし [少考さん★]
- 「これいいじゃん!!!」 セブン-イレブンの1620円で買える“1人用クリスマスケーキ”🎂に注目殺到「天才すぎる」 [パンナ・コッタ★]
- 【高市速報】中国、最後通牒 [308389511]
- 【高市速報】中国、世界の敵になり始めるwwwwwwwwwwwwww [308389511]
- 最近のVIP人いなくね?
- おまえらHDDの廃棄ってどうしてるの?
- しね✋ーーーーー☀
- 【速報】テレビ朝日本社から20代〜30代の男性が飛び降り自殺して死亡 東京・六本木 [597533159]
