C++上級者が集まるス ..
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
URLリンク(d.hatena.ne.jp)
同じようなこと考えてる人はいるんだなぁ.
そうそう,メモリ不足は実行時にしかわからないから,
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:デフォルトの名無しさん
05/04/08 02:46:27
もともとはJava屋だが、今度独立しようと思ってる。
Javaは、独立向きではない。
C++が独立に向いてると思う。
C++自体はほぼ使いこなせるようになったが、どうも言語自体だけでなく
ネットワークとか制御とかの専門知識が必要らしいが、その辺の情報
教えてもらえんかな。C++で独立するには言語以外何が必要か。
190:デフォルトの名無しさん
05/04/08 03:26:52
言語だけでは全く使い物にならない。
191:デフォルトの名無しさん
05/04/08 08:45:43
後はコミュニケーション能力さえあれば何とかなるでしょ。
つーか、言語以外に何がとか言ってる時点で独立は難しそうだけど。
192:デフォルトの名無しさん
05/04/08 14:43:11
>>189
俺の経験談
とにかく本屋でC++のコーディングがのってる、制御系(ネットワーク系でもいいが)
の本とか雑誌とか買えるだけ買ってひたすら勉強しろ。(深い理解は後回しでよい。
仕事の時、相手が何言ってるかわかる程度に勉強しておけ)
そのあと、自分のパソコン(高性能)を持ち込んで無償でやるといって中小企業の
現場でコーディングを黙々とやれ。そのとき、うるさく質問するとアウト。
最小の質問ですむように、本と雑誌でひたすら勉強しておくこと。
これ、口で言うほど簡単じゃないがな。あと、理解ある中小企業の協力が必要。
193:デフォルトの名無しさん
05/04/08 14:53:12
>>189
私の勤める会社からでよければ仕事紹介するよ。
C++の案件もJavaの案件も転がってるけど、C++の方が制御系でJavaは業務系だね。
紹介は兎も角、業務系ならWebアプリの知識とDBの知識が必須になってくるし、
制御系ならUnix系OSの知識が前提となってくるかな。
194:デフォルトの名無しさん
05/04/08 16:31:16
適当にぐぐったら出てきたんだがvodafne702NKのsymbian osってなんか楽しそう
195:デフォルトの名無しさん
05/04/20 00:53:51
ドコモもC++だよ。
196:デフォルトの名無しさん
05/05/01 21:13:36
>194
そうだね。SymbianOSは(OS部分も、アプリ部分も)かなり気合入ったC++だから、
C++やオブジェクト指向で飽きるほど遊びたいなら、FOMA開発に参加するといいね。
# try〜catchもSTLもないけどね。・・でも大域ジャンプあるし、Symbian標準ライブラリあるし。
197:デフォルトの名無しさん
05/05/09 08:25:06
leaveがtry〜catchの変わり。> Symbian
198:デフォルトの名無しさん
05/05/24 03:53:20
auto_ptrはがんがん使っても問題ないですか?
199:デフォルトの名無しさん
05/05/24 05:06:17
>>198
おう、がんがん使ってもよいぞ。コンテナに入れて、sort掛けてもモーマンタイ。
200:デフォルトの名無しさん
05/05/24 12:59:13
>>196
># try〜catchもSTLもないけどね。・・でも大域ジャンプあるし
最悪じゃねーかw
201:デフォルトの名無しさん
05/05/24 13:27:37
>>199
嘘つけ。COAPって知らないのか。
auto_ptr入れたコンテナをソートすると、中身が滅茶苦茶に壊れる。
202:デフォルトの名無しさん
05/05/24 13:49:36
auto_ptr使ったこと無い。
new使う機会ない。
これ普通だよね?
203:デフォルトの名無しさん
05/05/24 15:46:55
>201
いや199は明らかに分かってて書いてるでしょ
204:デフォルトの名無しさん
05/05/24 16:31:12
>>202
んなこたぁーない。
実務に携わった事がないか、単に勉強不足。
205:デフォルトの名無しさん
05/05/24 16:42:32
みんな人が悪いよね。
206:デフォルトの名無しさん
05/05/24 17:01:20
頭でしょ
207:デフォルトの名無しさん
05/05/24 17:15:33
要するに、2chの書き込みごときに騙されないようになるほど
勉強しろって事だと、俺は受け取った。
208:デフォルトの名無しさん
05/05/24 18:41:37
>>204
ちなみにnew使わなきゃならない場面ってどんなとき?
制限があってSTL使えないとか
使ってるAPIの仕様の為とか
そんなもんなんじゃないの?
209:デフォルトの名無しさん
05/05/24 18:45:30
俺はresize()しないのであればstd::vectorを使わずにnew []とboost::scoped_arrayを使うよ。
210:デフォルトの名無しさん
05/05/24 22:45:19
>>208
多態とか気軽にやるならポインタで持っておきたいしなあ。
newは使うよ。
無くてもいいんだろうけど。
>>209
サイズ固定ならboost::arrayでええんちゃう?
211:デフォルトの名無しさん
05/05/24 23:24:31
昔から疑問だったんだけど、
boost::shared_ptrとか使うと
完璧ではないけど、これでdeleteの義務から
開放されるよね。こんな簡単に管理出来るのに
JavaやC#がいちいちヒープを走査すガベージコレクション
という方法をとってるのはなぜ?
212:デフォルトの名無しさん
05/05/24 23:30:49
boost使うヤツはヘタレ。
C++上級者を名乗るなら、
あまりの高度さゆえに誰も使いこなせない自作の
クラスライブラリを使うのが常識だろ?
213:デフォルトの名無しさん
05/05/24 23:38:01
>>211
循環参照とか断片化とか考えるのがまんどらけだから
214:デフォルトの名無しさん
05/05/24 23:41:41
>>212
それは手ぇ抜く技術が初級レベルな能無しの行動であって
上級者のそれではありません。
215:デフォルトの名無しさん
05/05/25 03:48:50
自分で組めないから他人が組んでくれたライブラリ使っているだけなのに、
「手ぇ抜く技術」といって自分を誤魔化し慰めるのが上級者。
216:デフォルトの名無しさん
05/05/25 03:51:39
>>211
TLのガーベッジコレクションに頼るな。
勘で deleteするのが上級者。
特に delete にするか、delete[] にするかを的確に判断するのは
研ぎ澄まされた直感を要する。
217:デフォルトの名無しさん
05/05/25 04:26:15
>>215はコンパイラから自作する神
218:デフォルトの名無しさん
05/05/25 05:07:08
上級すぎて神の声が聞こえてそうだな、215はw
219:デフォルトの名無しさん
05/05/25 07:12:44
そういうレベルの人はすべてC言語でなんとかするだろ。
220:デフォルトの名無しさん
05/05/25 07:37:35
そういうレベルの人はすべて機械語でなんとかするだろ。
221:209
05/05/25 07:40:14
>>210
いや、要素数は実行時に決まるからboost::arrayは無理。
222:デフォルトの名無しさん
05/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:デフォルトの名無しさん
05/05/25 11:55:08
boostってSTLと比べてそんなにえーのんか?
224:デフォルトの名無しさん
05/05/25 16:18:39
アマな俺にはSTLだけでお腹いっぱいです。
225:デフォルトの名無しさん
05/05/25 17:24:08
俺は初めスマートポインタとlexical_castに惹かれて使い出した。
226:デフォルトの名無しさん
05/05/25 19:01:55
>>223
C++ってCと比べて……いやこの例えは変か。
OpenGLってstdioに比べてそんなにえーのんか?
227:デフォルトの名無しさん
05/05/25 19:37:17
比べるのが良くわからん。
boostはSTLと補完しあう関係だろ?
228:デフォルトの名無しさん
05/05/26 00:09:24
>>227
そういうことか。
229:デフォルトの名無しさん
05/05/26 16:44:00
finallyの存在意義について教えたもえ
230:デフォルトの名無しさん
05/05/26 17:28:41
>>229
returnしようがthrowしようが何事も無かろうが実行されなければいけない後処理コードを記述する時どうしてる?
そしてその方法が面倒だと思ったらそこにfinallyの存在意義がある。
231:デフォルトの名無しさん
05/05/26 23:42:46
クラス(構造体)のデストラクタに書いちゃう…とか。
ものにもよるけど結構よぉやる。
232:デフォルトの名無しさん
05/05/27 09:48:22
関数内ローカルなクラスのデストラクタに書くのはよくやる……というほどやらないけど。
233:デフォルトの名無しさん
05/05/27 14:26:05
>>222
boost::array
234:デフォルトの名無しさん
05/05/27 14:36:06
MSVCの__m128の__declspec(intrin_type)って何?
235:デフォルトの名無しさん
05/05/27 16:27:37
インtまいん(う゛ぉいd)
{
cおうt << ”逝ってよし”;
れつrん 0
}
236:デフォルトの名無しさん
05/05/27 16:59:35
とはいえ、プロも歳をとれば油断する。
大事故になりかねない。
若い奴でも調子に乗ればとんでもない殺人を犯すことになる。
プロでも酒を飲めば3人の高校生の命を奪ってしまう最近の交通事故のように
なることもありうるのだ。
JR西日本のような列車事故は焦ったために起きたことだ。
焦りに焦ってバグで人を殺すようなプログラミングをすることは許されない。
私はC++を医療器や航空機に使うことは反対だ。
C++は使い方を誤ると誤って患者や旅客の命を奪いかねない言語だからだ。
だから人の命を奪う恐れが高いC++は普及させないほうがいいと思っている。
時間とかければいいとはいえ、顧客は容赦しない、
「他の言語でやすくできるならなぜC++では安くできないのか?」
と問いつめてくるのだ。そうなると大抵の企業はものを「お客様は絶対的な神様だ」と称して
ものを速く完成させようとすると。すると徹夜残業が増える。徹夜残業しても間に合わないので
C++にしかできないとんでもないスパゲティコードが生まれる。
そしてC++のコードが世に増えれば増えるほど無駄に徹夜する時間が増えてしまう。
C++のコードを貰い受け、引き継ぎ、苦労する後継者が増える。
そして焦りが人の命を奪う。
だから、私はC++だけで作られた自動操縦システムを開発することに反対する。
JR西日本のような列車事故を二度と起こさないためにも。
少なくともC++に厳重なルールとC++の規格が統一されるまでは
C++は普及させないほうがいいだろう。人々の命を救うためにも。
237:デフォルトの名無しさん
05/05/27 17:04:05
そこでダイソン先生ですよ。
238:デフォルトの名無しさん
05/05/27 19:10:19
C++の規格は統一されているわけだが。
239:デフォルトの名無しさん
05/05/27 19:16:32
規格に従っているコンパイラがひとつもないという
240:デフォルトの名無しさん
05/05/27 20:22:04
>>236
もう「ここまで読んだ」ネタ考えるの面倒なんだよ!
241:234
05/05/27 21:13:16
ねえー誰か答えてよぅ!
242:234
05/05/27 23:32:12
教えてくれるまで永遠にアゲ
243:デフォルトの名無しさん
05/05/27 23:38:29
>>242
2000年1月1日のビル・ゲイツの寝言。
244:デフォルトの名無しさん
05/05/28 00:01:28
>>236
じゃあ、車は走ると凶器になるので馬車にしようか。
245:デフォルトの名無しさん
05/05/28 00:01:38
どうも、ビル・ゲイツです。
246:デフォルトの名無しさん
05/05/28 00:13:11
馬車も十分凶器になるから人力車で
247:デフォルトの名無しさん
05/05/28 00:25:16
>>234
上級すぎてMSDNにものってねーし。
248:デフォルトの名無しさん
05/05/28 00:28:03
まぁ、C++使うと品質管理がままにならなくなるような低級な会社は
C++なんか使うべきでないわな。
249:デフォルトの名無しさん
05/05/28 01:42:57
>>233
boost::arrayは要素数固定ですよ。
250:デフォルトの名無しさん
05/05/28 02:50:42
>>222
URLリンク(web.archive.org)
ここの117に俺が書いたのがある。
そのまま使うには拙い(たとえば、要素は代入可能でなければならない)けど、
実装の参考にはなるかもしれん。
251:222
05/05/28 10:59:17
>>250
thx。
やはり初期化をちゃんとやると色々面倒ですね。参考にします。
ちょっと調べてみましたが、
URLリンク(lists.boost.org)
この一連のスレッドでも同種の話があったようです。
大分車輪の再発明的なネタのようで。
URLリンク(alps.comp-phys.org)
こういうのとか。
252:デフォルトの名無しさん
05/05/29 09:41:59
multiarrayとvectorの違いがよくわかりません
253:デフォルトの名無しさん
05/06/03 21:53:14
D言語こそが孤高でありC++は下僕言語である
スレリンク(prog板)
254:デフォルトの名無しさん
05/06/05 00:10:37
下僕かどうかはともかく高級言語じゃないよな
255:デフォルトの名無しさん
05/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:デフォルトの名無しさん
05/06/06 16:12:58
これは例の、通称「C++の最も奇妙な構文」ってやつかな。
Hoge<Fuga> hoge((Fuga())); // Fuga()をさらに括弧で包む
ってやれば大丈夫じゃない?
257:デフォルトの名無しさん
05/06/06 23:07:03
>>255
C++では関数宣言と読めるものは全てそう読むと決まっているから。
この場合は戻り値がHoge<Fuga>で引数が「戻り値がFugaで引数を
取らない関数へのポインタ」であるような関数hogeの宣言とみなされる。
258:デフォルトの名無しさん
05/06/08 21:08:03
ほにゃぁ。ほにゃぁ。ほにゃぁ。ほにゃぁ。
259:デフォルトの名無しさん
05/06/09 01:36:32
new で領域を確保したのですが、OSでメモリ使用量を見ると、newで確保した時点ではなく、
実際に使用が開始された時点で確保されているようなのですが、そういうものなのでしょうか?
OSはSuse Linux、gcc4.0.0、メモリ使用量はtopコマンドで見ました。
260:デフォルトの名無しさん
05/06/09 11:31:32
>>259
MMUのページフォルト例外内でアロケートするってことか?
そんなことしてなんのメリットがあるんだろうか。
261:デフォルトの名無しさん
05/06/09 11:40:30
>>259
スタック領域ってリンク時にケテーイして、起動時に確保されるし。
つか、初心者質問?
262:デフォルトの名無しさん
05/06/09 20:44:34
スタックなん?
263:デフォルトの名無しさん
05/06/09 21:36:19
ヒープでねぇの?
264:デフォルトの名無しさん
05/06/10 15:38:14
誰だよ >>261 なんて呼んだの。
265:デフォルトの名無しさん
05/06/10 19:14:00
釣られすぎ。
266:0b11111111
05/06/12 12:30:28
>>256
即レスthx。ビンゴでした。やっぱ上級者は違うね。修行してくる。
267:デフォルトの名無しさん
05/06/14 17:05:01
>>260
コンストラクタで初期化されてないオブジェクトがnewされて、
過去にdeleteされた領域で再利用可能なものがなくて、
既に確保されたヒープのページにも確保できなければ、
/dev/zeroがmmapされた新たなページが確保されて、
このページはアクセスされてから物理memoryを確保することになります。
近代的なOSでは極普通のやり方です。
268:デフォルトの名無しさん
05/07/07 08:10:38
経過時間を計測したいのですが、プロセッサ時間依存の方法ですと、マルチスレッドのプログラムの
経過時間がうまく計測できません。clock()以外で、ミリ秒まで取得する方法を教えてください。
269:デフォルトの名無しさん
05/07/07 08:27:23
>>268
環境依存。各OS向けのプログラミング質問スレへどうぞ。
270:デフォルトの名無しさん
05/07/07 09:53:37
C++ってクラスのインクルード必須だからコンパイル遅くなりますよね。
それをクラスをクラスとだけcppファイルに教えといて、インクルードせずにクラスを使う方法ってありましたよね?
あれ、なんていうやつでしたっけ?
271:デフォルトの名無しさん
05/07/07 10:11:18
pimplの事?
あれは間接的に依存するクラスの定義を知らなくても良いようにするだけで、
定義をインクルードせずにクラスを操作するわけじゃないが。
272:デフォルトの名無しさん
05/07/07 10:18:50
超サンクス>>271
それ使ってコンパイル速くしようかな、と思って。
インクルードが少なければ速くなる筈。
273:デフォルトの名無しさん
05/07/07 10:55:20
目的と手段がかみ合ってない気がする。
274:デフォルトの名無しさん
05/07/07 11:31:59
じゃぁ、pimplって何の目的のための文法なんですか?
って初心者質問だけど、初心者はpimplのこと知らないと思うのでこちらのスレでお願いでつ。
275:デフォルトの名無しさん
05/07/07 11:56:13
>>274
コンパイル速度を上げるためではなく、依存関係を減らし隠蔽性を上げるためだとは思わんか?
276:デフォルトの名無しさん
05/07/07 12:51:40
proxyサーバを「自分の身元をバラさず特定の場所へアクセスするための物」
だと思ってる人よりは「かすってる」と思う。
277:デフォルトの名無しさん
05/07/07 13:51:18
ものには複数の使い方があって良いとは思わんのか?
278:デフォルトの名無しさん
05/07/07 14:03:58
>>275
依存関係を減らし隠蔽性を上げたいし、ヘッダーとかヘッダー同士の依存も減らしたいでつ。
279:デフォルトの名無しさん
05/07/07 15:27:32
>>274
コンパイル依存性の解消 + 例外安全性の向上
280:デフォルトの名無しさん
05/07/07 15:40:04
>コンパイル依存性の解消
これって絶対コンパイル速度に関係あると思ふ。
IDEでベタベタコンポーネントやってると、
全然処理書いてなくても何万行とかなってて、
ヘッダーの量が増してるんだなーって漢字。
281:デフォルトの名無しさん
05/07/09 13:59:16
FtpGetFileでファイルはダウンロードできるのですが、
フォルダをダウンロードできなくまいっています。
FTPGetFile("hoge/FolderName", "C:\hoge\FolderName",・・・・)
どこがよくないのでしょうか?よろしくお願いします。
282:デフォルトの名無しさん
05/07/09 14:59:42
>>281
スレ違い。非標準関数のことなら該当スレで聞いてくれ。
といいつつ、ftpでは普通、フォルダをダウンロードすることはできない。
必要なら、ftpクライアント側でフォルダ内のファイルを一つ一つ指定してダウンロード汁。
283:デフォルトの名無しさん
05/07/09 19:29:17
以下の文は、何故駄目なのですか?
void *s = CString("abc");
delete s;
284:デフォルトの名無しさん
05/07/09 19:35:18
>>283
型情報がないとデストラクタが起動できない。
285:デフォルトの名無しさん
05/07/09 20:47:08
>284
マスター284。素晴らしい!
286:デフォルトの名無しさん
05/07/09 21:20:23
てかnewしてないのにdeleteすんなyo
287:デフォルトの名無しさん
05/07/11 09:19:40
>>283
まず型が違う。
CStringはポインタ型ではない。
288:デフォルトの名無しさん
05/07/12 23:51:33
マスターと呼べるのは284だけだな。
289:デフォルトの名無しさん
05/07/13 06:22:08
じゃ俺はスマタね
290:デフォルトの名無しさん
05/07/13 11:10:58
じゃ俺はフェ(ry
291:デフォルトの名無しさん
05/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
05/07/17 18:55:58
上級者の皆様C++で>>291を構造化しませう。
293:デフォルトの名無しさん
05/07/17 18:58:47
>>283
>void *s = CString("abc");
は、
void *s = &CString("abc");
ちゃうか?
294:デフォルトの名無しさん
05/07/17 20:51:56
>>293
ここの誤爆?
スレリンク(tech板)l50
295:デフォルトの名無しさん
05/07/17 23:13:29
ああ、CStringはコンストラクタじゃないのか。
296:デフォルトの名無しさん
05/07/18 13:21:21
俺はC++上級者だ。カッコイイだろ?
297:デフォルトの名無しさん
05/07/18 16:26:59
10年かけてやっと自惚れることができる程度に
C++を扱えるようになったと思ったら
既にJavaとC#に追い抜かれていて超カッコイイ。
298:デフォルトの名無しさん
05/07/18 17:43:56
C++で己惚れることができるなら、
JavaもC#も簡単に覚えられるだろうと。
それ、カコイイ。
299:デフォルトの名無しさん
05/07/18 21:02:14
C++も JavaもC#も、おいらについてこれない。
困ったもんだ。
300:デフォルトの名無しさん
05/07/18 21:46:04
>>299
あなたは、なんて名前の言語?
もしかして「俺流」。
301:デフォルトの名無しさん
05/07/18 21:51:04
じゃんけんしませんか〜?^^
302:デフォルトの名無しさん
05/07/21 19:25:29
パー
303:デフォルトの名無しさん
05/07/22 00:20:33
おい、おまいら!
アセンブラも書けないようじゃC++を極めることは不可能なんだよぉ!
304:デフォルトの名無しさん
05/07/22 00:28:43
おいらが一番!
おまいらは所詮パダワン。
305:デフォルトの名無しさん
05/07/23 20:42:25
goto 304;
306:デフォルトの名無しさん
05/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:デフォルトの名無しさん
05/08/05 18:18:11
>>306
ローカル変数でも使えるよ。
308:デフォルトの名無しさん
05/08/05 23:09:07
getlineの前にcin.sync();やっとけって言われたんですが、
実際、それでうまく動くんですけど、syncの説明がよくわかりません。
ほんとにこれでいいんでしょうか?
309:デフォルトの名無しさん
05/08/05 23:10:09
>>306
void * p = (void*)new Resource();
delete (Resource*)p;
多分。cキャストする俺はマヌターかな?
310:デフォルトの名無しさん
05/08/05 23:11:41
>>309
もちろんCのマスターね。
C++のマスターなんて言っちゃ駄目よ。
311:デフォルトの名無しさん
05/08/05 23:23:17
でもC++のキャストって長ったらしくてウザス
312:デフォルトの名無しさん
05/08/05 23:30:37
でもCのキャストは目立たなくて困る。
313:デフォルトの名無しさん
05/08/06 00:48:30
そもそも306や309が何を言いたいのかが良く分からない
314:デフォルトの名無しさん
05/08/06 02:11:58
>>311
長ったらしいことに意味があるわけで。
315:デフォルトの名無しさん
05/08/06 13:38:50
>>313
>>306 はshared_ptrの便利さを伝えたかったんだろう。
他は何をしたいのかよくわからん。
316:デフォルトの名無しさん
05/08/06 16:20:54
>309はマヌケー
317:デフォルトの名無しさん
05/08/10 04:48:35
いいね。C++式のキャストを使える処理系の人は。
うちじゃ、キャストどころか、namespaceも使えねぇ。
templateはネストできねぇ。
例外なんて概念ない。
C++標準ライブラリもついてこねぇ。
STLなんかありえねぇ。
すごいよ組み込み系マイナープロセッサ用クロスコンパイラは。
318:デフォルトの名無しさん
05/08/10 04:54:54
>>317 ノレネサス(目立)?
319:デフォルトの名無しさん
05/08/10 08:18:47
>>317
つテンプレートライブラリ自作
320:デフォルトの名無しさん
05/08/10 14:40:25
>>317
単にEC++なだけでは?
321:デフォルトの名無しさん
05/08/10 19:44:05
ボクってかわいそう、という気持ちでいっぱいの人は、
一言で済ませられる物も得てして冗長に膨大に書き連ねるものですよ。
322:デフォルトの名無しさん
05/08/14 14:50:03
class A
{
int a=1 ;
} ;
のように出来ない仕様になっている理由を教えてください。
323:デフォルトの名無しさん
05/08/14 16:38:44
>>322
初期化のタイミングが曖昧にならないように。
コンストラクタでできることを宣言でやる必要はなかろう。
定数ならstatic const intでいいだろうし。
324:デフォルトの名無しさん
05/08/14 22:23:02
>>322
構造体の延長だからさ。
325:デフォルトの名無しさん
05/08/15 01:23:42
じゃあ、クラスも構造体みたいにメンバ変数とかのアライメントを
合わせるのがいいの?もしそうなら、publicとかprivateとか
グループ化してから合わせるのがいいの?
メンバ関数とかはどう扱うの?
326:デフォルトの名無しさん
05/08/15 01:45:36
>>325
そんなことは構造体でやっとくれ。
クラスは、上級者しか使いこなせないよ。
327:デフォルトの名無しさん
05/08/15 02:19:22
>>325
とりあえず適当にクラス作って
メンバ変数とかメンバ関数のアドレスでも見てみれば?
>publicとかprivateとか
>グループ化してから合わせるのがいいの?
実行速度を気にしてるならpublic/privateは関係ないでしょ。
これはコンパイル時における各メンバへのアクセス可否の指定であって
実行時にこの情報を参照することは何も関係ないんだから。
328:デフォルトの名無しさん
05/08/15 07:16:19
>>325
Cの構造体と違って、C++のクラスには暗黙のメンバが挿入されるから
短絡的な考えは休むに似たり。
329:デフォルトの名無しさん
05/08/16 01:05:58
アラインメントを要するメンバは構造体で外部定義してクラスには参照を定義するとか
330:デフォルトの名無しさん
05/08/16 07:30:20
おまえら「クラス」と「構造体」の俺様定義を説明してからしゃべれよ。
331:デフォルトの名無しさん
05/08/16 07:31:48
俺的には同じ。
332:デフォルトの名無しさん
05/08/16 10:17:49
クラス = 構造体++
333:デフォルトの名無しさん
05/08/16 10:21:00
>>332
つまり クラス < 構造体 ということかっ!!
334:デフォルトの名無しさん
05/08/16 10:32:35
>>333
馬鹿?
335:デフォルトの名無しさん
05/08/16 11:11:20
デフォルトがpublicかprivateかの差だけだよ
336:デフォルトの名無しさん
05/08/16 12:42:45
プププ。
結局誰も答えられないでやんの。
自称上級者なんてこんなレベルだな。w
337:デフォルトの名無しさん
05/08/16 12:46:55
昔の実装では struct と class には明確な違いがあったらしいけど
最近では標準のアクセスが public / private 以外には全く同じ実装になっている。
338:デフォルトの名無しさん
05/08/16 12:55:53
>>337
はつみみです
詳しく
339:337
05/08/16 14:22:07
>>338
参考。
URLリンク(www.borland.co.jp)
struct にもメンバ関数がつけれますし、
コンストラクタ、デストラクタも機能します。
struct からの派生もできますし、仮想関数等も機能します。
逆アセンブルしてみると必要に応じて vtbl も付加される模様。
両者の違いは、
class CHoge {
int a; // これは private
};
struct SHoge {
int b; // これは public
};
340:338
05/08/16 14:58:41
>>339
それはC++では、少なくともこのスレでは常識。悪いが聞き飽きている。
はつみみで、詳しく聞きたいのは >337 の前半。
341:337
05/08/16 15:34:36
>>340
どこかで読んだ本に書いてあった気がするけど書名を失念したので
とりあえず C++ の設計と進化 で調べてきました。
どうやら当初から同じものだった模様…
勘違い失礼。
342:デフォルトの名無しさん
05/08/16 18:43:37
そもそも構造体とクラスがゴチャゴチャになっちまうような
言語仕様のC++が、美しくない言語ってことだ。
343:デフォルトの名無しさん
05/08/16 21:19:57
べつにゴチャゴチャにはならんだろ。
むしろゴチャゴチャになる要素が無さ過ぎるのが
C++における構造体とクラスの関係の特徴だ。
344:デフォルトの名無しさん
05/08/16 21:20:50
っていうかごちゃごちゃも何も、原則同じ物だからさ。
345:デフォルトの名無しさん
05/08/16 21:23:32
言語仕様などJAVAやC#も極めた俺は関係ない。ちなみにアセンブラも神域。
C++はいい言語だ。
346:デフォルトの名無しさん
05/08/16 21:57:00
C−ガール」 (浅香 唯)
347:デフォルトの名無しさん
05/08/17 02:51:46
C (ミポリン)
348:デフォルトの名無しさん
05/08/17 08:10:39
上級者が集まるスレであって
年寄りが集まるスレではないんだがな
349:デフォルトの名無しさん
05/08/18 00:29:29
上級者でつか?どこが?プ
350:デフォルトの名無しさん
05/08/18 10:52:57
ここが、に決まってるじゃん。
こんな簡単な文章の流れも読めない奴って・・・。
351:デフォルトの名無しさん
05/08/18 11:14:09
>>349
まあ、お前より>346や>347の方が上級者であることは確かだな。
352:デフォルトの名無しさん
05/08/18 12:13:34
そろそろ目ぇ真っ赤にしながらの釣り宣言が来ます
353:デフォルトの名無しさん
05/08/18 16:02:06
ぬるぽ!
354:デフォルトの名無しさん
05/08/19 00:21:13
上級者でつか?なにが?プ プ
355:デフォルトの名無しさん
05/08/19 14:01:30
>>351
そ…そうかなあ??
356:デフォルトの名無しさん
05/08/19 14:21:17
じゃあ上級者にふさわしい話題提供してよ
357:デフォルトの名無しさん
05/08/19 22:14:16
>>356
そろそろインポリタンスを治す薬について議論しましょうか
358:デフォルトの名無しさん
05/08/20 01:12:26
参照とポインタの使い分けについて述べてみよ。
359:デフォルトの名無しさん
05/08/20 01:27:44
ポインタでなければならない積極的な理由がない限り、参照。
360:デフォルトの名無しさん
05/08/20 01:35:01
逆だろ!
参照でなければならない積極的な理由がない限り、ポインタ。
361:デフォルトの名無しさん
05/08/20 01:36:40
>>360
ヌルチェック、もしくはヌルチェックが必要かどうかのチェックがウザイ。
362:デフォルトの名無しさん
05/08/20 01:39:36
ナルこそC++の極みなり。
363:デフォルトの名無しさん
05/08/20 01:44:20
こんなおとぼけさん。居るよね?
if (obj != NULL) delete obj;
364:デフォルトの名無しさん
05/08/20 01:52:34
俺は参照でできる箇所はすべて参照。
俺のソースにポインタが出てきたら、それは「そうしなければいけない理由がある」という
明確な意思のこもった記述だな。
あと、NULLなんてC++のソースコードに一度も書いたことがないや。
365:デフォルトの名無しさん
05/08/20 01:59:33
ポインタにしなければいけないのはどんな場合?
366:デフォルトの名無しさん
05/08/20 02:13:40
NULLチェックが必要なとき。
367:デフォルトの名無しさん
05/08/20 02:43:40
new 演算子を使うとき。
368:デフォルトの名無しさん
05/08/20 08:38:25
CのAPIを使う
変更可能な外部コレクション
…
369:デフォルトの名無しさん
05/08/20 08:55:54
>>366
boost::optional<T&>
370:デフォルトの名無しさん
05/08/20 12:28:10
引数が変更されるときはポインタを使いたい
istream の get(char&) みたいのはあんま好きじゃない…
371:デフォルトの名無しさん
05/08/20 13:15:22
なんか引数を書き換えるときにはポインタ派って多いよな。
372:デフォルトの名無しさん
05/08/20 13:27:46
私はグローバル変数派です
最強です
373:デフォルトの名無しさん
05/08/20 13:28:02
書き換えるといこそ参照だと思うがなぁ。
へんなアドレスに書き込んでデータ壊す確率が下がる。
374:デフォルトの名無しさん
05/08/20 13:36:51
やっぱりグローバル変数+goto文が最強だよね。
375:デフォルトの名無しさん
05/08/20 13:38:28
そもそもクラスなんていらないよね。
376:デフォルトの名無しさん
05/08/20 13:44:52
>>374
最強 != 最良
377:デフォルトの名無しさん
05/08/20 13:56:04
Cタスタスは最良?
378:デフォルトの名無しさん
05/08/20 14:56:03
( ´艸`) Cクスクス
379:デフォルトの名無しさん
05/08/20 15:37:55
>360
ポインタで作ったつもりでも、いつのまにか=使った時点で参照
やらかしてるだろw
380:デフォルトの名無しさん
05/08/20 16:18:46
なんで、int &a = b; って書くと参照なんだ?
aのアドレスを取るとそれがint型?・・・ワケわからん
381:デフォルトの名無しさん
05/08/20 16:32:57
>>380
こちらへどうぞ
スレリンク(tech板)l50
382:デフォルトの名無しさん
05/08/20 17:20:58
>>379
Cタヌタヌ。うんにゃ。んなことない。
383:デフォルトの名無しさん
05/08/20 23:13:40
∩___∩
| ノ ヽ
/ ● ● |
| ( _●_) ミ Cクマクマー
彡、 |∪| 、`\
/ __ ヽノ /´> )
(___) / (_/
| /
| /\ \
| / ) )
∪ ( \
\_)
384:>>383
05/08/21 21:00:27
不覚にもこんなつまらないネタでワロタ
385:デフォルトの名無しさん
05/08/27 15:38:44
>>371
そうでないと関数呼び出してる箇所みても引数が変更されるってのが読み取りにくい
386:デフォルトの名無しさん
05/08/27 18:59:17
俺ルールでも基本的に非constな参照の引数は禁止。
387:デフォルトの名無しさん
05/08/27 19:21:33
例外はiostreamくらいか
388:デフォルトの名無しさん
05/08/27 21:31:34
>>385
そのルールは、もう過去のもの。
389:デフォルトの名無しさん
05/08/27 22:40:30
ルールの話じゃねーよ馬鹿
390:デフォルトの名無しさん
05/08/27 23:05:38
「So, you want to prefer pointers to references?」
URLリンク(www.allankelly.net)
391:デフォルトの名無しさん
05/08/28 17:41:05
>>389
ルールだよ。ププ
392:デフォルトの名無しさん
05/08/28 19:06:40
言い返せないから嘲笑でごまかしてみました。
393:デフォルトの名無しさん
05/08/28 19:44:08
やはりここにも C++ の上級者は居ないようだな。
394:デフォルトの名無しさん
05/08/28 22:12:38
>>393
上級者同士が会話するスレだからね。
お前が何を書いても、レスしてくれるのはお前と同レベルの俺みたいな奴だけだよw
395:デフォルトの名無しさん
05/08/31 00:21:53
C++上級者って何が出来るの?
396:デフォルトの名無しさん
05/08/31 00:24:17
まずboost::lambdaをバンバン使っているに違いない。
397:デフォルトの名無しさん
05/08/31 00:31:28
C++上級者はアセンブラも出来ますか?
398:デフォルトの名無しさん
05/08/31 00:33:14
>>397
出来るとは限らないのではないか?
399:デフォルトの名無しさん
05/08/31 00:42:27
アセンブラも出来ないし、他人の作ったライブラリを使えるだけ。
それがC++上級者なのですか?
400:デフォルトの名無しさん
05/08/31 00:43:50
もしかしてコンパイラも作れない?
401:デフォルトの名無しさん
05/08/31 00:45:25
教えればすぐ使えるだろうけど。
402:デフォルトの名無しさん
05/08/31 00:56:12
>>399
「他人の作ったライブラリを使える」ってのは重要だよ。
403:デフォルトの名無しさん
05/08/31 01:04:28
>>397>>399>>400ってすごい馬鹿そう
404:デフォルトの名無しさん
05/08/31 01:15:38
C++上級者にふさわしい高級な煽りを希望する
405:デフォルトの名無しさん
05/08/31 01:28:00
>>404
例えてあげる、私が NULL なら
あなたは std::numeric_limits<long long>::min() ってところね。
406:デフォルトの名無しさん
05/08/31 07:32:34
C++でNULLは如何なものかと。
407:デフォルトの名無しさん
05/08/31 08:55:36
nullキーワードはどうなりましたかの? > JTC1/SC22/WG21
408:デフォルトの名無しさん
05/08/31 09:03:41
それは知らんが、C++/CLIのnullptrキーワードはヌルポインタにも使えるようだ。
409:デフォルトの名無しさん
05/08/31 12:40:18
>>405
お前がNULLなら、俺はガッだ。
というのは勘違い
410:デフォルトの名無しさん
05/08/31 13:04:56
>>407-408
URLリンク(open-std.org)
411:デフォルトの名無しさん
05/08/31 13:10:36
>>407
NULLの代わりとかあるの?
それはVisualC++7.1で使える?
412:デフォルトの名無しさん
05/08/31 21:17:05
>>411
0をポインタにstatic_castしたら、NULLポインタになる。
もちろんそのポインタを整数型にreinterpret_castしても0になるとは限らない。
413:デフォルトの名無しさん
05/08/31 22:21:26
>>411
0
414:デフォルトの名無しさん
05/09/01 00:49:14
結局な〜んも作れないのがC++上級者でつね。
415:デフォルトの名無しさん
05/09/01 01:08:15
ヤケ気味に上級者を煽れた時代が俺にもあった。
そこに自分も含まれるようになった今は、
もう憎々しげに上級者を煽る意味がなくなってしまったけど。
416:デフォルトの名無しさん
05/09/01 01:12:12
ハイハイ
417:デフォルトの名無しさん
05/09/01 04:08:19
下級な人は煽りの切れ味も下級だね。
418:C++入門者
05/09/01 23:04:59
正直C++上級者がこんなスレに来るとは思えないのだが…
上級者ならさらりと使いこなすC++のテクって何?
多重継承?仮想継承?メンバ変数・関数のポインタ?
テンプレート?
419:デフォルトの名無しさん
05/09/01 23:22:26
>>418
俺はその中ではテンプレートを1番良く使っている。
当然だがほかのも使わないわけではない。
もちろん俺が上級者である保証は何処にもない。
420:デフォルトの名無しさん
05/09/02 00:49:15
>>418
コルーチン
421:デフォルトの名無しさん
05/09/02 00:51:49
>>418
delegate
422:デフォルトの名無しさん
05/09/02 00:52:38
>>418
自己書き換え
423:デフォルトの名無しさん
05/09/02 00:54:35
>>418
Gap Buffer Algorithm.
424:デフォルトの名無しさん
05/09/02 01:07:45
>>418
ハァ?
425:デフォルトの名無しさん
05/09/02 09:13:34
>>418
> 上級者ならさらりと使いこなすC++のテクって何?
> 多重継承?仮想継承?メンバ変数・関数のポインタ?テンプレート?
それはテクニックなのか?
426:デフォルトの名無しさん
05/09/02 10:40:37
うちに面接に来るのはコピーコンストラクタ、代入演算子の定義も書けない人ばかり
427:デフォルトの名無しさん
05/09/02 19:37:30
いくらなんでも「ばかり」ってのはネタだろう。
428:デフォルトの名無しさん
05/09/02 19:59:25
そりゃそうだろうけど相当多いんだろうくらいに呼んでやろうよ。
429:デフォルトの名無しさん
05/09/02 19:59:38
2ちゃんねるってこんな突っ込み入れる奴ばかり
430:デフォルトの名無しさん
05/09/02 21:25:54
>>423
おぉ!Gap Buffer Algorithm
伝説のテクを使える者がおったとは。これは驚きじゃ。
431:デフォルトの名無しさん
05/09/02 21:33:32
>>420
コルーチンとは粋だね。
432:デフォルトの名無しさん
05/09/02 21:43:13
>>430
gap_vector だね。知ってるよ。
433:デフォルトの名無しさん
05/09/02 22:16:47
Gap Buffer など、C++上級者なら当然知ってるよ!
434:デフォルトの名無しさん
05/09/02 22:41:25
ちゅうことで、結局な〜んも作れないのが、ここのC++上級者でした。
435:デフォルトの名無しさん
05/09/02 22:58:45
扇るなら、C++の上級者にふさわしい煽りを。
436:デフォルトの名無しさん
05/09/02 23:02:37
お〜い扇風機持って来いや
437:デフォルトの名無しさん
05/09/02 23:07:34
みなさんコンピュータサイエンスをどこで学ばれたのですか?独学ですか?
438:デフォルトの名無しさん
05/09/02 23:19:02
きらめき高校
439:デフォルトの名無しさん
05/09/02 23:34:53
ものつくり大学
440:デフォルトの名無しさん
05/09/03 00:28:51
>>428
そう読んだ上で「そんなに多いってのはネタだろう」と言ってるのだが・・・。
441:デフォルトの名無しさん
05/09/03 00:33:06
>>440
流れを読め
442:デフォルトの名無しさん
05/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:デフォルトの名無しさん
05/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:デフォルトの名無しさん
05/09/03 01:52:01
>>442
なんか面白そうなコードだね。
親クラスと子クラスを反復する再帰関数なんて初めて見た。
潮騒キボンヌ
445:デフォルトの名無しさん
05/09/03 01:58:38
いいか、おまいら。
いくらC++を極めても嫁は見つからないんだ。
ただ頭が禿げるだけだ。それを忘れるな。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5372日前に更新/148 KB
担当:undef