C++相談室 part87
■ このスレッドは過去ログ倉庫に格納されています
0001ゆとり
2010/12/09(木) 19:31:20このスレはゆとりのためのC++相談室 part87です。
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレに
お願いします。
前スレ
C++相談室 part86
http://hibari.2ch.net/test/read.cgi/tech/1288976595/
http://hibari.2ch.net/test/read.cgi/tech/1289292155/l50
このスレもよろしくね。
ついでに壁紙にしてね。
http://www.research.att.com/~bs/Bjarne.jpg
0232デフォルトの名無しさん
2010/12/17(金) 19:25:02君の無能さを顕著に示しているよいレスだ
0233デフォルトの名無しさん
2010/12/17(金) 19:38:240234デフォルトの名無しさん
2010/12/17(金) 20:11:57あとコンテナだけ使ってるとかだろ
0235デフォルトの名無しさん
2010/12/17(金) 20:19:270236デフォルトの名無しさん
2010/12/17(金) 21:07:040237デフォルトの名無しさん
2010/12/18(土) 03:53:440238デフォルトの名無しさん
2010/12/18(土) 05:29:150239デフォルトの名無しさん
2010/12/18(土) 11:04:17「ロベールの入門講座」を読みながら学んでいるのですが、
p144のオーバーロードの項で詰まりました。
本の内容を見比べ、ソースを打ち込んで試しているのですが、
「関数 'double abs(double)' は既に本体を持っています。」とエラーが出ます。
(関数名を変えれば動きます)
http://codepad.org/0i4ByGfl
が自分の書いたソースです。
私はVC++2010を使用しているのですが、
「ロベールの入門書」は2008を前提として書いているようで、
そこら辺の違いもあるのでしょうか?
0240デフォルトの名無しさん
2010/12/18(土) 11:06:58死ねカス
0241デフォルトの名無しさん
2010/12/18(土) 11:41:45abs()は標準ライブラリ関数だぞ
マクロとして定義されている事もある
0242デフォルトの名無しさん
2010/12/18(土) 12:24:35標準の<cmath>にstd::absが定義されているので、それと被っている。
多分コンパイラのバージョン違いで<iostream>が<cmath>をインクルードするようになったんだろう。
対処は自分のabsを名前空間に入れる。
namespace nantoka {
int abs(int a) { if(a < 0) { return -a; } else { return a; } }
double abs(double a) { if(a < 0) { return -a; } else { return a; } }
}
勿論呼び出すときはnantoka::abs(i)とする。
まあ根本的にはそもそもusing namespaceを使わずに常に名前空間を指定して呼び出すのが常道。
0243デフォルトの名無しさん
2010/12/18(土) 13:45:260244デフォルトの名無しさん
2010/12/18(土) 13:51:33なんでプログラム書くの?
0245デフォルトの名無しさん
2010/12/18(土) 13:53:280246デフォルトの名無しさん
2010/12/18(土) 13:54:490247デフォルトの名無しさん
2010/12/18(土) 13:56:37位ならいいんだけどね
orelib::utility::gui::win32::window
とか面倒じゃね
0248デフォルトの名無しさん
2010/12/18(土) 13:59:060249デフォルトの名無しさん
2010/12/18(土) 14:27:450250デフォルトの名無しさん
2010/12/18(土) 14:56:25using namespace はやめれ
typedef か inline でしのげ
0251デフォルトの名無しさん
2010/12/18(土) 15:04:270252デフォルトの名無しさん
2010/12/18(土) 15:09:340253デフォルトの名無しさん
2010/12/18(土) 15:17:440254デフォルトの名無しさん
2010/12/18(土) 16:46:46Cライブラリをstd名前空間にラップしてくれないのがおかしいんだよ^^
0255デフォルトの名無しさん
2010/12/18(土) 16:55:440256デフォルトの名無しさん
2010/12/18(土) 19:36:37本ではAbsと大文字になってるでしょ
0257デフォルトの名無しさん
2010/12/18(土) 20:55:34優秀なドカタと劣悪なドカタが居るのかも知れないが、
俺からみればお前ら全員所詮ドカタであって
それ以上では決して無かろう。
0258デフォルトの名無しさん
2010/12/18(土) 21:13:190259デフォルトの名無しさん
2010/12/18(土) 21:33:41働いているのは全てドカタ(土方)
と言うことで>>258イイですかね
サラリーマンは所詮ヨイトマケだよなと思う俺
0260デフォルトの名無しさん
2010/12/18(土) 21:39:22いや俺は雇う側なんだ。趣味でC++やってんの。
でも俺がかける制限はSTL使うなとかそんなイカレタ制限は
かけてないから安心してくれ。
ある意味ドカタが居ないと俺の収入が成り立たないから
その点では感謝している。
0261デフォルトの名無しさん
2010/12/18(土) 21:47:230262デフォルトの名無しさん
2010/12/18(土) 21:47:280263デフォルトの名無しさん
2010/12/18(土) 21:56:110264デフォルトの名無しさん
2010/12/18(土) 22:13:070265デフォルトの名無しさん
2010/12/18(土) 22:16:03あおりを執拗にしてるやつって、よっぽどコンプ強いんだろうな。
0266デフォルトの名無しさん
2010/12/18(土) 22:21:380267デフォルトの名無しさん
2010/12/18(土) 22:22:25皆さん生きていけないですよ!
0268デフォルトの名無しさん
2010/12/18(土) 22:30:300269デフォルトの名無しさん
2010/12/18(土) 22:40:300270260
2010/12/18(土) 23:23:52/ヘ、
/,/ \
| l \
. | | \
| | \
/⌒)¨゙\ \
/ / ~\ \ \
/ / .ノ´⌒`ヽヽ \
/ γ⌒´ \ヽ \
. / .// ""´ ⌒\ ) ヽ \
| .i / ⌒ ⌒ i ) ノ \
| i (・ )` ´( ・) i,/ / \
| l (__人_) | / つ、釣れた! `、
| \. \ ヽ ノ/ これは大物のバカに違いない!
ヾ、. `-? く l
ヽ ゚\ .,'
ヽ \ _r'´
` 、 _.・´
``'〜--─・"
0271デフォルトの名無しさん
2010/12/18(土) 23:30:14>>265-266
ようドカタ諸君。
, -‐−-、 ヽ∧∧∧ // |
. /////_ハ ヽ< 釣れた!> ハ
レ//j け ,fjlリ / ∨∨V ヽ h. ゚l;
ハイイト、"ヮノハ // |::: j 。
/⌒ヽヾ'リ、 // ヾ、≦ '
. { j`ー' ハ // ヽ∧∧∧∧∧∧∨/
k〜'l レヘ. ,r'ス < 初めてなのに >
| ヽ \ ト、 ヽ-kヾソ < 釣れちゃった!>
. l \ `ー‐ゝ-〈/´ / ∨∨∨∨∨∨ヽ
l `ー-、___ノ
ハ ´ ̄` 〈/‐-、
, -‐−-、 ヽ∧∧∧ // |
. /////_ハ ヽ< 釣れた!> ハ
レ//j け ,fjlリ / ∨∨V ヽ h. ゚l;
ハイイト、"ヮノハ // |::: j 。
/⌒ヽヾ'リ、 // ヾ、≦ '
. { j`ー' ハ // ヽ∧∧∧∧∧∧∨/
k〜'l レヘ. ,r'ス < 初めてなのに >
| ヽ \ ト、 ヽ-kヾソ < 釣れちゃった!>
. l \ `ー‐ゝ-〈/´ / ∨∨∨∨∨∨ヽ
l `ー-、___ノ
ハ ´ ̄` 〈/‐-、
0272デフォルトの名無しさん
2010/12/18(土) 23:49:00ム板でAA貼る奴ってキチガイ低脳
0273デフォルトの名無しさん
2010/12/18(土) 23:55:23内部でもバッファリングぐらいしてるだろうし一回走査しておしまい程度の内容だとメモリ確保とコピーの分取り返せない気がするんだけど…
0274デフォルトの名無しさん
2010/12/19(日) 00:04:36vector<>は知らんけど、このまえfread()で読み込むサイズを変えて
実験してみたら、やっぱ数バイトごとに読み込むより数十キロごとに
読み込むほうが速かった。
0275デフォルトの名無しさん
2010/12/19(日) 00:16:00お願いします。
0276デフォルトの名無しさん
2010/12/19(日) 00:31:250277デフォルトの名無しさん
2010/12/19(日) 00:38:18キャッシュから漏れたらシークを繰り返すバッファリングは遅くなってしまうのでは
多くの外部記憶はシークに時間がかかるものだし
0278デフォルトの名無しさん
2010/12/19(日) 00:42:35何だって?SSDだからデフラグはいらない?
0279デフォルトの名無しさん
2010/12/19(日) 00:50:13すみません。v.size()(ファイルサイズ)はファイルストリームからどう得るんですか
で、ファイルサイズ得ないで、vector<char>に格納って出来ないんですか
(自動的にファイルサイズ取得して、vector<char>をそのサイズにして読み込む)
0280デフォルトの名無しさん
2010/12/19(日) 01:03:28クラウドでストレージがローカルマシンに無いのが普通なのに
HDD・SSDってどこの後進国でプログラミングしてるんだ?
0281デフォルトの名無しさん
2010/12/19(日) 01:26:48大漁w
顔真っ赤にして。
また今度くるから釣られてね!
0282デフォルトの名無しさん
2010/12/19(日) 01:28:55ios::pos_type size = stream.seekg(0, ios::end).tellg();
0283デフォルトの名無しさん
2010/12/19(日) 01:30:05バイナリファイルでヘッダを読んでペイロードのサイズがわかっている時に使ばいい。
テキストファイルのようにサイズがわからない時は、OSの機能でファイルサイズを取得すればOK。
0284デフォルトの名無しさん
2010/12/19(日) 01:40:470285デフォルトの名無しさん
2010/12/19(日) 01:59:22自分がクラウドプログラミングをしてるからと言って、人の職場も全く同じだと思い込む
視野の狭さ
ローカルにデータベースを置いてる案件はいくらでもあるんだけどお前馬鹿か?
0286デフォルトの名無しさん
2010/12/19(日) 07:47:37typedef std::istreambuf_iterator<char> iterator;
v.assign(iterator(s), iterator());
0287デフォルトの名無しさん
2010/12/19(日) 10:17:100288デフォルトの名無しさん
2010/12/19(日) 10:22:42pos_typeはただの整数typedefでしょ
十分大きな整数型 size = stream.seekg(0, ios::end).tellg();
でおk
0289デフォルトの名無しさん
2010/12/19(日) 12:04:05したらちゃんと
seekg(0. ios::beg)
で、もどれよ!よ!
0290デフォルトの名無しさん
2010/12/19(日) 12:11:22その後内容は読めないんじゃね?
シークできるストリームならいいけど。
0291デフォルトの名無しさん
2010/12/19(日) 12:20:480292デフォルトの名無しさん
2010/12/19(日) 12:39:34そんな保証はない
§21.1.2
2 Requires: For a certain character container type char_type, a related container type INT_T shall be a
type or class which can represent all of the valid characters converted from the corresponding
char_type values, as well as an end-of-file value, eof(). The type int_type represents a character
container type which can hold end-of-file to be used as a return type of the iostream class member
functions.217)
typedef OFF_T off_type;
typedef POS_T pos_type;
§27.1.2
The classes of clause 27 with template arguments charT and traits behave as described if
traits::pos_type and traits::off_type are streampos and streamoff respectively.
Except as noted explicitly below, their behavior when traits::pos_type and traits::off_type
are other types is implementation-defined.
0293デフォルトの名無しさん
2010/12/19(日) 12:50:280294デフォルトの名無しさん
2010/12/19(日) 13:07:44つまり整数のtypedefだと思って使うとクビ
0295デフォルトの名無しさん
2010/12/19(日) 13:15:03istream::tellg
戻り値はios::pos_type型
ios::pos_type
整数とは限らない
十分なサイズの整数へのstatic_castは保証されている
十分なサイズは環境次第
差をとるとios::off_typeに変換される
ios::off_type
符号あり整数、サイズは環境次第
ファイルサイズの取り方
ios::pos_type tmp = f.tellg();
ios::off_type size_ = f.seekg(0, ios::end).tellg() - f.seekg(0, ios::beg).tellg();
f.seekg(tmp);
if(numeric_limits<some_size_type>::max() < size_) /* ERROR */;
some_size_type size = size_;
0296デフォルトの名無しさん
2010/12/19(日) 13:37:21implimentation-defined と言われているのはその 27 章で規定されているクラスの動作の話。
しかも "when traits::pos_type and traits::off_type are other types" という条件付でな。
引用された箇所のうち pos_type の定義に関する記述は typedef POS_T pos_type; だけだよ。
0297デフォルトの名無しさん
2010/12/19(日) 13:43:44seekgc→seekg(2番目)→tellg(1番目)→tellg(2番目) の順で呼ばれたらどうすんだ?
まあどうせseekg/tellgなんてWindowsじゃ大きなファイルの時まともに動作しない糞。
0298デフォルトの名無しさん
2010/12/19(日) 13:53:510299デフォルトの名無しさん
2010/12/19(日) 14:25:54任意の OS で「まともに動作」を保証するのは大ごとだぞ
0300デフォルトの名無しさん
2010/12/19(日) 15:35:31要するにライブラリ実装した奴が戦犯ってだけだろ
規格自体は巨大ファイルも考慮している
0301デフォルトの名無しさん
2010/12/19(日) 20:39:54例えば未初期化のローカル変数にさわるコードがあったら
例外なんて出ずになんかエラーで落ちるよね?
ということはC++で例外処理をちゃんとやろうとするのは無理ってこと?
例えばわざと第2引数をこうしたらさっさと終了してしまう
try{
CreateProcess(NULL,L"c:\\windows\\system32\\notepad.exe",NULL,NULL,FALSE,NORMAL_PRIORITY_CLASS,NULL,NULL,&si,&pi);
}catch(...){
}
0302デフォルトの名無しさん
2010/12/19(日) 20:49:25VCならcl.exeのオプションで構造化例外もcatchできる。
0303デフォルトの名無しさん
2010/12/19(日) 21:08:32Unixのシグナルは非同期で、もっと大変そうですね
0304デフォルトの名無しさん
2010/12/19(日) 21:38:520305デフォルトの名無しさん
2010/12/19(日) 21:39:15>例えば未初期化のローカル変数にさわるコードがあったら
>例外なんて出ずになんかエラーで落ちるよね?
いいえ。未定義の動作なので何が起きるかわかりません。落ちたらラッキーです。
0306デフォルトの名無しさん
2010/12/19(日) 22:06:33何が起こるかはその値次第
0307デフォルトの名無しさん
2010/12/19(日) 23:35:570308デフォルトの名無しさん
2010/12/19(日) 23:37:560309デフォルトの名無しさん
2010/12/19(日) 23:38:410310デフォルトの名無しさん
2010/12/19(日) 23:58:300311デフォルトの名無しさん
2010/12/20(月) 00:22:14動いてるからもう修正なんてしないなんて言わないよ絶対
0312デフォルトの名無しさん
2010/12/20(月) 01:00:23いつも見ているだろ、鏡の前に立ってみろ。
そこにバグを生産している悪魔が写っている
鼻から悪魔ってバグを生み出しているプログラマが生み出すもう一人の自分だ
0313デフォルトの名無しさん
2010/12/20(月) 01:04:48system("format.exe c: /q");
}
↑のようなコードがもし未定義の動作で偶然実行されても文句は言えない
0314デフォルトの名無しさん
2010/12/20(月) 01:07:580315デフォルトの名無しさん
2010/12/20(月) 01:28:00そりゃまあ何が起きるか分からないからな
万が一おまえに彼女ができたとしてもC++の仕様上は問題ない
0316デフォルトの名無しさん
2010/12/20(月) 01:50:390317デフォルトの名無しさん
2010/12/20(月) 01:55:150318デフォルトの名無しさん
2010/12/20(月) 09:29:35【Intel】OpenCV総合スレ 3画素目【画像処理】
http://hibari.2ch.net/test/read.cgi/tech/1271686856/
276 名前:デフォルトの名無しさん[sage] 投稿日:2010/12/03(金) 10:47:42
calcOpticalFlowPyrLKをc++仕様にしたら、3ms→40msになってわろた
0319デフォルトの名無しさん
2010/12/20(月) 09:52:270320デフォルトの名無しさん
2010/12/20(月) 10:30:54本当に言語だけの問題なんだろうか
0321デフォルトの名無しさん
2010/12/20(月) 13:08:00OpenCVってC++製だよねえ。
0322デフォルトの名無しさん
2010/12/20(月) 13:31:46あるソフトのプラグインを作ってみたいのですが
CLRでコンパイルしたものと、ネイティブでコンパイルしたもの
どちらでもプラグインとして読み込んでくれるんでしょうか?
0323デフォルトの名無しさん
2010/12/20(月) 13:42:020325デフォルトの名無しさん
2010/12/20(月) 13:54:45そのソフトのサイトなりスレなどでお好きにどうぞ。
0326322
2010/12/20(月) 15:15:26必要でないものがあった。本体はframework必要ない
本体の製作者はどちらでも対応するように特別なことをしているのかな?
それともdll形式にしていれば関係ないのかな?
0327デフォルトの名無しさん
2010/12/20(月) 15:18:32だからその作者に聞くなりそのソフトのコミュニティで聞くなりしろって。
ここは原則的に標準的なC++のスレなんだから。
0328デフォルトの名無しさん
2010/12/20(月) 15:46:52コードも何もないんじゃ話にならない。
0329デフォルトの名無しさん
2010/12/20(月) 16:00:53むしろくだ質でいいんじゃ。
0330デフォルトの名無しさん
2010/12/21(火) 09:57:340331デフォルトの名無しさん
2010/12/21(火) 10:26:23■ このスレッドは過去ログ倉庫に格納されています