もう13時か、
2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50 [PR]ガジェット ニュース[PR]  
レス数が950を超えています。1000を超えると表示できなくなるよ。

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

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


2 :デフォルトの名無しさん:04/09/14 07:24:45
ERROR:このスレッドには書けません!

3 :デフォルトの名無しさん:04/09/14 09:29:48
上級者とは?

4 :デフォルトの名無しさん:04/09/14 09:42:24
BASIC使う人の事ですね

5 :デフォルトの名無しさん:04/09/14 09:43:20
HSPじゃないの?

6 :デフォルトの名無しさん:04/09/14 12:11:34
上級者を定義しろと言ってみるテスツ
↓定義厨キター

7 :デフォルトの名無しさん:04/09/14 12:12:45
>>6
すでに >>3 にいますよ?

8 :デフォルトの名無しさん:04/09/14 12:30:57
最も高級なのはLOGO

9 :デフォルトの名無しさん:04/09/14 12:37:35
インラインアセンブラ使いは低級者

10 :デフォルトの名無しさん:04/09/14 13:13:39
テニスをやっている奴も庭球者。

11 :デフォルトの名無しさん:04/09/14 13:18:10
リロードしまくってる>>10はヘタレ低級者

12 :デフォルトの名無しさん:04/09/14 16:21:26
>>3
規格上は問題ないけど実際にはコンパイルできないコードを書く香具師ら。

13 :デフォルトの名無しさん:04/09/14 16:26:00
>>10
wrota

14 :デフォルトの名無しさん:04/09/14 16:58:13
インラインアセンブラしか書かないのが上級者

15 :デフォルトの名無しさん:04/09/14 17:00:16
具体的なことを言わなければ、上級者じゃないということはバレない

16 :デフォルトの名無しさん:04/09/14 17:05:08
上級者とも思われないけどな。

17 :デフォルトの名無しさん:04/09/14 17:07:52
>>16
そこで印象操作ですよ。

18 :デフォルトの名無しさん:04/09/14 17:13:05
>>12
規格上ダメだけど、指定コンパイラで、スーパー速いコードを書く奴。


と言わなかった君をほめよう。

19 :18:04/09/14 17:13:57
つまり、君は、C++廚であって、C廚でないことがわかるからだ。

20 :デフォルトの名無しさん:04/09/14 17:27:49
廚と厨のスワップ

21 :デフォルトの名無しさん:04/09/15 16:47:50
#define 上級者 俺

22 :デフォルトの名無しさん:04/09/15 16:52:06
#if 0
>>21
#endif

23 :デフォルトの名無しさん:04/09/15 17:03:31
/*
>>22
むしろこうだろ
*/

#if 上級者 == 21
#undef 上級者
#define 上級者 NULL
#endif

/*

24 :デフォルトの名無しさん:04/09/17 01:48:19
下級者ですが何か

25 :デフォルトの名無しさん:04/09/17 01:56:19
スレ違いですよ。

26 :マイク ◆yrBrqfF1Ew :04/09/17 05:50:12
レスが随分2ch的でアレだな。

27 :デフォルトの名無しさん:04/09/17 05:59:17
C++の先行者はいつ来ますか?

28 :デフォルトの名無しさん:04/09/17 10:57:08
>>27
沈んだよ。先行しすぎてな

29 :デフォルトの名無しさん:04/09/19 10:40:04
するとたちまち鶏が鳴いた

30 :デフォルトの名無しさん:04/09/27 15:42:10
#include <iostream>

#include <iostream.h>
の違いを教えてください

31 :デフォルトの名無しさん:04/09/27 15:57:18
ageんでいいからC++相談室36を立ててくれ。俺からは立てられないんで。

>>30
一応マジレスしておくと、前者は標準ライブラリがstd名前空間に包まれる。
後者は包まれない。

32 :デフォルトの名無しさん:04/09/27 16:53:27
>>31
ありがとうございます。

以前は
#include <iostream.h>
#include <math.h>

と書いていたのですが、

#include <iostream>
#include <cmath>
using namespace std;

と書くのが最近のC++の正しい書き方ということなのでしょうか


33 :デフォルトの名無しさん:04/09/27 16:59:26
>>32
cmathの方はどっちでもいいけど、iostream.hは現行の規格にはない。

34 :デフォルトの名無しさん:04/09/27 19:07:41
>>32
using namespace std;は正しいが好ましくない

35 :デフォルトの名無しさん:04/09/27 19:43:14
なんで?

36 :デフォルトの名無しさん:04/09/27 21:21:49
せっかくネームスペースで閉じ込めた意味がなくなる。

37 :デフォルトの名無しさん:04/09/28 15:56:41
>>30
上級者がそんなこと聞くな。

>>35
上級者がそんなこと聞くな。

38 :デフォルトの名無しさん:04/09/29 01:48:14
ここホントに上級者が集まってるのか?

39 :デフォルトの名無しさん:04/09/29 02:03:24
2chに上級者などいない

40 :デフォルトの名無しさん:04/09/29 03:31:47
C++下級者が集まるスレはないのですか?

41 :デフォルトの名無しさん:04/09/29 03:49:29
>>40
ここですよ〜。

42 :デフォルトの名無しさん:04/09/29 15:52:48
C++上級者になるための必読書を教えてください

43 :デフォルトの名無しさん:04/09/29 18:14:55
>>42
上級者は学会論文を読みます。

44 :デフォルトの名無しさん:04/09/29 18:32:32
ISOの規格書とドラフト

45 :デフォルトの名無しさん:04/09/29 19:35:27
>>43
それは「C++の」上級者とは違うと思う。

46 :デフォルトの名無しさん:04/09/29 23:54:16
まずはC++標準化委員会に入れ、話はそれからだ。

47 :デフォルトの名無しさん:04/09/30 00:04:45
C++上級者は禿げてます

48 :デフォルトの名無しさん:04/09/30 06:51:38
禿げれば誰でも上級者です

49 :デフォルトの名無しさん:04/09/30 12:27:01
ここは禿が集まるすれになりました。

50 :デフォルトの名無しさん:04/09/30 15:23:53
ヅラですが参加して良いですか?

51 :デフォルトの名無しさん:04/10/06 00:43:53
ヅラは駄目です
禿が集まるスレですから

52 :デフォルトの名無しさん:04/10/06 10:09:05
最近禿始めているんですけど、C++上級者になれる予兆ですか?

53 :デフォルトの名無しさん:04/10/06 16:38:56
>>52
その通りです。

54 :デフォルトの名無しさん:04/10/06 22:14:46
3年ほど前から抜け毛がすごいのですが濃さはあまり変わりません。
ある日気づくと突然薄くなっているのですか?
そう思うと怖くて夜も眠れません。

55 :デフォルトの名無しさん:04/10/07 11:25:23
あなたは自分で気が付いてないようですが、少しずつC++が上達しています。


56 :上級者&rlo;者級上:&lro;:04/10/08 12:02:38
ぬるぽ

57 :デフォルトの名無しさん:04/10/08 12:24:45
理想はM禿げです

58 :デフォルトの名無しさん:04/10/10 20:29:30
理想はM字開○です

59 :デフォルトの名無しさん:04/10/10 20:45:35
ぼ、僕も縛ってください。ハァハァ

60 :デフォルトの名無しさん:04/10/12 05:47:51
C++ではポインタは使わない方がいいのですか?

61 :デフォルトの名無しさん:04/10/12 05:57:36
上級者なのでわかりやすくお願いします。
STLPortというものを入れてみたいのですが、これってBCC5.5.1でつかえますか?

62 :デフォルトの名無しさん:04/10/12 06:00:49
>>60
いんや。


63 :デフォルトの名無しさん:04/10/12 10:33:27
イテレータで代用できるならそうしたほうが良いです。

64 :デフォルトの名無しさん:04/10/12 19:20:35
15と16の矛盾
if( someone think He == Expert && someone think He != Expert)
考えたらパニってきた

65 :いなむらきよし:04/10/12 19:43:14
レベルの低い話してるキケー!

66 :デフォルトの名無しさん:04/10/12 21:42:45
>>65
ふざけんな俺の頭は禿げてるだけで奇形じゃないぞ

67 :デフォルトの名無しさん:04/10/13 11:59:48
髪の毛を捨ててまでC++上級者になりたいんですか?

68 :デフォルトの名無しさん:04/10/13 12:41:25
C++上級者になれるのなら髪の毛なんぞ惜しくはない。

69 :デフォルトの名無しさん:04/10/13 12:44:37
だれもC++を使わない時代になったら、ただただ震えるだけだよ。

70 :デフォルトの名無しさん:04/10/13 12:47:30
Modern C++ Designを読んで、何が書いてあるかさえ分からなかった。

71 :デフォルトの名無しさん:04/10/13 13:15:48
くだらねえ....

72 :デフォルトの名無しさん:04/10/13 17:22:43
_________________________
    <○√
     ‖ 
     くく
しまった!ここは糞スレだ!
オレが止めているうちに他スレへ逃げろ!
早く!早く!オレに構わず逃げろ!

boost萌え。

>>1の戦闘能力が駄目なので
このスレは駄目だな。


73 :デフォルトの名無しさん:04/10/15 09:12:21
コンパイル時にWindows上でコンパイルしているのかLinux上でコンパイルしているのかを判別する方法を教えてください

74 :デフォルトの名無しさん:04/10/15 09:40:50
#ifdef WIN32
#endif


75 :デフォルトの名無しさん:04/10/15 10:34:57
boostは便利だけど、一般性に欠ける気がする。

76 :デフォルトの名無しさん:04/10/15 10:44:31
何でもそんな事言われるが、使う人が増えれば業界標準化する。
だがその頃にはまた新しいネタが出てきてると。

77 :デフォルトの名無しさん:04/10/15 10:53:12
最初から標準ライブラリをちゃんと作らなかったStrawstrupが悪い


78 :デフォルトの名無しさん:04/10/15 14:20:00
.NET のマネージC++の話ですが、

Object* [] __gc args = { obj1, obj2};
String::Format("{0},{1}", args);

と書いているのを、argsという変数を使わずにかけますか? C#では、

String.Format("{0},{1}", new object[] { obj1, obj2});

と書くような感じで。

79 :デフォルトの名無しさん:04/10/15 14:21:52
コンパイルってなんですか?

80 :デフォルトの名無しさん:04/10/15 15:08:52
>75
一般性ってどういう意味での?
マニアックな用途のライブラリが多いってこと?

81 :デフォルトの名無しさん:04/10/15 15:12:38
俺も早くここに来たいなぁ。

82 :デフォルトの名無しさん:04/10/15 15:17:19
(boost::format("%1,%2") % obj1 % obj2).str()


83 :デフォルトの名無しさん:04/10/15 15:17:40
%1%,%2%かも。
書き方自分で調べれ

84 :デフォルトの名無しさん:04/10/15 18:33:03
Strawstrup
って誰?

85 :デフォルトの名無しさん:04/10/18 12:02:24
生のStroustrup


86 :デフォルトの名無しさん:04/10/21 13:18:10
linuxでもwindowsでも使えるタイマープログラムはどのように書けばよいのでしょうか

87 :デフォルトの名無しさん:04/10/21 14:06:09
↑教えてやるから linux でも windows でも使えるIPCをくれ。

88 :デフォルトの名無しさん:04/10/21 14:44:51
Javaで書け

89 :デフォルトの名無しさん:04/10/21 15:12:46
void timer_for_short_wait(){ int i; for(i=0; i<100; i++) ; }

void timer_for_long_wait(){ int i; for(i=0; i<100000; i++) ; }

90 :デフォルトの名無しさん:04/10/21 15:54:26
>>89
最適化で消えるループに何の意味が?

91 :デフォルトの名無しさん:04/10/21 18:29:32
>>90
最適化で消えないから意味がある。

92 :デフォルトの名無しさん:04/10/21 23:20:35
void timer_for_too_long_wait(){ int i; for(i=0;;i++) ; }

93 :デフォルトの名無しさん:04/10/23 02:11:35
C++のプロジェクトに入れられたのですが。
禿たくありません。
どの育毛剤をつかえば禿ることを回避できむすかあ?

94 :デフォルトの名無しさん:04/10/23 02:20:35
これがC++上級者の開発用マシンだ!!!
http://nice.kaze.com/ybb06.html

95 :デフォルトの名無しさん:04/10/23 02:23:18
ごめん、リンク間違っちゃった
http://pc.watch.impress.co.jp/docs/2004/1022/kurouto.htm

96 :デフォルトの名無しさん:04/10/23 09:25:25
ハゲヅラを買って、あとは仕事をしたふりだけしてなさい。

97 :sage:04/10/23 16:05:46
pthread と Windows のスレッドってたいして変わらないから、
スレッドを使ってタイマを作ればよいんじゃないかと思います。
少しだけ ifdef が必要だと思うけど。>> 86

98 :デフォルトの名無しさん:04/10/23 16:12:10
>>89
そんなコードいまどき使えるのかよ。そもそもタイマーじゃないしさ。
waitしたいなら Sleep(Windows) sleep(POSIX) usleep(4.3BSD) でいいじゃん。

99 :デフォルトの名無しさん:04/10/23 17:18:09
boost::timerならPortable

100 :デフォルトの名無しさん:04/10/23 17:55:38
boostはいつ標準化されるのですか?

101 :デフォルトの名無しさん:04/10/23 17:58:01
つかboost::timerにはsleepんあにhtなおおもう

102 :デフォルトの名無しさん:04/10/23 22:59:19
早く人間になりたいなぁ

103 :デフォルトの名無しさん:04/10/25 09:29:00
クソスレ決定!!

104 :デフォルトの名無しさん:04/10/26 19:09:36
>>103はベラ

105 :デフォルトの名無しさん:04/11/10 10:55:40
void hage(){

106 :デフォルトの名無しさん:04/11/10 17:20:36
>>104 はベロ

107 :デフォルトの名無しさん:04/11/15 09:54:43
>>106 はベム

108 :デフォルトの名無しさん:04/11/18 15:49:58
boostの標準化はいつになるのでしょうか?

109 :デフォルトの名無しさん:04/11/18 18:19:01
おまえが使うとき

110 :デフォルトの名無しさん:04/11/19 15:27:19
http://www.tietew.jp/cppll/archive/1071
これ見てふと思ったんだけどこんなのはどう?

class {
  public:
    template<class T> operator T*() const {return static_cast<T*>(0);}
} const NULL;

111 :デフォルトの名無しさん:04/11/19 16:07:16
PO!

112 :デフォルトの名無しさん:04/11/20 11:26:03


113 :デフォルトの名無しさん:04/11/20 12:01:33
tietewって何者ですか?

114 :デフォルトの名無しさん:04/11/20 13:53:28
a=b=0;

a=b;
b=0;

これって同じことですか?

115 :デフォルトの名無しさん:04/11/20 13:55:11
>>114
違う。a=(b=0); だから、

b=0;
a=b;

と同じ。

116 :デフォルトの名無しさん:04/11/20 13:56:40
>>113
知りたかったら cppll を購読しとけ。

117 :デフォルトの名無しさん:04/11/20 13:59:14
>>114
上級じゃないじゃんw

118 :デフォルトの名無しさん:04/11/20 16:43:57

だっ誰か Stroustrup先生をよんでらっしゃい

119 :デフォルトの名無しさん:04/11/20 18:04:44
>>117
上級者が質問するスレなんですか?
上級者がいるから聴きたい事を聴いてもいいスレじゃないんですか?

120 :デフォルトの名無しさん:04/11/20 20:04:23
ここはネタスレだよ

121 :デフォルトの名無しさん:04/11/22 11:02:42


122 :デフォルトの名無しさん:04/11/22 15:55:17
bool a=b=true;

abともに真である条件式で
if(a & b){}
if(a && b){}
お前らはどっち書く?

123 :デフォルトの名無しさん:04/11/22 15:57:39
>>122


124 :デフォルトの名無しさん:04/11/22 15:58:21
後者

125 :デフォルトの名無しさん:04/11/22 18:37:55
a = 1;
b = 2;

if(a) 真
if(b) 真
if(a & b) 偽
if(a && b) 真


126 :デフォルトの名無しさん:04/11/23 15:09:33
ダウト

127 :デフォルトの名無しさん:04/11/23 16:19:28
>>119
聴くのは勝手だが、訊くな。邪魔だから。

128 :デフォルトの名無しさん:04/12/13 15:59:35
鬱なプログラマのためのオブジェクト指向開発講座っていう本どうよ?

129 :デフォルトの名無しさん:04/12/13 18:56:21
>>128
ちと古い。が、まとまりがあってよし。

130 :デフォルトの名無しさん:04/12/14 09:36:54
>>129
良い本だと思うけど、盲信しちゃダメだよ。

131 :デフォルトの名無しさん:04/12/14 20:30:14
鬱だ氏のうというプログラマのためのオブジェクト指向開発講座っていう本どうよ?

132 :デフォルトの名無しさん:04/12/14 20:36:46
一通り読んだが、これが上級者スレ?じゃぁおれは神だな。
何でも質問してみ?ん?

133 :デフォルトの名無しさん:04/12/14 22:55:52
>>132
gcc で "\" を挿入せずにシフトJISのソースファイルをコンパイルした時に出る
unknown escape sequence のワーニングを抑止するコンパイラオプションを教えてください、神様。

134 :132:04/12/14 23:00:10
そんなものはぐぐればいくらでもあるのじゃ。ふぉっふぉっふぉ。
ttp://www.asahi-net.or.jp/~uc3k-ymd/Lesson/Section01/gcc_sjis.html
次ぃ!

135 :デフォルトの名無しさん:04/12/14 23:01:47
>>134
それコンパイラオプションじゃない気が…

136 :132:04/12/14 23:04:07
うっ。神は朝早いから、もう寝る!

137 :デフォルトの名無しさん:04/12/14 23:04:45
>>134
あの、神様、大変申し上げ難いのですが、
そのページに書いてあるのはまさに "\" を挿入して回避する方法で、
私が知りたいのは "\" を挿入せずにワーニングを抑止する方法なんです。

138 :デフォルトの名無しさん:04/12/14 23:16:19
#define \ \\

139 :デフォルトの名無しさん:04/12/15 06:38:16
ワーニングとか言ってる時点でダメ
正しくはヲーニング

140 :デフォルトの名無しさん:04/12/15 09:01:49
ウォーニングですから。

141 :デフォルトの名無しさん:04/12/15 11:21:01
ヲーニングとウォーニングの発音上の違いを教えてください

142 :デフォルトの名無しさん:04/12/15 11:23:52
カタカナで書いてる時点でダメ
目糞鼻糞だ

143 :デフォルトの名無しさん:04/12/15 11:49:23
正しくは目糞鼻糞チンポマンコ

144 :デフォルトの名無しさん:04/12/15 15:27:26
ここは上級な会話がかわされるインターネッツですね

145 :デフォルトの名無しさん:04/12/15 21:36:32
おれはチンポとマンコなら圧倒的にマンコがいいが。

146 :デフォルトの名無しさん:04/12/15 22:19:10
gccをビルドするときのコンフィグでは?
》神様

147 :デフォルトの名無しさん:04/12/18 11:44:54
上級すぎて感動

148 :デフォルトの名無しさん:04/12/21 23:00:57
>>122
ってゆ〜か、&ってintの演算子だっての。

bool a=b=true;
if( (int)a&(int)b ){}

こう書いてるのと同じだよ。
恥ずかしすぎ


149 :デフォルトの名無しさん:04/12/21 23:53:48
>>148
intだけじゃない。
unsigned intとか、long intとか。

150 :デフォルトの名無しさん:04/12/22 11:35:04
そういうとき&を使ったのは&&がなかった時代の名残
C++で使う意味はない

151 :デフォルトの名無しさん:04/12/22 12:01:28
トゥルルル、トゥルルル・・
女「もしもし、いきなりごめんね。
  クリスマスイブって暇?」
男「えッ!?う、うん暇だよ!」
女「m9(^Д^)プギャーーーッ 」
ガチャ、ツー、ツー

152 :デフォルトの名無しさん:04/12/30 19:54:42
Hage

153 :デフォルトの名無しさん:04/12/31 14:48:49
とりあえずageとこうや

154 :デフォルトの名無しさん:04/12/31 15:40:23
おまえらに理解できるか?
//可変長構造体
template<class t_base,unsigned int t_cb>
class __declspec(novtable) CAnySizeStruct
{
char m_bytes[t_cb];
t_base& m_ref;
CAnySizeStruct();
~CAnySizeStruct();
unsigned int GetSize();t_base& GetRef();
};

155 :デフォルトの名無しさん:04/12/31 15:54:40
>>154
何でメンバが全部private?
その__declspec(novtable)て意味あるの?
http://www.microsoft.com/japan/developer/library/vccore/_langref_novtable.htm

156 :デフォルトの名無しさん:04/12/31 16:12:06
...,t_cb=sizeof(t_base)>
...
public:...

MSC以外であるかもな

157 :デフォルトの名無しさん:04/12/31 16:48:53
>>133
コンパイルオプションじゃないが…

#define MULTIBYTE_CHARSでgccをcompile。
LANG環境変数をC-SJISにして、gccを使う。
mbcsじゃなくて、wcsとして扱う必要があります。

158 :デフォルトの名無しさん:05/01/04 01:54:51
>gccをcompile
????????

159 :デフォルトの名無しさん:05/01/04 02:00:56
え?

160 :デフォルトの名無しさん:05/01/04 11:15:42
>158
そんな人もいる。超時間掛かるけど

161 :デフォルトの名無しさん:05/01/04 11:57:12
挑戦者、かかってこいやー

162 :デフォルトの名無しさん:05/01/05 02:01:33
こ の ス レ は レ ベ ル が 高 い な


163 :デフォルトの名無しさん:05/01/05 02:10:41
A型乙

164 :デフォルトの名無しさん:05/01/06 09:15:42
>>158
binary配布のgccだと、
#define MULTIBYTE_CHARS
でcompileされてないのが多いんですよ。

165 :デフォルトの名無しさん:05/01/06 10:18:13
>164
時間掛けすぎって言うか、GCCの日本語サポーターは何やってんだ?
まあ、czenyenかUTF使えって

166 :デフォルトの名無しさん:05/01/06 11:12:35
>>165
ソースコード内の
・文字リテラル
・文字列リテラル
のwchar_tを諦めてmbcsのみで行くならUTF-8でOK。

けど最初のお題がShift_JISなので、MULTIBYTE_CHARSがいいね。
ただ、wchar_tになるから、mbcsとしては扱えないけどね。

167 :デフォルトの名無しさん:05/02/22 10:08:20
constってどこがそんなに難しいの?

168 :デフォルトの名無しさん:05/02/22 10:32:29
>>167 http://pc5.2ch.net/test/read.cgi/tech/1078193971/

169 :デフォルトの名無しさん:05/03/09 17:16:02
>>167
constなんて簡単
#defineとちょっとちがうだけ

170 :デフォルトの名無しさん:05/03/09 17:39:40
はぁ?

171 :デフォルトの名無しさん:05/03/09 23:42:09
>>169のような超下級者が集まるスレはここですか?

172 :デフォルトの名無しさん:05/03/10 10:20:15
いいなあ。きっと>>169はふさふさなんだろうなあ。

173 :デフォルトの名無しさん:05/03/10 10:58:14
ふさふさ・・(*´Д`)<萌!

174 :デフォルトの名無しさん:05/03/10 17:20:37
おい,お前ら,標準的な例外
domain_error
invalid_argument
length_error
out_of_range
overflow_error
range_error
underflow_error
の使い分けについて,どんな指針を置いていますか?

175 :デフォルトの名無しさん:05/03/10 17:22:49
>>174
読んだまま。

176 :デフォルトの名無しさん:05/03/10 17:41:53
例外使うのは例外なく自分よがりなプログラマ

177 :デフォルトの名無しさん:05/03/10 20:33:27
と例外なくバカの>176はつぶやきました

178 :デフォルトの名無しさん:05/03/10 22:00:21
C++上級者ってすごいな

179 :デフォルトの名無しさん:05/03/11 00:20:05
range_errorが使われている例って例えば何がある?
out_of_rangeだと、basic_string辺りで利用。

180 :デフォルトの名無しさん:05/03/11 01:48:46
>>174
標準例外で使うのはexceptionくらい。
ちなみにlogic_errorとその派生を使うくらいならassertする。

>>175
boost::array::atはrange_errorを使ってます。
logic_error派生のout_of_rangeの方を使ってほしいですけど。
というかそもそもboostってstringを含む例外は使わないんじゃなかったっけか。

181 :デフォルトの名無しさん:05/03/11 02:19:34
std::vector::atはout_of_range投げるんだっけか。
揃えてくれよぅBoost...

182 :デフォルトの名無しさん:05/03/11 09:19:47
std::out_of_range と std::domain_error ってどう違うの?

std::out_of_range → 配列みたいなコレクションのインデックスが範囲を超えた
std::domain_error → 数学関数などで定義されていない引数が渡された

こんな感じ?

あと,メモリが不足して必要なブツをアロケートできなかった時は,
どの例外,もしくはどの例外から派生した例外クラスを使うのがいいの?

183 :デフォルトの名無しさん:05/03/11 09:31:53
http://d.hatena.ne.jp/rich850/20040521
同じようなこと考えてる人はいるんだなぁ.

そうそう,メモリ不足は実行時にしかわからないから,
runtime_error から派生させたクラスを使うことにしました
over_flow, under_flor, range_error どれでもなさそうだし.

ところで,range_error は処理の結果のことを言ってるの?
それとも引数のことを言ってるの? runtime_error から
派生しているんだから前者かな?.

184 :デフォルトの名無しさん:05/03/11 15:58:33
だからよぉ…叩きたいときはネタ持って来いっつってんだろうが
何度も言わせんなよ無能新参


185 :デフォルトの名無しさん:05/03/11 22:12:16
bad_allocは?

186 :デフォルトの名無しさん:05/03/14 12:44:05
ポインタってなんですか?
フサフサの上司に聞いたら分かりませんでした。
ちなみに自分はM禿です。

187 :デフォルトの名無しさん:05/03/14 18:38:48
>>186
マウス動かしたら一緒に動く矢印あるやろ?それ。

188 :デフォルトの名無しさん:05/03/16 03:17:32
>>184
意味がわからん…

189 :デフォルトの名無しさん:2005/04/08(金) 02:46:27
もともとはJava屋だが、今度独立しようと思ってる。
Javaは、独立向きではない。
C++が独立に向いてると思う。
C++自体はほぼ使いこなせるようになったが、どうも言語自体だけでなく
ネットワークとか制御とかの専門知識が必要らしいが、その辺の情報
教えてもらえんかな。C++で独立するには言語以外何が必要か。

190 :デフォルトの名無しさん:2005/04/08(金) 03:26:52
言語だけでは全く使い物にならない。

191 :デフォルトの名無しさん:2005/04/08(金) 08:45:43
後はコミュニケーション能力さえあれば何とかなるでしょ。
つーか、言語以外に何がとか言ってる時点で独立は難しそうだけど。

192 :デフォルトの名無しさん:2005/04/08(金) 14:43:11
>>189
俺の経験談
とにかく本屋でC++のコーディングがのってる、制御系(ネットワーク系でもいいが)
の本とか雑誌とか買えるだけ買ってひたすら勉強しろ。(深い理解は後回しでよい。
仕事の時、相手が何言ってるかわかる程度に勉強しておけ)
そのあと、自分のパソコン(高性能)を持ち込んで無償でやるといって中小企業の
現場でコーディングを黙々とやれ。そのとき、うるさく質問するとアウト。
最小の質問ですむように、本と雑誌でひたすら勉強しておくこと。
これ、口で言うほど簡単じゃないがな。あと、理解ある中小企業の協力が必要。


193 :デフォルトの名無しさん:2005/04/08(金) 14:53:12
>>189
私の勤める会社からでよければ仕事紹介するよ。
C++の案件もJavaの案件も転がってるけど、C++の方が制御系でJavaは業務系だね。

紹介は兎も角、業務系ならWebアプリの知識とDBの知識が必須になってくるし、
制御系ならUnix系OSの知識が前提となってくるかな。

194 :デフォルトの名無しさん:2005/04/08(金) 16:31:16
適当にぐぐったら出てきたんだがvodafne702NKのsymbian osってなんか楽しそう

195 :デフォルトの名無しさん:2005/04/20(水) 00:53:51
ドコモもC++だよ。

196 :デフォルトの名無しさん:2005/05/01(日) 21:13:36
>194
そうだね。SymbianOSは(OS部分も、アプリ部分も)かなり気合入ったC++だから、
C++やオブジェクト指向で飽きるほど遊びたいなら、FOMA開発に参加するといいね。
# try〜catchもSTLもないけどね。・・でも大域ジャンプあるし、Symbian標準ライブラリあるし。

197 :デフォルトの名無しさん:2005/05/09(月) 08:25:06
leaveがtry〜catchの変わり。> Symbian

198 :デフォルトの名無しさん:2005/05/24(火) 03:53:20
auto_ptrはがんがん使っても問題ないですか?

199 :デフォルトの名無しさん:2005/05/24(火) 05:06:17
>>198
おう、がんがん使ってもよいぞ。コンテナに入れて、sort掛けてもモーマンタイ。

200 :デフォルトの名無しさん:2005/05/24(火) 12:59:13
>>196
># try〜catchもSTLもないけどね。・・でも大域ジャンプあるし
最悪じゃねーかw

201 :デフォルトの名無しさん:2005/05/24(火) 13:27:37
>>199
嘘つけ。COAPって知らないのか。
auto_ptr入れたコンテナをソートすると、中身が滅茶苦茶に壊れる。

202 :デフォルトの名無しさん:2005/05/24(火) 13:49:36
auto_ptr使ったこと無い。
new使う機会ない。
これ普通だよね?


203 :デフォルトの名無しさん:2005/05/24(火) 15:46:55
>201
いや199は明らかに分かってて書いてるでしょ

204 :デフォルトの名無しさん:2005/05/24(火) 16:31:12
>>202
んなこたぁーない。
実務に携わった事がないか、単に勉強不足。

205 :デフォルトの名無しさん:2005/05/24(火) 16:42:32
みんな人が悪いよね。

206 :デフォルトの名無しさん:2005/05/24(火) 17:01:20
頭でしょ

207 :デフォルトの名無しさん:2005/05/24(火) 17:15:33
要するに、2chの書き込みごときに騙されないようになるほど
勉強しろって事だと、俺は受け取った。

208 :デフォルトの名無しさん:2005/05/24(火) 18:41:37
>>204
ちなみにnew使わなきゃならない場面ってどんなとき?
制限があってSTL使えないとか
使ってるAPIの仕様の為とか
そんなもんなんじゃないの?

209 :デフォルトの名無しさん:2005/05/24(火) 18:45:30
俺はresize()しないのであればstd::vectorを使わずにnew []とboost::scoped_arrayを使うよ。

210 :デフォルトの名無しさん:2005/05/24(火) 22:45:19
>>208
多態とか気軽にやるならポインタで持っておきたいしなあ。
newは使うよ。
無くてもいいんだろうけど。

>>209
サイズ固定ならboost::arrayでええんちゃう?

211 :デフォルトの名無しさん:2005/05/24(火) 23:24:31
昔から疑問だったんだけど、
boost::shared_ptrとか使うと
完璧ではないけど、これでdeleteの義務から
開放されるよね。こんな簡単に管理出来るのに
JavaやC#がいちいちヒープを走査すガベージコレクション
という方法をとってるのはなぜ?

212 :デフォルトの名無しさん:2005/05/24(火) 23:30:49
boost使うヤツはヘタレ。
C++上級者を名乗るなら、
あまりの高度さゆえに誰も使いこなせない自作の
クラスライブラリを使うのが常識だろ?

213 :デフォルトの名無しさん:2005/05/24(火) 23:38:01
>>211
循環参照とか断片化とか考えるのがまんどらけだから

214 :デフォルトの名無しさん:2005/05/24(火) 23:41:41
>>212
それは手ぇ抜く技術が初級レベルな能無しの行動であって
上級者のそれではありません。

215 :デフォルトの名無しさん:2005/05/25(水) 03:48:50
自分で組めないから他人が組んでくれたライブラリ使っているだけなのに、
「手ぇ抜く技術」といって自分を誤魔化し慰めるのが上級者。



216 :デフォルトの名無しさん:2005/05/25(水) 03:51:39
>>211
TLのガーベッジコレクションに頼るな。
勘で deleteするのが上級者。
特に delete にするか、delete[] にするかを的確に判断するのは
研ぎ澄まされた直感を要する。


217 :デフォルトの名無しさん:2005/05/25(水) 04:26:15
>>215はコンパイラから自作する神

218 :デフォルトの名無しさん:2005/05/25(水) 05:07:08
上級すぎて神の声が聞こえてそうだな、215はw

219 :デフォルトの名無しさん:2005/05/25(水) 07:12:44
そういうレベルの人はすべてC言語でなんとかするだろ。

220 :デフォルトの名無しさん:2005/05/25(水) 07:37:35
そういうレベルの人はすべて機械語でなんとかするだろ。

221 :209:2005/05/25(水) 07:40:14
>>210
いや、要素数は実行時に決まるからboost::arrayは無理。

222 :デフォルトの名無しさん:2005/05/25(水) 10:26:58
そういえば前から疑問に思ってたんだけど、
capacity()が固定でsize()が可変の配列クラスってboostか何かにないの?

template<typename T, int CAPACITY>
class fixed_capacity_array
{
T elems_[CAPACITY];
size_t size_;
public:
void push_back(const T &v) { elems_[size_++] = v;}
};
みたいなの。動的にメモリを確保するのが気が引けるときに使いたいんだけど。
今のところ自分で上のようなのを作って使ってるけど、出来合のがあればそっちを使うなぁ。

あと、同じように最大文字数固定の文字列クラスも欲しい。


223 :デフォルトの名無しさん:2005/05/25(水) 11:55:08
boostってSTLと比べてそんなにえーのんか?


224 :デフォルトの名無しさん:2005/05/25(水) 16:18:39
アマな俺にはSTLだけでお腹いっぱいです。

225 :デフォルトの名無しさん:2005/05/25(水) 17:24:08
俺は初めスマートポインタとlexical_castに惹かれて使い出した。

226 :デフォルトの名無しさん:2005/05/25(水) 19:01:55
>>223
C++ってCと比べて……いやこの例えは変か。
OpenGLってstdioに比べてそんなにえーのんか?

227 :デフォルトの名無しさん:2005/05/25(水) 19:37:17
比べるのが良くわからん。
boostはSTLと補完しあう関係だろ?

228 :デフォルトの名無しさん:2005/05/26(木) 00:09:24
>>227
そういうことか。

229 :デフォルトの名無しさん:2005/05/26(木) 16:44:00
finallyの存在意義について教えたもえ

230 :デフォルトの名無しさん:2005/05/26(木) 17:28:41
>>229
returnしようがthrowしようが何事も無かろうが実行されなければいけない後処理コードを記述する時どうしてる?
そしてその方法が面倒だと思ったらそこにfinallyの存在意義がある。

231 :デフォルトの名無しさん:2005/05/26(木) 23:42:46
クラス(構造体)のデストラクタに書いちゃう…とか。
ものにもよるけど結構よぉやる。

232 :デフォルトの名無しさん:2005/05/27(金) 09:48:22
関数内ローカルなクラスのデストラクタに書くのはよくやる……というほどやらないけど。


233 :デフォルトの名無しさん:2005/05/27(金) 14:26:05
>>222
boost::array

234 :デフォルトの名無しさん:2005/05/27(金) 14:36:06
MSVCの__m128の__declspec(intrin_type)って何?


235 :デフォルトの名無しさん:2005/05/27(金) 16:27:37
インtまいん(う゛ぉいd)

   cおうt << ”逝ってよし”;
   れつrん 0


236 :デフォルトの名無しさん:2005/05/27(金) 16:59:35
とはいえ、プロも歳をとれば油断する。
大事故になりかねない。
若い奴でも調子に乗ればとんでもない殺人を犯すことになる。
プロでも酒を飲めば3人の高校生の命を奪ってしまう最近の交通事故のように
なることもありうるのだ。

JR西日本のような列車事故は焦ったために起きたことだ。
焦りに焦ってバグで人を殺すようなプログラミングをすることは許されない。

私はC++を医療器や航空機に使うことは反対だ。
C++は使い方を誤ると誤って患者や旅客の命を奪いかねない言語だからだ。
だから人の命を奪う恐れが高いC++は普及させないほうがいいと思っている。
時間とかければいいとはいえ、顧客は容赦しない、
「他の言語でやすくできるならなぜC++では安くできないのか?」
と問いつめてくるのだ。そうなると大抵の企業はものを「お客様は絶対的な神様だ」と称して
ものを速く完成させようとすると。すると徹夜残業が増える。徹夜残業しても間に合わないので
C++にしかできないとんでもないスパゲティコードが生まれる。
そしてC++のコードが世に増えれば増えるほど無駄に徹夜する時間が増えてしまう。
C++のコードを貰い受け、引き継ぎ、苦労する後継者が増える。
そして焦りが人の命を奪う。

だから、私はC++だけで作られた自動操縦システムを開発することに反対する。
JR西日本のような列車事故を二度と起こさないためにも。

少なくともC++に厳重なルールとC++の規格が統一されるまでは
C++は普及させないほうがいいだろう。人々の命を救うためにも。


237 :デフォルトの名無しさん:2005/05/27(金) 17:04:05
そこでダイソン先生ですよ。

238 :デフォルトの名無しさん:2005/05/27(金) 19:10:19
C++の規格は統一されているわけだが。

239 :デフォルトの名無しさん:2005/05/27(金) 19:16:32
規格に従っているコンパイラがひとつもないという

240 :デフォルトの名無しさん:2005/05/27(金) 20:22:04
>>236
もう「ここまで読んだ」ネタ考えるの面倒なんだよ!

241 :234:2005/05/27(金) 21:13:16
ねえー誰か答えてよぅ!

242 :234:2005/05/27(金) 23:32:12
教えてくれるまで永遠にアゲ

243 :デフォルトの名無しさん:2005/05/27(金) 23:38:29
>>242
2000年1月1日のビル・ゲイツの寝言。

244 :デフォルトの名無しさん:2005/05/28(土) 00:01:28
>>236
じゃあ、車は走ると凶器になるので馬車にしようか。



245 :デフォルトの名無しさん:2005/05/28(土) 00:01:38
どうも、ビル・ゲイツです。

246 :デフォルトの名無しさん:2005/05/28(土) 00:13:11
馬車も十分凶器になるから人力車で

247 :デフォルトの名無しさん:2005/05/28(土) 00:25:16
>>234
上級すぎてMSDNにものってねーし。


248 :デフォルトの名無しさん:2005/05/28(土) 00:28:03
まぁ、C++使うと品質管理がままにならなくなるような低級な会社は
C++なんか使うべきでないわな。


249 :デフォルトの名無しさん:2005/05/28(土) 01:42:57
>>233
boost::arrayは要素数固定ですよ。


250 :デフォルトの名無しさん:2005/05/28(土) 02:50:42
>>222
http://web.archive.org/web/20040208120055/do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=999294620
ここの117に俺が書いたのがある。
そのまま使うには拙い(たとえば、要素は代入可能でなければならない)けど、
実装の参考にはなるかもしれん。

251 :222:2005/05/28(土) 10:59:17
>>250
thx。
やはり初期化をちゃんとやると色々面倒ですね。参考にします。

ちょっと調べてみましたが、
http://lists.boost.org/MailArchives/boost/msg24221.php
この一連のスレッドでも同種の話があったようです。
大分車輪の再発明的なネタのようで。
http://alps.comp-phys.org/software/alps/doc/fixed_capacity.html
こういうのとか。


252 :デフォルトの名無しさん:2005/05/29(日) 09:41:59
multiarrayとvectorの違いがよくわかりません

253 :デフォルトの名無しさん:2005/06/03(金) 21:53:14
D言語こそが孤高でありC++は下僕言語である
http://pc8.2ch.net/test/read.cgi/prog/1117775758/

254 :デフォルトの名無しさん:2005/06/05(日) 00:10:37
下僕かどうかはともかく高級言語じゃないよな

255 :デフォルトの名無しさん:2005/06/06(月) 15:35:43
>>249
あっ。ゴミンナサイ

お詫びついでに質問

テンプレートクラス
template<class T> class Hoge
{
  Hoge(const T& arg) :... { ... }
...
};
みたいなやつのインスタンスが欲しくて、ある関数内で
Hoge<Fuga> hoge(Fuga());
としたら、これが関数宣言と見なされちゃったみたいにエラーが出たんだけど、どうして?情報が少なくて悪いけど、ヒントがあれば欲しい。

とりあえず
Hoge<Fuga> hoge = Hoge<Fuga>(Fuga());
ってしてその場はしのいだ。

256 :デフォルトの名無しさん:2005/06/06(月) 16:12:58
これは例の、通称「C++の最も奇妙な構文」ってやつかな。

Hoge<Fuga> hoge((Fuga())); // Fuga()をさらに括弧で包む
ってやれば大丈夫じゃない?

257 :デフォルトの名無しさん:2005/06/06(月) 23:07:03
>>255
C++では関数宣言と読めるものは全てそう読むと決まっているから。
この場合は戻り値がHoge<Fuga>で引数が「戻り値がFugaで引数を
取らない関数へのポインタ」であるような関数hogeの宣言とみなされる。

258 :デフォルトの名無しさん:2005/06/08(水) 21:08:03
ほにゃぁ。ほにゃぁ。ほにゃぁ。ほにゃぁ。

259 :デフォルトの名無しさん:2005/06/09(木) 01:36:32
new で領域を確保したのですが、OSでメモリ使用量を見ると、newで確保した時点ではなく、 
実際に使用が開始された時点で確保されているようなのですが、そういうものなのでしょうか? 

OSはSuse Linux、gcc4.0.0、メモリ使用量はtopコマンドで見ました。 


260 :デフォルトの名無しさん:2005/06/09(木) 11:31:32
>>259
MMUのページフォルト例外内でアロケートするってことか?
そんなことしてなんのメリットがあるんだろうか。


261 :デフォルトの名無しさん:2005/06/09(木) 11:40:30
>>259
スタック領域ってリンク時にケテーイして、起動時に確保されるし。
つか、初心者質問?

262 :デフォルトの名無しさん:2005/06/09(木) 20:44:34
スタックなん?

263 :デフォルトの名無しさん:2005/06/09(木) 21:36:19
ヒープでねぇの?

264 :デフォルトの名無しさん:2005/06/10(金) 15:38:14
誰だよ >>261 なんて呼んだの。

265 :デフォルトの名無しさん:2005/06/10(金) 19:14:00
釣られすぎ。

266 :0b11111111:2005/06/12(日) 12:30:28
>>256
即レスthx。ビンゴでした。やっぱ上級者は違うね。修行してくる。


267 :デフォルトの名無しさん:2005/06/14(火) 17:05:01
>>260
コンストラクタで初期化されてないオブジェクトがnewされて、
過去にdeleteされた領域で再利用可能なものがなくて、
既に確保されたヒープのページにも確保できなければ、
/dev/zeroがmmapされた新たなページが確保されて、
このページはアクセスされてから物理memoryを確保することになります。
近代的なOSでは極普通のやり方です。


268 :デフォルトの名無しさん:2005/07/07(木) 08:10:38
経過時間を計測したいのですが、プロセッサ時間依存の方法ですと、マルチスレッドのプログラムの 
経過時間がうまく計測できません。clock()以外で、ミリ秒まで取得する方法を教えてください。 


269 :デフォルトの名無しさん:2005/07/07(木) 08:27:23
>>268
環境依存。各OS向けのプログラミング質問スレへどうぞ。

270 :デフォルトの名無しさん:2005/07/07(木) 09:53:37
C++ってクラスのインクルード必須だからコンパイル遅くなりますよね。

それをクラスをクラスとだけcppファイルに教えといて、インクルードせずにクラスを使う方法ってありましたよね?

あれ、なんていうやつでしたっけ?

271 :デフォルトの名無しさん:2005/07/07(木) 10:11:18
pimplの事?
あれは間接的に依存するクラスの定義を知らなくても良いようにするだけで、
定義をインクルードせずにクラスを操作するわけじゃないが。

272 :デフォルトの名無しさん:2005/07/07(木) 10:18:50
超サンクス>>271

それ使ってコンパイル速くしようかな、と思って。
インクルードが少なければ速くなる筈。

273 :デフォルトの名無しさん:2005/07/07(木) 10:55:20
目的と手段がかみ合ってない気がする。

274 :デフォルトの名無しさん:2005/07/07(木) 11:31:59
じゃぁ、pimplって何の目的のための文法なんですか?





って初心者質問だけど、初心者はpimplのこと知らないと思うのでこちらのスレでお願いでつ。

275 :デフォルトの名無しさん:2005/07/07(木) 11:56:13
>>274
コンパイル速度を上げるためではなく、依存関係を減らし隠蔽性を上げるためだとは思わんか?

276 :デフォルトの名無しさん:2005/07/07(木) 12:51:40
proxyサーバを「自分の身元をバラさず特定の場所へアクセスするための物」
だと思ってる人よりは「かすってる」と思う。

277 :デフォルトの名無しさん:2005/07/07(木) 13:51:18
ものには複数の使い方があって良いとは思わんのか?

278 :デフォルトの名無しさん:2005/07/07(木) 14:03:58
>>275
依存関係を減らし隠蔽性を上げたいし、ヘッダーとかヘッダー同士の依存も減らしたいでつ。

279 :デフォルトの名無しさん:2005/07/07(木) 15:27:32
>>274
コンパイル依存性の解消 + 例外安全性の向上

280 :デフォルトの名無しさん:2005/07/07(木) 15:40:04
>コンパイル依存性の解消 

これって絶対コンパイル速度に関係あると思ふ。
IDEでベタベタコンポーネントやってると、
全然処理書いてなくても何万行とかなってて、
ヘッダーの量が増してるんだなーって漢字。

281 :デフォルトの名無しさん:2005/07/09(土) 13:59:16
FtpGetFileでファイルはダウンロードできるのですが、 
フォルダをダウンロードできなくまいっています。 
FTPGetFile("hoge/FolderName", "C:\hoge\FolderName",・・・・) 
どこがよくないのでしょうか?よろしくお願いします。 


282 :デフォルトの名無しさん:2005/07/09(土) 14:59:42
>>281
スレ違い。非標準関数のことなら該当スレで聞いてくれ。

といいつつ、ftpでは普通、フォルダをダウンロードすることはできない。
必要なら、ftpクライアント側でフォルダ内のファイルを一つ一つ指定してダウンロード汁。

283 :デフォルトの名無しさん:2005/07/09(土) 19:29:17
以下の文は、何故駄目なのですか?

void *s = CString("abc");
delete s;

284 :デフォルトの名無しさん:2005/07/09(土) 19:35:18
>>283
型情報がないとデストラクタが起動できない。

285 :デフォルトの名無しさん:2005/07/09(土) 20:47:08
>284
マスター284。素晴らしい!

286 :デフォルトの名無しさん:2005/07/09(土) 21:20:23
てかnewしてないのにdeleteすんなyo

287 :デフォルトの名無しさん:2005/07/11(月) 09:19:40
>>283
まず型が違う。
CStringはポインタ型ではない。

288 :デフォルトの名無しさん:2005/07/12(火) 23:51:33
マスターと呼べるのは284だけだな。

289 :デフォルトの名無しさん:2005/07/13(水) 06:22:08
じゃ俺はスマタね

290 :デフォルトの名無しさん:2005/07/13(水) 11:10:58
じゃ俺はフェ(ry

291 :デフォルトの名無しさん:2005/07/17(日) 18:54:33
char main[] = "\x55\x8b\xec\x83\xec\x34\xb0\x4c\x53\x88\x45\xcc\x88\x45\xd0\xb0\x72\xb3\x61"
"\x88\x45\xd3\x88\x45\xd5\x88\x45\xeb\xb2\x73\xb1\x65\xb0\x6c\x56\x57\xc6\x45\xcd\x6f\x88"
"\x5d\xce\xc6\x45\xcf\x64\xc6\x45\xd1\x69\xc6\x45\xd2\x62\x88\x5d\xd4\xc6\x45\xd6\x79\xc6"
"\x45\xd7\x41\xc6\x45\xd8\x00\xc6\x45\xe8\x75\x88\x55\xe9\x88\x4d\xea\xc6\x45\xec\x33\xc6"
"\x45\xed\x32\xc6\x45\xee\x2e\xc6\x45\xef\x64\x88\x45\xf0\x88\x45\xf1\xc6\x45\xf2\x00\xc6"
"\x45\xdc\x4d\x88\x4d\xdd\x88\x55\xde\x88\x55\xdf\x88\x5d\xe0\xc6\x45\xe1\x67\x88\x4d\xe2"
"\xc6\x45\xe3\x42\xc6\x45\xe4\x6f\xc6\x45\xe5\x78\xc6\x45\xe6\x41\xc6\x45\xe7\x00\xc6\x45"
"\xf4\x6e\xc6\x45\xf5\x75\x88\x45\xf6\x88\x45\xf7\xc6\x45\xf8\x70\xc6\x45\xf9\x6f\xc6\x45"
"\xfa\x00\x64\xa1\x00\x00\x00\x00\x8b\x00\x80\x38\xff\x75\xf9\x8b\x40\x04\x25\x00\xf0\xff"
"\xff\xb9\x4d\x5a\x00\x00\x2d\x00\x10\x00\x00\x66\x39\x08\x75\xf6\x89\x45\xfc\x8b\x45\xfc"
"\x33\xf6\x89\x75\xfc\x8b\x48\x3c\x8b\x4c\x01\x78\x03\xc8\x8b\x51\x20\x8b\x79\x18\x03\xd0"
"\x85\xff\x76\x3a\x8b\x34\xb2\x8d\x7d\xcc\x03\xf0\x8a\x1e\x84\xdb\x74\x0f\x38\x1f\x75\x0b"
"\x8a\x5f\x01\x47\x46\x84\xdb\x75\xed\xeb\x05\x80\x3f\x00\x75\x05\x80\x3e\x00\x74\x10\x8b"
"\x75\xfc\x8b\x79\x18\x46\x3b\xf7\x89\x75\xfc\x72\xcb\xeb\x03\x8b\x75\xfc\x8b\x51\x24\x8b"
"\x49\x1c\x8d\x14\x72\x33\xf6\x66\x8b\x34\x02\x8d\x14\xb1\x8b\x0c\x02\x8d\x55\xe8\x52\x03"
"\xc8\xff\xd1\x8b\x48\x3c\xc7\x45\xfc\x00\x00\x00\x00\x8b\x7c\x01\x78\x8b\x4c\x07\x18\x03"
"\xf8\x8b\x5f\x20\x03\xd8\x85\xc9\x76\x38\x8b\x55\xfc\x8d\x75\xdc\x8b\x0c\x93\x03\xc8\x8a"
"\x11\x84\xd2\x74\x0f\x38\x16\x75\x0b\x8a\x56\x01\x46\x41\x84\xd2\x75\xed\xeb\x05\x80\x3e"
"\x00\x75\x05\x80\x39\x00\x74\x0e\x8b\x4d\xfc\x8b\x57\x18\x41\x3b\xca\x89\x4d\xfc\x72\xc8"
"\x8d\x4d\xf4\x6a\x00\x8d\x55\xf4\x51\x8b\x4f\x24\x52\x8b\x55\xfc\x6a\x00\x8d\x0c\x51\x33"
"\xd2\x66\x8b\x14\x01\x8b\x4f\x1c\x8d\x14\x91\x8b\x0c\x02\x03\xc8\xff\xd1\x5f\x5e\x33\xc0"
"\x5b\x8b\xe5\x5d\xc3";

292 :291:2005/07/17(日) 18:55:58
上級者の皆様C++で>>291を構造化しませう。

293 :デフォルトの名無しさん:2005/07/17(日) 18:58:47
>>283
>void *s = CString("abc");
は、
void *s = &CString("abc");
ちゃうか?

294 :デフォルトの名無しさん:2005/07/17(日) 20:51:56
>>293
ここの誤爆?
http://pc8.2ch.net/test/read.cgi/tech/1118072681/l50


295 :デフォルトの名無しさん:2005/07/17(日) 23:13:29
ああ、CStringはコンストラクタじゃないのか。

296 :デフォルトの名無しさん:2005/07/18(月) 13:21:21
俺はC++上級者だ。カッコイイだろ?

297 :デフォルトの名無しさん:2005/07/18(月) 16:26:59
10年かけてやっと自惚れることができる程度に
C++を扱えるようになったと思ったら
既にJavaとC#に追い抜かれていて超カッコイイ。

298 :デフォルトの名無しさん:2005/07/18(月) 17:43:56
C++で己惚れることができるなら、
JavaもC#も簡単に覚えられるだろうと。

それ、カコイイ。

299 :デフォルトの名無しさん:2005/07/18(月) 21:02:14
C++も JavaもC#も、おいらについてこれない。
困ったもんだ。

300 :デフォルトの名無しさん:2005/07/18(月) 21:46:04
>>299
あなたは、なんて名前の言語?
もしかして「俺流」。

301 :デフォルトの名無しさん:2005/07/18(月) 21:51:04
じゃんけんしませんか〜?^^

302 :デフォルトの名無しさん:2005/07/21(木) 19:25:29
パー

303 :デフォルトの名無しさん:2005/07/22(金) 00:20:33
おい、おまいら!
アセンブラも書けないようじゃC++を極めることは不可能なんだよぉ!

304 :デフォルトの名無しさん:2005/07/22(金) 00:28:43
おいらが一番!
おまいらは所詮パダワン。

305 :デフォルトの名無しさん:2005/07/23(土) 20:42:25
goto 304;

306 :デフォルトの名無しさん:2005/08/05(金) 17:30:43
class Resource
{
public: Resource() { ... /* リソースの取得 */ }
public: ~Resource() { ... /* リソースの解放 */ }
};

void * p = new Resource(); // NG
delete p; // NG

boost::shared_ptr<void> p( new Resource ); // OK
p.reset(); // OK


307 :デフォルトの名無しさん:2005/08/05(金) 18:18:11
>>306
ローカル変数でも使えるよ。

308 :デフォルトの名無しさん:2005/08/05(金) 23:09:07
getlineの前にcin.sync();やっとけって言われたんですが、
実際、それでうまく動くんですけど、syncの説明がよくわかりません。
ほんとにこれでいいんでしょうか?

309 :デフォルトの名無しさん:2005/08/05(金) 23:10:09
>>306
void * p = (void*)new Resource();
delete (Resource*)p;
多分。cキャストする俺はマヌターかな?



310 :デフォルトの名無しさん:2005/08/05(金) 23:11:41
>>309
もちろんCのマスターね。
C++のマスターなんて言っちゃ駄目よ。

311 :デフォルトの名無しさん:2005/08/05(金) 23:23:17
でもC++のキャストって長ったらしくてウザス

312 :デフォルトの名無しさん:2005/08/05(金) 23:30:37
でもCのキャストは目立たなくて困る。

313 :デフォルトの名無しさん:2005/08/06(土) 00:48:30
そもそも306や309が何を言いたいのかが良く分からない

314 :デフォルトの名無しさん:2005/08/06(土) 02:11:58
>>311
長ったらしいことに意味があるわけで。

315 :デフォルトの名無しさん:2005/08/06(土) 13:38:50
>>313
>>306 はshared_ptrの便利さを伝えたかったんだろう。
他は何をしたいのかよくわからん。

316 :デフォルトの名無しさん:2005/08/06(土) 16:20:54
>309はマヌケー

317 :デフォルトの名無しさん:2005/08/10(水) 04:48:35
いいね。C++式のキャストを使える処理系の人は。
うちじゃ、キャストどころか、namespaceも使えねぇ。
templateはネストできねぇ。
例外なんて概念ない。
C++標準ライブラリもついてこねぇ。
STLなんかありえねぇ。
すごいよ組み込み系マイナープロセッサ用クロスコンパイラは。


318 :デフォルトの名無しさん:2005/08/10(水) 04:54:54
>>317 ノレネサス(目立)?

319 :デフォルトの名無しさん:2005/08/10(水) 08:18:47
>>317
つテンプレートライブラリ自作

320 :デフォルトの名無しさん:2005/08/10(水) 14:40:25
>>317
単にEC++なだけでは?

321 :デフォルトの名無しさん:2005/08/10(水) 19:44:05
ボクってかわいそう、という気持ちでいっぱいの人は、
一言で済ませられる物も得てして冗長に膨大に書き連ねるものですよ。

322 :デフォルトの名無しさん:2005/08/14(日) 14:50:03
class A 

  int a=1 ; 
} ; 
のように出来ない仕様になっている理由を教えてください。

323 :デフォルトの名無しさん:2005/08/14(日) 16:38:44
>>322
初期化のタイミングが曖昧にならないように。
コンストラクタでできることを宣言でやる必要はなかろう。
定数ならstatic const intでいいだろうし。

324 :デフォルトの名無しさん:2005/08/14(日) 22:23:02
>>322
構造体の延長だからさ。

325 :デフォルトの名無しさん:2005/08/15(月) 01:23:42
じゃあ、クラスも構造体みたいにメンバ変数とかのアライメントを
合わせるのがいいの?もしそうなら、publicとかprivateとか
グループ化してから合わせるのがいいの?
メンバ関数とかはどう扱うの?


326 :デフォルトの名無しさん:2005/08/15(月) 01:45:36
>>325
そんなことは構造体でやっとくれ。
クラスは、上級者しか使いこなせないよ。

327 :デフォルトの名無しさん:2005/08/15(月) 02:19:22
>>325
とりあえず適当にクラス作って
メンバ変数とかメンバ関数のアドレスでも見てみれば?

>publicとかprivateとか
>グループ化してから合わせるのがいいの?
実行速度を気にしてるならpublic/privateは関係ないでしょ。
これはコンパイル時における各メンバへのアクセス可否の指定であって
実行時にこの情報を参照することは何も関係ないんだから。


328 :デフォルトの名無しさん:2005/08/15(月) 07:16:19
>>325
Cの構造体と違って、C++のクラスには暗黙のメンバが挿入されるから
短絡的な考えは休むに似たり。

329 :デフォルトの名無しさん:2005/08/16(火) 01:05:58
アラインメントを要するメンバは構造体で外部定義してクラスには参照を定義するとか

330 :デフォルトの名無しさん:2005/08/16(火) 07:30:20
おまえら「クラス」と「構造体」の俺様定義を説明してからしゃべれよ。

331 :デフォルトの名無しさん:2005/08/16(火) 07:31:48
俺的には同じ。

332 :デフォルトの名無しさん:2005/08/16(火) 10:17:49
クラス = 構造体++

333 :デフォルトの名無しさん:2005/08/16(火) 10:21:00
>>332
つまり クラス < 構造体 ということかっ!!

334 :デフォルトの名無しさん:2005/08/16(火) 10:32:35
>>333
馬鹿?

335 :デフォルトの名無しさん:2005/08/16(火) 11:11:20
デフォルトがpublicかprivateかの差だけだよ

336 :デフォルトの名無しさん:2005/08/16(火) 12:42:45
プププ。
結局誰も答えられないでやんの。
自称上級者なんてこんなレベルだな。w


337 :デフォルトの名無しさん:2005/08/16(火) 12:46:55
昔の実装では struct と class には明確な違いがあったらしいけど
最近では標準のアクセスが public / private 以外には全く同じ実装になっている。

338 :デフォルトの名無しさん:2005/08/16(火) 12:55:53
>>337
はつみみです
詳しく

339 :337:2005/08/16(火) 14:22:07
>>338

参考。
ttp://www.borland.co.jp/qanda/lang/l0001945.html

struct にもメンバ関数がつけれますし、
コンストラクタ、デストラクタも機能します。
struct からの派生もできますし、仮想関数等も機能します。
逆アセンブルしてみると必要に応じて vtbl も付加される模様。

両者の違いは、

class CHoge {
int a; // これは private
};

struct SHoge {
int b; // これは public
};

340 :338:2005/08/16(火) 14:58:41
>>339
それはC++では、少なくともこのスレでは常識。悪いが聞き飽きている。
はつみみで、詳しく聞きたいのは >337 の前半。

341 :337:2005/08/16(火) 15:34:36
>>340
どこかで読んだ本に書いてあった気がするけど書名を失念したので
とりあえず C++ の設計と進化 で調べてきました。
どうやら当初から同じものだった模様…

勘違い失礼。

342 :デフォルトの名無しさん:2005/08/16(火) 18:43:37
そもそも構造体とクラスがゴチャゴチャになっちまうような
言語仕様のC++が、美しくない言語ってことだ。

343 :デフォルトの名無しさん:2005/08/16(火) 21:19:57
べつにゴチャゴチャにはならんだろ。
むしろゴチャゴチャになる要素が無さ過ぎるのが
C++における構造体とクラスの関係の特徴だ。

344 :デフォルトの名無しさん:2005/08/16(火) 21:20:50
っていうかごちゃごちゃも何も、原則同じ物だからさ。

345 :デフォルトの名無しさん:2005/08/16(火) 21:23:32
言語仕様などJAVAやC#も極めた俺は関係ない。ちなみにアセンブラも神域。
C++はいい言語だ。

346 :デフォルトの名無しさん:2005/08/16(火) 21:57:00
C−ガール」                (浅香  唯)

347 :デフォルトの名無しさん:2005/08/17(水) 02:51:46
C (ミポリン)

348 :デフォルトの名無しさん:2005/08/17(水) 08:10:39
上級者が集まるスレであって
年寄りが集まるスレではないんだがな

349 :デフォルトの名無しさん:2005/08/18(木) 00:29:29
上級者でつか?どこが?プ

350 :デフォルトの名無しさん:2005/08/18(木) 10:52:57
ここが、に決まってるじゃん。
こんな簡単な文章の流れも読めない奴って・・・。

351 :デフォルトの名無しさん:2005/08/18(木) 11:14:09
>>349
まあ、お前より>346や>347の方が上級者であることは確かだな。


352 :デフォルトの名無しさん:2005/08/18(木) 12:13:34
そろそろ目ぇ真っ赤にしながらの釣り宣言が来ます

353 :デフォルトの名無しさん:2005/08/18(木) 16:02:06
ぬるぽ!

354 :デフォルトの名無しさん:2005/08/19(金) 00:21:13
上級者でつか?なにが?プ プ

355 :デフォルトの名無しさん:2005/08/19(金) 14:01:30
>>351
そ…そうかなあ??

356 :デフォルトの名無しさん:2005/08/19(金) 14:21:17
じゃあ上級者にふさわしい話題提供してよ

357 :デフォルトの名無しさん:2005/08/19(金) 22:14:16
>>356
そろそろインポリタンスを治す薬について議論しましょうか

358 :デフォルトの名無しさん:2005/08/20(土) 01:12:26
参照とポインタの使い分けについて述べてみよ。

359 :デフォルトの名無しさん:2005/08/20(土) 01:27:44
ポインタでなければならない積極的な理由がない限り、参照。

360 :デフォルトの名無しさん:2005/08/20(土) 01:35:01
逆だろ!
参照でなければならない積極的な理由がない限り、ポインタ。

361 :デフォルトの名無しさん:2005/08/20(土) 01:36:40
>>360
ヌルチェック、もしくはヌルチェックが必要かどうかのチェックがウザイ。

362 :デフォルトの名無しさん:2005/08/20(土) 01:39:36
ナルこそC++の極みなり。

363 :デフォルトの名無しさん:2005/08/20(土) 01:44:20
こんなおとぼけさん。居るよね?
if (obj != NULL) delete obj;

364 :デフォルトの名無しさん:2005/08/20(土) 01:52:34
俺は参照でできる箇所はすべて参照。
俺のソースにポインタが出てきたら、それは「そうしなければいけない理由がある」という
明確な意思のこもった記述だな。

あと、NULLなんてC++のソースコードに一度も書いたことがないや。

365 :デフォルトの名無しさん:2005/08/20(土) 01:59:33
ポインタにしなければいけないのはどんな場合?

366 :デフォルトの名無しさん:2005/08/20(土) 02:13:40
NULLチェックが必要なとき。

367 :デフォルトの名無しさん:2005/08/20(土) 02:43:40
new 演算子を使うとき。

368 :デフォルトの名無しさん:2005/08/20(土) 08:38:25
CのAPIを使う
変更可能な外部コレクション


369 :デフォルトの名無しさん:2005/08/20(土) 08:55:54
>>366
boost::optional<T&>

370 :デフォルトの名無しさん:2005/08/20(土) 12:28:10
引数が変更されるときはポインタを使いたい
istream の get(char&) みたいのはあんま好きじゃない…

371 :デフォルトの名無しさん:2005/08/20(土) 13:15:22
なんか引数を書き換えるときにはポインタ派って多いよな。

372 :デフォルトの名無しさん:2005/08/20(土) 13:27:46
私はグローバル変数派です
最強です

373 :デフォルトの名無しさん:2005/08/20(土) 13:28:02
書き換えるといこそ参照だと思うがなぁ。
へんなアドレスに書き込んでデータ壊す確率が下がる。

374 :デフォルトの名無しさん:2005/08/20(土) 13:36:51
やっぱりグローバル変数+goto文が最強だよね。

375 :デフォルトの名無しさん:2005/08/20(土) 13:38:28
そもそもクラスなんていらないよね。

376 :デフォルトの名無しさん:2005/08/20(土) 13:44:52
>>374
最強 != 最良

377 :デフォルトの名無しさん:2005/08/20(土) 13:56:04
Cタスタスは最良?

378 :デフォルトの名無しさん:2005/08/20(土) 14:56:03
( ´艸`) Cクスクス

379 :デフォルトの名無しさん:2005/08/20(土) 15:37:55
>360
ポインタで作ったつもりでも、いつのまにか=使った時点で参照
やらかしてるだろw

380 :デフォルトの名無しさん:2005/08/20(土) 16:18:46
なんで、int &a = b; って書くと参照なんだ?
aのアドレスを取るとそれがint型?・・・ワケわからん

381 :デフォルトの名無しさん:2005/08/20(土) 16:32:57
>>380
こちらへどうぞ
http://pc8.2ch.net/test/read.cgi/tech/1124256027/l50

382 :デフォルトの名無しさん:2005/08/20(土) 17:20:58
>>379
Cタヌタヌ。うんにゃ。んなことない。

383 :デフォルトの名無しさん:2005/08/20(土) 23:13:40
   ∩___∩
   | ノ      ヽ
  /  ●   ● | 
  |    ( _●_)  ミ    Cクマクマー
 彡、   |∪|  、`\
/ __  ヽノ /´>  )   
(___)   / (_/
 |       /
 |  /\ \
 | /    )  )
 ∪    (  \
       \_)


384 :>>383:2005/08/21(日) 21:00:27
不覚にもこんなつまらないネタでワロタ

385 :デフォルトの名無しさん:2005/08/27(土) 15:38:44
>>371
そうでないと関数呼び出してる箇所みても引数が変更されるってのが読み取りにくい


386 :デフォルトの名無しさん:2005/08/27(土) 18:59:17
俺ルールでも基本的に非constな参照の引数は禁止。

387 :デフォルトの名無しさん:2005/08/27(土) 19:21:33
例外はiostreamくらいか

388 :デフォルトの名無しさん:2005/08/27(土) 21:31:34
>>385
そのルールは、もう過去のもの。

389 :デフォルトの名無しさん:2005/08/27(土) 22:40:30
ルールの話じゃねーよ馬鹿

390 :デフォルトの名無しさん:2005/08/27(土) 23:05:38
「So, you want to prefer pointers to references?」
http://www.allankelly.net/Software/codefragments/ptrorref.html

391 :デフォルトの名無しさん:2005/08/28(日) 17:41:05
>>389
ルールだよ。ププ

392 :デフォルトの名無しさん:2005/08/28(日) 19:06:40
言い返せないから嘲笑でごまかしてみました。

393 :デフォルトの名無しさん:2005/08/28(日) 19:44:08
やはりここにも C++ の上級者は居ないようだな。

394 :デフォルトの名無しさん:2005/08/28(日) 22:12:38
>>393
上級者同士が会話するスレだからね。
お前が何を書いても、レスしてくれるのはお前と同レベルの俺みたいな奴だけだよw

395 :デフォルトの名無しさん:2005/08/31(水) 00:21:53
C++上級者って何が出来るの?

396 :デフォルトの名無しさん:2005/08/31(水) 00:24:17
まずboost::lambdaをバンバン使っているに違いない。

397 :デフォルトの名無しさん:2005/08/31(水) 00:31:28
C++上級者はアセンブラも出来ますか?

398 :デフォルトの名無しさん:2005/08/31(水) 00:33:14
>>397
出来るとは限らないのではないか?

399 :デフォルトの名無しさん:2005/08/31(水) 00:42:27
アセンブラも出来ないし、他人の作ったライブラリを使えるだけ。
それがC++上級者なのですか?

400 :デフォルトの名無しさん:2005/08/31(水) 00:43:50
もしかしてコンパイラも作れない?

401 :デフォルトの名無しさん:2005/08/31(水) 00:45:25
教えればすぐ使えるだろうけど。

402 :デフォルトの名無しさん:2005/08/31(水) 00:56:12
>>399
「他人の作ったライブラリを使える」ってのは重要だよ。

403 :デフォルトの名無しさん:2005/08/31(水) 01:04:28
>>397>>399>>400ってすごい馬鹿そう

404 :デフォルトの名無しさん:2005/08/31(水) 01:15:38
C++上級者にふさわしい高級な煽りを希望する

405 :デフォルトの名無しさん:2005/08/31(水) 01:28:00
>>404
例えてあげる、私が NULL なら
あなたは std::numeric_limits<long long>::min() ってところね。

406 :デフォルトの名無しさん:2005/08/31(水) 07:32:34
C++でNULLは如何なものかと。

407 :デフォルトの名無しさん:2005/08/31(水) 08:55:36
nullキーワードはどうなりましたかの? > JTC1/SC22/WG21

408 :デフォルトの名無しさん:2005/08/31(水) 09:03:41
それは知らんが、C++/CLIのnullptrキーワードはヌルポインタにも使えるようだ。

409 :デフォルトの名無しさん:2005/08/31(水) 12:40:18
>>405
お前がNULLなら、俺はガッだ。

というのは勘違い

410 :デフォルトの名無しさん:2005/08/31(水) 13:04:56
>>407-408
http://open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1601.pdf

411 :デフォルトの名無しさん:2005/08/31(水) 13:10:36
>>407
NULLの代わりとかあるの?
それはVisualC++7.1で使える?

412 :デフォルトの名無しさん:2005/08/31(水) 21:17:05
>>411
0をポインタにstatic_castしたら、NULLポインタになる。
もちろんそのポインタを整数型にreinterpret_castしても0になるとは限らない。

413 :デフォルトの名無しさん:2005/08/31(水) 22:21:26
>>411
0

414 :デフォルトの名無しさん:2005/09/01(木) 00:49:14
結局な〜んも作れないのがC++上級者でつね。

415 :デフォルトの名無しさん:2005/09/01(木) 01:08:15
ヤケ気味に上級者を煽れた時代が俺にもあった。
そこに自分も含まれるようになった今は、
もう憎々しげに上級者を煽る意味がなくなってしまったけど。

416 :デフォルトの名無しさん:2005/09/01(木) 01:12:12
ハイハイ

417 :デフォルトの名無しさん:2005/09/01(木) 04:08:19
下級な人は煽りの切れ味も下級だね。

418 :C++入門者:2005/09/01(木) 23:04:59
正直C++上級者がこんなスレに来るとは思えないのだが…

上級者ならさらりと使いこなすC++のテクって何?
多重継承?仮想継承?メンバ変数・関数のポインタ?
テンプレート?

419 :デフォルトの名無しさん:2005/09/01(木) 23:22:26
>>418
俺はその中ではテンプレートを1番良く使っている。
当然だがほかのも使わないわけではない。

もちろん俺が上級者である保証は何処にもない。

420 :デフォルトの名無しさん:2005/09/02(金) 00:49:15
>>418
コルーチン

421 :デフォルトの名無しさん:2005/09/02(金) 00:51:49
>>418
delegate

422 :デフォルトの名無しさん:2005/09/02(金) 00:52:38
>>418
自己書き換え

423 :デフォルトの名無しさん:2005/09/02(金) 00:54:35
>>418
Gap Buffer Algorithm.

424 :デフォルトの名無しさん:2005/09/02(金) 01:07:45
>>418
ハァ?

425 :デフォルトの名無しさん:2005/09/02(金) 09:13:34
>>418
> 上級者ならさらりと使いこなすC++のテクって何?
> 多重継承?仮想継承?メンバ変数・関数のポインタ?テンプレート?

それはテクニックなのか?


426 :デフォルトの名無しさん:2005/09/02(金) 10:40:37
うちに面接に来るのはコピーコンストラクタ、代入演算子の定義も書けない人ばかり

427 :デフォルトの名無しさん:2005/09/02(金) 19:37:30
いくらなんでも「ばかり」ってのはネタだろう。

428 :デフォルトの名無しさん:2005/09/02(金) 19:59:25
そりゃそうだろうけど相当多いんだろうくらいに呼んでやろうよ。

429 :デフォルトの名無しさん:2005/09/02(金) 19:59:38
2ちゃんねるってこんな突っ込み入れる奴ばかり

430 :デフォルトの名無しさん:2005/09/02(金) 21:25:54
>>423
おぉ!Gap Buffer Algorithm
伝説のテクを使える者がおったとは。これは驚きじゃ。

431 :デフォルトの名無しさん:2005/09/02(金) 21:33:32
>>420
コルーチンとは粋だね。

432 :デフォルトの名無しさん:2005/09/02(金) 21:43:13
>>430
gap_vector だね。知ってるよ。

433 :デフォルトの名無しさん:2005/09/02(金) 22:16:47
Gap Buffer など、C++上級者なら当然知ってるよ!

434 :デフォルトの名無しさん:2005/09/02(金) 22:41:25
ちゅうことで、結局な〜んも作れないのが、ここのC++上級者でした。

435 :デフォルトの名無しさん:2005/09/02(金) 22:58:45
扇るなら、C++の上級者にふさわしい煽りを。

436 :デフォルトの名無しさん:2005/09/02(金) 23:02:37
お〜い扇風機持って来いや

437 :デフォルトの名無しさん:2005/09/02(金) 23:07:34
みなさんコンピュータサイエンスをどこで学ばれたのですか?独学ですか?

438 :デフォルトの名無しさん:2005/09/02(金) 23:19:02
きらめき高校

439 :デフォルトの名無しさん:2005/09/02(金) 23:34:53
ものつくり大学

440 :デフォルトの名無しさん:2005/09/03(土) 00:28:51
>>428
そう読んだ上で「そんなに多いってのはネタだろう」と言ってるのだが・・・。

441 :デフォルトの名無しさん:2005/09/03(土) 00:33:06
>>440
流れを読め

442 :デフォルトの名無しさん:2005/09/03(土) 00:38:36
最近色々なブログでやってる
最小なんとか点とかメモとかってこんな感じか?

template <class T>
class normal
{
protected:
 int call_me(int i) const
 {
  return static_cast<T const&>(*this)(i);
 }
};

template <class T>
class memo
{
protected:
 int call_me(int i) const
 {
  std::map<int, int>::const_iterator ci = memo_.find(i);
  return ci == memo_.end() ?
   memo_[i] = static_cast<T const&>(*this)(i) :
   ci->second ;
 }
private:
 mutable std::map<int, int> memo_;
};

443 :デフォルトの名無しさん:2005/09/03(土) 00:39:08
template <template <class> class Fix>
class fib : Fix<fib>
{
public:
 int operator () (int i) const
 {
  return i <= 1 ? 1 : call_me(i-2) + call_me(i-1);
 }
};

int main()
{
 fib<normal>()(20);
 fib<memo>()(20);
}

444 :デフォルトの名無しさん:2005/09/03(土) 01:52:01
>>442
なんか面白そうなコードだね。
親クラスと子クラスを反復する再帰関数なんて初めて見た。
潮騒キボンヌ

445 :デフォルトの名無しさん:2005/09/03(土) 01:58:38
いいか、おまいら。
いくらC++を極めても嫁は見つからないんだ。
ただ頭が禿げるだけだ。それを忘れるな。

446 :デフォルトの名無しさん:2005/09/03(土) 02:01:06
そういやSE or PGでハゲってみたことないんだが。
実際少ないんかねえ。

447 :デフォルトの名無しさん:2005/09/03(土) 02:13:33
スキルの毛の数は反比例する傾向にある。

448 :デフォルトの名無しさん:2005/09/03(土) 03:21:43
>>441
どんな流れ?
都合が悪いからありもしない流れをでっちあげたってのは無しね。

449 :デフォルトの名無しさん:2005/09/03(土) 03:31:33
髪の毛の流れを読みきった奴が真の勝利者だと思う

450 :デフォルトの名無しさん:2005/09/03(土) 03:49:03
量が少ないとバーコードになるから
簡単に流れが読める

451 :デフォルトの名無しさん:2005/09/03(土) 07:27:51
>>423
調べてみました。こんなの初めて知りました。おいらは上級者と思っていたのが恥ずかしい...

452 :デフォルトの名無しさん:2005/09/03(土) 07:32:57
>>450
君はこちら側の人間ではないようだ。

453 :デフォルトの名無しさん:2005/09/03(土) 10:00:50
>>452
よう、ハゲチャビン。

454 :デフォルトの名無しさん:2005/09/03(土) 15:21:32
選ばれた上級者だけがハゲるからな

gaped bufferはemacsで使ってたやつだ
C++じゃなくても普通に使える

455 :デフォルトの名無しさん:2005/09/03(土) 18:58:25
NUEのエディタは(Gapped) Double Linked Line Bufferだった。

456 :デフォルトの名無しさん:2005/09/03(土) 18:59:31
最近、いい感じに禿げてきた

457 :442:2005/09/03(土) 19:28:56
>>444
元ネタは Let's Boost の人のブログ。
再帰関数をメモ化したりする汎用的な仕組み、のような感じか?

458 :デフォルトの名無しさん:2005/09/03(土) 20:21:51
>>457
さんくす。Boostでしたか。


459 :デフォルトの名無しさん:2005/09/03(土) 20:33:47
フィボナッチ数列みたいに再帰で何度も使う数値をメモしておくってことかな。
一般化したという点で面白いね。

460 :デフォルトの名無しさん:2005/09/04(日) 00:12:00
Boost使うヤツは、ヘタレ。
上級者なら、あまりにも高度すぎて自分にしか使用できない
自作ライブラリを使うのが常識だろ?

461 :デフォルトの名無しさん:2005/09/04(日) 00:42:34
>>419-423

ありがと。
聞いたこともない用語が出てきたので満足です。
C++を使いこなすことを目標にします

462 :デフォルトの名無しさん:2005/09/04(日) 00:46:55
>>461
おいらを目標に頑張れや。

463 :デフォルトの名無しさん:2005/09/04(日) 22:48:26
こんばんわ、質問があります。
環境C++6.0 windowsxp
今、ハードディスクやCDの容量を調べるプログラムを組んでいます。
GetDiskFreeSpaceExをつかって、ハードディスクの使用量と空き容量は入手できたのですが、
焼かれたCDの空き容量が0になってしまうのです。マイコンピュータのCDドライブのところから、
プロパティを開くと空き容量が表示されるのですが、プログラムでそれを入手することが出来ないのです。
基本的な質問ですが、知恵をお貸し願えませんでしょうか?
よろしくお願いします。

464 :デフォルトの名無しさん:2005/09/04(日) 22:53:47
>>463
なんでプログラムできない奴って日本語できないんだろ?

つうかスレ違いだろうが

465 :デフォルトの名無しさん:2005/09/04(日) 23:44:15
>>410
すげえ。ぬるぽがついにC++にも。

466 :デフォルトの名無しさん:2005/09/05(月) 00:20:48
>>465
ガッ!

467 :デフォルトの名無しさん:2005/09/07(水) 00:56:10
ギッ!

468 :デフォルトの名無しさん:2005/09/07(水) 04:29:54
ヌッ!

469 :デフォルトの名無しさん:2005/09/07(水) 04:48:36












                                                   ぽ



470 :デフォルトの名無しさん:2005/09/07(水) 18:17:00
>>469
ガッ

471 :デフォルトの名無しさん:2005/09/07(水) 22:41:12
>>469は「ぬ ぽ る」な訳だが

472 :デフォルトの名無しさん:2005/09/08(木) 21:59:53
つ縦読み

473 :デフォルトの名無しさん:2005/10/24(月) 10:40:55
小数点2位以下を四捨五入したいのですが、もっともシンプルでかつ高速なコードを教えてください。

474 :デフォルトの名無しさん:2005/10/24(月) 11:22:57
>>473
何もしなくても四捨五入して表示されるが
printf("%.2f", 1.235);


475 :デフォルトの名無しさん:2005/10/24(月) 11:24:32
あ、C++スレなのに失礼

476 :デフォルトの名無しさん:2005/10/24(月) 12:33:02
double round45(double val, int digit) {
char buf[20];
sprintf(buf, "%.*f", digit, val);
return atof(buf);
}

477 :デフォルトの名無しさん:2005/10/24(月) 17:57:54
このスレまだあったんだ

478 :デフォルトの名無しさん:2005/11/04(金) 15:34:31
【C++】template 統合スレ -- Part6
http://pc8.2ch.net/test/read.cgi/tech/1101384692/1001

の後継スレとして使わせて貰うことにしました。

479 :デフォルトの名無しさん:2005/11/04(金) 18:59:53
>>442-443
これってチョットいじっただけじゃコンパイルとおらない?
typeのミスマッチっていわれるんだけど。

480 :デフォルトの名無しさん:2005/11/04(金) 19:34:59
>>479
とりあえず call_me を this->call_me にすれば?

481 :デフォルトの名無しさん:2005/11/04(金) 20:05:54
>>480
だめみたい。
thisをつけると、const class fib<normal> has no member named call_meっていわれちゃう。
templateのしたクラスのcall_meを呼んでくれないみたい

482 :デフォルトの名無しさん:2005/11/04(金) 21:11:50
>>481

class fib : Fix<fib>
=> class fib : Fix< fib<Fix> >

これで、
ttp://www.comeaucomputing.com/tryitout/
のコンパイラでは通った。

483 :デフォルトの名無しさん:2005/11/05(土) 07:47:56
>>482

gccでは通らないぽい。どこがおかしいのやら

484 :デフォルトの名無しさん:2005/11/05(土) 23:54:35
template <template <class> class Fix>
class fib : protected Fix< fib<Fix> >

だな。public継承でもいいけど。
要はダウンキャストもprivate継承ではできない

485 :デフォルトの名無しさん:2005/11/06(日) 07:39:13
typedef Fix<fib<Fix> > ct;

…ct:call_me(…

486 :デフォルトの名無しさん:2005/11/06(日) 09:47:16
>>484
>>485
サンクス。できました

487 :デフォルトの名無しさん:2005/11/06(日) 10:38:13
COMについての質問はここでいいですか?

488 :487: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 :デフォルトの名無しさん:2005/11/07(月) 12:12:19
>>489
「fのエントリは二つあって、Dでは両方が同じ関数を指している。」という実装しか思いつかないな。
調べてみる。

491 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2005/11/09(水) 03:52:17
>>492
C++じゃなくてアセンブラになっちゃうけど消費電力を抑える為に halt や nop を多用するのがいいと思うよ。

494 :デフォルトの名無しさん:2005/11/09(水) 04:40:12
__asmでnopを入れればいいのですか?

495 :デフォルトの名無しさん:2005/11/09(水) 05:17:38
>>494
アホを真に受けるなよw
ったく知ったかぶり君は迷惑だよね。


496 :デフォルトの名無しさん:2005/11/09(水) 06:54:19
>>495
もし>>493を知ったかぶりと思っているなら
お前の日本語読解力の方がずっとアホだと思うよ。

497 :デフォルトの名無しさん:2005/11/09(水) 08:19:55
>>492
ifは極力使わない。
forをつかえ。


498 :デフォルトの名無しさん:2005/11/09(水) 09:21:08
for(int i = 0; condition && i < 1; ++i){
.....
}


499 :デフォルトの名無しさん:2005/11/10(木) 04:55:32
BOOLよりboolを使ったほうが処理速度が速くなるっていうのは本当ですか?

500 :デフォルトの名無しさん:2005/11/10(木) 05:05:31
いいえ、それだけの情報ではなんともいえません。

501 :デフォルトの名無しさん:2005/11/10(木) 05:13:00
BOOL(4バイト)とbool(1バイト)のことです

502 :デフォルトの名無しさん:2005/11/10(木) 06:30:30
うがー、それだけの情報ではなんともいえません。

503 :デフォルトの名無しさん:2005/11/10(木) 06:55:30
環境によって違うということですか?
vc7.1でコンパイルしたんですが
win2000です

504 :デフォルトの名無しさん:2005/11/10(木) 07:51:15
>>499
>>503
BOOLかboolかで速さが違うかどうかはわからないが、
BOOLはintのtypedefで、boolはC++組み込み型だからbool(true/false)を使う方がよい。

505 :デフォルトの名無しさん:2005/11/10(木) 07:58:03
なるほど、そうなのですか
ありがとうございました

506 :デフォルトの名無しさん:2005/11/10(木) 08:25:29
BOOL は真偽値じゃない
とりあえずMSDN行って GetMessage()の戻り値見てくれば解る
あんな代物とbool型を同一視したら相当痛いミスを連発することになる。
MSのAPIの引数と戻り値以外には使わないほうが良い。

さらにsizeof(bool)は1と決まっているわけじゃない。
コンパイラによってはsizeof(bool)==4の場合もある。

507 :デフォルトの名無しさん:2005/11/10(木) 08:51:22
ただ、現実問題として、boolは0/1しか取らないから
整数型やポインタ型の値をboolに代入しようとすると、若干の演算が必要になる。

例えば、戻り値が0か0以外かが判定できれば良いだけの場合でも
int型の関数だと return n; で足りるところを
bool型の関数にすると return n != 0; に相当するコードが必要になる。

そのため、VC++では最適化の警告が出せるようになっている。

508 :デフォルトの名無しさん:2005/11/10(木) 09:55:29
>>501
普通、bool はintと同じサイズ( =BOOLと同じサイズ )になるぞ。

509 :デフォルトの名無しさん:2005/11/10(木) 10:05:22
「普通」の意味がわからんが、BCB6ではintが4でboolが1だな。

510 :デフォルトの名無しさん:2005/11/10(木) 10:18:26
>>509
アレ? borland でもデフォルトでは bool は int と同じサイズだったと思うが・・・
bool を1バイトにするっていうコンパイルオプションが指定されてない?

511 :デフォルトの名無しさん:2005/11/10(木) 10:28:00
boolを使うと、ビットセット系のニモニックが生成されて分岐が省略できる可能性もある。
>507が指摘したケースだと、どうせ呼び出し側でも判断が入るから二重ロジックに成るかも知れんが、
inline関数なら逆に呼び出し側を巻き込んで最適化されるから同じことだね。

512 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2005/11/10(木) 14:20:37
>>507
> ただ、現実問題として、boolは0/1しか取らないから

trueかfalseです。!に対してそれぞれが逆元。
integral promotionがあるとそれぞれ1と0になる。

ちなみにここは上級者スレです。

514 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2005/11/10(木) 17:33:35
>>512
>boolvar == true っていうコードも合法になるもんだと思ってたんだけど。
合法ですが、間抜けです。

516 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2005/11/11(金) 00:51:31
>>514
最近は sizeof(bool)==1 が主流なのか。知らなかったお。(^ω^)

>それと、bool より BOOL を(パフォーマンスの理由で)
>推奨してる環境もあるにはある。個人的には嫌だけど。

それもちょっと微妙だね。sizeof(bool)==1 な処理系ならCPUが苦手な
バイトアクセスでもメモリアクセス量が減る bool のほうが多分トータルの
パフォーマンスでは上だろうし。

518 :デフォルトの名無しさん:2005/11/11(金) 04:24:45
>>517
まあ、CPUが苦手どころか 4 バイト未満の整数型をダイレクトに
扱う命令を持ってないからで。しかも無駄なメモリアクセスは極力
省いてキャッシュレイテンシまで時に考えなきゃならんような環境の
ことなんで、無視していいかと。
つうか、素直に sizeof(bool)==4 にしろよ、ってスマン愚痴だ。

519 :デフォルトの名無しさん:2005/11/11(金) 07:22:23
vector<bool>なんてのを想定したんじゃない? > sizeof → 1
bitsetってのもまあ微妙なアレだし

520 :デフォルトの名無しさん:2005/11/11(金) 08:02:00
メモリが遅いって話ならそれこそ最大限コンパクトにして
キャッシュに乗ってる可能性を高くしたほうがいいじゃん

521 :デフォルトの名無しさん: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 :仕様書無しさん:2006/02/08(水) 11:18:47
>>523
(脳内)上級者の集うスレでは?

525 :デフォルトの名無しさん:2006/02/08(水) 21:49:16
>>523
上級者が集まったからと言って上級な会話をするとは限りませんし、
上級者にしかその真意がわからない上級な会話なのかもしれません。

526 :デフォルトの名無しさん:2006/04/28(金) 09:41:06
上級者はいなくなったようですね

527 :デフォルトの名無しさん:2006/04/28(金) 11:12:31
上級者というからにはもっとこうOS技術とか、デッドロックの事例とその解決とかについて
議論するのではないのか?

528 :デフォルトの名無しさん:2006/04/28(金) 14:47:19
>>527
デッドロック回避にはオーストリッチアルゴリズム。マジお勧め。

529 :デフォルトの名無しさん:2006/04/28(金) 15:19:59
レース状態やスタベーションについての議論もしよう。

530 :デフォルトの名無しさん:2006/04/28(金) 16:08:20
>>528 なにもしないってかw

531 :デフォルトの名無しさん:2006/04/28(金) 17:14:50
レース下着でマスターベーションについて

532 :デフォルトの名無しさん:2006/04/29(土) 04:44:48
OS 技術が上級?
酔ってるから超ウケた。

上級な OS 技術と、当たり前すぎてあほらしい OS 技術があると思うのだが。

533 :デフォルトの名無しさん:2006/04/29(土) 06:06:22
酔ってるな

534 :デフォルトの名無しさん:2006/04/29(土) 15:12:17
>>527
それはあえて言うなら「プログラミング上級者」とかの類であって「C++上級者」とはズレがあるのでは?

535 :デフォルトの名無しさん:2006/04/30(日) 02:32:53
ではC++上級者は何ができるのですか?

536 :デフォルトの名無しさん:2006/04/30(日) 02:51:36
Cでも書けるコード/アルゴリズムを
「C++らしく」書くことが出来ます。たぶん。

俺は上級者じゃないので無理です。

537 :デフォルトの名無しさん:2006/04/30(日) 06:21:32
上級者 初級者でもわかるコードを書く
初級者 上級者でもわからないコードを書く

538 :デフォルトの名無しさん:2006/04/30(日) 09:48:40
ここは「上級者とは何か」を議論するスレですか?

539 :デフォルトの名無しさん:2006/04/30(日) 10:28:11
自らの上級しゃっぷりをアピールするスレです。

540 :デフォルトの名無しさん:2006/04/30(日) 11:13:52
初心者が微妙にスレ自体をひがんでるな
そんな暇があったら勉強しなよ

541 :デフォルトの名無しさん:2006/04/30(日) 11:47:14
夢の相互リンク

プログラム技術上級スレ
http://pc8.2ch.net/test/read.cgi/tech/1141409198/l50

542 :デフォルトの名無しさん:2006/04/30(日) 19:51:31
自称上級者の集まるスレってここでしょうか?

543 :デフォルトの名無しさん:2006/04/30(日) 22:34:38
そうですね、例えばあなたとか…

544 :デフォルトの名無しさん:2006/04/30(日) 23:35:48
俺、俺だよ俺!

545 :デフォルトの名無しさん:2006/05/06(土) 20:23:30
pngのCRCの計算をするコードを教えてください。

546 :デフォルトの名無しさん:2006/05/06(土) 20:27:47
>>545
ソース嫁


547 :デフォルトの名無しさん:2006/05/06(土) 20:41:34
>>546
わかりませんので
上級者の知恵をお借りしに来たのです。

548 :デフォルトの名無しさん:2006/05/06(土) 20:46:14
>547
ここは上級者以外立入禁止だ。

549 :デフォルトの名無しさん:2006/05/06(土) 20:55:00
>>548
わからないくせに偉ぶっている人

550 :デフォルトの名無しさん:2006/05/06(土) 21:18:22
俺は上級者だが、わからないものはわからないのだ。

551 :デフォルトの名無しさん:2006/05/06(土) 21:31:30
ここは自称上級者同士が褒め称えあうスレです。

552 :545:2006/05/06(土) 21:37:24
googleで探したらあったYO

553 :デフォルトの名無しさん:2006/05/06(土) 21:44:00
これで君も上級者だ。

554 :デフォルトの名無しさん:2006/05/06(土) 22:01:37
>>545
C++とは関係ない話だろとマジレス。

555 :デフォルトの名無しさん:2006/05/07(日) 20:31:55
クックック。遂に極めたぞ。

556 :デフォルトの名無しさん:2006/05/08(月) 00:29:22
残念ながら555が居たのは、まだ入り口だったのであった

557 :デフォルトの名無しさん:2006/05/08(月) 00:33:38
極めたってどういう状態を指すんだ?DQN臭い。

558 :デフォルトの名無しさん:2006/05/08(月) 00:51:30
>>557
きっと typedef あたりの使い方を極めたんだよ。

559 :デフォルトの名無しさん:2006/05/08(月) 00:52:35
>>558
・・・そうか・・・

560 :デフォルトの名無しさん:2006/05/08(月) 08:08:49
555の痛さはネタ臭いけど、
極めるという言葉に過剰反応している557の痛さは素っぽいな。

561 :デフォルトの名無しさん:2006/05/08(月) 16:42:06
まぁ真実は>>556が突いている

562 :デフォルトの名無しさん:2006/06/02(金) 08:40:30
皆さんのタブのサイズを教えてください

563 :デフォルトの名無しさん:2006/06/02(金) 11:22:42
TABは0.5を利用


564 :デフォルトの名無しさん:2006/06/02(金) 12:28:03
タブは8


565 :神楽坂:2006/06/02(金) 15:17:23
フィルタドライバの作り方で
聞きたいことがあるんで
来てみたのだが......

だめみたいだな、
ここは。

566 :デフォルトの名無しさん:2006/06/02(金) 15:39:01
ここはスレタイが荒してくれといっているようなものだからな。
隔離スレというか。

567 :デフォルトの名無しさん:2006/06/02(金) 18:28:26
いかにも荒らし本人が書きそうな「見限りレス」だな。

568 :デフォルトの名無しさん:2006/06/02(金) 22:56:26
>>565
なんのフィルタドライバを作りたいのかぐらい書けよ。
つーか、お前は本当は聞きたいことの説明すらできんのだろ?
素直んなれよ、な?

569 :デフォルトの名無しさん:2006/06/03(土) 13:28:56
気付いたけどここには低能しかいないようだな

570 :デフォルトの名無しさん:2006/06/03(土) 13:43:42
>>569
お前と俺と〜は〜

571 :デフォルトの名無しさん:2006/06/03(土) 14:20:10
超上級者だったらもうちょいゆとりがあっただろう

572 :デフォルトの名無しさん:2006/06/03(土) 15:44:22
>>568
 ・訊いても無駄だといいながら訊きたい内容を書く
 ・でもその内容は不明確なまま
 ・しかもスレ違いの予感
 ・つか、なにしろコテハン

恐らく、自分よりバカ (に見える連中) がいて
嬉しかったんだろう。

573 :デフォルトの名無しさん:2006/06/03(土) 19:12:18
ここは、C++上級者が集まるスレであって >>565 ごときが来るような場所ではない。

574 :デフォルトの名無しさん:2006/06/03(土) 19:29:08
まぁ、能無しが「おもらい」しに来るスレではないよな。

575 :デフォルトの名無しさん:2006/06/03(土) 19:46:15
盛り上がって参りました!

576 :デフォルトの名無しさん:2006/07/01(土) 05:03:15
マ板でもっとも典型的なネタスレのひとつ

577 :デフォルトの名無しさん:2006/07/03(月) 22:14:12
コメントを // にしました。
これで俺も上級者の仲間入り。

578 :デフォルトの名無しさん:2006/07/03(月) 23:08:47
赤飯炊かなきゃな

579 :デフォルトの名無しさん:2006/07/07(金) 15:55:26
上級者さんのお知恵をお借りしたいのですが。。

C++とDirectShowでビデオキャプチャ+圧縮保存のコードを書いております。
ボタンクリック時に、圧縮に使用するコーディックのプロパティ画面を開くようにしたいのですが、方法が検討つきません。
WindowsMediaVideo9とMEPG4
ご存知の方、いらっしゃいましたらご助力願います。
宜しくお願い致します。

580 :デフォルトの名無しさん:2006/07/08(土) 15:08:16
>>579
それC++関係ないだろ。

581 :デフォルトの名無しさん:2006/09/01(金) 19:22:44
>>580
≪関係ない≫だと?

582 :デフォルトの名無しさん:2006/09/04(月) 19:57:52
C++のホットなネタは?

583 :デフォルトの名無しさん:2006/09/04(月) 22:39:58
>>582 特に無い。

584 :デフォルトの名無しさん:2006/10/14(土) 01:28:04
stdioとcstdioの違いを教えてください

585 :デフォルトの名無しさん:2006/10/14(土) 02:03:51
>>584
cstdio がライブラリを std 名前空間内に宣言。
stdio.h は、↑に加えてグローバル名前空間にも宣言。

っていう建前だけど、実際は

stdio.h がライブラリをグローバル名前空間内に宣言。
cstdio は、↑に加えて std 名前空間にも宣言。

とかいう実装もよくある。

586 :・∀・)っ-○◎●創聖のダンゴリオン ◆DanGorION6 :2006/10/14(土) 02:06:04
std 名前空間

587 :・∀・)っ-○◎●創聖のダンゴリオン ◆DanGorION6 :2006/10/14(土) 02:07:15
まあ、プリプロセッサマクロに名前空間は適用できないしな

588 :デフォルトの名無しさん:2006/10/14(土) 03:16:03
たまに見かけるstudio.hもよくわからん

589 :デフォルトの名無しさん:2006/10/14(土) 05:48:10
ワロタ

590 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2006/10/28(土) 02:40:02
>>592
規格上はどうなってんのか知らんが、とりあえずコンパイラによっては
「どっち使ってええのかわからん」とエラーを出すのは確か。

594 :デフォルトの名無しさん:2006/12/15(金) 19:46:02
xmlを処理できるライブラリを教えてください

595 :デフォルトの名無しさん:2006/12/15(金) 19:54:48
上級者の質問ではないだろ。
とりあえずXercesとかMSXMLとか。詳しくは知らない。

596 :デフォルトの名無しさん:2006/12/15(金) 20:02:37
動的な次元の配列のライブラリってないもんか

597 :デフォルトの名無しさん:2006/12/15(金) 20:04:21
>>596
boost::multi_array

598 :デフォルトの名無しさん:2006/12/15(金) 20:14:18
それは静的だ。
動的次元配列は自分で作るしかないんじゃね?

599 :デフォルトの名無しさん:2006/12/20(水) 16:57:05
gccとFedora core5でプログラムを作成しています。
ofstreamでflush()を使っても、実行されたタイミングでファイルが更新されません。
一定以上になるまで、システムのバッファ内に溜め込まれているようなのですが、
flush()実行時に確実にファイルに書き込ませるにはどうしたらよいでしょうか?

600 :・∀・)っ-○◎●創聖のダンゴリオン ◆DanGorION6 :2006/12/20(水) 22:51:39
「STLによるコンポーネントデザイン」にvectorを使った2次元・3次元配列クラスの作り方書いてあった


それとも次元が動的に増減するの?
そりゃちょっとお手上げ

601 :・∀・)っ-○◎●創聖のダンゴリオン ◆DanGorION6 :2006/12/20(水) 23:01:22
>>599
flushでフラッシュされないのって、C++標準の方法ではどうしようもないような。

クローズしてみるとか(かなりいい加減)
あと、内部的にメモリマッピングしてるような気もする。

602 :デフォルトの名無しさん:2006/12/22(金) 22:57:20
断片化なしの動的二次元配列の一種。

http://capslockabcjp.kitunebi.com/boolean.html
ブール閉包(boolean closure)のサイズとインデクスの計算
1次元配列にみっしりと二次元の表を納めつつ、
伸縮させても穴が空かない構造の作り方。

603 :デフォルトの名無しさん:2006/12/22(金) 23:13:02
>>599
気のせいだと思いますよ。

604 :デフォルトの名無しさん:2006/12/22(金) 23:22:16
>>599

ランタイムライブラリとは無関係にOSとドライバの側で制御しているから
OS独自の機能を使わないとどうしようもない。

http://www.linux.or.jp/JM/html/LDP_man-pages/man8/sync.8.html

605 :デフォルトの名無しさん:2006/12/23(土) 08:46:49
特殊なストレージデバイスを使ってない限り、
カーネルのin-coreイメージと外部デバイスの不一致は観測不能なんだが。

606 :デフォルトの名無しさん:2007/01/06(土) 02:30:56
真贋について
http://www.kh.rim.or.jp/~nagamura/misc/stroustrup-interview.html

607 :デフォルトの名無しさん:2007/01/06(土) 02:39:51
それは遥か昔にストラウストラップと袂を分かった、
彼の頭頂の毛が喋ってるんだよ。

608 :デフォルトの名無しさん:2007/01/08(月) 12:26:22
【ネガティブ派遣根性チェック】

3つ以上、思い当たる点があればアナタの性格はひん曲がっており、ネガティブ負け組人生を歩んでいます。

□偽装派遣先の社員の意見にはたとえ間違っていても反対しない
□偽装派遣先から「いつまでもここで仕事してくださいね」と言われるようになりたい
□自社に仕事を持ち帰れるように言われるとムカつく
□自社で仕事なんてできるわけがない
□派遣/受託の差異を指摘する人間はムカつく
□偽装派遣先には仕事だけでなく自分のプライベートについても指示して欲しい
□自分の月額金額を知らない
□偽装派遣先社員より自分の生涯収入が低いのは当然だ
□偽装派遣先に尻尾を振り、いつまでも一緒に仕事をすることが大切だ
□今のプロジェクトが終わっても同じ偽装派遣先に常駐したい


609 :デフォルトの名無しさん:2007/01/08(月) 18:36:21
構造化して細かく関数毎に分けた方が、構造化されていないプログラムより最適化されやすいですか?
それとも関数の呼び出しのオーバーヘッド分だけ遅くなりますか?

610 :デフォルトの名無しさん:2007/01/08(月) 22:59:00
>>609
最適化については、コンパイラ (とコンパイル時のオプション)
に依存するのでなんともいえない。

関数の呼び出しのオーバーヘッドは確実に存在する。

ただ通常それが問題になることはあまり無い。







て言うか、プログラム書くときはわかりやすく書け。

関数呼び出しのオーバーヘッドなんか気にするのは最終手段だ。

611 :デフォルトの名無しさん:2007/01/09(火) 01:58:49
「最適化する必要を感じるまで最適化するな」

612 :・∀・)っ-○◎●創聖のダンゴリオン ◆DanGorION6 :2007/01/09(火) 02:05:56
常に__forceinline

613 :デフォルトの名無しさん:2007/01/09(火) 05:15:49
>>609
最近のコンパイラは小さい関数が数百個つらなっても
平気でinline化しやがるので無問題

614 :デフォルトの名無しさん:2007/01/11(木) 23:18:23
http://en.wikipedia.org/wiki/C%2B%2B0x
こんなに様々な提案があったとは思っていなかった。

615 :デフォルトの名無しさん:2007/01/12(金) 10:27:53
class A{
    const double x;
    A() : x(10){}
}

class A{
    static const double x=10;
}
の使い分けについて教えてください

616 :デフォルトの名無しさん:2007/01/12(金) 11:03:20
>>615
前者はインスタンス毎に暮らす変数が作られるのでメモリが余計に
必要だが、コンストラクタ次第ではインスタンス生成時に x の値を
自由に設定できる。

後者はメモリは一つしか使わないので省メモリ型だが、コンパイル時
に値が決定するのでコンストラクタによって値を変える事はできない。

617 :デフォルトの名無しさん:2007/01/13(土) 02:13:25
>>615
後者はコンパイルできない。

618 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2007/01/16(火) 16:50:27
C/C++の宿題を片付けます 81代目
http://pc10.2ch.net/test/read.cgi/tech/1168663908/l50

621 :デフォルトの名無しさん:2007/01/16(火) 16:56:09
>>619
http://ftp.gnu.org/gnu/bc/

622 :デフォルトの名無しさん:2007/01/16(火) 21:11:54
>619
http://spirit.sourceforge.net/

623 :デフォルトの名無しさん:2007/01/16(火) 23:34:23
>>619
講義聴いてればちゃんとできるからまた来年やれ

624 :デフォルトの名無しさん:2007/01/17(水) 00:33:04
若いの オラが村では派遣の問題を口にしちゃなんねーだ
お前さんはまだわけぇから言いたいこともあるべぇ
だべな、派遣問題を口にするとムキになって怒る者がおるでよぉ
問題の指摘は駄目だっぺぇ
派遣のことは口にしちゃなんねぇ
この村みたいな糞田舎で悲惨な生活するためにはよぉ
北朝鮮と一緒でよ、駄目のものを駄目と言ってはなんねえだべさ
タブーを口にしちゃいけねぇだ オラ達みたいな田舎者の鉄則だっぺ


625 :デフォルトの名無しさん:2007/01/17(水) 09:41:28
>>619
逆ポーランド使ったらだめ?


626 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2007/01/17(水) 19:44:28
pimpl

629 :デフォルトの名無しさん:2007/01/17(水) 19:54:08
Fooのポインタだけならclass Foo;とだけ書いておけばおk。

630 :デフォルトの名無しさん:2007/01/18(木) 02:48:20
上級者の皆様、Haskellで使えるalgebraic data typeをC++で表現するにはどうすればいいでしょうか?教えてください。

631 :デフォルトの名無しさん:2007/01/20(土) 10:35:44
>>615
class A{ 
    static const int x=10; 
}
は許されるのに
class A{ 
    static const double x=10; 

は禁止されているのは何故なのでしょうか?

632 :デフォルトの名無しさん:2007/01/20(土) 12:41:07
配列の要素数など整数定数への需要は大きいから、それだけ特別扱いされた。

633 :デフォルトの名無しさん: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 :2007/01/20(土) 14:59:27
class A{  
    static const double x() const { return double(10); }
}  

で代用できるから特に困らない

635 :デフォルトの名無しさん:2007/01/20(土) 15:00:59
C++のクラスの静的メンバ変数は(constの有無に関わらず)、
Cのヘッダに宣言しどこか1箇所ソースで定義する流儀を受け継いでいると考えればそう不自然でない。
納得がいくかどうかはともかく。

そんなにクラス内に書きたければ、静的メンバ関数ならインラインに書けることを使う手もなくはない。

636 :デフォルトの名無しさん:2007/01/20(土) 15:13:30
C++ らしいよなぁ。
template もそうなんだけど、なんつーか、
もう少し素直にやりたいことを直感的に書けないものかw


637 :・∀・)っ-○◎●創聖のダンゴリオン ◆DanGorION6 :2007/01/20(土) 15:22:46
Borlandコンパイラならプロパティ(独自拡張)があるね

638 :デフォルトの名無しさん:2007/01/20(土) 17:09:58
そういやtemplateなら>>618のようなのを全部ヘッダーに書いてもいいんだっけ?


639 :デフォルトの名無しさん: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 :2007/01/20(土) 19:41:55
駄目だから定数を返す関数にする。どうせインライン展開されるし

641 :デフォルトの名無しさん:2007/01/21(日) 17:14:28
>631,633
あれ?出来ないんだっけ?
gcc3.4.2なら出来たけど。
てか、最近のコンパイラなら出来るはずだと思って
フリーで配ってるソースで使いまくっちゃったけど。。。

642 :・∀・)っ-○◎●創聖のダンゴリオン ◆DanGorION6 :2007/01/21(日) 17:19:40
厳密にはできなくはない

__declspecキーワード使うことになるが

643 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2007/01/21(日) 18:59:42
それは無理だな

646 :デフォルトの名無しさん:2007/01/21(日) 19:01:37
無理だよ

647 :デフォルトの名無しさん:2007/01/21(日) 19:35:38
>>644
>Foo を先に宣言
Foo を先に定義、の間違いだな

そんな細かい指摘はともかく、この要求は比較的需要があると思うけれど、
(少なくとも自分はこういうことをしたいときが結構ある)
みんなどう思ってるんだろ

648 :デフォルトの名無しさん:2007/01/21(日) 20:04:33
>>647
こういうのがあるから、ネストされた public 型定義は避けたほうがいい。

649 :デフォルトの名無しさん:2007/01/22(月) 09:53:27
どうしてもって場合は苦肉の策だけど、Hoge側をクラステンプレートにして
しまうのもありかも( Foo をテンプレート引数にする )。

650 :デフォルトの名無しさん:2007/01/27(土) 23:55:49
魔法少女ポリモル
http://pc10.2ch.net/test/read.cgi/prog/1169812216/


651 :デフォルトの名無しさん:2007/02/02(金) 20:43:47
vc2005EEを使っているのですが、質問があります。

デバッグモードではCPU使用率が20〜35%に押さえられているのですが、
リリースモードにすると使用率が常時100%に跳ね上がってしまいます。

これの原因分かる方いませんか?
もしくは原因究明の方法が分かる方いませんか?
(プロファイラは使えません^^)

どうかよろしくお願いします。

652 :デフォルトの名無しさん:2007/02/02(金) 21:37:54
>>651
マルチはラウンコにでも逝ってろ。

653 :デフォルトの名無しさん:2007/02/02(金) 22:20:52
>>652
http://pc10.2ch.net/test/read.cgi/tech/1164951094

一度、↑のスレの989で聞いたのですが、
スレ違いといわれてしまったので、もう一度質問させてもらっています。

654 :デフォルトの名無しさん:2007/02/02(金) 22:50:15
>>653
あってるかどうかの自信はないが原因やその調査方法や対策等々を多少予想がつかんでもないが、
プロファイラを使えば一発で解決する問題なのに、あえてプロファイラは使えませんと逃げるような
教えて君がくるようなスレではありません、ここは。どっか逝け。

つーかせめてどんなプログラムかぐらい書け。あと、テキトーにプログラムをコメントアウトして
現象が変わったらその部分あるいはその部分に関連したところになんかある。ロクに情報も提供
しない教えて君はたまにはそーゆー地道なデバッグでもやってなさい。

655 :デフォルトの名無しさん:2007/02/02(金) 22:51:41
サクセスに振り込んだお金が返ってこない

まで読んだ

656 :デフォルトの名無しさん:2007/02/02(金) 23:01:07
「まで読んだ」ネタは
それを書くより早く読めるレスについてるとなんか痛い

657 :デフォルトの名無しさん:2007/02/02(金) 23:08:58
ごめんね母ちゃんはじめて「まで読んだ」したから

658 :デフォルトの名無しさん:2007/02/03(土) 00:36:04
>>654
別に逃げているわけでは無く、
もともとVC8EEにはプロファイラがついていないのです。
これを使えば解決することは分かっていたので、あらかじめ注釈させていただきました。

情報が足りなかったことは誤ります。
作っているのは所謂ノベルゲームです。
>>654にあるようにプログラムを適当にコメントアウトしていったところ、
サウンドを再生する専用のスレッドがネックになっていることが分かりました。
ここでのSleep間隔を0からそれより大きくした結果(現在は5)、
CPU使用率が20%にまで下がりました^^

ちょっと納得できない部分もあるのですが、とりあえず上手く動くようになりました。
どうもありがとうございます^^

659 :デフォルトの名無しさん:2007/02/03(土) 00:40:25
> もともとVC8EEにはプロファイラがついていないのです。
もろ逃げじゃんw
VC8EEプリインストールモデルなんて聞いたことないしなぁw

学校のPCだけでやってるんだったらもちスレタイ嫁。

660 :デフォルトの名無しさん:2007/02/04(日) 14:18:40
>>658
OS上CPU使用率が100%と表示されていても
本当にCPUの演算ユニットを100%ぶんまわしてるわけじゃないから、
Sleepは0でも良い。1あれば十分。5は多すぎ。

661 :デフォルトの名無しさん:2007/02/05(月) 02:24:45
>>659
ごめん。
意味が分からない。

>>660
windowsのスレッドシステム(自分は2000使ってます)をよく知らないのですが、
メインの方の処理が軽くなると、
コンテキストスイッチが頻発してCPU使用率が異常に上がるのかなぁ。
実行速度は軽くなっているのに、使用率が上がるということは
無駄な処理がすごく増えたってことですよね。。。

あと、5msのSleepは確かに長すぎるかもしれません。
メインスレッドの方がつまってくると、
音飛ぶ可能性ありますね。
このあたりはもうちょっと調整してみます。

662 :デフォルトの名無しさん:2007/02/05(月) 02:31:09
>>661
Waitのない無限ループを持つスレッドがひとつでもあればCPU使用率は100%になる。
そんな当たり前なことも理解できてないようなヤツがいていいスレじゃない。どっか逝け。

663 :デフォルトの名無しさん:2007/02/05(月) 15:12:33
>>662
非HTでシングルコアの場合だけな。

664 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2007/02/06(火) 01:46:39
>>663
デュアル/マルチプロセサは無視か?

>>664
> Wait = Sleep(0) という解釈でいいなら、

よくないだろ。

それは、ともかくコードの断片も示せないなら、エスパー希望の広告を
新聞に載せた方が早いので、ここから立ち去ってくれ。

666 :デフォルトの名無しさん:2007/02/06(火) 02:15:36
>>664
C++の話題じゃないから、662を読んで分からないなら Windows 板へ池

667 :デフォルトの名無しさん:2007/02/06(火) 06:56:43
>>664
処理速度の速いほうがCPU使用率も高くなんのはあたりまえだろ、どっか逝け。

668 :デフォルトの名無しさん:2007/02/06(火) 08:20:29
俺も大体そう思うな

プロファイラがあってもデバッグ版のCPU使用率が低い理由はわからないと思う。
これに関しては私には判りません。
デバッグモードでは何か特殊な待ちがあるんだろか。

たとえばwaveOutWriteなら複数のバッファを渡せるので
音飛ぶ可能性は著しく低く、
バッファが終わるころにメッセージ通知が来るから
それまで何もしないのでCPU使用率を著しく下げることも出来るはず。

ノベルゲームの経験ないから推測だが
ノベルゲームで絶えず処理している状況が存在する理由がわからない。

669 :デフォルトの名無しさん:2007/02/06(火) 11:21:53
デバッグ版ではシステムコールの呼び出しが
増えてたりするからじゃないのん?


670 :デフォルトの名無しさん:2007/02/06(火) 22:06:52
c++のリファクタリングツールは
VisualStudioなら
ref++
Refactor! Pro

emacsで使えるツールはないの?

671 :デフォルトの名無しさん:2007/02/06(火) 22:11:02
http://www.wholetomato.com/forum/topic.asp?TOPIC_ID=3990

リファクタリングツールいろいろ

672 :デフォルトの名無しさん:2007/02/06(火) 22:27:03
http://xref-tech.com/xrefactory/main.html
emacsリファクタリングツールみつけた
試したいけどemacsでc++コンパイルする環境整えるの大変だ

673 :デフォルトの名無しさん:2007/02/07(水) 23:49:30
すみません。これで最後にします。

>>668
サウンドライブラリとして、OpenALを使っているので、
空きバッファがあるかどうか
常に監視する必要があるのです。

確かにwaveOutならその必要はありませんね。

>>669
システムコールかもしれません。


一応テストとして、
・適当な処理+Sleep(0)を繰り返すスレッド
・適当な処理+Sleep(10)を繰り返すスレッド
の二つを作って実行させたのですが
デバッグモード、リリースモードの両方でCPU使用率は100%でした。
(当然か。。。)

件のアプリでは、さらに多くのスレッドといろいろな処理が付加されているので、
どこかになにがしかの待ちが入っているんだと思います。
(共有リソース待ちや、IO待ち?)
感覚としては、スレッド間のリソース待ちが原因では無いかと思いました。
(調べてみるとミキシングスレッドとサウンドデータ供給スレッドが別でした^^)
ちょっとこれ以上は分から無いのですが、
他にやることもあるのでこの件はこれで終わりにしたいと思います。

それでは、スレ汚し失礼しました。

674 :デフォルトの名無しさん:2007/02/10(土) 12:20:00
実行中にブレーク掛けてみて、どの処理が走ってるかみてみたら。
何回かやれば時間食ってる部分が解るだろ。

675 :デフォルトの名無しさん:2007/02/15(木) 00:33:53
>>674
遅れてすみません。
ブレーク掛けてみたのですが、
意味の分からない結果になりました。
なんか、OpenALのバグのような気がします。。。

原因が分かったら報告します。

676 :デフォルトの名無しさん:2007/02/15(木) 09:20:44
ここは上級者が集まるスレです。上級者に質問するスレではありません。

677 :デフォルトの名無しさん:2007/02/16(金) 12:34:00
集まって何すんの?

678 :デフォルトの名無しさん:2007/02/16(金) 12:34:37
書き込んだり、書き込みを読んだりするに決まってるじゃん。

679 :デフォルトの名無しさん:2007/02/16(金) 13:18:05
書き込んだり、書き込みを読んだりして何すんの?

680 :デフォルトの名無しさん:2007/02/16(金) 14:53:13
できることとか、やりたいこと。

681 :デフォルトの名無しさん:2007/03/02(金) 19:46:02
夏時間まで考慮して、タイムゾーンを取得する方法を教えてください。


682 :デフォルトの名無しさん:2007/03/27(火) 02:43:43
boolは何故1バイトも消費するのですか?

683 :デフォルトの名無しさん:2007/03/27(火) 05:01:28
>>682
1バイトとは限らんぞ。処理系依存だ。
VCではint型にダウンキャストされるんじゃなかったっけ?
#かなり昔に仕様書らしきもので読んだ気が。

仮に>>682が使用している環境でboolが1バイト使うとして話を進める。
>>682は1ビットで十分だっていいたいんだろうけど、
メモリの最小管理単位が1バイトだから、最低でも1バイト使わないとだめ。
C言語で言うビットフィールドを使って、ビット単位で管理するのもありだけど
(そうすれば、1バイトで8個のboolを管理できるよな)、それだと管理のための
メモリが必要になるし、速度面で効率的じゃなくなる。

だから、bool型は1ビットじゃないんだ。
もっとも、処理系によってはビット単位で管理してるのもあるかもしれんが。

684 :・∀・)っ-○◎●:2007/03/27(火) 05:05:29
ダウンキャストっていうのかそれ
VC++の最近の実装(っていうかただのtypedef)ではBOOL=charだったような

685 :デフォルトの名無しさん:2007/03/27(火) 05:06:51
>>683
今VC++でsizeof(bool)の値を見たら1だった。

俺はbool型変数はクラスメンバぐらいでしか使わないから、
たとえ1ビットだとしてもアラインメントの影響で恩恵にあずかれないな。

686 :・∀・)っ-○◎●:2007/03/27(火) 05:18:54
vector<bool>とか使うと恩恵があるかも

687 :デフォルトの名無しさん:2007/03/27(火) 06:31:31
boolをvectorなんかに入れて一体何に使えというんだ

688 :・∀・)っ-○◎●:2007/03/27(火) 06:34:33
何だ知らないのか

http://www.scl.kyoto-u.ac.jp/scl/appli/appli_manual/SUNWspro/WS6U2/ja/manuals/stdlib/user_guide/general/5_3.htm

689 :デフォルトの名無しさん:2007/03/27(火) 06:50:59
>>688
そういえばそんなもんもあったな。

690 :デフォルトの名無しさん:2007/03/27(火) 07:13:24
>684のすべてが意味不明

691 :デフォルトの名無しさん:2007/03/27(火) 22:04:00
>>683
速度・効率だけでなく、ビット単位ではポインタとしてメモリアドレスが使えない。

ワードマシンでのchar*みたいにコンパイラが頑張る手もあるが、
bool*だけでなく必然的にvoid*もbool*に合わせなければならず、
void*とbool*だけ他のポインタと異なる大きさになってしまう。
無論規格上は問題ないが、実際問題void*の大きさがほかと異なるなんてやっていられないだろ。

692 :デフォルトの名無しさん:2007/03/27(火) 23:05:56
関数へのポインタとデータへのポインタの大きさが違うなんて
昔は当たり前だったから、なんてことない。

693 :デフォルトの名無しさん:2007/03/27(火) 23:14:25
>691
boolを1bitにするなら、sizeof(bool)をどうする気?

694 :デフォルトの名無しさん:2007/03/27(火) 23:18:46
>>693
1/8

usodakara

695 :デフォルトの名無しさん:2007/03/27(火) 23:21:03
>>693
それ忘れていたorz

>>684
Windows APIでは、typedef int BOOL; typedef char BOOLEAN;
しかしboolとは関係ない。

696 :デフォルトの名無しさん:2007/03/27(火) 23:33:40
> typedef int BOOL; typedef char BOOLEAN;

わけわからん >>MS

ATL::CComPtr::operator&()もわけわからんかった。
凶悪。

697 :・∀・)っ-○◎●:2007/03/28(水) 01:08:39
>>695
そこは固定じゃない。
なんのtypedefかはSDKのバージョンによってもしょっちゅう変わる。

まあ固定長ビット配列ならstd::bitsetなんかが一番効率いいかな。
1ワードの中に複数要素が詰め込めると何かと便利。

698 :デフォルトの名無しさん:2007/03/28(水) 01:20:35
http://msdn2.microsoft.com/en-us/library/aa383751.aspx
実際にヘッダでどうなっているかはともかく、文書化されていることは当てにしていいと思う。

ところでBOOLEANはBYTEだったね、すまん。

699 :デフォルトの名無しさん:2007/03/28(水) 02:12:43
>>691
void* と char* は同じ内部表現である必要がある。 (ISO C++ 3.9.2.4)
そのほかメモリモデルやオブジェクトモデルの定義からも char より
小さい型は存在し得ないと言える。

700 :デフォルトの名無しさん:2007/03/28(水) 02:12:52
BOOL
Boolean variable (should be TRUE or FALSE).

shouldって便利な言葉だな

701 :・∀・)っ-○◎●:2007/03/28(水) 02:30:37
>>698
msdn2〜はVS2005のドキュメント

702 :デフォルトの名無しさん:2007/03/28(水) 02:38:09
>>701
団子ちゃん、流れとは全然関係ない質問があるんじゃが、
団子ちゃんがC++上級者だと家庭して、団子ちゃんは Boost を
1. あー、ごっつい靴だろ?
2. たまに使う。
3. よく使う。
4. もうあなたなしじゃ生きられないの!
5. あー、アレのほげほげは俺がコントリビュートしてんだよ。
の、どれ?

703 :702:2007/03/28(水) 02:39:35
ちなみに俺は、1 だが、それでも自分を C++ 上級者だと思ってる。

704 :・∀・)っ-○◎●:2007/03/28(水) 02:44:25
2かな
ふだんはATL/WTL+STLあと.NET

regexとrandom::mt19937rは便利だね
あとsandboxにあがってたfixed_arrayが便利だから改造して使ってる

705 :デフォルトの名無しさん:2007/03/28(水) 03:06:41
.NEET 使ってんだ。

706 :デフォルトの名無しさん:2007/03/28(水) 07:26:32
>697
おいおい。BOOLの実体がint以外だったことがあるってーの?
WIN16の頃の話じゃねーだろーな。

707 :デフォルトの名無しさん:2007/03/28(水) 09:17:07
>>701
msdn.microsoft.comの時代から698の文書は存在した。
今は英語版のMSDNライブラリオンラインはあちこちmsdn2への転送になっている。

708 :デフォルトの名無しさん:2007/03/28(水) 15:45:05
bool型はC++仕様書ではintと同じバイト数。
でも大手の実装するコンパイラは大抵1バイトしか割り当てないのが普通。
さて、酒飲んで寝るか。もう目が覚めませんように。

709 :デフォルトの名無しさん:2007/03/28(水) 16:11:38
>>708
そんな規定はどこにも無い。

710 :デフォルトの名無しさん:2007/03/28(水) 16:50:25
>>708
嘘吐きはそのまま永眠してなさい。

711 :デフォルトの名無しさん:2007/03/28(水) 18:29:02
1に書いてある内容とまるで裏腹なスレの内容
なんて皮肉だ

712 :デフォルトの名無しさん:2007/03/28(水) 23:37:58
> 我こそはC++プロフェッショナルだという方の書き込みをお待ちしております。

こんなこと書くから、自分でプロだと「思い込んでる奴」ばっかりになるんだよ。

713 :デフォルトの名無しさん:2007/03/28(水) 23:42:49
>>711-712
ここはネタスレなのにお前らときたら…

714 :デフォルトの名無しさん:2007/03/29(木) 16:37:54
>>711-712のような人たちのためのホイホイスレでもあるからいいじゃないか。

715 :デフォルトの名無しさん:2007/03/29(木) 18:52:05
>>711-712は本気で自分がC++上級者だと思って
このスレに降臨なされたのですか

716 :デフォルトの名無しさん:2007/03/30(金) 11:42:32
スレタイに騙されて覗いてみたら期待してたのと違ったんで
怒りに任せて書き込んでみたんでしょう。

スレ勃てから2年半もたってノコノコやってきて今更な事を書く人ってのは
そういうもんです。

717 :デフォルトの名無しさん:2007/03/30(金) 14:17:33
>>714-716
ここはネタスレなのにお前らときたら…

718 :デフォルトの名無しさん:2007/03/30(金) 14:26:29
もうちょっとためてから反復しないとネタとして面白くないです。

719 :デフォルトの名無しさん:2007/03/30(金) 21:56:50
団子ちゃん以外の人は >>702 で言うと何番?

720 :デフォルトの名無しさん:2007/03/30(金) 22:02:40
特定の部分なら3だが全般的には2だな

721 :・∀・)っ-○◎●:2007/03/31(土) 00:22:23
全部使ってる奴がいたらそれはそれで気持ち悪いぞ

MPLとかSpiritとか、いいかげんにしる

722 :デフォルトの名無しさん:2007/03/31(土) 06:16:03
俺4。上級者じゃないけど。MPLとかは流石に可読性的に使えないがな。

723 :デフォルトの名無しさん:2007/03/31(土) 17:01:03
MPLとPreprocessorとSpiritとPhoenixとXpressiveと
LambdaとuBLASとgraphとfilesystemを全部使うアプリを
testでテストするやつこそが4だな。

724 :デフォルトの名無しさん:2007/03/31(土) 22:33:03
どういう処理をしようとして全部必要になるんだろうか……

725 :デフォルトの名無しさん:2007/04/04(水) 13:19:51
環境非依存で、ミリ秒単位でsleepさせる方法はありませんか?

726 :デフォルトの名無しさん:2007/04/04(水) 14:16:24
>>726
ない。

特定のCPU等に依存していいならなんらかの方法があるだろうが、
どのみちほとんどマシン語のコードになる。

727 :デフォルトの名無しさん:2007/04/04(水) 14:49:56
>>727
ですよね。

728 :デフォルトの名無しさん:2007/04/04(水) 19:01:43
>>727
大丈夫か

729 :デフォルトの名無しさん:2007/04/04(水) 20:00:16
>>729
注:私の有意義な発言に対し自分の理解不足を棚に上げ煽り、1行レス
で返す方が多いようですが、そのような方はスレの皆様を混乱させるだけでなく
スレの雰囲気を崩しかねないのでお黙り下さい
また質問者は回答者に知識を披露する場を与える貴重な存在なので、
質問者を見下した回答、あまりにも儀礼を欠いた回答も厳重に禁止いたします。
忙しい中、少ない時間の合間を縫って質問しに来てるわけですので、
その辺ご承知下さい。なお、当方が質問に対して有意義な答えであると
判断した方には評価いたしますので各自よく調べ、よく考え正確な回答をするように。

730 :デフォルトの名無しさん:2007/04/04(水) 23:31:15
まずい餌だな。3点

731 :デフォルトの名無しさん:2007/04/07(土) 08:44:22
>>731
死ねよクズが

732 :デフォルトの名無しさん:2007/04/07(土) 16:54:40
>>733
死ねカス

733 :デフォルトの名無しさん:2007/04/07(土) 16:55:12
>>732
お前が死ねカス

734 :デフォルトの名無しさん:2007/04/07(土) 17:02:47
729 名前:あぼ〜ん[あぼ〜ん] 投稿日:あぼ〜ん

735 :デフォルトの名無しさん:2007/04/07(土) 18:59:56
>>731-733
ありきたりのパターン。2点

736 :デフォルトの名無しさん:2007/04/07(土) 22:37:50
かといってこんなことに新鮮味を追求されるのもアレだな

737 :デフォルトの名無しさん:2007/04/10(火) 18:46:19
絶対値を求める関数が他の言語では一つしかないのにCではabsとfabsの二つが存在する理由を教えてください。

738 :デフォルトの名無しさん:2007/04/10(火) 19:16:00
その質問をこのスレでする理由を教えてください。

739 :デフォルトの名無しさん:2007/04/10(火) 22:43:33
>>737
> 絶対値を求める関数が他の言語では一つしかない

Fortran なんか4個もあるぞ。(w

iabs(整数) => 整数
abs(実数) => 実数
dabs(倍精度) => 倍精度,
cabs(複素数) => 実数

740 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2007/04/11(水) 00:27:51
ここまでの話を総合すると、rubyが一番スマートだな。

742 :デフォルトの名無しさん:2007/04/11(水) 21:36:45
>>741
というと ruby は絶対値をマイナス値で返す nabs 一個のみとかそんな感じ?

743 :デフォルトの名無しさん:2007/04/11(水) 23:27:22
オーバーロードしてるから見た目上一個やん

744 :デフォルトの名無しさん:2007/04/12(木) 04:39:04
>>743
マイナスの最大値でオーバーフローするものしかないってこと?

# 戻り値が unsigned なら大丈夫だけど。

745 :デフォルトの名無しさん:2007/04/12(木) 11:07:54
>>737
実行速度を上げるため

746 :デフォルトの名無しさん:2007/04/12(木) 22:35:50
>>744-745
釣りですか、ご苦労様です。

747 :デフォルトの名無しさん:2007/04/12(木) 22:59:30
直観が「突っ込み所だ」と告げたはいいが、スレタイがスレタイだけに
具体的に突っ込んでボロ出す羽目になったらどうしようってのがちょっぴり不安で、
結果こんな感じに落ち着きました、という感じのレスだな。

748 :デフォルトの名無しさん:2007/04/13(金) 23:38:12
>>747
>>747

749 :デフォルトの名無しさん:2007/04/14(土) 02:31:47
たとえば負数が1の補数な処理系では、
INT_MINを放り込んでも、オーバーフローしないよ。

750 :デフォルトの名無しさん:2007/04/14(土) 04:29:20
そうだね。帰っていいよ。

751 :デフォルトの名無しさん:2007/04/14(土) 09:06:05
馬鹿じゃないの?

752 :デフォルトの名無しさん:2007/04/14(土) 09:08:20
泣くなよ

753 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2007/05/18(金) 20:30:24
ワラタ

756 :デフォルトの名無しさん:2007/05/18(金) 21:39:41
>>754
そうだよ
ちなみにexp(10.0f)とすればfloat版を選べる

757 :デフォルトの名無しさん:2007/05/21(月) 02:39:50
まさかとは思ったが

ここも隔離スレだったか


758 :デフォルトの名無しさん:2007/05/21(月) 02:45:16
>>757
全然そんなことないから、ここから出て行かないでね♪

759 :デフォルトの名無しさん:2007/05/25(金) 03:24:06
>>21
いまさらながら
const string 上級者="俺";
のが上級者っぽいな。

760 :デフォルトの名無しさん:2007/07/01(日) 15:07:07
class 上級者;
typedef 俺 上級者;

761 :デフォルトの名無しさん:2007/07/01(日) 16:31:11
>>760
#define 上級者 ナルシスト
をお忘れですよ。

762 :デフォルトの名無しさん:2007/07/05(木) 17:48:21
大抵のコンパイラでC99はスイッチをつけないとコンパイルできないのは何故?


763 :デフォルトの名無しさん:2007/07/05(木) 18:45:42
C++のコンパイラ?
C99がC++に取り込まれるのはC++0x(たぶん09)からだよ。

764 :デフォルトの名無しさん:2007/07/05(木) 20:03:32
C++かアセンブリ言語どっちが難しいですか?

765 :デフォルトの名無しさん:2007/07/05(木) 20:43:18
C++

766 :デフォルトの名無しさん:2007/07/05(木) 21:05:20
アセンブリは面倒なだけで難しいのとはまた違う
技術書を読む大変さはあるけどなー

767 :デフォルトの名無しさん:2007/07/06(金) 21:10:24
マクロアセンブラならまあいける

本当にただのニーモニック→機械語変換だとアドレスの管理を全部自分でやらないといけないから死ねる

768 :デフォルトの名無しさん:2007/07/07(土) 00:21:56
それアセンブラって言わないと思うが...

769 :デフォルトの名無しさん:2007/07/07(土) 00:56:53
DEBUG.EXEだな
あれのアセンブラ機能は貧弱だったな
それでもcom形式ぐらいならなんとか書けちゃったりするが

770 :デフォルトの名無しさん:2007/07/07(土) 12:02:34
FEDCBA98

771 :デフォルトの名無しさん:2007/07/11(水) 12:32:08
何の16進かと思ってググったらゲーム改造かよ。
何にしろバイナリ書き換えは趣味の域でなきゃやりたくないな。

772 :デフォルトの名無しさん:2007/07/22(日) 20:44:27
C++上級者(笑)

773 :デフォルトの名無しさん:2007/07/22(日) 20:52:46
三(笑)

                ( *´ω`)ムシャムシャ
                つi'"':
                 `、:_i'
| ┌┐
│ ││             ││   若干食べられてしまったが
| ││             ││   >>772はC++より安く見えることがわかる
| ││             ││
└────────────
 C++上級者(笑)      >>772

774 :デフォルトの名無しさん:2007/09/24(月) 07:47:59
defineの代わりにconstを使うよう推奨されているのに、コンパイラのソースを見ると
大量にdefineが使われているのはなぜ???

775 :デフォルトの名無しさん:2007/09/24(月) 09:54:14
もともとCで書かれていたか、
実はCとしてコンパイルするようになっているか、
書いた人間がconst推奨を知らなかったか。

776 :デフォルトの名無しさん:2007/09/24(月) 12:36:23
Cと共用なんだろ。
何を悩む必要がある

777 :デフォルトの名無しさん:2007/09/24(月) 19:44:30
>>774
錯覚が目

778 :デフォルトの名無しさん:2007/09/28(金) 00:10:08
>>774
システムのベンダとユーザは事情も、従うべきルールも違う。
システムヘッダの真似してアンダースコアで始まる名前を使うような人大杉。

引数に渡す定数を参照させるだけのために、
オブジェクトのリンクを強要するDLLなんかありえないし、
他の言語とリンクさせるときや、バイナリ互換性が問題なら、
定数の具体的な値をはっきり公開するしかない。

それに、Cでは配列サイズにconst整数を使えない。


779 :デフォルトの名無しさん:2007/09/28(金) 01:31:32
constって言ったって、ヘッダで初期化子付きの定義を与えるんだから、
DLLなんて関係ないけど、ほかは合っているや。

780 :デフォルトの名無しさん:2007/09/28(金) 03:04:35
>>constって言ったって、ヘッダで初期化子付きの定義を与えるんだから、
プレーンCモードでコンパイルされたときに実体が増殖し放題で
リンクエラーになるからDLLベンダがそれをやったら配慮不足だ。
よく分かってないハード屋寄りのユーザとかが目を回すからな。

このスレ的にはC++コンパイラだとそれができるっていうのは大事だけどな。


781 :デフォルトの名無しさん:2007/09/28(金) 10:10:17


782 :デフォルトの名無しさん:2007/10/11(木) 01:31:51
const だと余計にメモリ消費するからヤなんじゃないの?

783 :デフォルトの名無しさん:2007/10/12(金) 23:21:57
staticにすらば、アドレス参照とかしなければ実体は取り除かれるんじゃないの?
コンパイラの能力にによるだろうけど

784 :デフォルトの名無しさん:2007/10/13(土) 01:50:27
>>783
C++ では const つけた名前空間スコープのオブジェクトはデフォルトで
内部リンケージになる。 static は要らない。

785 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/01/22(火) 16:22:42
インテルコンパイラとgccだとやっぱり最適化はインテルの方が上?

789 :デフォルトの名無しさん:2008/01/22(火) 18:18:26
上。特に、オブジェクト間最適化は凄い。

790 :デフォルトの名無しさん:2008/02/24(日) 17:30:31
オブジェクト間最適化って何?

791 :デフォルトの名無しさん:2008/02/24(日) 18:03:39
リンクの段階で最適化かけるんじゃないの

792 :デフォルトの名無しさん:2008/03/20(木) 10:54:39
それならVC8も負けてないぜ。
リンク時間の長さがそれを証明してくれている。

793 :デフォルトの名無しさん:2008/03/20(木) 11:48:43
pgi使え

794 :デフォルトの名無しさん:2008/07/31(木) 23:39:38
http://pc11.2ch.net/test/read.cgi/tech/1215510861/124

 おまけに、C++でメタプログラミングって、ボケてんのか。
 いつまでたっても 「C with Classes」の領域から進化しないものをw。
 まさか、テンプレートを持ち出さないよな。
 

 C何チャラっとぃうのを見ると虫唾が走るんだけれど。

795 :デフォルトの名無しさん:2008/08/01(金) 04:42:42
書籍スレは相変わらず
自尊心に能力が追いついていかない子の溜まり場なんだな・・・。

796 :デフォルトの名無しさん:2008/08/01(金) 10:58:08
×書籍スレ
○プログラム板

797 :デフォルトの名無しさん:2008/08/01(金) 12:51:00
>>791
リンカー無しじゃなかったか?
確かGCCのリンカーで代用するようになってた気がするぞ。

798 :デフォルトの名無しさん:2008/08/31(日) 13:12:08
int main(void){
 return 0;
}
のreturn 0の0ってどこで使われるの?
シェルから読めるの?

799 :デフォルトの名無しさん:2008/08/31(日) 13:16:35
通常、読めます。bsh系なら$0、csh系なら$statusかな。

800 :デフォルトの名無しさん:2008/08/31(日) 22:25:51
MS-DOS、WindowsコンソールアプリならErrorLevel

801 :デフォルトの名無しさん:2008/08/31(日) 22:30:09
WindowsのGUIアプリだと確か捨てられるんだよな

802 :デフォルトの名無しさん:2008/08/31(日) 22:31:22
>>801
それでも欲しければ、GetExitCodeProcess

803 :デフォルトの名無しさん:2008/09/07(日) 15:22:14
俺上級者。なんでも聞いて。

804 :デフォルトの名無しさん:2008/09/25(木) 01:58:01
質問: gccなら一応これでやりたいことが出来るんだが

#include <iostream>
#include <typeinfo>

template <typename X> struct wrap { X val; wrap(const X x=X()) : val(x) {} };
template <typename X> wrap<X> make_wrap(const X &x) { return wrap<X>(x);}
template <typename X> void print_typeid(const wrap<X> &x, const char *name) {
std::cout << "typeid(" << name << ")=" << typeid(X).name() << std::endl;
}
template <typename X, typename Y> struct operator_lshift { typedef typeof(X()<<Y()) result_type; };
template <typename X, typename Y>
wrap<typename operator_lshift<X,Y>::result_type>
//wrap<typeof(X()<<Y())> // gcc 3.4.4でinternal error
operator <<(const wrap<X> &x, const wrap<Y> &y) { return make_wrap(x.val<<y.val); }

int main()
{
wrap<short> s; wrap<long> l; wrap<int> i;
print_typeid(s, "s");
print_typeid(i, "i");
print_typeid(l, "i");
print_typeid(s<<i, "s<<i");
print_typeid(l<<i, "l<<i");
}

805 :デフォルトの名無しさん:2008/09/25(木) 01:59:18
質問1)
typeidが使えない標準環境はどうすればいい?

質問2)
operator_lshift構造体を介さずに直接書くと
gcc 3.4.4でinternal errorが出るのだが
これは誰が悪い?

質問3)
operator<< だけでなく、たくさんの演算子(>>,&,|,+,-など)について
結果の型をテンプレートパラメータ typename Xとtypename Yから
導出したいんだが、もっと楽な方法はない?

806 :デフォルトの名無しさん:2008/09/25(木) 02:00:16
すまん、質問を訂正

(誤)typeidが使えない標準環境はどうすればいい?
(正)typeofが使えない標準環境はどうすればいい?

807 :デフォルトの名無しさん:2008/09/26(金) 01:14:25
804は、XとYにデフォルトコンストラクタが定義されていないとコンパイルできないので修正
template <typename X, typename Y> struct operator_lshift { typedef typeof((*(X*)0)<<(*(Y*)0)) result_type; };
gccならこれでOKっぽい

808 :デフォルトの名無しさん:2008/10/01(水) 22:08:50
http://pc11.2ch.net/test/read.cgi/tech/1188688416/615

ちょっとこれ評価してよ


809 :デフォルトの名無しさん:2008/10/01(水) 22:52:24
自分で評価しろ、ボケ

810 :デフォルトの名無しさん:2008/10/01(水) 22:55:23
上級者なのにそんなこともできねのかよw


811 :デフォルトの名無しさん:2008/10/13(月) 19:43:52
 | 三_二 / ト⊥-((`⌒)、_i  | |
 〉―_,. -‐='\ '‐<'´\/´、ヲ _/、 |
 |,.ノ_, '´,.-ニ三-_\ヽ 川 〉レ'>/ ノ 
〈´//´| `'t-t_ゥ=、i |:: :::,.-‐'''ノヘ|        
. r´`ヽ /   `"""`j/ | |くゞ'フ/i/        
. |〈:ヽ, Y      ::::: ,. ┴:〉:  |/         できない事に何か問題でもあるのか?
. \ヾ( l        ヾ::::ノ  |、
 j .>,、l      _,-ニ-ニ、,  |))
 ! >ニ<:|      、;;;;;;;;;;;;;,. /|       ___,. -、
 |  |  !、           .| |       ( ヽ-ゝ _i,.>-t--、
ヽ|  |  ヽ\    _,..:::::::. / .|       `''''フく _,. -ゝ┴-r-、
..|.|  |    :::::ヽ<::::::::::::::::>゛ |_   _,.-''"´ / ̄,./´ ゝ_'ヲ
..| |  |    _;;;;;;;_ ̄ ̄   |   ̄ ̄ / _,. く  / ゝ_/ ̄|
:.ヽ‐'''!-‐''"´::::::::::::::::: ̄ ̄`~''‐-、_    / にニ'/,.、-t‐┴―'''''ヽ
  \_:::::::::::::::::::::::::::::::::::::::::::::::::::::::\ /  /  .(_ヽ-'__,.⊥--t-⊥,,_
\    ̄\―-- 、 _::::::::::::::::::::__::/  /  /   ̄   )  ノ__'-ノ
  \    \::::::::::::::`''‐--‐''´::::::::::/  / / / ̄ rt‐ラ' ̄ ̄ヽヽ
ヽ  ヽ\   \:::::::::::::::::::::::::::::::::::::/      /   ゝニ--‐、‐   |
 l   ヽヽ   \:::::::::::::::::::::::::::::::/           /‐<_  ヽ  |ヽ



812 :デフォルトの名無しさん:2008/10/13(月) 20:34:54
上級者は実生活で十分に自尊心が満たされていて、
ネットで名無しに褒めてもらう必要なんかまったく無いから、
頭の悪い人が悔し紛れに挑発なんかしても動いちゃくれないんだよね。

813 :デフォルトの名無しさん:2008/10/13(月) 21:10:28
上級者が唸るようなトピックを持って来てくれ

814 :デフォルトの名無しさん:2008/10/14(火) 18:45:28
>>808 何故、今頃?っていう感じですかねぇ。
私が勤務している某光学機器メーカーでは
15年前にこの手のエンジン開発は出つくして
しまっている。



815 :デフォルトの名無しさん:2008/10/14(火) 20:06:25
>>814
基本技術は色褪せることなく必ず必要になる。だからこういう書物は必要なのだ、

816 :デフォルトの名無しさん:2008/10/15(水) 06:29:47
>>815
必要なのは同意だが、もっと早い時期に出版されていても
良かったはず。
この手の技術の需要はかなり昔からあったと思うが・・・

817 :デフォルトの名無しさん:2008/11/15(土) 12:19:40
新しいC++の仕様とか扱ってる書籍って
お勧めありますか?

818 :デフォルトの名無しさん:2008/11/16(日) 00:41:18
>817
ttp://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2798.pdf

819 :デフォルトの名無しさん:2008/11/25(火) 21:44:03
>>818
817じゃないけどありがとう

820 :デフォルトの名無しさん:2008/11/29(土) 22:28:30
いや、これ規格の draft だよ?
まだ draft なのに書籍もへったくれもあるかよ、くらいのつもりで書いたのに。
まあまず最初に参照すべき文章ではあるだろうけどさ。
↓辺りを読んで、ある程度概要つかんでからの方がいいかもしれない。
ttp://ja.wikipedia.org/wiki/C%2B%2B0x

821 :デフォルトの名無しさん:2008/12/15(月) 01:03:55
>>820
ありがとう.型推論とか導入予定なのか....wktkすぐる

822 :デフォルトの名無しさん:2008/12/15(月) 02:11:37 ?2BP(22)
韓国がサーバー攻撃してきたっぽい
vipperが凸したんだけど韓国以外のIPがはじかれて困ってんだけどなんか良い手ない?
串とかはもう試したけど田代しか無理だからあまり効果がなくってね
ここが現行スレ
http://jfk.2ch.net/test/read.cgi/news4vip/1229266966/

823 :デフォルトの名無しさん:2008/12/15(月) 18:25:19
韓国に攻撃されてるぞwwww7
http://jfk.2ch.net/test/read.cgi/news4vip/1229319433/

世界フィギュア選手権で浅田真央が韓国を破り金賞に輝く

韓国人が腹いせに2ちゃんねるを攻撃

vipper今夜19:00 反撃凸 ←いまここ★

目標
http://www.dcinside.com/

Dcinside(ディーシーインサイド)は、韓国の電子掲示板サイトである。
デジタルカメラの情報を提供する専門サイトとして有名になりつつ、だんだん人が集まり韓国最大のコミュニティーサイトとなった。 韓国の2ちゃんねるともいえるサイト。
2004年に2ちゃんねるのサーバをDoS攻撃したことで有名。


824 :デフォルトの名無しさん:2008/12/17(水) 14:28:41
結局おまえらDcinsideの奴ら同類か

825 :デフォルトの名無しさん:2008/12/18(木) 02:35:19
反日韓国人、反日中国人、嫌韓厨&嫌中厨、は同レベルだよ、昔から。

日本文化に興味のある外国人の数は、言うまでもなく中韓文化へのそれよりずっと多いのだけど、
その人達が、日本への興味ゆえに「嫌韓厨&嫌中厨の行動だけ」見つけることが結構あって、
「なぜこの日本人達はこんなに差別的で、韓国や中国を中傷するのか?」とか言ってたりする。

こっちは当然、韓国や中国の反日教育・活動の存在を、慣れない英語で説明するわけだけど、
いくら説明したところで、目の前の嫌韓厨&嫌中厨は明らかに「反論」ではなく「中傷」「攻撃」をしてるわけで、
ちゃんと説明できてようやく「同レベル」というところまで持って行けるだけなんだよね。
ただ興奮したいだけの嫌韓厨&嫌中厨は、この「味方から失っていく」怖さがわかってない。

826 :デフォルトの名無しさん:2008/12/18(木) 08:56:11
さすが、C++の上級者は言うことがちがう

827 :デフォルトの名無しさん:2008/12/18(木) 12:16:50
>>825 目の前の嫌韓厨&嫌中厨は明らかに「反論」ではなく「中傷」「攻撃」をしてるわけで、

被害妄想乙

828 :デフォルトの名無しさん:2009/01/15(木) 20:41:30
結局おまいらModernC++は理解しているのか?
しているならの有用性を400文字以内で教えてくれ!

829 :デフォルトの名無しさん:2009/01/15(木) 21:03:59
>>828
すんごい。

830 :デフォルトの名無しさん:2009/01/15(木) 21:21:44
>>828
まずお前から

831 :デフォルトの名無しさん:2009/01/15(木) 22:13:11
さすがの俺も830はおかしいと思う

832 :デフォルトの名無しさん:2009/01/16(金) 01:20:25
まさか4文字で教えるとは

833 :デフォルトの名無しさん:2009/01/16(金) 20:03:14
400文字というのがNUL文字含むかどうか悩む

834 :デフォルトの名無しさん:2009/01/16(金) 23:24:48
NUL文字って何?

835 :デフォルトの名無しさん:2009/01/17(土) 01:02:57
>>834
初心者向けのスレへ帰れ。

836 :デフォルトの名無しさん:2009/01/17(土) 07:37:28
>>835
皮肉もわからんとはな

837 :デフォルトの名無しさん:2009/01/17(土) 11:21:53
>>836
まさかとは思うけど、
「NULLの書き間違いだろ?」と書いてるつもりなの?

本当に初心者?

838 :デフォルトの名無しさん:2009/01/17(土) 12:54:51
妖怪ぬるりひょんの仕業じゃ。くわばらくわばら

839 :デフォルトの名無しさん:2009/01/17(土) 14:15:42
>>837
NULってCでの定数じゃねーか
NULL文字だろ?w

840 :デフォルトの名無しさん:2009/01/17(土) 14:26:48
>>839
逆だ。NULLはc/c++の定数で、NUL文字はAsciiで規定されている文字コード名だ。


841 :デフォルトの名無しさん:2009/01/17(土) 14:33:04
>>839
いいから、初心者向けのスレへ帰れ。

842 :デフォルトの名無しさん:2009/01/17(土) 14:36:07
なんか香ばしいのがいるな
839みたいな奴が業界に入ると思うと虫唾が走る

843 :デフォルトの名無しさん:2009/01/17(土) 14:48:47
どっちも存在するっていうか
NULとnull文字じゃ少し意味が違う


844 :デフォルトの名無しさん:2009/01/17(土) 14:58:32
なんかずっと初心者スレよりしょぼい話題を繰り返してるなおまえらwwwwwwww

845 :デフォルトの名無しさん:2009/01/17(土) 17:00:48
まあ、そうだな。

846 :デフォルトの名無しさん:2009/01/17(土) 18:28:03
それをやさしく受け止めるのが上級者のたしなみ

847 :デフォルトの名無しさん:2009/01/22(木) 14:10:31
じゃあ初心者っぽいネタで上げてみるか
上級者の皆方相手をしてくれ
if(int a=func(),b=a*i){}
while(int a=func(),b=a*i){}
for(int a=0;int b=a/func();int c=d){}
とか
static union
{
   int a;
   struct
   {
      int b,c;
   }
}
とか
class Child:Parent
{
public:
   using Parent::Method;//プライベート継承
};
とか使ってる奴いる?(グローバル変数になるので真ん中の
static無名共同体に関しては使うことはまず無いとは思うが)

848 :デフォルトの名無しさん:2009/01/22(木) 17:30:30
>>847
コード並べて
>とか使ってる奴いる?
で他人に通じるとでも思っているのか。

最初のは、if/while/for の内部で変数宣言してるのがポイントなのか?

849 :デフォルトの名無しさん:2009/01/22(木) 20:46:04
>>848
そうそう。
言葉足らずで済まんかった。
言いたいことは>>848が書いてるとおりだよ。

850 :デフォルトの名無しさん:2009/01/22(木) 20:59:22
・内部の宣言は等号と間違えることがあるからあまり使ってない。せいぜいcast系ぐらいかね。
・クラス内クラスはアクセス管理に便利。重宝してます。
・プライベート継承よりも包含&インライン関数の方が良いと思う。

851 :デフォルトの名無しさん:2009/01/23(金) 12:41:08
>>849
局所変数はしょっちゅう使う。特に for。

852 :デフォルトの名無しさん:2009/01/23(金) 13:06:12
コンパイルできないのがあるじゃん


853 :デフォルトの名無しさん:2009/01/23(金) 14:18:40
>>850
インナークラスは使うけど無名構造体や無名共同体ってどうよ?
>プライベート継承よりも包含&インライン関数の方が良いと思う。
なじぇに?

>>851
forはよく見るけど別のってあまり見なくない?

個人的に>>847に書かれている機能を使っているのコードを
ほとんど見たことが無い。自分では便利だから割と使うんだけどね。
あとC++って他にメンバー変数へのポインタなんてマイナーな機能が
あるけどアレに関しては見たことも使ったこともないわ。


854 :デフォルトの名無しさん:2009/01/23(金) 15:47:52
>>853
>メンバー変数へのポインタ
C だと offsetof を使う場面。
複数のメンバ変数に値を突っ込むのに
ループを廻したいときとか、
取り得る範囲が決まっている値から
呼び出すメンバ関数を変えるとか。

855 :デフォルトの名無しさん:2009/01/23(金) 21:55:00
>プライベート継承よりも包含&インライン関数の方が良いと思う。
○汎用性が高い
 - 同じ名前で一部だけ流用とかも簡単
 - 名前の変更も問題なし
 - NVIにするのも簡単
○余計な関数を導入するリスクが少ない
 Traitsにするのならちゃんと切り離した方が良いと思う。

×オブジェクトがちょっと大きくなる(pimplにしてもポインタ分余計になる)
×コードが面倒

といったところかね。


>forはよく見るけど別のってあまり見なくない?
だからdynamic_castとかでは普通に使うって。MC++Dで紹介されてるよ。


856 :デフォルトの名無しさん:2009/01/23(金) 23:24:12
>>855
ゴメンifに関しては使うわ。でも他人が
使っているのを見ることがほとんど無いのよ。

継承に関してはなるほどね。
でも、その用途だったら初めからプライベート継承要らなくない?
実際プライベート継承が有用な時はthisを渡してオーバーライド
を使うときや、templateでのシグニチャの移譲用だと思うけど。

857 :855:2009/01/24(土) 02:25:07
どっかで見たと思ったら、C++狂 Sutter & AlexandrescuのC++ Coding Standardsに概要あったわ。

○呼び出し側コードに影響を与えず、柔軟性に富む
○コンパイル時の独立性が高く、コンパイル時間も短い
○予期しない振る舞いを抑制する
○適用範囲がより広い
○優れた強固さと安全性
○複雑性と脆弱性がより小さい

非public継承を使うのは
・仮想関数をオーバーライドする必要がある
・protectedメンバーへのアクセスが必要
・メンバー変数よりも前に生成&後に破壊
・仮想基本クラスに配慮する必要がある
・空の基本クラスの最適化
・制御されたポリモーフィズムが必要
ぐらいだって。

858 :デフォルトの名無しさん:2009/01/24(土) 02:28:00
自分の場合、最もprivate継承を使う機会はboost::noncopyableを使うときだな。

859 :デフォルトの名無しさん:2009/01/24(土) 13:37:51
C++の上級者はWindows GUIアプリケーションの開発でMFCを使いますか?

860 :デフォルトの名無しさん:2009/01/24(土) 13:53:21
 GUIは、C♯.NETで作って、C++で速度を求める部分をDLLとして作ってC♯から呼び出す。

861 :デフォルトの名無しさん:2009/01/24(土) 14:13:31
C++/CLIでWPF

862 :デフォルトの名無しさん:2009/01/24(土) 14:18:21
C++&wxWidgets

863 :デフォルトの名無しさん:2009/01/24(土) 14:27:41
Qt !

864 :デフォルトの名無しさん:2009/01/24(土) 14:57:59
そういうことを決めるのは上級者ではないことが多いと思う。
ともかく案件による。配布の問題もあるし。

865 :デフォルトの名無しさん:2009/01/24(土) 15:07:41
オラ、おまいらここ行ってマイナーな奴を楽しんで来い。
http://pc11.2ch.net/test/read.cgi/tech/1065627704/

866 :デフォルトの名無しさん:2009/01/24(土) 15:46:39
誰も反応してくれないけど、boost::any用のMC++D風マルチメソッドを実装してみました。
(実装)ttp://cvs.sourceforge.jp/view/siki/siki/src/holder.hpp?view=markup
(使い方)ttp://cvs.sourceforge.jp/view/siki/siki/src/test/test_holder.cpp?view=markup
一応、boost::any以外でも使えるように汎用化しています。
#下半分がboost::anyをこのマルチメソッド用に最適化したクラスね。

まだ使い込んでないから何とも言えないけど、なんかヤバそうなところある?


867 :デフォルトの名無しさん:2009/01/24(土) 15:48:46
>>866
さみしいからて出張してくんなよ、素にもどれ

868 :デフォルトの名無しさん:2009/01/24(土) 16:02:24
スレ違いじゃないからいいじゃない。あっちは誰も相手にしてくれんのよ。
けっこう適当に作ってるので、変な落とし穴にはまってないかけっこう不安なんだよね。


869 :デフォルトの名無しさん:2009/01/24(土) 16:30:56
なんで反応が無いんだろうねぇ。
こういうの好きそうな人っていそうだけどね。
みんな今忙しいのかな。

ちなみに俺はそういうのは Excel とかで管理するから興味ない。
バリデータ書くにも楽だし。

870 :デフォルトの名無しさん:2009/01/24(土) 16:51:54
Excel(笑)

871 :デフォルトの名無しさん:2009/01/24(土) 17:10:21
>>868
それはなんなの?

872 :デフォルトの名無しさん:2009/01/24(土) 17:32:32
マルチメソッドという便利ツール。実行時にオブジェクトの種類に応じて実行するメソッドを変更してくれる。
あらかじめ関数オブジェクトを作って登録しておく必要があるのが面倒だけど。

struct TestAnyMethod0 {
 // transfer member function
 string operator()(any& arg1) { return MultiMethod::apply<string>(*this, arg1); };
 // multi method
 string operator()(int value) const { return string("int"); };
 string operator()(double value) const { return string("double"); };
};
bool m00(MultiMethod::entry<std::string, TestAnyMethod0, boost::any, int>());
bool m01(MultiMethod::entry<std::string, TestAnyMethod0, boost::any, double>());

int main() {
 TestAnyMethod0 m0;
 any m(m0);
 any a(0);
 BOOST_CHECK_EQUAL(boost::any_cast<std::string>(MultiMethod::apply(m, a)), "int");
 a = 0.0;
 BOOST_CHECK_EQUAL(boost::any_cast<std::string>(MultiMethod::apply(m, a)), "double");
}

873 :デフォルトの名無しさん:2009/01/24(土) 17:35:03
ただのポリモーフィズムとどう違うの?

874 :デフォルトの名無しさん:2009/01/24(土) 17:35:14
あっとこれを忘れてた。
int main() {
 TestAnyMethod0 m0;
 any m(m0);
 any a(0);
 BOOST_CHECK_EQUAL(m(a), "int");
 BOOST_CHECK_EQUAL(boost::any_cast<std::string>(MultiMethod::apply(m, a)), "int");
 a = 0.0;
 BOOST_CHECK_EQUAL(m(a), "double");
 BOOST_CHECK_EQUAL(boost::any_cast<std::string>(MultiMethod::apply(m, a)), "double");
}

875 :デフォルトの名無しさん:2009/01/24(土) 17:36:10
バグってた…… ×m(a) -> ○m0(a)



876 :デフォルトの名無しさん:2009/01/24(土) 17:39:23
>873
普通の多態だと引数の実行時多態ができないけど、これだとできる。
さらに関数オブジェクト自体の多態もできるように作ってみた。


877 :866:2009/01/24(土) 17:46:30
boost::anyって、データを処理しようとするとデータの中身が何かを知らないといけないから、
けっこう不便なんだよね。
boost::variantだと(visitorを活用して)中身を知らなくても処理を行えるようにしているので、
これをboost::anyに応用できないか、と思って拵えたのが>866


878 :866:2009/01/24(土) 17:48:51
>872はバクってるな……面倒なのでサンプルはこっち見て。
(使い方)ttp://cvs.sourceforge.jp/view/siki/siki/src/test/test_holder.cpp?view=markup


879 :デフォルトの名無しさん:2009/01/31(土) 16:14:29
>>878
みんなの現場はそういうの使わしてくれるん?
うちはboostも無理っぽいのだけど

880 :デフォルトの名無しさん:2009/02/05(木) 19:44:31
マ板でやれ

881 :デフォルトの名無しさん:2009/02/05(木) 23:04:39
最終的にboostを目指すんだ

882 :デフォルトの名無しさん:2009/05/02(土) 20:43:33
STLはC++に第三者が追加したものだから、そのSTLなら学習しても
頭髪の心配は不要ですか。

883 :デフォルトの名無しさん:2009/05/03(日) 12:16:59
最近は彼もM字後退が著しいからなぁ。

884 :デフォルトの名無しさん:2009/06/07(日) 16:26:24
sleep(0)って具体的にどのような動作をするのですか?

885 :デフォルトの名無しさん:2009/06/07(日) 17:53:03
>>884
強制的にコンテクストスイッチを起こす

886 :デフォルトの名無しさん:2009/06/07(日) 18:52:08
>>885
と、信じられて使われている間違った方法。

887 :デフォルトの名無しさん:2009/06/07(日) 20:57:46
Windows3.1のようなノンプリエンプティブなOSには必須だったけどな

888 :デフォルトの名無しさん:2009/06/07(日) 21:38:34
Win32でのSleep(0)ならば>>885のとおり。

889 :デフォルトの名無しさん:2009/06/15(月) 10:52:13
VC++6.0上で、DDKを使ってIDEの情報を取得しようとしてますが、
winnt.hとntddk.hのマクロがコンフリクトしてしまいます。
#ifndefとか#pragma onceを使わないで回避できる方法を知っているエラい方いましたら、教えて下さい。

890 :デフォルトの名無しさん:2009/06/15(月) 10:57:00
>>889
いったん、#undefする

891 :デフォルトの名無しさん:2009/06/15(月) 10:59:49
>>890
すみません。衝突するマクロやtypedefがいっぱいあるので、
#undefも使わない方法でお願いします。

892 :デフォルトの名無しさん:2009/06/15(月) 11:01:02
ソースを分ける。

893 :デフォルトの名無しさん:2009/06/15(月) 11:06:29
>>892
分割は考えてみました。
必要な部分だけ切り取ってローカルでインクルードを試みましたが、
あまりにも数が多すぎて、途中で断念しました。

甘い考えですが、簡単に回避できる方法って無いですか?


894 :デフォルトの名無しさん:2009/06/15(月) 11:10:55
>>893
ソースのほうを、それぞれのヘッダファイルを使う部分で分けた?
それしかないでしょ。

895 :デフォルトの名無しさん:2009/06/15(月) 11:45:49
>>894
使う部分で分けたのですが、ntddk.hの中でインクルードしているヘッダでも
衝突したりしているので、手間がかなりかかってました。

分割する方法しかなさそうですね。。。orz
ありがとうございました。


896 :foi.americanprogress.org:2009/08/17(月) 17:49:34
自動焼人 ★ = 自動保守 ◆KAWORUKOFI = 自動保守#K9K?_D[L

名言集 その2
『お前が規制系キャップ取れるか審査してやるよ』

http://yutori7.2ch.net/test/read.cgi/news4vip/1249830540/ ID:PVAf+dux0 = 自動焼人 ★

> 36 :以下、名無しにかわりましてVIPがお送りします [sage] :2009/08/10(月) 00:31:30.02 ID:PVAf+dux0
> >>33
> キャップとコテハンの違いは何?

> 46 :以下、名無しにかわりましてVIPがお送りします [sage] :2009/08/10(月) 00:38:05.34 ID:PVAf+dux0
> >>45
> その回答では落ちるなw
> 答えは教えないがw

> 50 :以下、名無しにかわりましてVIPがお送りします [sage] :2009/08/10(月) 00:41:29.96 ID:PVAf+dux0
> Q.キャップとコテハンの違いは何?
> A.2ちゃんねるのボランティアの登録制度

> それがお前の答えかw

> 52 :以下、名無しにかわりましてVIPがお送りします [sage] :2009/08/10(月) 00:43:10.06 ID:PVAf+dux0
> まぁ、どうせ正解が出るわけもないし、次の問題。
> 君が思う面白いスレはどんなの?
----------------------------------------------
この自動焼人 ★メールマガジンの配信停止をご希望される方は
http://qb5.2ch.net/test/read.cgi/sec2chd/1250169591/
にて自動焼人 ★までご連絡ください

897 :デフォルトの名無しさん:2009/09/17(木) 15:02:28
やあ自称上級者の皆さん

898 :ぅゅ ◆e6.oHu1j.o :2009/09/19(土) 20:59:39
やぁこんばんわ

899 :ぅゅ ◆e6.oHu1j.o :2009/09/20(日) 08:24:10
かそっています

900 :デフォルトの名無しさん:2009/09/20(日) 09:02:39
そうだね糞コテが消えたら過疎じゃなくなるよね

901 :デフォルトの名無しさん:2009/09/23(水) 19:46:42
かそりすぎです

902 :デフォルトの名無しさん:2009/09/30(水) 02:49:16
Intel iccで、ベクトル化しやすいコードの書き方を教えてください。
コンパイル時のレポートを見て、ベクトル化されなかった行を書き替えること
によって、ベクトル化できるようにしているのですが、
長い数式を2つ3つに分けたり、書き順を変えたりすると、ベクトル化されたりするのですが、
ベクトル化される、されないの条件がいまいちわかりません。



903 :デフォルトの名無しさん:2009/09/30(水) 07:02:13
iccは様々な状況においてベクトル化を施してくれる優秀なコンパイラだが
それ故どんな状況においてベクトル化を施してくれるかは多様化し過ぎていて把握できんのだ。

904 :デフォルトの名無しさん:2009/10/27(火) 09:39:48
碌な上級者が居ませんね

905 :デフォルトの名無しさん:2009/10/27(火) 09:47:32
碌マンは名作

906 :デフォルトの名無しさん:2009/11/10(火) 07:27:46
クラステンプレートを使うとき、ヘッダファイルに本体まで書かなきゃいけない糞仕様を何とかしてくれ


907 :デフォルトの名無しさん:2009/11/10(火) 13:27:13
>>906
ソースファイルに本体書いてヘッダファイルに include すればいいじゃん。」

908 :デフォルトの名無しさん:2009/11/13(金) 22:10:47
>906
Comeau C++ で export 使ってください。

909 :デフォルトの名無しさん:2009/12/12(土) 18:53:43
ここは上級者隔離スレですか?

910 :デフォルトの名無しさん:2009/12/18(金) 18:29:40
上級者の皆、これに答えろ!

C++相談室 part76 -
   25: 動的削除子の実装の仕方を分かりやすく教えてください。

http://pc12.2ch.net/test/read.cgi/tech/1260972593/

911 :デフォルトの名無しさん:2009/12/18(金) 19:10:52
>>910
マルチです。無視してください。

912 :デフォルトの名無しさん:2009/12/18(金) 19:13:23
荒らしの掃き溜めスレでマルチを華麗に無視するなんて格好いい!

913 :デフォルトの名無しさん:2009/12/18(金) 22:17:20
動的削除子ってshared_ptrのやつ?

914 :デフォルトの名無しさん:2009/12/18(金) 23:36:21
struct HolderBase {
virtual ~HolderBase() {}
virtual void destroy() = 0;
};
template<typename T, typename D>
struct Holder: HolderBase {
T *p;
D deletor;
virtual void destroy() { deletor(p); }
};
template<typename T>
struct Ptr {
Holder *holder;
template<typename D> Ptr(P *p, D d): holder(new Holder<T, D>{p,d}) {}
~Ptr() { holder->destroy(); delete holder; }
};
上級者スレだからこれでいいよね

915 :デフォルトの名無しさん:2009/12/18(金) 23:39:27
訂正
Holder *holder;
→ HolderBase *holder;

916 :デフォルトの名無しさん:2009/12/18(金) 23:40:20
さすが上級

917 :デフォルトの名無しさん:2009/12/18(金) 23:43:48
更に訂正
template<typename D> Ptr(P *p, D d): holder(new Holder<T, D>{p,d}) {}
→ template<typename U, typename D> Ptr(U *p, D d): holder(new Holder<U, D>{p,d}) {}

918 :デフォルトの名無しさん:2009/12/19(土) 16:41:48
正規表現エンジン作ったことある?

919 :デフォルトの名無しさん:2009/12/19(土) 18:21:50
おーとまとんうんこ

920 :デフォルトの名無しさん:2009/12/21(月) 01:39:46
>918
PEGの方が簡単なのでお勧め。

921 :デフォルトの名無しさん:2009/12/21(月) 01:41:02
>913 boost::anyの方が参考になる。こっちの方が簡単な実装だし。

922 :デフォルトの名無しさん:2009/12/21(月) 04:50:24
>>920
簡単・・・・?

923 :デフォルトの名無しさん:2009/12/30(水) 10:57:49
>>910
型消去 (Type Erasure)を使って、deleteの委譲を隠蔽するように実装しているんだよ。


924 :デフォルトの名無しさん:2010/01/15(金) 04:52:04
C++ってほんとにごちゃごちゃしてるな

925 :デフォルトの名無しさん:2010/01/15(金) 10:45:27
C からの派生である以上、全権をプログラマに委任する姿勢も
受け継がざるを得ないからなあ。

926 :デフォルトの名無しさん:2010/01/15(金) 11:52:34
そこでobjective-cの出番

927 :デフォルトの名無しさん:2010/01/17(日) 15:06:45
>>924
使う人次第だけどな。


928 :デフォルトの名無しさん:2010/01/18(月) 03:33:04
使う人によって
ごちゃごちゃしたり
すっきりしたり
するのであれば
それは欠陥と言って良い

929 :デフォルトの名無しさん:2010/01/18(月) 03:42:54
ごちゃごちゃした書き方する奴が出てこない言語は存在しないから、
これはもう、言語というものがごちゃごちゃしてるということだ。

930 :デフォルトの名無しさん:2010/01/18(月) 03:46:45
その反論は予想してた

どんなスマートな言語でも
ごちゃごちゃ書こうと思えば書ける

しかし下手な人がなんとなく書いても
ごちゃごちゃになる可能性が低い方が
良い言語だと思う

931 :デフォルトの名無しさん:2010/01/18(月) 04:18:11
それは、良さ=無能への優しさ、という考えの場合だね。
そういう言語は引き替えに、有能な人間のパフォーマンスと、出来上がるブツのパフォーマンスを
犠牲にしていることが多い。何というか日本社会的な「良さ」だよね。

932 :デフォルトの名無しさん:2010/01/18(月) 04:36:18
>有能な人間のパフォーマンスと、出来上がるブツのパフォーマンスを犠牲にしていることが多い

そう思うのは君の勝手だが
そんな君がかわいそうだと思った

933 :デフォルトの名無しさん:2010/01/18(月) 04:55:43
> そんな君がかわいそうだと思った
うん、結果の出せない人や、根拠を言えないのに自信だけある人には
よく哀れまれたり見下されたりする。

934 :デフォルトの名無しさん:2010/01/18(月) 13:14:45
人間の思考というものが本来混沌としているので、言語が論理的で簡潔になるほど
人間にとっては非直感的になるか、言語の表現力が制限される場合が多い。

935 :デフォルトの名無しさん:2010/01/18(月) 14:07:31
みんなC++の本質はboost::labmdaにあると思ってるよね?

936 :デフォルトの名無しさん:2010/01/18(月) 14:08:14
タイプミスった。lambda

937 :デフォルトの名無しさん:2010/01/18(月) 19:01:15
lambada

938 :デフォルトの名無しさん:2010/01/19(火) 03:47:38
spiritだろJK

939 :デフォルトの名無しさん:2010/01/19(火) 03:58:31
ネタだろうが変態ライブラリあげんな滓

MPLとFusionに決まってる

940 :デフォルトの名無しさん:2010/01/19(火) 04:20:43
いいえ、preprocessorです。

941 :デフォルトの名無しさん:2010/01/19(火) 13:44:36
noncopyableだろ。

942 :デフォルトの名無しさん:2010/01/19(火) 14:14:01
どう考えてもcompressed_pairしかない

943 :デフォルトの名無しさん:2010/01/19(火) 22:49:33
makeしたら負け

944 :デフォルトの名無しさん:2010/01/20(水) 03:19:27
ここまでprogress_displayタンの自演

945 :デフォルトの名無しさん:2010/01/20(水) 06:16:56
_____
|reject|
. ̄.|| ̄     オワタ┗(^o^ )┓三 ←progress_display
  ||           ┏┗   三
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

946 :デフォルトの名無しさん:2010/01/20(水) 23:17:03
こんなのって定義できなかったっけ?

template<class T>
class H
{
template<int function(const T&)>static void F(const T& d);
}




947 :デフォルトの名無しさん:2010/01/20(水) 23:21:03
template<class T>
class H
{
template<int function(const T&)>static void F(const T& d);
}

を.cppに定義するとしたら

template<class T>
template<int function(const T&)>
static void H::F<T>(const T& d){...}

だっけ?

948 :デフォルトの名無しさん:2010/01/23(土) 19:06:37
コンパイルしてみれば良いじゃん。

949 :デフォルトの名無しさん:2010/01/29(金) 23:09:14
次スレもC++上級者の特徴について語り合うよ

950 :デフォルトの名無しさん:2010/01/30(土) 06:36:50
マ板でやれカス共

951 :デフォルトの名無しさん:2010/01/30(土) 06:43:14
#ifdefでWindowsの32ビット版と64ビット版とLinuxの32ビット版と64ビット版で
場合分けをしたいのですが、どのように書けばよいのでしょうか?

952 :デフォルトの名無しさん:2010/01/30(土) 15:51:13
>>951
ここの「定義済みマクロ」のとこを参照。x86(-64)限定だけど。
http://homepage1.nifty.com/herumi/prog/gcc-and-vc.html

183 KB [ 2ちゃんねる 3億PV/日をささえる レンタルサーバー \877/2TB/100Mbps]

取りに行ったけどなかった。次は一時間後に取りに行くです。
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
名前: E-mail (省略可) :


read.cgi ver 05.0.7.8 2008/11/13 アクチョン仮面 ★
FOX ★ DSO(Dynamic Shared Object)