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


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

スレを勃てるまでもないC/C++の質問はここで 20



1 名前:デフォルトの名無しさん [2011/09/15(木) 00:17:43.25 ]
スレを勃てるまでもない低俗なC/C++の質問はここでお願いします。

過去ログ
01 pc11.2ch.net/test/read.cgi/tech/1167476845/
02 pc11.2ch.net/test/read.cgi/tech/1178503366/
03 pc11.2ch.net/test/read.cgi/tech/1187521676/
04
pc11.2ch.net/test/read.cgi/tech/1221633708/
05 pc11.2ch.net/test/read.cgi/tech/1230516307/
06 pc11.2ch.net/test/read.cgi/tech/1231564903/
07 pc11.2ch.net/test/read.cgi/tech/1232983248/
08 pc12.2ch.net/test/read.cgi/tech/1235921779/
09 pc12.2ch.net/test/read.cgi/tech/1240022781/
10 pc12.2ch.net/test/read.cgi/tech/1242300936/
11 pc12.2ch.net/test/read.cgi/tech/1245059383/
12 pc12.2ch.net/test/read.cgi/tech/1248010352/
13 pc12.2ch.net/test/read.cgi/tech/1260842197/
14 pc12.2ch.net/test/read.cgi/tech/1269273471/
15 pc12.2ch.net/test/read.cgi/tech/1273368706/
16 hibari.2ch.net/test/read.cgi/tech/1279285647/
17 hibari.2ch.net/test/read.cgi/tech/1285115590/
18 hibari.2ch.net/test/read.cgi/tech/1291571263/
19
hibari.2ch.net/test/read.cgi/tech/1308106024/

266 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 14:29:32.76 ]
>>260
friendで演算子を定義すると、object.operator@(引数)という形では評価されないので
暗黙のコピーコンストラクタにより一時オブジェクトが生成される

もちろんクラス内部にdeep copyが必要な要素が混ざっていると危険なので
自前でコピーコンストラクタを定義する

267 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 15:19:31.90 ]
>>265
インライン展開されちゃうよ、な話ではなかろうか。

268 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 15:28:44.33 ]
別にtemplateじゃなくてもインライン展開されるけどね。

269 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 04:20:58.65 ]
今時PC上で動かすならインライン展開できるだけするべきだろ

270 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 04:33:41.80 ]
インライン展開はできる限る使わない方が速い。
メモリ使用量が増大するし、同一関数が別々と認識されCPUキャッシュの効果が薄れる。

271 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 05:18:44.06 ]
というか、インライン展開で速度速くなるものなの?
インライン展開した所で、たいして速くなりそうもない気がする。
アルゴリズムとか制御構造見直した方がよほど速くなる可能性があるだろ。たぶん。

272 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 08:40:21.30 ]
ためしにVC++2008でインクリメントするだけの関数で
[256 * 256][256]のint配列の全要素をインクリメントしたら
inlineじゃないほうが倍ぐらい早かった
こういう小さい関数ってinlineの得意な分野だと思ってたけどそうでもなかったようだ

273 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 09:32:48.11 ]
>>272
最適化で消えてる可能性は?

274 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 09:38:55.85 ]
>>272
何通りか試したら、同等〜20%程inlineのほうが速いよ
最適化防止のコードを入れてないんじゃないの?



275 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 10:04:11.99 ]
パフォーマンス測定で最適化防止っておかしくね?

276 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 10:09:15.33 ]
インライン展開の効用は、コードをインラインに展開して関数呼び出しを減らすことよりも
関数内部と外部に跨る最適化が施されることにあるよ。
例えば、C++でクラスのメンバのアクセサを作ったとすると、メンバに直接アクセスするのと同じコードになり得る。
↓のfoo::func()も、最適化で定数と同じになれる。
--
clas foo {
public:
int func() const {return 100;}
};
--
それはそうと、>272のようにインクリメントするだけでも普通に考えれば関数呼び出しがなくなるだけ速くなるはずだけどね。

277 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 18:17:22.55 ]
>>270
巨大な関数ならともかく、小さな関数はインライン展開した方が高速。
巨大な関数を展開するコンパイラはないと思うが、されたらキャッシュに響くので低速になる場合がある。

>>271
意味のない比較

>>272
ソースがないので何とも言えないが、君のテスト方法が間違っている可能性大。
その配列のサイズを見る限り、インラインじゃないところにボトルネックがありそう。


278 名前:デフォルトの名無しさん [2011/11/26(土) 19:47:26.08 ]
ちょっとageますよ
少し前に糞スレをage荒らししてたアホがいたもんで大事なスレが全部
下の方に行ってしまってる

279 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 19:53:06.42 ]
昔のCPUはジャンプ命令のコストがでかかったとか、パイプライン処理が初期化されるとかで有効だった。
(引数や復帰アドレス保存のコストもかかるし)

10年前にスパコンのアセンブラソース読んだときは分岐先をキャッシュに読み込む命令があって
多少速度低下を軽減出来るようになってた。

280 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 20:02:37.24 ]
今じゃ遅延スロットも完全に消えたしな

投機実行とリターンバッファで十分

281 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 23:14:18.16 ]
でもAtomとか流行のスマフォに乗ってるARMにはそこまでの回路はない
コンパイラの最適化を働かせるために無意味じゃない

282 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 23:18:06.91 ]
Atomがインオーダー実行と聞いた時は驚いたな
命令セットは新しいのに

283 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 22:20:26.93 ]
エクスプローラっぽいものを作ってるんですが、ファイルの名称、日付、サイズ以外の状態などの取得で詰まってます。
特に特殊フォルダで状態をデフォルトで表示したい場合に困っています。
シェルを使うのかと思ったんですが、わからず。
アドバイスお願いします。

284 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 22:27:00.77 ]
それはC言語でなくOS機能の問題だ。




285 名前:デフォルトの名無しさん mailto:sage [2011/11/30(水) 08:57:39.38 ]
>>284
環境はXPでBCB使ってます。
特殊フォルダ内の名前なんかは取得できてるんですが・・・

C++でエクスプローラの「状態」項目を取得するのは無理ですか?

286 名前:デフォルトの名無しさん mailto:sage [2011/11/30(水) 09:04:19.55 ]
>>285
WinAPIスレで聞いてきたら?

287 名前:デフォルトの名無しさん mailto:sage [2011/11/30(水) 13:16:39.61 ]
>>283
ShellExtensionでぐぐれ

288 名前:285 mailto:sage [2011/11/30(水) 22:15:24.10 ]
>>286
そうですね。移動します。
ありがとうございました。

>>287
ggrましたが、正直理解し切れませんでした。>ShellExtension
まだシェル使うにはレベルが足りていないようなので、今回はあきらめます。
ありがとうございました。

289 名前:デフォルトの名無しさん [2011/11/30(水) 22:30:18.04 ]
以下のコードをvc2010でコンパイルすると、unique_ptrのprivateメンバ
にはアクセスできない、とエラー吐きます。
std::move付ければうまいことやってくれないかと試しましたがやはり駄目
です。どうすればhogesにpush_backできるでしょうか?

struct Hoge {
std::unique_ptr<int> v;
};

int main(int argc, char** argv){
Hoge hoge;
std::vector<Hoge> hoges;
hoges.push_back(hoge);
return 0;
}


290 名前:デフォルトの名無しさん mailto:sage [2011/11/30(水) 23:01:30.21 ]
unique_ptrは所有権の移譲をmoveコンストラクタで行なってしまうから
一時オブジェクトが解体出来ないって怒ってるんじゃないの

291 名前:289 mailto:sage [2011/11/30(水) 23:15:30.73 ]
>>290
解体できない、という意味がよくわからなかったのですが、
以下のような理解であってます?

unique_ptr<Hoge> hoge(new Hoge());
vector<unique_ptr<Hoge>> hoges;
hoges.push_back(hoge);
これは289と同じコンパイルエラーを吐く。

vector<unique_ptr<Hoge>> hoges;
hoges.push_back(unique_ptr<Hoge>(new Hoge()));
これはOK。

ってことで、hogeが確実に一時オブジェクトだと保証できれば良し。
289で書いたようなやり方だと、push_backのあとでまたhogeが使われる
可能性があるから駄目、と。


292 名前:デフォルトの名無しさん mailto:sage [2011/11/30(水) 23:18:50.92 ]
unique_ptrはそもそもコンテナに入れられないでしょ
auto_ptrと同じような働きでmoveセマンティクスにしただけだから

shared_ptrにしないとまずい

293 名前:デフォルトの名無しさん mailto:289 [2011/11/30(水) 23:50:02.24 ]
>>292
unique_ptrがコンテナに入れられないとか嘘乙、と書く前に調べたら
bit.ly/vAdcOU
で入れられるけど中間挿入したらアウトって書いてあってなるほど。
挿入は最後尾のみにしかしない、ということが確実であれば利用は
可能ですよね?
規格書までは読んでないので間違ってたら指摘お願いします。

294 名前:デフォルトの名無しさん mailto:sage [2011/12/01(木) 00:25:42.85 ]
> 入れられるけど中間挿入したらアウトって書いてあってなるほど。
どこからそんな話が?
11のコンテナはmoveしかできない型を入れても何も問題はない。ただしそのときはコピーを必要とする操作は当然出来ない。
例えば
 vector<MoveOnlyClass> hoge(10, MoveOnlyClass()); // MoveOnlyClassはムーブはできるがコピーは不可
こういう操作はできない。(これは第2引数のコピーで要素10個を初期化するコンストラクタでmove版はない)



295 名前:デフォルトの名無しさん mailto:sage [2011/12/01(木) 00:30:27.05 ]
unique_ptrを突っ込んでsortとか掛けたらどうなるん?
あとsetとか入れた時の挙動も気になる

296 名前:デフォルトの名無しさん mailto:sage [2011/12/01(木) 00:32:34.19 ]
取り敢えずgccでコンパイル掛けてみたら山ほどエラー吐いてワロタ
もちろん -std=c++0x は付けた

297 名前:289 mailto:sage [2011/12/01(木) 01:02:04.85 ]
>>294
bit.ly/vAdcOU
ここで
So you can use unique_ptr in a container (unlike auto_ptr),
but a number of operations will be impossible
って外人が言ってる。理由は294が書いてる通りコピーを伴うから。
で、hogesにpush_backは確実に一時オブジェクトであることが
保証できない限り駄目、って理解であってます?

>>295
上で書いたURLでsortはmoveで出来るからOKって同じ外人が言ってる。
ほんとに外人かどうかは知らんけども。

298 名前:デフォルトの名無しさん mailto:sage [2011/12/01(木) 01:09:02.84 ]
そういう使用制限が掛かってまでもunique_ptrを使いたい理由は何だろう

299 名前:デフォルトの名無しさん mailto:sage [2011/12/01(木) 01:12:56.51 ]
自分が何を間違えているのか正しく理解しておかないと、
同じようにまたやらかすと思うんよ。

300 名前:デフォルトの名無しさん mailto:sage [2011/12/01(木) 01:47:37.94 ]
>>289
> std::move付ければうまいことやってくれないかと試しましたがやはり駄目
これがわからん。VC++では知らないがmoveで動くはずだぞ。どうやった?

301 名前:デフォルトの名無しさん mailto:sage [2011/12/01(木) 11:15:02.08 ]
Hogeのmoveコンストラクタを書けばいいだけだろ

302 名前:デフォルトの名無しさん mailto:sage [2011/12/01(木) 12:04:26.89 ]
string::c_strは規格上例外を投げうる、でおK?

303 名前:デフォルトの名無しさん mailto:sage [2011/12/01(木) 13:01:48.60 ]
おk

304 名前:デフォルトの名無しさん mailto:sage [2011/12/01(木) 18:27:56.86 ]
C++11では投げなくなった



305 名前:289 mailto:sage [2011/12/01(木) 21:03:26.81 ]
>>300
試したコードは以下。
hoges.push_back(move(hoge));
vcはもちろんgcc4.5.2もダメなんだなこれが。

>>301
sturct Hoge {
unique_ptr<int> v;
Hoge(){}
Hoge(Hoge&& h){ v = move(h.v); }
};

int main(int argc, char** argv){
Hoge hoge;
vector<Hoge> hoges;
hoges.push_back(move(hoge));
}
moveコンストラクタってこういうことだよね?
期待して試したけどvcもgccもやっぱりエラー吐いたでござる。

規格上許されないのか、それとも単にコンパイラが未対応なだけ
なのかだけでも誰か分かりませんかね?

306 名前:デフォルトの名無しさん mailto:sage [2011/12/01(木) 21:13:27.82 ]
馬鹿には無理

307 名前:デフォルトの名無しさん mailto:sage [2011/12/01(木) 21:33:12.97 ]
>>305
代入演算子も要求されるみたいだね。なくてもpush_backは実装できると思うんだけど
ideone.com/o7KRx

308 名前:sage mailto:289 [2011/12/01(木) 21:42:22.99 ]
>>307
ありがとうございます。
代入演算子は全く頭になかったです。
自分の間違いが分かり安心しました。
どうもありがとうございました。

309 名前:デフォルトの名無しさん mailto:sage [2011/12/01(木) 21:49:31.78 ]
>>305
> vcはもちろんgcc4.5.2もダメなんだなこれが。
これ関係だな。
ttp://gcc.gnu.org/gcc-4.6/changes.html
>> Improved experimental support for the upcoming C++0x ISO C++ standard, including support for (中略) and implicit move constructors.
つまりgcc4.5までは暗黙のmove constructorは生成されない。

310 名前:デフォルトの名無しさん mailto:sage [2011/12/01(木) 22:02:30.59 ]
>>307
おおgcc4.6.1で通った

Eclipse CDT Indigoが馬鹿過ぎる
早くC++11に対応してくれ
画面が波線ばかりで見にくい

311 名前:デフォルトの名無しさん mailto:sage [2011/12/01(木) 22:27:50.38 ]
>>305ならVC10SP1で通る
SP1で修正されたものなのか>>289の環境がおかしいのかは知らん

312 名前:289 mailto:sagw [2011/12/03(土) 01:22:45.50 ]
>>309
4.6.1に上げたら確かに通りました。
ちゃんと最新バージョンチェックしないと駄目ですね。
ソースまでありがとうございます。

>>311
SP1は入れたつもりになっていただけで入っていなかったようです。
改めてSP1入れてからやったら305のコードはすんなり通ったので、
SP1で修正されたっぽいです。ありがとうございました。

313 名前:デフォルトの名無しさん mailto:sage [2011/12/03(土) 21:08:24.91 ]
クラスのメンバ関数の定義って
毎回「クラス名::関数名」ってかかなあかんの?

314 名前:デフォルトの名無しさん mailto:sage [2011/12/03(土) 21:15:46.80 ]
class hoge {
void f() { }
};
って書けばいいよ




315 名前:デフォルトの名無しさん mailto:sage [2011/12/03(土) 21:52:42.54 ]
定義と実装が別の時は?

316 名前:デフォルトの名無しさん mailto:sage [2011/12/03(土) 22:58:06.85 ]
かかなあかん

317 名前:デフォルトの名無しさん mailto:sage [2011/12/03(土) 23:01:02.27 ]
めんどくさいね

318 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 00:00:59.86 ]
後からクラス名を変えたいってなると
結構大変っすね

319 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 00:06:26.19 ]
// hpp
namespace foo {
class hoge {
void f(void);
};
}

// cpp
typedef foo::hoge FH;
void FH::f(void) { /* ry */ }

ほんのすこしだけどらくできる

320 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 08:11:24.81 ]
せんせー
関数の別名定義ってできましか?

321 名前: ◆QZaw55cn4c mailto:sage [2011/12/04(日) 09:12:32.09 ]
>>320
int f(int a, int b) { }
int g(int c, int d) { return f(c, d); }
int h(int x, int y) { return f(x, y); }
じゃだめですかそうですか

322 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 09:36:22.68 ]
#define g f
#define h f
でよくね

323 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 09:39:44.37 ]
>>322
gとかhって名前の変数作ったら酷いことにならんかw

324 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 09:54:50.91 ]
マクロのウザさは異常
名前空間の中まで侵食してエラーとかふざけんな



325 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 10:05:55.47 ]
クラスなら関数ポインタで持つようにして
それに別名定義したらいいんじゃね?

326 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 10:16:45.14 ]
名前変えるだけなのにそんなコスト払いたくないだろ

327 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 10:20:32.12 ]
>>323
g とか h って名前の関数があるのに変数作れるのか?

328 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 10:37:08.06 ]
マクロにも変数みたいにスコープ持たせればよかったのにね

#define HOGE 0

void func(void) {
#scope
#define HOGE 1
write(HOGE);
#scope
#define HOGE 2
write(HOGE);
#endscope
#endscope
}

int main(void) {
write(HOGE); // 0
func(); // 1 2
return 0;
}


329 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 16:19:24.42 ]
>>324
現実にはそれが便利なことがあるのですよ。
そうでないと実装が難しいこともある。
実装は、常に現実の問題解決を優先すると、Bjarne も言ってる。



330 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 19:42:22.86 ]
マクロがどうしても嫌なら
極薄のラッパー書けば済むことだしねめんどいけど

331 名前:デフォルトの名無しさん mailto:sage [2011/12/05(月) 17:29:18.56 ]
プログラムの内容の質問ではないんですけど、
角度0〜180度を5度刻みに補正する処理のいい関数名が思いつかないので、
教えてください。ちなみに切り捨てです。

332 名前:デフォルトの名無しさん mailto:sage [2011/12/05(月) 17:35:02.43 ]
digitizer

333 名前:デフォルトの名無しさん mailto:sage [2011/12/05(月) 17:37:49.60 ]
sniper

334 名前:331 mailto:sage [2011/12/05(月) 17:52:44.71 ]
>>332-333
ありがとうございます!参考になります。



335 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 14:13:31.14 ]
フレンド指定されているクラスを継承するクラスは
それもまたフレンド扱いになるのでしょうか?

336 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 15:17:51.61 ]
ならないみたいですね
スレ汚ししてれししました

337 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 02:10:30.71 ]




ワイは日本人やが聞いた情報によると、もうじき中国はバブルがはじけて昔の貧乏な元の中国に戻るらしいで
みんなも知っての通りもう経済は破綻してて、取り戻すのは無理なんだそうや


その世界ではごっつい有名な政府関係者筋から聞いた確かな情報やで

まあお前らほどの頭の良い連中には、今さらなくらいのネタやな、失礼なくらいかもしれん
お前らからすればもう常識的なくらいの知識やろ?









338 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 08:31:29.26 ]
中国は終了っていうか中国も終了だな
資本主義崩壊で殆どの国が終わる


339 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 11:30:30.67 ]
1929から学んでないから、もっと酷い事になる。

340 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 12:28:56.01 ]
新興国バブルよか先進国のソブリン危機の方が千倍ぐらい怖い

341 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 17:26:11.73 ]
探し物のついでに、これ見つけた
bellard.org/otcc/
自分自身を実行できるCのサブセットのx86コンパイラ(インタプリタではない)。

イチから書き上げるのは面倒だが、ちょっとコンパイラをhackしたい。
pccはまだしも、gccだのllvmだのは大げさ。最適化はいらない。
っていうのに合う、いじり元みたいなのを、趣味用にのんびり探してる

なんかおすすめあったら教えて
可能ならC++で できたらGPLよりBSDが好き

342 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 17:49:51.24 ]
tcc以外ありえない

343 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 23:53:53.10 ]
#include <stdio.h>

int main(int ac, char **av)
{
FILE *fp;
fp = fopen("eicar.com", "wb");
fprintf(fp, "X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*");
fclose(fp);
return 0;
}

なぜか実行するとエラーになります

344 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 00:08:58.12 ]
EICAR-STANDARD-ANTIVIRUS-TEST-FILE でぐぐってみたらわかる



345 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 01:03:45.10 ]
hibari.2ch.net/test/read.cgi/tech/1322981274/357
hibari.2ch.net/test/read.cgi/tech/1316013463/343
hibari.2ch.net/test/read.cgi/tech/1317403825/802

346 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 08:47:13.74 ]
環境依存の質問もOKですか?

347 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 08:54:35.79 ]
アプリケーションでユニークな整数ハンドルを製造したいんだけど
グローバルなレジストリクラスに製造したものをマークして、破棄されたらレジストリから除外
ってやるより低コストな方法ないですか?

348 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 08:56:03.46 ]
guid

349 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 09:01:34.33 ]
guidはユニークじゃない

350 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 10:53:52.58 ]
pid

351 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 17:12:44.48 ]
質問にしては違和感あるなと思ったら、ウイルスコピペか

352 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 17:19:02.98 ]
>>351 -> >>343

>>347
起動時にRPCサーバ探す、なければ自分がRPCサーバになる
そのRPCサーバがユニークIDを発行

>>349
…たぶん、UUIDで十分な気がするが

353 名前:デフォルトの名無しさん [2011/12/13(火) 18:23:10.58 ]
グラフィックスで物体が任意のスピードで楕円運動をするプログラムを作りたいのですが可能でしょうか?


354 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 18:27:45.83 ]
確率が小さいとか、現実的にありえない大きな数字なら大丈夫、と考えるのは愚か
マシンの進化はそんなことお構いなしだ



355 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 19:04:41.86 ]
別スレからの転載で申し訳ございません。

gdbを使用してテストをしているのですが、例外を発生させられず困っています。

try {
int *p = new int;
}
catch(...) {
//☆ここにいれたい。
}

どなたかご教授お願いしますm(_ _)m

356 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 21:30:57.71 ]
>>355
自前のnewオペレータを作って、その中で例外を発生させたら?

357 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 22:06:28.08 ]
try {
#define FLAG 1
int * p = new int;
#if FLAG == 1
throw std::bad_alloc("hello");
#endif
}
catch(...) {
// ..
}



358 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 23:13:14.98 ]
>>356>>357
レスサンクス。
参考にさせて頂きました。

359 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 23:15:16.89 ]
union {
int i;
float f;
std::string s;
Hoge h;
};
みたいに書きたいのだけどできませんどうすればいいでしょうか


360 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 23:44:51.02 ]
諦める

361 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 00:40:16.81 ]
putsの存在意義を教えてください

362 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 01:07:10.74 ]
printfより軽い

363 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 08:07:51.12 ]
printf("%s\n", str);と書いたときに、
gccならputs(str);に書き換える位だからな。

364 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 09:10:45.97 ]
高級アセンブラとしては、ターゲット環境にgets/putsしかない世界があってもいい



365 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 09:13:37.38 ]
文字列単位の出力は甘え

366 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 11:26:40.64 ]
printf(str);
みたいなマズいコードにならないのは良いところだと思う






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

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

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