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


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

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



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


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

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

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

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


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

164 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [05/02/22 10:32:29 ]
>>167 pc5.2ch.net/test/read.cgi/tech/1078193971/

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

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

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

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

173 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [05/03/10 17:22:49 ]
>>174
読んだまま。

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

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



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

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

180 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [05/03/11 09:31:53 ]
d.hatena.ne.jp/rich850/20040521
同じようなこと考えてる人はいるんだなぁ.

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

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

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


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

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

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



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

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

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

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

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


193 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2005/04/20(水) 00:53:51 ]
ドコモもC++だよ。

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

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



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

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

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

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

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


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

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

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

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

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



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

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

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

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

214 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2005/05/25(水) 04:26:15 ]
>>215はコンパイラから自作する神



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

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

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

221 名前:209 mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2005/05/25(水) 16:18:39 ]
アマな俺にはSTLだけでお腹いっぱいです。

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

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

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

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

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


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

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

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

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

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


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



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

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

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

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

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

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

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



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

246 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2005/05/28(土) 02:50:42 ]
>>222
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。
やはり初期化をちゃんとやると色々面倒ですね。参考にします。

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


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

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

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

255 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2005/06/06(月) 16:12:58 ]
これは例の、通称「C++の最も奇妙な構文」ってやつかな。

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

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



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

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

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







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

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

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