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


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

C++上級者が集まるスレ



1 名前:デフォルトの名無しさん [04/09/14 07:16:41]
ここでは他のC++スレよりもより一層と高いレベルでの情報交換・体験談などを行うスレです。
我こそはC++プロフェッショナルだという方の書き込みをお待ちしております。


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&()もわけわからんかった。
凶悪。






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

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

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