1 名前:デフォルトの名無しさん [04/09/14 07:16:41] ここでは他のC++スレよりもより一層と高いレベルでの情報交換・体験談などを行うスレです。 我こそはC++プロフェッショナルだという方の書き込みをお待ちしております。
481 名前:デフォルトの名無しさん mailto:sage [2005/11/04(金) 20:05:54 ] >>480 だめみたい。 thisをつけると、const class fib<normal> has no member named call_meっていわれちゃう。 templateのしたクラスのcall_meを呼んでくれないみたい
482 名前:デフォルトの名無しさん mailto:sage [2005/11/04(金) 21:11:50 ] >>481 class fib : Fix<fib> => class fib : Fix< fib<Fix> > これで、 ttp://www.comeaucomputing.com/tryitout/ のコンパイラでは通った。
483 名前:デフォルトの名無しさん mailto:sage [2005/11/05(土) 07:47:56 ] >>482 gccでは通らないぽい。どこがおかしいのやら
484 名前:デフォルトの名無しさん mailto:sage [2005/11/05(土) 23:54:35 ] template <template <class> class Fix> class fib : protected Fix< fib<Fix> > だな。public継承でもいいけど。 要はダウンキャストもprivate継承ではできない
485 名前:デフォルトの名無しさん mailto:sage [2005/11/06(日) 07:39:13 ] typedef Fix<fib<Fix> > ct; … …ct:call_me(…
486 名前:デフォルトの名無しさん mailto:sage [2005/11/06(日) 09:47:16 ] >>484 >>485 サンクス。できました
487 名前:デフォルトの名無しさん mailto:sage [2005/11/06(日) 10:38:13 ] COMについての質問はここでいいですか?
488 名前:487 mailto:sage [2005/11/06(日) 18:13:45 ] 自己解決しました
489 名前:デフォルトの名無しさん [2005/11/07(月) 11:50:43 ] ポインタの静的型と、仮想関数の振る舞いについて教えてください。 struct A { virtual void f(); }; struct B { virtual void f(); }; struct C: public A, public B {}; C* pc = new C; pc->f(); // (1) A::f() と B::f() のどちらか分からないのでコンパイルエラー A* pa = pc; pa->f(); // (2) A::f() がコールされる B* pb = pc; pb->f(); // (3) B::f() がコールされる struct D: public A, public B { virtual void f(); }; D* pd = new D; pd->f(); // (4) D::f() がコールされる pa = pd; pa->f(); // (5) D::f() がコールされる pb = pd; pb->f(); // (6) D::f() がコールされる struct C の仮想関数テーブルの f() のエントリはどうなっているのでしょう? 派生クラスが仮想関数をオーバライドしない場合、このエントリは基底クラスの 関数ポインタがそのままコピーされると思います。しかし、A::f と B::f のど ちらを採用すべきかコンパイル時に決定できないはずです。 ところが上記(2)のように、動的型が struct C であっても、静的型を struct A とするとコンパイルが通り A::f() がコールされます。動的型の struct C の仮 想関数テーブルの f() のエントリは決定できていないはずなのに、何故 (2)(3) のような呼び分けができるのでしょう? 実際 struct D のように f() をオーバライドすると、静的型に関係なく動的型 の仮想関数がコールされるので、f() のエントリは1つだと思うのですが。 どういうカラクリになっているのでしょう?
490 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 12:12:19 ] >>489 「fのエントリは二つあって、Dでは両方が同じ関数を指している。」という実装しか思いつかないな。 調べてみる。
491 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 13:12:52 ] #include <iostream> #include <cassert> struct A { virtual void f(){ std::cout << "A::f\n";} }; struct B { virtual void f(){ std::cout << "B::f\n";} }; struct C : A, B {}; struct D : A, B { void f(){ std::cout << "D::f\n";} }; int main(void) { C c; D d; A *pca = &c; B *pcb = &c; A *pda = &d; B *pdb = &d; typedef void (*pfun_t)(); pfun_t pcfa = **(pfun_t **)pca; pfun_t pcfb = **(pfun_t **)pcb; pfun_t pdfa = **(pfun_t **)pda; pfun_t pdfb = **(pfun_t **)pdb; pcfa(); pcfb(); pdfa(); pdfb(); assert(pdfa != pdfb); } 結果(g++-mingw): A::f B::f D::f D::f よって、C/D共にfには二つのエントリがあって、 Dの場合は、二つの異なるD::fのラッパが入っていると判る。
492 名前:デフォルトの名無しさん [2005/11/09(水) 00:29:56 ] Pentium4にやさしいプログラミング手法を教えてください
493 名前:デフォルトの名無しさん mailto:sage [2005/11/09(水) 03:52:17 ] >>492 C++じゃなくてアセンブラになっちゃうけど消費電力を抑える為に halt や nop を多用するのがいいと思うよ。
494 名前:デフォルトの名無しさん [2005/11/09(水) 04:40:12 ] __asmでnopを入れればいいのですか?
495 名前:デフォルトの名無しさん mailto:sage [2005/11/09(水) 05:17:38 ] >>494 アホを真に受けるなよw ったく知ったかぶり君は迷惑だよね。
496 名前:デフォルトの名無しさん mailto:sage [2005/11/09(水) 06:54:19 ] >>495 もし>>493 を知ったかぶりと思っているなら お前の日本語読解力の方がずっとアホだと思うよ。
497 名前:デフォルトの名無しさん mailto:sage [2005/11/09(水) 08:19:55 ] >>492 ifは極力使わない。 forをつかえ。
498 名前:デフォルトの名無しさん mailto:sage [2005/11/09(水) 09:21:08 ] for(int i = 0; condition && i < 1; ++i){ ..... }
499 名前:デフォルトの名無しさん mailto:sage [2005/11/10(木) 04:55:32 ] BOOLよりboolを使ったほうが処理速度が速くなるっていうのは本当ですか?
500 名前:デフォルトの名無しさん mailto:sage [2005/11/10(木) 05:05:31 ] いいえ、それだけの情報ではなんともいえません。
501 名前:デフォルトの名無しさん mailto:sage [2005/11/10(木) 05:13:00 ] BOOL(4バイト)とbool(1バイト)のことです
502 名前:デフォルトの名無しさん mailto:sage [2005/11/10(木) 06:30:30 ] うがー、それだけの情報ではなんともいえません。
503 名前:デフォルトの名無しさん mailto:sage [2005/11/10(木) 06:55:30 ] 環境によって違うということですか? vc7.1でコンパイルしたんですが win2000です
504 名前:デフォルトの名無しさん mailto:sage [2005/11/10(木) 07:51:15 ] >>499 >>503 BOOLかboolかで速さが違うかどうかはわからないが、 BOOLはintのtypedefで、boolはC++組み込み型だからbool(true/false)を使う方がよい。
505 名前:デフォルトの名無しさん mailto:sage [2005/11/10(木) 07:58:03 ] なるほど、そうなのですか ありがとうございました
506 名前:デフォルトの名無しさん mailto:sage [2005/11/10(木) 08:25:29 ] BOOL は真偽値じゃない とりあえずMSDN行って GetMessage()の戻り値見てくれば解る あんな代物とbool型を同一視したら相当痛いミスを連発することになる。 MSのAPIの引数と戻り値以外には使わないほうが良い。 さらにsizeof(bool)は1と決まっているわけじゃない。 コンパイラによってはsizeof(bool)==4の場合もある。
507 名前:デフォルトの名無しさん mailto:sage [2005/11/10(木) 08:51:22 ] ただ、現実問題として、boolは0/1しか取らないから 整数型やポインタ型の値をboolに代入しようとすると、若干の演算が必要になる。 例えば、戻り値が0か0以外かが判定できれば良いだけの場合でも int型の関数だと return n; で足りるところを bool型の関数にすると return n != 0; に相当するコードが必要になる。 そのため、VC++では最適化の警告が出せるようになっている。
508 名前:デフォルトの名無しさん mailto:sage [2005/11/10(木) 09:55:29 ] >>501 普通、bool はintと同じサイズ( =BOOLと同じサイズ )になるぞ。
509 名前:デフォルトの名無しさん mailto:sage [2005/11/10(木) 10:05:22 ] 「普通」の意味がわからんが、BCB6ではintが4でboolが1だな。
510 名前:デフォルトの名無しさん mailto:sage [2005/11/10(木) 10:18:26 ] >>509 アレ? borland でもデフォルトでは bool は int と同じサイズだったと思うが・・・ bool を1バイトにするっていうコンパイルオプションが指定されてない?
511 名前:デフォルトの名無しさん mailto:sage [2005/11/10(木) 10:28:00 ] boolを使うと、ビットセット系のニモニックが生成されて分岐が省略できる可能性もある。 >507が指摘したケースだと、どうせ呼び出し側でも判断が入るから二重ロジックに成るかも知れんが、 inline関数なら逆に呼び出し側を巻き込んで最適化されるから同じことだね。
512 名前:デフォルトの名無しさん mailto:sage [2005/11/10(木) 10:49:04 ] っていうかboolの実装って普通0か1のどちらかっていう判断してる? 俺は0(false)か、0以外の全て(true)のどちらかっていう判断だと思った。 void Hoge(bool hoge) { if (hoge == true) {} } みたいな時、hoge != false(0) としてのコードを吐くのが普通じゃないの? だからこそ我々はC時代のように "BOOLVAR == TRUEと書いてはいけない。BOOLVAR != FALSEと書け" みたいなルールに縛られず boolvar == true っていうコードも合法になるもんだと思ってたんだけど。
513 名前:デフォルトの名無しさん mailto:sage [2005/11/10(木) 14:20:37 ] >>507 > ただ、現実問題として、boolは0/1しか取らないから trueかfalseです。!に対してそれぞれが逆元。 integral promotionがあるとそれぞれ1と0になる。 ちなみにここは上級者スレです。
514 名前:デフォルトの名無しさん mailto:sage [2005/11/10(木) 16:08:18 ] >>508 実装依存ということは承知してるが、 GCC4 も VC7.1 も sizeof(bool)==1 なわけだが。 こんなのも。 ttp://gcc.gnu.org/ml/gcc-bugs/2001-07/msg00186.html それと、bool より BOOL を(パフォーマンスの理由で) 推奨してる環境もあるにはある。個人的には嫌だけど。
515 名前:デフォルトの名無しさん mailto:sage [2005/11/10(木) 17:33:35 ] >>512 >boolvar == true っていうコードも合法になるもんだと思ってたんだけど。 合法ですが、間抜けです。
516 名前:デフォルトの名無しさん mailto:sage [2005/11/10(木) 19:57:32 ] >>514 Microsoft Specific In Visual C++4.2, the Standard C++ header files contained a typedef that equated bool with int. In Visual C++ 5.0 and later, bool is implemented as a built-in type with a size of 1 byte. That means that for Visual C++ 4.2, a call of sizeof(bool) yields 4, while in Visual C++ 5.0 and later, the same call yields 1. This can cause memory corruption problems if you have defined structure members of type bool in Visual C++ 4.2 and are mixing object files (OBJ) and/or DLLs built with the 4.2 and 5.0 or later compilers. ttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vclang/html/_langref_bool.asp
517 名前:デフォルトの名無しさん mailto:sage [2005/11/11(金) 00:51:31 ] >>514 最近は sizeof(bool)==1 が主流なのか。知らなかったお。(^ω^) >それと、bool より BOOL を(パフォーマンスの理由で) >推奨してる環境もあるにはある。個人的には嫌だけど。 それもちょっと微妙だね。sizeof(bool)==1 な処理系ならCPUが苦手な バイトアクセスでもメモリアクセス量が減る bool のほうが多分トータルの パフォーマンスでは上だろうし。
518 名前:デフォルトの名無しさん mailto:sage [2005/11/11(金) 04:24:45 ] >>517 まあ、CPUが苦手どころか 4 バイト未満の整数型をダイレクトに 扱う命令を持ってないからで。しかも無駄なメモリアクセスは極力 省いてキャッシュレイテンシまで時に考えなきゃならんような環境の ことなんで、無視していいかと。 つうか、素直に sizeof(bool)==4 にしろよ、ってスマン愚痴だ。
519 名前:デフォルトの名無しさん mailto:sage [2005/11/11(金) 07:22:23 ] vector<bool>なんてのを想定したんじゃない? > sizeof → 1 bitsetってのもまあ微妙なアレだし
520 名前:デフォルトの名無しさん mailto:sage [2005/11/11(金) 08:02:00 ] メモリが遅いって話ならそれこそ最大限コンパクトにして キャッシュに乗ってる可能性を高くしたほうがいいじゃん
521 名前:デフォルトの名無しさん mailto:sage [2005/11/11(金) 08:19:22 ] vector<bool> は特殊化されているので関係ない
522 名前:デフォルトの名無しさん [2006/01/22(日) 14:12:46 ] o(%)。 // ○(%)oジュワッ
523 名前:デフォルトの名無しさん [2006/02/08(水) 11:15:21 ] 上級者の会話か?
524 名前:仕様書無しさん mailto:sage [2006/02/08(水) 11:18:47 ] >>523 (脳内)上級者の集うスレでは?
525 名前:デフォルトの名無しさん mailto:sage [2006/02/08(水) 21:49:16 ] >>523 上級者が集まったからと言って上級な会話をするとは限りませんし、 上級者にしかその真意がわからない上級な会話なのかもしれません。
526 名前:デフォルトの名無しさん [2006/04/28(金) 09:41:06 ] 上級者はいなくなったようですね
527 名前:デフォルトの名無しさん [2006/04/28(金) 11:12:31 ] 上級者というからにはもっとこうOS技術とか、デッドロックの事例とその解決とかについて 議論するのではないのか?
528 名前:デフォルトの名無しさん mailto:sage [2006/04/28(金) 14:47:19 ] >>527 デッドロック回避にはオーストリッチアルゴリズム。マジお勧め。
529 名前:デフォルトの名無しさん mailto:sage [2006/04/28(金) 15:19:59 ] レース状態やスタベーションについての議論もしよう。
530 名前:デフォルトの名無しさん mailto:sage [2006/04/28(金) 16:08:20 ] >>528 なにもしないってかw
531 名前:デフォルトの名無しさん mailto:sage [2006/04/28(金) 17:14:50 ] レース下着でマスターベーションについて
532 名前:デフォルトの名無しさん mailto:sage [2006/04/29(土) 04:44:48 ] OS 技術が上級? 酔ってるから超ウケた。 上級な OS 技術と、当たり前すぎてあほらしい OS 技術があると思うのだが。
533 名前:デフォルトの名無しさん [2006/04/29(土) 06:06:22 ] 酔ってるな
534 名前:デフォルトの名無しさん mailto:sage [2006/04/29(土) 15:12:17 ] >>527 それはあえて言うなら「プログラミング上級者」とかの類であって「C++上級者」とはズレがあるのでは?
535 名前:デフォルトの名無しさん [2006/04/30(日) 02:32:53 ] ではC++上級者は何ができるのですか?
536 名前:デフォルトの名無しさん mailto:sage [2006/04/30(日) 02:51:36 ] Cでも書けるコード/アルゴリズムを 「C++らしく」書くことが出来ます。たぶん。 俺は上級者じゃないので無理です。
537 名前:デフォルトの名無しさん mailto:sage [2006/04/30(日) 06:21:32 ] 上級者 初級者でもわかるコードを書く 初級者 上級者でもわからないコードを書く
538 名前:デフォルトの名無しさん mailto:sage [2006/04/30(日) 09:48:40 ] ここは「上級者とは何か」を議論するスレですか?
539 名前:デフォルトの名無しさん mailto:sage [2006/04/30(日) 10:28:11 ] 自らの上級しゃっぷりをアピールするスレです。
540 名前:デフォルトの名無しさん mailto:sage [2006/04/30(日) 11:13:52 ] 初心者が微妙にスレ自体をひがんでるな そんな暇があったら勉強しなよ
541 名前:デフォルトの名無しさん [2006/04/30(日) 11:47:14 ] 夢の相互リンク プログラム技術上級スレ pc8.2ch.net/test/read.cgi/tech/1141409198/l50
542 名前:デフォルトの名無しさん [2006/04/30(日) 19:51:31 ] 自称上級者の集まるスレってここでしょうか?
543 名前:デフォルトの名無しさん mailto:sage [2006/04/30(日) 22:34:38 ] そうですね、例えばあなたとか…
544 名前:デフォルトの名無しさん mailto:sage [2006/04/30(日) 23:35:48 ] 俺、俺だよ俺!
545 名前:デフォルトの名無しさん [2006/05/06(土) 20:23:30 ] pngのCRCの計算をするコードを教えてください。
546 名前:デフォルトの名無しさん [2006/05/06(土) 20:27:47 ] >>545 ソース嫁
547 名前:デフォルトの名無しさん mailto:sage [2006/05/06(土) 20:41:34 ] >>546 わかりませんので 上級者の知恵をお借りしに来たのです。
548 名前:デフォルトの名無しさん mailto:sage [2006/05/06(土) 20:46:14 ] >547 ここは上級者以外立入禁止だ。
549 名前:デフォルトの名無しさん mailto:sage [2006/05/06(土) 20:55:00 ] >>548 わからないくせに偉ぶっている人
550 名前:デフォルトの名無しさん mailto:sage [2006/05/06(土) 21:18:22 ] 俺は上級者だが、わからないものはわからないのだ。
551 名前:デフォルトの名無しさん [2006/05/06(土) 21:31:30 ] ここは自称上級者同士が褒め称えあうスレです。
552 名前:545 mailto:sage [2006/05/06(土) 21:37:24 ] googleで探したらあったYO
553 名前:デフォルトの名無しさん mailto:sage [2006/05/06(土) 21:44:00 ] これで君も上級者だ。
554 名前:デフォルトの名無しさん mailto:sage [2006/05/06(土) 22:01:37 ] >>545 C++とは関係ない話だろとマジレス。
555 名前:デフォルトの名無しさん [2006/05/07(日) 20:31:55 ] クックック。遂に極めたぞ。
556 名前:デフォルトの名無しさん mailto:sage [2006/05/08(月) 00:29:22 ] 残念ながら555が居たのは、まだ入り口だったのであった
557 名前:デフォルトの名無しさん mailto:sage [2006/05/08(月) 00:33:38 ] 極めたってどういう状態を指すんだ?DQN臭い。
558 名前:デフォルトの名無しさん mailto:sage [2006/05/08(月) 00:51:30 ] >>557 きっと typedef あたりの使い方を極めたんだよ。
559 名前:デフォルトの名無しさん mailto:sage [2006/05/08(月) 00:52:35 ] >>558 ・・・そうか・・・
560 名前:デフォルトの名無しさん mailto:sage [2006/05/08(月) 08:08:49 ] 555の痛さはネタ臭いけど、 極めるという言葉に過剰反応している557の痛さは素っぽいな。
561 名前:デフォルトの名無しさん mailto:sage [2006/05/08(月) 16:42:06 ] まぁ真実は>>556 が突いている
562 名前:デフォルトの名無しさん [2006/06/02(金) 08:40:30 ] 皆さんのタブのサイズを教えてください
563 名前:デフォルトの名無しさん mailto:sage [2006/06/02(金) 11:22:42 ] TABは0.5を利用
564 名前:デフォルトの名無しさん mailto:sage [2006/06/02(金) 12:28:03 ] タブは8
565 名前:神楽坂 [2006/06/02(金) 15:17:23 ] フィルタドライバの作り方で 聞きたいことがあるんで 来てみたのだが...... だめみたいだな、 ここは。
566 名前:デフォルトの名無しさん mailto:sage [2006/06/02(金) 15:39:01 ] ここはスレタイが荒してくれといっているようなものだからな。 隔離スレというか。
567 名前:デフォルトの名無しさん mailto:sage [2006/06/02(金) 18:28:26 ] いかにも荒らし本人が書きそうな「見限りレス」だな。
568 名前:デフォルトの名無しさん mailto:sage [2006/06/02(金) 22:56:26 ] >>565 なんのフィルタドライバを作りたいのかぐらい書けよ。 つーか、お前は本当は聞きたいことの説明すらできんのだろ? 素直んなれよ、な?
569 名前:デフォルトの名無しさん [2006/06/03(土) 13:28:56 ] 気付いたけどここには低能しかいないようだな
570 名前:デフォルトの名無しさん mailto:sage [2006/06/03(土) 13:43:42 ] >>569 お前と俺と〜は〜
571 名前:デフォルトの名無しさん mailto:sage [2006/06/03(土) 14:20:10 ] 超上級者だったらもうちょいゆとりがあっただろう
572 名前:デフォルトの名無しさん mailto:sage [2006/06/03(土) 15:44:22 ] >>568 ・訊いても無駄だといいながら訊きたい内容を書く ・でもその内容は不明確なまま ・しかもスレ違いの予感 ・つか、なにしろコテハン 恐らく、自分よりバカ (に見える連中) がいて 嬉しかったんだろう。
573 名前:デフォルトの名無しさん mailto:sage [2006/06/03(土) 19:12:18 ] ここは、C++上級者が集まるスレであって >>565 ごときが来るような場所ではない。
574 名前:デフォルトの名無しさん mailto:sage [2006/06/03(土) 19:29:08 ] まぁ、能無しが「おもらい」しに来るスレではないよな。
575 名前:デフォルトの名無しさん mailto:sage [2006/06/03(土) 19:46:15 ] 盛り上がって参りました!
576 名前:デフォルトの名無しさん mailto:sage [2006/07/01(土) 05:03:15 ] マ板でもっとも典型的なネタスレのひとつ
577 名前:デフォルトの名無しさん mailto:sage [2006/07/03(月) 22:14:12 ] コメントを // にしました。 これで俺も上級者の仲間入り。
578 名前:デフォルトの名無しさん mailto:sage [2006/07/03(月) 23:08:47 ] 赤飯炊かなきゃな
579 名前:デフォルトの名無しさん [2006/07/07(金) 15:55:26 ] 上級者さんのお知恵をお借りしたいのですが。。 C++とDirectShowでビデオキャプチャ+圧縮保存のコードを書いております。 ボタンクリック時に、圧縮に使用するコーディックのプロパティ画面を開くようにしたいのですが、方法が検討つきません。 WindowsMediaVideo9とMEPG4 ご存知の方、いらっしゃいましたらご助力願います。 宜しくお願い致します。
580 名前:デフォルトの名無しさん mailto:sage [2006/07/08(土) 15:08:16 ] >>579 それC++関係ないだろ。
581 名前:デフォルトの名無しさん mailto:sage [2006/09/01(金) 19:22:44 ] >>580 ≪関係ない≫だと?
582 名前:デフォルトの名無しさん [2006/09/04(月) 19:57:52 ] C++のホットなネタは?
583 名前:デフォルトの名無しさん mailto:sage [2006/09/04(月) 22:39:58 ] >>582 特に無い。
584 名前:デフォルトの名無しさん [2006/10/14(土) 01:28:04 ] stdioとcstdioの違いを教えてください
585 名前:デフォルトの名無しさん mailto:sage [2006/10/14(土) 02:03:51 ] >>584 cstdio がライブラリを std 名前空間内に宣言。 stdio.h は、↑に加えてグローバル名前空間にも宣言。 っていう建前だけど、実際は stdio.h がライブラリをグローバル名前空間内に宣言。 cstdio は、↑に加えて std 名前空間にも宣言。 とかいう実装もよくある。
586 名前:・∀・)っ-○◎●創聖のダンゴリオン ◆DanGorION6 mailto:sage [2006/10/14(土) 02:06:04 ] std 名前空間
587 名前:・∀・)っ-○◎●創聖のダンゴリオン ◆DanGorION6 mailto:sage [2006/10/14(土) 02:07:15 ] まあ、プリプロセッサマクロに名前空間は適用できないしな
588 名前:デフォルトの名無しさん mailto:sage [2006/10/14(土) 03:16:03 ] たまに見かけるstudio.hもよくわからん
589 名前:デフォルトの名無しさん mailto:sage [2006/10/14(土) 05:48:10 ] ワロタ
590 名前:デフォルトの名無しさん mailto:sage [2006/10/14(土) 10:10:24 ] あやまれ!スタジオ派にあやまれ!
591 名前:デフォルトの名無しさん [2006/10/26(木) 16:03:30 ] Cωってどうなっちゃったの?
592 名前:デフォルトの名無しさん [2006/10/28(土) 01:49:55 ] class ClassA{ public: ClassA(){・・・・;} ClassA(ClassB a){・・・・;} friend ClassA operator●(const ClassA& x, const ClassA& y){・・・・;} } class ClassB{ public: operator ClassA(){return ・・・・;} } で引数x,yにClassB型の値が代入された場合、x,yはClassAのコンストラクタによってClassA型に 変換されるのでしょうか? それともClassBの変換関数によってClassA型に変換されるのでしょうか?
593 名前:デフォルトの名無しさん mailto:sage [2006/10/28(土) 02:40:02 ] >>592 規格上はどうなってんのか知らんが、とりあえずコンパイラによっては 「どっち使ってええのかわからん」とエラーを出すのは確か。
594 名前:デフォルトの名無しさん [2006/12/15(金) 19:46:02 ] xmlを処理できるライブラリを教えてください
595 名前:デフォルトの名無しさん mailto:sage [2006/12/15(金) 19:54:48 ] 上級者の質問ではないだろ。 とりあえずXercesとかMSXMLとか。詳しくは知らない。
596 名前:デフォルトの名無しさん mailto:sage [2006/12/15(金) 20:02:37 ] 動的な次元の配列のライブラリってないもんか
597 名前:デフォルトの名無しさん mailto:sage [2006/12/15(金) 20:04:21 ] >>596 boost::multi_array
598 名前:デフォルトの名無しさん mailto:sage [2006/12/15(金) 20:14:18 ] それは静的だ。 動的次元配列は自分で作るしかないんじゃね?
599 名前:デフォルトの名無しさん mailto:sage [2006/12/20(水) 16:57:05 ] gccとFedora core5でプログラムを作成しています。 ofstreamでflush()を使っても、実行されたタイミングでファイルが更新されません。 一定以上になるまで、システムのバッファ内に溜め込まれているようなのですが、 flush()実行時に確実にファイルに書き込ませるにはどうしたらよいでしょうか?
600 名前:・∀・)っ-○◎●創聖のダンゴリオン ◆DanGorION6 mailto:sage [2006/12/20(水) 22:51:39 ] 「STLによるコンポーネントデザイン」にvectorを使った2次元・3次元配列クラスの作り方書いてあった それとも次元が動的に増減するの? そりゃちょっとお手上げ
601 名前:・∀・)っ-○◎●創聖のダンゴリオン ◆DanGorION6 mailto:sage [2006/12/20(水) 23:01:22 ] >>599 flushでフラッシュされないのって、C++標準の方法ではどうしようもないような。 クローズしてみるとか(かなりいい加減) あと、内部的にメモリマッピングしてるような気もする。
602 名前:デフォルトの名無しさん mailto:sage [2006/12/22(金) 22:57:20 ] 断片化なしの動的二次元配列の一種。 capslockabcjp.kitunebi.com/boolean.html ブール閉包(boolean closure)のサイズとインデクスの計算 1次元配列にみっしりと二次元の表を納めつつ、 伸縮させても穴が空かない構造の作り方。
603 名前:デフォルトの名無しさん mailto:sage [2006/12/22(金) 23:13:02 ] >>599 気のせいだと思いますよ。
604 名前:デフォルトの名無しさん mailto:sage [2006/12/22(金) 23:22:16 ] >>599 ランタイムライブラリとは無関係にOSとドライバの側で制御しているから OS独自の機能を使わないとどうしようもない。 www.linux.or.jp/JM/html/LDP_man-pages/man8/sync.8.html
605 名前:デフォルトの名無しさん mailto:sage [2006/12/23(土) 08:46:49 ] 特殊なストレージデバイスを使ってない限り、 カーネルのin-coreイメージと外部デバイスの不一致は観測不能なんだが。
606 名前:デフォルトの名無しさん [2007/01/06(土) 02:30:56 ] 真贋について www.kh.rim.or.jp/~nagamura/misc/stroustrup-interview.html
607 名前:デフォルトの名無しさん mailto:sage [2007/01/06(土) 02:39:51 ] それは遥か昔にストラウストラップと袂を分かった、 彼の頭頂の毛が喋ってるんだよ。
608 名前:デフォルトの名無しさん [2007/01/08(月) 12:26:22 ] 【ネガティブ派遣根性チェック】 3つ以上、思い当たる点があればアナタの性格はひん曲がっており、ネガティブ負け組人生を歩んでいます。 □偽装派遣先の社員の意見にはたとえ間違っていても反対しない □偽装派遣先から「いつまでもここで仕事してくださいね」と言われるようになりたい □自社に仕事を持ち帰れるように言われるとムカつく □自社で仕事なんてできるわけがない □派遣/受託の差異を指摘する人間はムカつく □偽装派遣先には仕事だけでなく自分のプライベートについても指示して欲しい □自分の月額金額を知らない □偽装派遣先社員より自分の生涯収入が低いのは当然だ □偽装派遣先に尻尾を振り、いつまでも一緒に仕事をすることが大切だ □今のプロジェクトが終わっても同じ偽装派遣先に常駐したい
609 名前:デフォルトの名無しさん mailto:sage [2007/01/08(月) 18:36:21 ] 構造化して細かく関数毎に分けた方が、構造化されていないプログラムより最適化されやすいですか? それとも関数の呼び出しのオーバーヘッド分だけ遅くなりますか?
610 名前:デフォルトの名無しさん mailto:sage [2007/01/08(月) 22:59:00 ] >>609 最適化については、コンパイラ (とコンパイル時のオプション) に依存するのでなんともいえない。 関数の呼び出しのオーバーヘッドは確実に存在する。 ただ通常それが問題になることはあまり無い。 て言うか、プログラム書くときはわかりやすく書け。 関数呼び出しのオーバーヘッドなんか気にするのは最終手段だ。
611 名前:デフォルトの名無しさん mailto:sage [2007/01/09(火) 01:58:49 ] 「最適化する必要を感じるまで最適化するな」
612 名前:・∀・)っ-○◎●創聖のダンゴリオン ◆DanGorION6 mailto:sage [2007/01/09(火) 02:05:56 ] 常に__forceinline
613 名前:デフォルトの名無しさん mailto:sage [2007/01/09(火) 05:15:49 ] >>609 最近のコンパイラは小さい関数が数百個つらなっても 平気でinline化しやがるので無問題
614 名前:デフォルトの名無しさん mailto:sage [2007/01/11(木) 23:18:23 ] en.wikipedia.org/wiki/C%2B%2B0x こんなに様々な提案があったとは思っていなかった。
615 名前:デフォルトの名無しさん mailto:sage [2007/01/12(金) 10:27:53 ] class A{ const double x; A() : x(10){} } と class A{ static const double x=10; } の使い分けについて教えてください
616 名前:デフォルトの名無しさん mailto:sage [2007/01/12(金) 11:03:20 ] >>615 前者はインスタンス毎に暮らす変数が作られるのでメモリが余計に 必要だが、コンストラクタ次第ではインスタンス生成時に x の値を 自由に設定できる。 後者はメモリは一つしか使わないので省メモリ型だが、コンパイル時 に値が決定するのでコンストラクタによって値を変える事はできない。
617 名前:デフォルトの名無しさん mailto:sage [2007/01/13(土) 02:13:25 ] >>615 後者はコンパイルできない。
618 名前:デフォルトの名無しさん mailto:sage [2007/01/13(土) 10:31:38 ] class A{ static const double x; }; const double A::x = 10;
619 名前:デフォルトの名無しさん [2007/01/16(火) 16:22:35 ] 上級者の方にお聞きしたい問題があります。 -------------- 【問題】 「計算式対応電卓」 ・計算式を文字列として入力すると、その計算を行い、結果を出力するプログラムを 作成せよ。 -入力文字列を解析し、数値と演算子に分けて計算する。 -例:計算する式を入力してください。終了:end 使用可能演算子:四則演算(+-*/) 1+2 答えは3です。 ・必ず四則演算のほかに、使用可能な演算子を追加せよ。 入力する際の演算子記号は任意にきめてよい。 -例:あまりを求める % 二乗を求める ・繰り返し何度も計算できるようにする。 その際、終了する場合の入力文字列を示せ。 -------------- 初心者ということもあり、わかりません。 ソースファイルとして書き込んでいただきたいです。。
620 名前:デフォルトの名無しさん mailto:sage [2007/01/16(火) 16:50:27 ] C/C++の宿題を片付けます 81代目 pc10.2ch.net/test/read.cgi/tech/1168663908/l50
621 名前:デフォルトの名無しさん mailto:sage [2007/01/16(火) 16:56:09 ] >>619 ftp.gnu.org/gnu/bc/
622 名前:デフォルトの名無しさん mailto:sage [2007/01/16(火) 21:11:54 ] >619 spirit.sourceforge.net/
623 名前:デフォルトの名無しさん mailto:sage [2007/01/16(火) 23:34:23 ] >>619 講義聴いてればちゃんとできるからまた来年やれ
624 名前:デフォルトの名無しさん [2007/01/17(水) 00:33:04 ] 若いの オラが村では派遣の問題を口にしちゃなんねーだ お前さんはまだわけぇから言いたいこともあるべぇ だべな、派遣問題を口にするとムキになって怒る者がおるでよぉ 問題の指摘は駄目だっぺぇ 派遣のことは口にしちゃなんねぇ この村みたいな糞田舎で悲惨な生活するためにはよぉ 北朝鮮と一緒でよ、駄目のものを駄目と言ってはなんねえだべさ タブーを口にしちゃいけねぇだ オラ達みたいな田舎者の鉄則だっぺ
625 名前:デフォルトの名無しさん mailto:sage [2007/01/17(水) 09:41:28 ] >>619 逆ポーランド使ったらだめ?
626 名前:デフォルトの名無しさん mailto:sage [2007/01/17(水) 11:34:32 ] >>617-618 まともなコンパイラを使ってください。
627 名前:ららら [2007/01/17(水) 19:26:03 ] class Hoge を Hoge.h で宣言して Hoge.cpp で定義している。 Hoge の実装では Foo クラスを使うのだが、 Foo を使っているということを Hoge.h 側では見せたくない。 今は class Hoge { public: Func1(void); private: Func2(Foo* foo); }; こうなっているのだが、Foo をヘッダーに見せたくない。 Foo を使うコードが Func1 内で完結すれば、見せなくて済むのだけど、 何分 Func1 の処理が長いので、どうしても関数を分割したい。 さて、よい案はないだろうか。。。。 ヘッダー上では Foo* じゃなくて void* にキャストして、 Func2 の実装で void* を Foo* にキャストする、 という方法はあるのだが。汚い。
628 名前:デフォルトの名無しさん mailto:sage [2007/01/17(水) 19:44:28 ] pimpl
629 名前:デフォルトの名無しさん mailto:sage [2007/01/17(水) 19:54:08 ] Fooのポインタだけならclass Foo;とだけ書いておけばおk。
630 名前:デフォルトの名無しさん mailto:sage [2007/01/18(木) 02:48:20 ] 上級者の皆様、Haskellで使えるalgebraic data typeをC++で表現するにはどうすればいいでしょうか?教えてください。
631 名前:デフォルトの名無しさん mailto:sage [2007/01/20(土) 10:35:44 ] >>615 で class A{ static const int x=10; } は許されるのに class A{ static const double x=10; } は禁止されているのは何故なのでしょうか?
632 名前:デフォルトの名無しさん mailto:sage [2007/01/20(土) 12:41:07 ] 配列の要素数など整数定数への需要は大きいから、それだけ特別扱いされた。
633 名前:デフォルトの名無しさん mailto:sage [2007/01/20(土) 14:29:28 ] class A{ static const double x; }; const double A::x = 10; これでできるのなら、 class A{ static const double x=10; } の様な書き方も許可して良さそうな気がするのですが・・・
634 名前:・∀・)っ-○◎●創聖のダンゴリオン ◆DanGorION6 mailto:sage [2007/01/20(土) 14:59:27 ] class A{ static const double x() const { return double(10); } } で代用できるから特に困らない
635 名前:デフォルトの名無しさん mailto:sage [2007/01/20(土) 15:00:59 ] C++のクラスの静的メンバ変数は(constの有無に関わらず)、 Cのヘッダに宣言しどこか1箇所ソースで定義する流儀を受け継いでいると考えればそう不自然でない。 納得がいくかどうかはともかく。 そんなにクラス内に書きたければ、静的メンバ関数ならインラインに書けることを使う手もなくはない。
636 名前:デフォルトの名無しさん mailto:sage [2007/01/20(土) 15:13:30 ] C++ らしいよなぁ。 template もそうなんだけど、なんつーか、 もう少し素直にやりたいことを直感的に書けないものかw
637 名前:・∀・)っ-○◎●創聖のダンゴリオン ◆DanGorION6 mailto:sage [2007/01/20(土) 15:22:46 ] Borlandコンパイラならプロパティ(独自拡張)があるね
638 名前:デフォルトの名無しさん mailto:sage [2007/01/20(土) 17:09:58 ] そういやtemplateなら>>618 のようなのを全部ヘッダーに書いてもいいんだっけ?
639 名前:デフォルトの名無しさん mailto:sage [2007/01/20(土) 19:41:48 ] >>637 Visual C++も独自拡張でプロパティを持っている。COMラッピングに使っている。 >>638 テンプレートでも定義が必要。ただしヘッダに書ける。 template<typename T> class A{ static const double x; } template<typename T> const double A::x = 10; たしかこんな感じ。
640 名前:・∀・)っ-○◎●創聖のダンゴリオン ◆DanGorION6 mailto:sage [2007/01/20(土) 19:41:55 ] 駄目だから定数を返す関数にする。どうせインライン展開されるし
641 名前:デフォルトの名無しさん mailto:sage [2007/01/21(日) 17:14:28 ] >631,633 あれ?出来ないんだっけ? gcc3.4.2なら出来たけど。 てか、最近のコンパイラなら出来るはずだと思って フリーで配ってるソースで使いまくっちゃったけど。。。
642 名前:・∀・)っ-○◎●創聖のダンゴリオン ◆DanGorION6 mailto:sage [2007/01/21(日) 17:19:40 ] 厳密にはできなくはない __declspecキーワード使うことになるが
643 名前:デフォルトの名無しさん mailto:sage [2007/01/21(日) 18:32:35 ] 規格では整数型のみだけだっけ?
644 名前:ららら [2007/01/21(日) 18:58:00 ] class Foo; class Hoge { public:     Func1(Foo::FooType type); }; class Foo { public:     enum FooType {         TYPE_1, TYPE2, TYPE3     } }; こんなコードが、コンパイルエラーになるのですが、 Foo を先に宣言せずに、Hpge で Foo::FooType を使うことって可能ですか?
645 名前:デフォルトの名無しさん mailto:sage [2007/01/21(日) 18:59:42 ] それは無理だな
646 名前:デフォルトの名無しさん mailto:sage [2007/01/21(日) 19:01:37 ] 無理だよ
647 名前:デフォルトの名無しさん mailto:sage [2007/01/21(日) 19:35:38 ] >>644 >Foo を先に宣言 Foo を先に定義、の間違いだな そんな細かい指摘はともかく、この要求は比較的需要があると思うけれど、 (少なくとも自分はこういうことをしたいときが結構ある) みんなどう思ってるんだろ
648 名前:デフォルトの名無しさん mailto:sage [2007/01/21(日) 20:04:33 ] >>647 こういうのがあるから、ネストされた public 型定義は避けたほうがいい。
649 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 09:53:27 ] どうしてもって場合は苦肉の策だけど、Hoge側をクラステンプレートにして しまうのもありかも( Foo をテンプレート引数にする )。
650 名前:デフォルトの名無しさん [2007/01/27(土) 23:55:49 ] 魔法少女ポリモル pc10.2ch.net/test/read.cgi/prog/1169812216/
651 名前:デフォルトの名無しさん mailto:sage [2007/02/02(金) 20:43:47 ] vc2005EEを使っているのですが、質問があります。 デバッグモードではCPU使用率が20〜35%に押さえられているのですが、 リリースモードにすると使用率が常時100%に跳ね上がってしまいます。 これの原因分かる方いませんか? もしくは原因究明の方法が分かる方いませんか? (プロファイラは使えません^^) どうかよろしくお願いします。
652 名前:デフォルトの名無しさん mailto:sage [2007/02/02(金) 21:37:54 ] >>651 マルチはラウンコにでも逝ってろ。
653 名前:デフォルトの名無しさん mailto:sage [2007/02/02(金) 22:20:52 ] >>652 pc10.2ch.net/test/read.cgi/tech/1164951094 一度、↑のスレの989で聞いたのですが、 スレ違いといわれてしまったので、もう一度質問させてもらっています。
654 名前:デフォルトの名無しさん mailto:sage [2007/02/02(金) 22:50:15 ] >>653 あってるかどうかの自信はないが原因やその調査方法や対策等々を多少予想がつかんでもないが、 プロファイラを使えば一発で解決する問題なのに、あえてプロファイラは使えませんと逃げるような 教えて君がくるようなスレではありません、ここは。どっか逝け。 つーかせめてどんなプログラムかぐらい書け。あと、テキトーにプログラムをコメントアウトして 現象が変わったらその部分あるいはその部分に関連したところになんかある。ロクに情報も提供 しない教えて君はたまにはそーゆー地道なデバッグでもやってなさい。
655 名前:デフォルトの名無しさん mailto:sage [2007/02/02(金) 22:51:41 ] サクセスに振り込んだお金が返ってこない まで読んだ
656 名前:デフォルトの名無しさん mailto:sage [2007/02/02(金) 23:01:07 ] 「まで読んだ」ネタは それを書くより早く読めるレスについてるとなんか痛い
657 名前:デフォルトの名無しさん mailto:sage [2007/02/02(金) 23:08:58 ] ごめんね母ちゃんはじめて「まで読んだ」したから
658 名前:デフォルトの名無しさん mailto:sage [2007/02/03(土) 00:36:04 ] >>654 別に逃げているわけでは無く、 もともとVC8EEにはプロファイラがついていないのです。 これを使えば解決することは分かっていたので、あらかじめ注釈させていただきました。 情報が足りなかったことは誤ります。 作っているのは所謂ノベルゲームです。 >>654 にあるようにプログラムを適当にコメントアウトしていったところ、 サウンドを再生する専用のスレッドがネックになっていることが分かりました。 ここでのSleep間隔を0からそれより大きくした結果(現在は5)、 CPU使用率が20%にまで下がりました^^ ちょっと納得できない部分もあるのですが、とりあえず上手く動くようになりました。 どうもありがとうございます^^
659 名前:デフォルトの名無しさん mailto:sage [2007/02/03(土) 00:40:25 ] > もともとVC8EEにはプロファイラがついていないのです。 もろ逃げじゃんw VC8EEプリインストールモデルなんて聞いたことないしなぁw 学校のPCだけでやってるんだったらもちスレタイ嫁。
660 名前:デフォルトの名無しさん mailto:sage [2007/02/04(日) 14:18:40 ] >>658 OS上CPU使用率が100%と表示されていても 本当にCPUの演算ユニットを100%ぶんまわしてるわけじゃないから、 Sleepは0でも良い。1あれば十分。5は多すぎ。
661 名前:デフォルトの名無しさん mailto:sage [2007/02/05(月) 02:24:45 ] >>659 ごめん。 意味が分からない。 >>660 windowsのスレッドシステム(自分は2000使ってます)をよく知らないのですが、 メインの方の処理が軽くなると、 コンテキストスイッチが頻発してCPU使用率が異常に上がるのかなぁ。 実行速度は軽くなっているのに、使用率が上がるということは 無駄な処理がすごく増えたってことですよね。。。 あと、5msのSleepは確かに長すぎるかもしれません。 メインスレッドの方がつまってくると、 音飛ぶ可能性ありますね。 このあたりはもうちょっと調整してみます。
662 名前:デフォルトの名無しさん mailto:sage [2007/02/05(月) 02:31:09 ] >>661 Waitのない無限ループを持つスレッドがひとつでもあればCPU使用率は100%になる。 そんな当たり前なことも理解できてないようなヤツがいていいスレじゃない。どっか逝け。
663 名前:デフォルトの名無しさん mailto:sage [2007/02/05(月) 15:12:33 ] >>662 非HTでシングルコアの場合だけな。
664 名前:デフォルトの名無しさん mailto:sage [2007/02/06(火) 01:23:31 ] >>662 Wait = Sleep(0) という解釈でいいなら、ちゃんと入ってましたよ。 問題は 1, メインスレッド・サウンドスレッドともにちゃんとSleepが入っていた (メインの方はFPS固定の可変Wait, サウンドの方は常に0) 2, 単純な実行速度はデバッグモード時よりもリリースモード時の方が速かった 3, メインスレッドのWait値もリリースモードの方が大きかった にも関わらず、デバッグモードではCPU使用率が30〜40%、 リリースモード時は常に100%になっていた点です。 リリースモードではサウンドスレッドが相当無駄なことをしているのは理解できるのですが、 それならデバッグモードではなんで100%にならないのかなと。。。 >>663 そうですね^^
665 名前:デフォルトの名無しさん mailto:sage [2007/02/06(火) 01:46:39 ] >>663 デュアル/マルチプロセサは無視か? >>664 > Wait = Sleep(0) という解釈でいいなら、 よくないだろ。 それは、ともかくコードの断片も示せないなら、エスパー希望の広告を 新聞に載せた方が早いので、ここから立ち去ってくれ。
666 名前:デフォルトの名無しさん mailto:sage [2007/02/06(火) 02:15:36 ] >>664 C++の話題じゃないから、662を読んで分からないなら Windows 板へ池
667 名前:デフォルトの名無しさん mailto:sage [2007/02/06(火) 06:56:43 ] >>664 処理速度の速いほうがCPU使用率も高くなんのはあたりまえだろ、どっか逝け。
668 名前:デフォルトの名無しさん mailto:sage [2007/02/06(火) 08:20:29 ] 俺も大体そう思うな プロファイラがあってもデバッグ版のCPU使用率が低い理由はわからないと思う。 これに関しては私には判りません。 デバッグモードでは何か特殊な待ちがあるんだろか。 たとえばwaveOutWriteなら複数のバッファを渡せるので 音飛ぶ可能性は著しく低く、 バッファが終わるころにメッセージ通知が来るから それまで何もしないのでCPU使用率を著しく下げることも出来るはず。 ノベルゲームの経験ないから推測だが ノベルゲームで絶えず処理している状況が存在する理由がわからない。
669 名前:デフォルトの名無しさん mailto:sage [2007/02/06(火) 11:21:53 ] デバッグ版ではシステムコールの呼び出しが 増えてたりするからじゃないのん?
670 名前:デフォルトの名無しさん mailto:sage [2007/02/06(火) 22:06:52 ] c++のリファクタリングツールは VisualStudioなら ref++ Refactor! Pro emacsで使えるツールはないの?
671 名前:デフォルトの名無しさん mailto:sage [2007/02/06(火) 22:11:02 ] www.wholetomato.com/forum/topic.asp?TOPIC_ID=3990 リファクタリングツールいろいろ
672 名前:デフォルトの名無しさん mailto:sage [2007/02/06(火) 22:27:03 ] xref-tech.com/xrefactory/main.html emacsリファクタリングツールみつけた 試したいけどemacsでc++コンパイルする環境整えるの大変だ
673 名前:デフォルトの名無しさん mailto:sage [2007/02/07(水) 23:49:30 ] すみません。これで最後にします。 >>668 サウンドライブラリとして、OpenALを使っているので、 空きバッファがあるかどうか 常に監視する必要があるのです。 確かにwaveOutならその必要はありませんね。 >>669 システムコールかもしれません。 一応テストとして、 ・適当な処理+Sleep(0)を繰り返すスレッド ・適当な処理+Sleep(10)を繰り返すスレッド の二つを作って実行させたのですが デバッグモード、リリースモードの両方でCPU使用率は100%でした。 (当然か。。。) 件のアプリでは、さらに多くのスレッドといろいろな処理が付加されているので、 どこかになにがしかの待ちが入っているんだと思います。 (共有リソース待ちや、IO待ち?) 感覚としては、スレッド間のリソース待ちが原因では無いかと思いました。 (調べてみるとミキシングスレッドとサウンドデータ供給スレッドが別でした^^) ちょっとこれ以上は分から無いのですが、 他にやることもあるのでこの件はこれで終わりにしたいと思います。 それでは、スレ汚し失礼しました。
674 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 12:20:00 ] 実行中にブレーク掛けてみて、どの処理が走ってるかみてみたら。 何回かやれば時間食ってる部分が解るだろ。
675 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 00:33:53 ] >>674 遅れてすみません。 ブレーク掛けてみたのですが、 意味の分からない結果になりました。 なんか、OpenALのバグのような気がします。。。 原因が分かったら報告します。
676 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 09:20:44 ] ここは上級者が集まるスレです。上級者に質問するスレではありません。
677 名前:デフォルトの名無しさん mailto:sage [2007/02/16(金) 12:34:00 ] 集まって何すんの?
678 名前:デフォルトの名無しさん mailto:sage [2007/02/16(金) 12:34:37 ] 書き込んだり、書き込みを読んだりするに決まってるじゃん。
679 名前:デフォルトの名無しさん mailto:sage [2007/02/16(金) 13:18:05 ] 書き込んだり、書き込みを読んだりして何すんの?
680 名前:デフォルトの名無しさん mailto:sage [2007/02/16(金) 14:53:13 ] できることとか、やりたいこと。
681 名前:デフォルトの名無しさん [2007/03/02(金) 19:46:02 ] 夏時間まで考慮して、タイムゾーンを取得する方法を教えてください。
682 名前:デフォルトの名無しさん [2007/03/27(火) 02:43:43 ] boolは何故1バイトも消費するのですか?
683 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 05:01:28 ] >>682 1バイトとは限らんぞ。処理系依存だ。 VCではint型にダウンキャストされるんじゃなかったっけ? #かなり昔に仕様書らしきもので読んだ気が。 仮に>>682 が使用している環境でboolが1バイト使うとして話を進める。 >>682 は1ビットで十分だっていいたいんだろうけど、 メモリの最小管理単位が1バイトだから、最低でも1バイト使わないとだめ。 C言語で言うビットフィールドを使って、ビット単位で管理するのもありだけど (そうすれば、1バイトで8個のboolを管理できるよな)、それだと管理のための メモリが必要になるし、速度面で効率的じゃなくなる。 だから、bool型は1ビットじゃないんだ。 もっとも、処理系によってはビット単位で管理してるのもあるかもしれんが。
684 名前:・∀・)っ-○◎● mailto:sage [2007/03/27(火) 05:05:29 ] ダウンキャストっていうのかそれ VC++の最近の実装(っていうかただのtypedef)ではBOOL=charだったような
685 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 05:06:51 ] >>683 今VC++でsizeof(bool)の値を見たら1だった。 俺はbool型変数はクラスメンバぐらいでしか使わないから、 たとえ1ビットだとしてもアラインメントの影響で恩恵にあずかれないな。
686 名前:・∀・)っ-○◎● mailto:sage [2007/03/27(火) 05:18:54 ] vector<bool>とか使うと恩恵があるかも
687 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 06:31:31 ] boolをvectorなんかに入れて一体何に使えというんだ
688 名前:・∀・)っ-○◎● mailto:sage [2007/03/27(火) 06:34:33 ] 何だ知らないのか www.scl.kyoto-u.ac.jp/scl/appli/appli_manual/SUNWspro/WS6U2/ja/manuals/stdlib/user_guide/general/5_3.htm
689 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 06:50:59 ] >>688 そういえばそんなもんもあったな。
690 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 07:13:24 ] >684のすべてが意味不明
691 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 22:04:00 ] >>683 速度・効率だけでなく、ビット単位ではポインタとしてメモリアドレスが使えない。 ワードマシンでのchar*みたいにコンパイラが頑張る手もあるが、 bool*だけでなく必然的にvoid*もbool*に合わせなければならず、 void*とbool*だけ他のポインタと異なる大きさになってしまう。 無論規格上は問題ないが、実際問題void*の大きさがほかと異なるなんてやっていられないだろ。
692 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 23:05:56 ] 関数へのポインタとデータへのポインタの大きさが違うなんて 昔は当たり前だったから、なんてことない。
693 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 23:14:25 ] >691 boolを1bitにするなら、sizeof(bool)をどうする気?
694 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 23:18:46 ] >>693 1/8 usodakara
695 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 23:21:03 ] >>693 それ忘れていたorz >>684 Windows APIでは、typedef int BOOL; typedef char BOOLEAN; しかしboolとは関係ない。
696 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 23:33:40 ] > typedef int BOOL; typedef char BOOLEAN; わけわからん >>MS ATL::CComPtr::operator&()もわけわからんかった。 凶悪。
697 名前:・∀・)っ-○◎● mailto:sage [2007/03/28(水) 01:08:39 ] >>695 そこは固定じゃない。 なんのtypedefかはSDKのバージョンによってもしょっちゅう変わる。 まあ固定長ビット配列ならstd::bitsetなんかが一番効率いいかな。 1ワードの中に複数要素が詰め込めると何かと便利。
698 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 01:20:35 ] msdn2.microsoft.com/en-us/library/aa383751.aspx 実際にヘッダでどうなっているかはともかく、文書化されていることは当てにしていいと思う。 ところでBOOLEANはBYTEだったね、すまん。
699 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 02:12:43 ] >>691 void* と char* は同じ内部表現である必要がある。 (ISO C++ 3.9.2.4) そのほかメモリモデルやオブジェクトモデルの定義からも char より 小さい型は存在し得ないと言える。
700 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 02:12:52 ] BOOL Boolean variable (should be TRUE or FALSE). shouldって便利な言葉だな
701 名前:・∀・)っ-○◎● mailto:sage [2007/03/28(水) 02:30:37 ] >>698 msdn2〜はVS2005のドキュメント
702 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 02:38:09 ] >>701 団子ちゃん、流れとは全然関係ない質問があるんじゃが、 団子ちゃんがC++上級者だと家庭して、団子ちゃんは Boost を 1. あー、ごっつい靴だろ? 2. たまに使う。 3. よく使う。 4. もうあなたなしじゃ生きられないの! 5. あー、アレのほげほげは俺がコントリビュートしてんだよ。 の、どれ?
703 名前:702 mailto:sage [2007/03/28(水) 02:39:35 ] ちなみに俺は、1 だが、それでも自分を C++ 上級者だと思ってる。
704 名前:・∀・)っ-○◎● mailto:sage [2007/03/28(水) 02:44:25 ] 2かな ふだんはATL/WTL+STLあと.NET regexとrandom::mt19937rは便利だね あとsandboxにあがってたfixed_arrayが便利だから改造して使ってる
705 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 03:06:41 ] .NEET 使ってんだ。
706 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 07:26:32 ] >697 おいおい。BOOLの実体がint以外だったことがあるってーの? WIN16の頃の話じゃねーだろーな。
707 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 09:17:07 ] >>701 msdn.microsoft.comの時代から698の文書は存在した。 今は英語版のMSDNライブラリオンラインはあちこちmsdn2への転送になっている。
708 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 15:45:05 ] bool型はC++仕様書ではintと同じバイト数。 でも大手の実装するコンパイラは大抵1バイトしか割り当てないのが普通。 さて、酒飲んで寝るか。もう目が覚めませんように。
709 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 16:11:38 ] >>708 そんな規定はどこにも無い。
710 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 16:50:25 ] >>708 嘘吐きはそのまま永眠してなさい。
711 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 18:29:02 ] 1に書いてある内容とまるで裏腹なスレの内容 なんて皮肉だ
712 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 23:37:58 ] > 我こそはC++プロフェッショナルだという方の書き込みをお待ちしております。 こんなこと書くから、自分でプロだと「思い込んでる奴」ばっかりになるんだよ。
713 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 23:42:49 ] >>711-712 ここはネタスレなのにお前らときたら…
714 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 16:37:54 ] >>711-712 のような人たちのためのホイホイスレでもあるからいいじゃないか。
715 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 18:52:05 ] >>711-712 は本気で自分がC++上級者だと思って このスレに降臨なされたのですか
716 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 11:42:32 ] スレタイに騙されて覗いてみたら期待してたのと違ったんで 怒りに任せて書き込んでみたんでしょう。 スレ勃てから2年半もたってノコノコやってきて今更な事を書く人ってのは そういうもんです。
717 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 14:17:33 ] >>714-716 ここはネタスレなのにお前らときたら…
718 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 14:26:29 ] もうちょっとためてから反復しないとネタとして面白くないです。
719 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 21:56:50 ] 団子ちゃん以外の人は >>702 で言うと何番?
720 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 22:02:40 ] 特定の部分なら3だが全般的には2だな
721 名前:・∀・)っ-○◎● mailto:sage [2007/03/31(土) 00:22:23 ] 全部使ってる奴がいたらそれはそれで気持ち悪いぞ MPLとかSpiritとか、いいかげんにしる
722 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 06:16:03 ] 俺4。上級者じゃないけど。MPLとかは流石に可読性的に使えないがな。
723 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 17:01:03 ] MPLとPreprocessorとSpiritとPhoenixとXpressiveと LambdaとuBLASとgraphとfilesystemを全部使うアプリを testでテストするやつこそが4だな。
724 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 22:33:03 ] どういう処理をしようとして全部必要になるんだろうか……
725 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 13:19:51 ] 環境非依存で、ミリ秒単位でsleepさせる方法はありませんか?
726 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 14:16:24 ] >>726 ない。 特定のCPU等に依存していいならなんらかの方法があるだろうが、 どのみちほとんどマシン語のコードになる。
727 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 14:49:56 ] >>727 ですよね。
728 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 19:01:43 ] >>727 大丈夫か
729 名前:デフォルトの名無しさん [2007/04/04(水) 20:00:16 ] >>729 注:私の有意義な発言に対し自分の理解不足を棚に上げ煽り、1行レス で返す方が多いようですが、そのような方はスレの皆様を混乱させるだけでなく スレの雰囲気を崩しかねないのでお黙り下さい また質問者は回答者に知識を披露する場を与える貴重な存在なので、 質問者を見下した回答、あまりにも儀礼を欠いた回答も厳重に禁止いたします。 忙しい中、少ない時間の合間を縫って質問しに来てるわけですので、 その辺ご承知下さい。なお、当方が質問に対して有意義な答えであると 判断した方には評価いたしますので各自よく調べ、よく考え正確な回答をするように。
730 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 23:31:15 ] まずい餌だな。3点
731 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 08:44:22 ] >>731 死ねよクズが
732 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 16:54:40 ] >>733 死ねカス
733 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 16:55:12 ] >>732 お前が死ねカス
734 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 17:02:47 ] 729 名前:あぼ〜ん[あぼ〜ん] 投稿日:あぼ〜ん
735 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 18:59:56 ] >>731-733 ありきたりのパターン。2点
736 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 22:37:50 ] かといってこんなことに新鮮味を追求されるのもアレだな
737 名前:デフォルトの名無しさん [2007/04/10(火) 18:46:19 ] 絶対値を求める関数が他の言語では一つしかないのにCではabsとfabsの二つが存在する理由を教えてください。
738 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 19:16:00 ] その質問をこのスレでする理由を教えてください。
739 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 22:43:33 ] >>737 > 絶対値を求める関数が他の言語では一つしかない Fortran なんか4個もあるぞ。(w iabs(整数) => 整数 abs(実数) => 実数 dabs(倍精度) => 倍精度, cabs(複素数) => 実数
740 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 22:56:30 ] CだってC89の時点でabs(int), labs(long), fabs(double)と3個。 後(C95か?)にfabsf(float), fabsl(long double)が加わり5個。 C99ではllabs(long long), imaxabs(intmax_t), cabs(double complex), cabsf(float complex), cabsl(long double complex)と10個。 勿論C++では、(C++にある型なら)absで多重定義がなされている。
741 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 00:27:51 ] ここまでの話を総合すると、rubyが一番スマートだな。
742 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 21:36:45 ] >>741 というと ruby は絶対値をマイナス値で返す nabs 一個のみとかそんな感じ?
743 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 23:27:22 ] オーバーロードしてるから見た目上一個やん
744 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 04:39:04 ] >>743 マイナスの最大値でオーバーフローするものしかないってこと? # 戻り値が unsigned なら大丈夫だけど。
745 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 11:07:54 ] >>737 実行速度を上げるため
746 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 22:35:50 ] >>744-745 釣りですか、ご苦労様です。
747 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 22:59:30 ] 直観が「突っ込み所だ」と告げたはいいが、スレタイがスレタイだけに 具体的に突っ込んでボロ出す羽目になったらどうしようってのがちょっぴり不安で、 結果こんな感じに落ち着きました、という感じのレスだな。
748 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 23:38:12 ] >>747 >>747
749 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 02:31:47 ] たとえば負数が1の補数な処理系では、 INT_MINを放り込んでも、オーバーフローしないよ。
750 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 04:29:20 ] そうだね。帰っていいよ。
751 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 09:06:05 ] 馬鹿じゃないの?
752 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 09:08:20 ] 泣くなよ
753 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 08:47:09 ] >>688 1998年w
754 名前:デフォルトの名無しさん [2007/05/18(金) 18:12:10 ] float x=10.0; で exp(x) とすると、expはfloat型に対応した関数が呼び出されますが、 exp(10.0) とした場合、double型に対応した関数が呼び出されると考えてよいのでしょうか?
755 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 20:30:24 ] ワラタ
756 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 21:39:41 ] >>754 そうだよ ちなみにexp(10.0f)とすればfloat版を選べる
757 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 02:39:50 ] まさかとは思ったが ここも隔離スレだったか
758 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 02:45:16 ] >>757 全然そんなことないから、ここから出て行かないでね♪
759 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 03:24:06 ] >>21 いまさらながら const string 上級者="俺"; のが上級者っぽいな。
760 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 15:07:07 ] class 上級者; typedef 俺 上級者;
761 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 16:31:11 ] >>760 #define 上級者 ナルシスト をお忘れですよ。
762 名前:デフォルトの名無しさん [2007/07/05(木) 17:48:21 ] 大抵のコンパイラでC99はスイッチをつけないとコンパイルできないのは何故?
763 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 18:45:42 ] C++のコンパイラ? C99がC++に取り込まれるのはC++0x(たぶん09)からだよ。
764 名前:デフォルトの名無しさん [2007/07/05(木) 20:03:32 ] C++かアセンブリ言語どっちが難しいですか?
765 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 20:43:18 ] C++
766 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 21:05:20 ] アセンブリは面倒なだけで難しいのとはまた違う 技術書を読む大変さはあるけどなー
767 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 21:10:24 ] マクロアセンブラならまあいける 本当にただのニーモニック→機械語変換だとアドレスの管理を全部自分でやらないといけないから死ねる
768 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 00:21:56 ] それアセンブラって言わないと思うが...
769 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 00:56:53 ] DEBUG.EXEだな あれのアセンブラ機能は貧弱だったな それでもcom形式ぐらいならなんとか書けちゃったりするが
770 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 12:02:34 ] FEDCBA98
771 名前:デフォルトの名無しさん [2007/07/11(水) 12:32:08 ] 何の16進かと思ってググったらゲーム改造かよ。 何にしろバイナリ書き換えは趣味の域でなきゃやりたくないな。
772 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 20:44:27 ] C++上級者(笑)
773 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 20:52:46 ] 三(笑) ( *´ω`)ムシャムシャ つi'"': `、:_i' | ┌┐ │ ││ ││ 若干食べられてしまったが | ││ ││ >>772 はC++より安く見えることがわかる | ││ ││ └──────────── C++上級者(笑) >>772
774 名前:デフォルトの名無しさん [2007/09/24(月) 07:47:59 ] defineの代わりにconstを使うよう推奨されているのに、コンパイラのソースを見ると 大量にdefineが使われているのはなぜ???
775 名前:デフォルトの名無しさん mailto:sage [2007/09/24(月) 09:54:14 ] もともとCで書かれていたか、 実はCとしてコンパイルするようになっているか、 書いた人間がconst推奨を知らなかったか。
776 名前:デフォルトの名無しさん mailto:sage [2007/09/24(月) 12:36:23 ] Cと共用なんだろ。 何を悩む必要がある
777 名前:デフォルトの名無しさん mailto:sage [2007/09/24(月) 19:44:30 ] >>774 錯覚が目
778 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 00:10:08 ] >>774 システムのベンダとユーザは事情も、従うべきルールも違う。 システムヘッダの真似してアンダースコアで始まる名前を使うような人大杉。 引数に渡す定数を参照させるだけのために、 オブジェクトのリンクを強要するDLLなんかありえないし、 他の言語とリンクさせるときや、バイナリ互換性が問題なら、 定数の具体的な値をはっきり公開するしかない。 それに、Cでは配列サイズにconst整数を使えない。
779 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 01:31:32 ] constって言ったって、ヘッダで初期化子付きの定義を与えるんだから、 DLLなんて関係ないけど、ほかは合っているや。
780 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 03:04:35 ] >>constって言ったって、ヘッダで初期化子付きの定義を与えるんだから、 プレーンCモードでコンパイルされたときに実体が増殖し放題で リンクエラーになるからDLLベンダがそれをやったら配慮不足だ。 よく分かってないハード屋寄りのユーザとかが目を回すからな。 このスレ的にはC++コンパイラだとそれができるっていうのは大事だけどな。
781 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 10:10:17 ] ぷ
782 名前:デフォルトの名無しさん mailto:sage [2007/10/11(木) 01:31:51 ] const だと余計にメモリ消費するからヤなんじゃないの?
783 名前:デフォルトの名無しさん mailto:sage [2007/10/12(金) 23:21:57 ] staticにすらば、アドレス参照とかしなければ実体は取り除かれるんじゃないの? コンパイラの能力にによるだろうけど
784 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 01:50:27 ] >>783 C++ では const つけた名前空間スコープのオブジェクトはデフォルトで 内部リンケージになる。 static は要らない。
785 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 22:13:19 ] static const volatile unsigned long long int X; は意味無しか
786 名前:デフォルトの名無しさん [2007/11/01(木) 04:00:31 ] インテルコンパイラでループをSSEで計算させようとしているのですが、 コンパイル時に loop was not vectorized: dereference too complex というレポートを返してきます。 これは具体的にはどのような問題があるといっているのでしょうか?
787 名前:デフォルトの名無しさん [2007/11/01(木) 17:32:37 ] >>786 そのままじゃね? 逆参照が複雑過ぎてベクトル化出来なかったお 意味は、その箇所にSSE使えなかったと ポインタポインタポインタ使ったとか間接的なイテレータ使ったとか?コード見てないからなんとも言えないけど。インテルコンパイラ使ったことないし。
788 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 16:22:42 ] インテルコンパイラとgccだとやっぱり最適化はインテルの方が上?
789 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 18:18:26 ] 上。特に、オブジェクト間最適化は凄い。
790 名前:デフォルトの名無しさん [2008/02/24(日) 17:30:31 ] オブジェクト間最適化って何?
791 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 18:03:39 ] リンクの段階で最適化かけるんじゃないの
792 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 10:54:39 ] それならVC8も負けてないぜ。 リンク時間の長さがそれを証明してくれている。
793 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 11:48:43 ] pgi使え