C++相談室 part99
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2013/02/21(木) 17:37:08.31ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレに
お願いします。
前スレ
C++相談室 part98
http://toro.2ch.net/test/read.cgi/tech/1347964922/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.79【環境依存OK】
http://toro.2ch.net/test/read.cgi/tech/1341052801/
■長いソースを貼るときはここへ。■
http://codepad.org/
http://ideone.com/
0002デフォルトの名無しさん
2013/02/21(木) 17:41:26.17スレ立て乙
こちらで頼む
まあいいけど
C++相談室 part100
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレに
お願いします。
前スレ
C++相談室 part98
http://toro.2ch.net/test/read.cgi/tech/1345823164/
C++相談室 part98(実質part99)
http://toro.2ch.net/test/read.cgi/tech/1347964922/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.82【環境依存OK】
http://toro.2ch.net/test/read.cgi/tech/1359924126/
■長いソースを貼るときはここへ。■
http://codepad.org/
http://ideone.com/
0003デフォルトの名無しさん
2013/02/21(木) 17:42:26.88STLつかうと一気に実行ファイルサイズが10倍に?!
環境によるだろ。
俺はBorland-C++5.6.2に -D_RTLDLL オプションを指定して、極力
ランタイムを使用するようにして使っているが、例えばstd::vectorを
使っても使わない時と比べ10Kほどしか増えない
すげえ。ダイナミックリンクしといてファイルサイズが増えないとかいってるよ。この人。
C1010: プリコンパイル済みヘッダーの検索中に予期しない EOF を検出しました。
とかいうエラーが出るんだけどこれってどうすればいいの?
#include <stdafx.h>
後死ね。
言葉が悪いな。それで教えているつもりか。
まぁヒントぐらいにはなったな。
うむごくろう。
0004デフォルトの名無しさん
2013/02/21(木) 19:38:17.43class Test {
public: Test getThis() { return this; }
};
のように自身を帰したい場合C++ではどのようにかくのですか?
0005デフォルトの名無しさん
2013/02/21(木) 19:48:39.09class Test {
public:
Test* getThis() { return this; }
const Test* getThis() const { return this; }
Test& getThisRef() { return *this; }
const Test& getThisRef() const { return *this; }
};
0006デフォルトの名無しさん
2013/02/21(木) 19:54:00.83それよりテンプラよろ
0007デフォルトの名無しさん
2013/02/21(木) 20:19:28.030008デフォルトの名無しさん
2013/02/21(木) 21:34:15.57Yes
0009デフォルトの名無しさん
2013/02/21(木) 22:03:02.480010デフォルトの名無しさん
2013/02/21(木) 22:06:44.34あなたjavaスレにもいるでしょ?毎日張り付いてご苦労様です。
0011デフォルトの名無しさん
2013/02/21(木) 22:17:24.33Javaスレなんかいないよ
Javaは10年前にかじっただけだから全く分からないし
C++メインで使ってるからこのスレは張り付いてというか一応毎晩チェックしてる
これも張り付くっていうのかな?
まあどっちでもいいや
0012デフォルトの名無しさん
2013/02/21(木) 22:17:31.360013デフォルトの名無しさん
2013/02/21(木) 22:18:59.000014デフォルトの名無しさん
2013/02/21(木) 22:19:39.210015デフォルトの名無しさん
2013/02/21(木) 22:22:22.110016デフォルトの名無しさん
2013/02/21(木) 22:35:51.870017デフォルトの名無しさん
2013/02/21(木) 22:37:27.270018デフォルトの名無しさん
2013/02/22(金) 00:19:54.15お酒を飲んでいたのと、C++がJavaのようにかけないのでイライラしてしまいました。
0019デフォルトの名無しさん
2013/02/22(金) 23:37:04.060020デフォルトの名無しさん
2013/02/22(金) 23:39:17.580021デフォルトの名無しさん
2013/02/23(土) 03:16:59.83if (i == 0) return;
i++;
}
と
void func() {
if (i == 0) {
} else {
i++;
}
ではどちらが好きですか?
0022デフォルトの名無しさん
2013/02/23(土) 03:29:22.36バグの数は行数に比例する
てか、その下のやつ{}が合ってないし
0023デフォルトの名無しさん
2013/02/23(土) 04:25:07.61関数1つあたりの機能を正しく分割できていれば行数など
ふくれあがるわけないんだが。
0024デフォルトの名無しさん
2013/02/23(土) 08:07:45.721行だろうが30行だろうが下で統一したい
0025デフォルトの名無しさん
2013/02/23(土) 08:09:07.44void func(){
if(i!=0){
i++
}
}
こう書くと思うな
0026デフォルトの名無しさん
2013/02/23(土) 08:22:28.44上は、最初に条件付けて関数を実行する状況を事前に制限する意図があるときに使う
下は、純粋に条件分岐する場合に使う
意図次第かと
i == 0 がいいか i != 0 がいいかも意図次第だな
0027デフォルトの名無しさん
2013/02/23(土) 09:28:29.22>上は、最初に条件付けて関数を実行する状況を事前に制限する意図があるときに使う
だね、俺もそうする。
ただ、その場合でも
void func(){
if(i == 0){
return;
}
i++;
}
だな。
0028デフォルトの名無しさん
2013/02/23(土) 09:32:16.52void func()
{
if (i == 0) { return; }
i++;
}
0029デフォルトの名無しさん
2013/02/23(土) 12:29:14.430030デフォルトの名無しさん
2013/02/23(土) 12:38:46.180031デフォルトの名無しさん
2013/02/23(土) 12:59:05.990032デフォルトの名無しさん
2013/02/23(土) 13:09:31.530033デフォルトの名無しさん
2013/02/23(土) 13:46:31.86MISRA とかでも禁止されていたりするしね。
>>32
常にそうだと思うなら、ちょっと頭固すぎ。
0034デフォルトの名無しさん
2013/02/23(土) 14:36:36.04{
if (i != 0) i++;
}
これが一番わかりやすいじゃん
本質的に一行のコードなのになんでreturnとか出てくるの
0035デフォルトの名無しさん
2013/02/23(土) 14:45:27.960036デフォルトの名無しさん
2013/02/23(土) 14:54:06.71と貼り付ける人の気持ちも分からんでも無いな
0037デフォルトの名無しさん
2013/02/23(土) 14:57:45.00実用性とかそんなもの聞いてないんだよ
0038デフォルトの名無しさん
2013/02/23(土) 15:04:03.92それとこれとは違う気がするが・・・
0039デフォルトの名無しさん
2013/02/23(土) 15:18:37.370040デフォルトの名無しさん
2013/02/23(土) 15:21:34.61MISRAなんてものがコーディング規約に含まれている会社の人はご愁傷様としか言いようがない
0041デフォルトの名無しさん
2013/02/23(土) 15:36:37.46コメントに条件式を合わせる
これでコードが理解しやすくなる
そのためなら空のifがあってもいいけど
コードの書き忘れと区別できるようなコメントはあった方がいい
0042デフォルトの名無しさん
2013/02/23(土) 16:00:36.52そう、今自分のことじゃないと思ったお前だよお前
004322
2013/02/23(土) 17:01:23.36void func() {
if (i == 0) return;
i++;
}
と
void func() {
if (i == 0) {
return;
} else {
i++;
}
}
だったわ。すまんこ。
0044デフォルトの名無しさん
2013/02/23(土) 17:06:01.300045デフォルトの名無しさん
2013/02/23(土) 17:42:45.340046デフォルトの名無しさん
2013/02/23(土) 18:49:32.780047デフォルトの名無しさん
2013/02/23(土) 20:16:54.77> そう、今自分のことじゃないと思ったお前だよお前
お前のことだと思った俺はどうすりゃいい? (w
0048デフォルトの名無しさん
2013/02/23(土) 21:57:17.06ガード条件のつもりなのか、そうでないのかをはっきりしろよ
0049デフォルトの名無しさん
2013/02/23(土) 22:19:34.090050デフォルトの名無しさん
2013/02/23(土) 22:52:30.620051デフォルトの名無しさん
2013/02/23(土) 23:27:10.800052デフォルトの名無しさん
2013/02/23(土) 23:36:04.64俺は使わないけど
0053デフォルトの名無しさん
2013/02/23(土) 23:41:22.520054デフォルトの名無しさん
2013/02/24(日) 06:52:00.53えーと、returnの後には基本、elseは置かない習慣だから、
if (i == 0) return;
++i;
だな。
elseを書きたい場合はその前後をイーブンにしたいから、
if (i == 0) {
return;
} else {
++i;
return;
}
とするかも。
まぁ、その場合は、
if (i == 0) {
} else {
++i;
}
return;
だろうな。
0055デフォルトの名無しさん
2013/02/24(日) 10:45:40.71MISRA が規約に含まれてる会社って車業界だから、
どっちかって言うとご愁傷様とか言われるのはお前や
俺たちじゃね? (w
0056デフォルトの名無しさん
2013/02/24(日) 10:50:28.03いきなり自分の価値観を語りだすなよ
0057デフォルトの名無しさん
2013/02/24(日) 10:54:08.21if (i != 0) ++i;
iが想定の範囲内から出ることもあるニュアンスを含めるなら
if (i == 0) return; ++i;
iの範囲によって2種の異なる処理を行うなら
if (i == 0) return; else ++i;
0058デフォルトの名無しさん
2013/02/24(日) 11:13:06.30throwなんてもっとだめなのか
0059デフォルトの名無しさん
2013/02/24(日) 11:25:38.70コードで伝えようとするのは危険
0060デフォルトの名無しさん
2013/02/24(日) 11:33:19.910061デフォルトの名無しさん
2013/02/24(日) 11:40:08.400062デフォルトの名無しさん
2013/02/24(日) 11:48:12.74個人的には ; は1行に2つ以上あると気になるわ(ただしfor文を除く)
0063デフォルトの名無しさん
2013/02/24(日) 11:57:45.690064デフォルトの名無しさん
2013/02/24(日) 12:09:46.580065デフォルトの名無しさん
2013/02/24(日) 12:48:48.620066デフォルトの名無しさん
2013/02/24(日) 13:05:53.92コメント読むにはコード読むのと同等以上のエネルギーが必要
0067デフォルトの名無しさん
2013/02/24(日) 13:28:05.050068デフォルトの名無しさん
2013/02/24(日) 13:37:40.180069デフォルトの名無しさん
2013/02/24(日) 13:41:44.830070デフォルトの名無しさん
2013/02/24(日) 13:47:57.19えっ?コメント日本語で書いてるの?ってのは冗談として
自然言語はプログラミング言語ほど最適化されていないし、曖昧な点が多いから
0071デフォルトの名無しさん
2013/02/24(日) 13:51:08.55コメントはメンテしなくても
書いてあるコードの通りに動くからタチが悪いだろ
0072デフォルトの名無しさん
2013/02/24(日) 15:02:23.29価値観?
世間の動向とか興味ない人なの?
0073デフォルトの名無しさん
2013/02/24(日) 16:31:57.13人生相談がしたいならスレ違い
0074デフォルトの名無しさん
2013/02/24(日) 16:49:39.79int main()
{
return 0;
}
のreturn 0;の必要性がイマイチわからないです。あるサイトではこれがないとコパイル通らないそうですが、通りました。
例えば例外発生したときにそこでプログラムがとまってメモリを食っちゃうのを阻止する感じでしょうか
0075デフォルトの名無しさん
2013/02/24(日) 16:51:13.700076デフォルトの名無しさん
2013/02/24(日) 16:55:51.66必要ないなら書く必要はない
0077デフォルトの名無しさん
2013/02/24(日) 16:56:27.440078デフォルトの名無しさん
2013/02/24(日) 17:02:52.70using namespace std;
はできるだけ書かずにstd::cout, std::endlのように書いていったほうが良いと考えておkですか?
スタティックなインポート?に恐怖を感じます
0079デフォルトの名無しさん
2013/02/24(日) 17:03:45.25Cでも最新の仕様なら要らない
最新の仕様に対応していればだけど
0080デフォルトの名無しさん
2013/02/24(日) 17:05:59.80using namespace std; はなるべく書かない方がいい
解説書やら何かやらではスペースやら説明やらの都合上よく使われるが
こういうのなら悪くはない
namespace AAA {
using std::cout;
using std::endl;
int main() {
cout << "aaa" << endl;
}
} // namespace AAA
0081デフォルトの名無しさん
2013/02/24(日) 17:06:41.940082デフォルトの名無しさん
2013/02/24(日) 17:18:28.52そんな風にmain()関数を囲い込む方法もあるんですね。今自分で、
AAA::main();
とよんでみたら確かに通りました。
ありがとうございます。
0083デフォルトの名無しさん
2013/02/24(日) 17:22:24.68main は名前空間に含んじゃいけないな
こういうことで
namespace AAA {
using std::cout;
using std::endl;
void foo() {
cout << "aaa" << endl;
}
} // namespace AAA
int main() {
AAA::foo();
}
0084デフォルトの名無しさん
2013/02/24(日) 17:24:38.270085デフォルトの名無しさん
2013/02/24(日) 17:27:12.22mainはグローバル名前空間内で定義する必要がある
using namespace std; は色々問題があるけど
グローバルでない名前空間内で std::cout, std::endl などを個別で using するのは割と安全
というものの例を上げようとしたら
間違って main も名前空間内に入れてしまっただけ
0086デフォルトの名無しさん
2013/02/24(日) 18:52:46.09return だからって、制御返すのと戻り値をまじちゃってるよね。
制御構文として return を書かないなら綺麗になるかなかな?
0087デフォルトの名無しさん
2013/02/24(日) 18:57:35.480088デフォルトの名無しさん
2013/02/24(日) 19:46:09.42価値観とか人生相談とか…
要するに論理的な話はできないと言うことね、了解した。
0089デフォルトの名無しさん
2013/02/24(日) 20:14:49.91途中returnが駄目で途中breakがOKな理由がよくわからないね、あれだ、ダブルスタンダードってやつか?
0090デフォルトの名無しさん
2013/02/24(日) 20:15:41.38コメントって怏々にしてメンテがゆきとどかず、実体の真逆を記述していることもおおいよね
コメントを頼りにするのは馬鹿
0091デフォルトの名無しさん
2013/02/24(日) 20:26:55.910092デフォルトの名無しさん
2013/02/24(日) 20:41:08.08同一人物だと思い込んだ理由はなんだろね
009386
2013/02/24(日) 20:58:33.41そのときに戻り値が設定されてればいいわけで、
戻り値返すついでに制御も返しちゃいけないと思うんです。
スレちだけど、言い出しっぺなので。
>>21 の質問は、何らかの数が 0 なら処理しなくて良い or するなって意味で、
0 で return させたのです。
でも 0 で無いなら処理しろにして、0の場合でもそのまま関数抜けていただいたほうが、
御社にとってもとかったのではないかと。思った次第。
0094デフォルトの名無しさん
2013/02/24(日) 21:04:37.71やってて面白い分野が見つかればよいのですが。C++ならではのAPIとかあれば教えてください。
0095デフォルトの名無しさん
2013/02/24(日) 21:07:32.280096デフォルトの名無しさん
2013/02/24(日) 21:08:19.330097デフォルトの名無しさん
2013/02/24(日) 21:09:51.57自分もそれを第一に考えたのですがウィンドウ作る所でいやになりました。
もっとC++言語としてまとまったAPIdocumentがあればよいのにないですよね?
0098デフォルトの名無しさん
2013/02/24(日) 21:10:03.730099デフォルトの名無しさん
2013/02/24(日) 21:10:32.940100デフォルトの名無しさん
2013/02/24(日) 21:14:19.77テキストベースでゲーム作ればいいじゃん
0101デフォルトの名無しさん
2013/02/24(日) 21:15:04.090102デフォルトの名無しさん
2013/02/24(日) 21:17:59.99よくわからないのですが、VC++ってC++と並列というか、また別の言語なんですか?
0103デフォルトの名無しさん
2013/02/24(日) 21:18:01.490104デフォルトの名無しさん
2013/02/24(日) 21:22:45.980105デフォルトの名無しさん
2013/02/24(日) 21:29:16.31EDSACが最初の(実用的な)プログラム内蔵方式コンピュータだったはず
0106デフォルトの名無しさん
2013/02/24(日) 21:29:38.09VC++は開発環境
C++は言語
0107デフォルトの名無しさん
2013/02/24(日) 21:45:32.37VC++でしか使えないライブラリとかあるのですか?
0108デフォルトの名無しさん
2013/02/24(日) 21:48:09.99ライブラリ次第だが、ある
0109デフォルトの名無しさん
2013/02/24(日) 21:54:57.48アルテアあたりだと、スイッチを捻って01を入力してプログラミングしてた。
0110デフォルトの名無しさん
2013/02/24(日) 21:57:15.960111デフォルトの名無しさん
2013/02/24(日) 22:09:17.41別に1人とは書いてないけど、そう思い込んだ理由はなんだろうね (w
>>93
マジで、C++ の勉強の前に「日本語」の勉強した方がいいよ。
0112デフォルトの名無しさん
2013/02/24(日) 22:29:22.31もしかしてVB出身?
0113デフォルトの名無しさん
2013/02/24(日) 22:32:05.490114デフォルトの名無しさん
2013/02/26(火) 01:21:30.480115デフォルトの名無しさん
2013/02/26(火) 06:29:18.570116デフォルトの名無しさん
2013/02/26(火) 07:45:26.50つfseek()
ラップすればいくらでもランダムアクセスになるのでは?
あと、ハード的には最終的にセクタ/クラスタ単位でしたアクセスできない点は考慮してあると思う。
0117デフォルトの名無しさん
2013/02/26(火) 09:36:37.600118デフォルトの名無しさん
2013/02/26(火) 13:00:10.920119デフォルトの名無しさん
2013/02/26(火) 19:27:39.610120デフォルトの名無しさん
2013/02/26(火) 20:00:34.33デストラクタを備えているクラスは参照渡しの時は注意
もしそれが向こうでconst参照で束縛されても、戻ってきた瞬間デストラクタが走り
実体が解体されてしまうため、束縛の意味がなくなってしまう
0121デフォルトの名無しさん
2013/02/26(火) 20:14:19.93場合によるとしか言えんだろ
0122デフォルトの名無しさん
2013/02/27(水) 00:25:38.83最近はコピーしたほうがええってのが定説や
コアはちゃんとつかわなあかん
0123デフォルトの名無しさん
2013/02/27(水) 03:59:31.620124デフォルトの名無しさん
2013/02/27(水) 05:07:31.160125デフォルトの名無しさん
2013/02/27(水) 06:56:16.00やってみろや
class C {
const string& cs;
public:
C(const string& s) : cs(s) {}
void print() const { std::cout << cs << std::endl; }
};
これを C cc("test"); としてインスタンスを生成し cc.print() とすると
果たして test と表示されるかどうか
0126デフォルトの名無しさん
2013/02/27(水) 07:20:55.87http://ideone.com/SZCVQ8
http://ideone.com/W51G8T
イミディエイトの参照をとるな、ってエラーがでないのね
0127デフォルトの名無しさん
2013/02/27(水) 08:42:08.05なんだQか
最初のは結局
class C {
const std::string& cs;
public:
C(const std::string& s) : cs(s) {}
void print() const { std::cout << cs << std::endl; }
};
int main()
{
std::string* const s = new std::string("test");
C c(*s);
delete s;
c.print();
}
とやってるのと基本的に同じ
constの参照は一時オブジェクトでも束縛出来るが、それがクラスの場合は
要注意
0128デフォルトの名無しさん
2013/02/27(水) 08:45:32.720129デフォルトの名無しさん
2013/02/27(水) 11:24:54.65ワロタ。すばらしい例だね。
参照先・ポイント先が有効なのか考えないでプログラム
している人ってC/C++には向かないよね
0130デフォルトの名無しさん
2013/02/27(水) 11:47:57.910131デフォルトの名無しさん
2013/02/27(水) 12:13:10.04低脳はこういう罠にも気付いてないのに「俺はC++が出来る」と嘘をほざいてるだけだと
バラされて顔を真っ赤にして遁走したようですwww
>>130
スレ違い
C++11スレに行け
0132デフォルトの名無しさん
2013/02/27(水) 12:13:51.86static_assertすればいいんじゃね
0133デフォルトの名無しさん
2013/02/27(水) 12:17:57.35スピードは格段に上がるけどちょっと怖い
でもgcc4.7.2のSTLは既にmove semanticsを前提に書き換えられているし
実際ベンチマークを取ってみると速くなってる
0134デフォルトの名無しさん
2013/02/27(水) 12:21:04.88明示的にやるにはstd::moveって書かなきゃダメだし
勝手にmoveするauto_ptrと違ってそんな怖くはないだろ
0135デフォルトの名無しさん
2013/02/27(水) 12:22:13.190136デフォルトの名無しさん
2013/02/27(水) 12:33:37.15それは分かっている
しかしauto_ptrに痛い目に遭わされて来たからなぁ
>>135
感情が染み付いてしまうとしばしば理性を超えて恐怖を感じる
0137デフォルトの名無しさん
2013/02/27(水) 13:06:57.000138デフォルトの名無しさん
2013/02/27(水) 15:56:27.75自分の隠れてる小さなブロック塀の残骸にマシンガンの流れ弾が当たるのは日常茶飯事で
たまに塀のこっちに手榴弾とかが入ってきて脊髄反射でノートPC抱えて逃げないとヤバい感じ?
夜は明かりで居場所が分からないようにノートPCと自分を黒い布で覆ってコーディングする感じ?
0139デフォルトの名無しさん
2013/02/27(水) 16:06:36.930140デフォルトの名無しさん
2013/02/27(水) 17:05:51.890141デフォルトの名無しさん
2013/02/27(水) 18:07:00.990142デフォルトの名無しさん
2013/02/27(水) 18:46:01.400143デフォルトの名無しさん
2013/02/27(水) 18:57:45.11むしろ値渡なんかしない。
>>125
の問題は、引数ではなくてメンバ変数のライフタイム。
その例の場合、普通はメンバの方を参照にはしない。
0144デフォルトの名無しさん
2013/02/27(水) 19:03:11.410145デフォルトの名無しさん
2013/02/27(水) 19:06:00.93寿命には気を付けるけど
0146デフォルトの名無しさん
2013/02/27(水) 21:19:34.94例で言うとboost::lock_guardとか。
0147デフォルトの名無しさん
2013/02/27(水) 21:44:04.270148デフォルトの名無しさん
2013/02/27(水) 21:54:09.450149デフォルトの名無しさん
2013/02/27(水) 22:12:05.10なんだそりゃ?
0150デフォルトの名無しさん
2013/02/27(水) 22:15:18.06const int&のメンバ変数じゃないと書き換えられなかった
0151デフォルトの名無しさん
2013/02/27(水) 22:23:41.02普通に書き換えられるけど…
0152デフォルトの名無しさん
2013/02/27(水) 22:27:20.04↑が書き換えられなくて、static const int&にした
0153デフォルトの名無しさん
2013/02/28(木) 06:28:12.41constの参照をメンバに持つこと自体がバカなんじゃないの
0154デフォルトの名無しさん
2013/02/28(木) 06:40:45.67const参照じゃなくても生ポインタでも同じ事だよね
呼ばれた側で参照/生ポインタを保持するようなアホなことはそもそも俺はしないなあ
>>131
最近忙しすぎて2ch除くヒマもないだけで遁走したわけじゃないよ
お前と一緒にするなよカス
0155デフォルトの名無しさん
2013/02/28(木) 06:47:19.29「注意が必要」以前の問題
0156デフォルトの名無しさん
2013/02/28(木) 08:39:17.67コンパイル時定数をconst_castすんなよ
0157デフォルトの名無しさん
2013/02/28(木) 09:00:24.100158デフォルトの名無しさん
2013/02/28(木) 09:54:31.29constの参照を今知ったのがバレバレ
constの参照はコンストラクタで初期化しないとコンパイルエラーになる
>>154
お前Qだろ
無知なのがバレて逆切れすんなよ
>>155
連投か
よほど悔しそうだな
俺は「例え」のために書いただけで、パッと見てすぐにおかしいと分からない
時点でお前も同じ
0159デフォルトの名無しさん
2013/02/28(木) 09:56:46.26こうすればコピーしか初期化出来なくなるので正常動作するわけだ
0160デフォルトの名無しさん
2013/02/28(木) 10:26:03.940161デフォルトの名無しさん
2013/02/28(木) 10:29:53.350162デフォルトの名無しさん
2013/02/28(木) 10:53:28.22右辺値禁止したければオーバーロードをdeleteするのが正道なんだよなあ
0163デフォルトの名無しさん
2013/02/28(木) 10:56:00.160164デフォルトの名無しさん
2013/02/28(木) 10:58:09.340165デフォルトの名無しさん
2013/02/28(木) 11:02:29.680166デフォルトの名無しさん
2013/02/28(木) 11:11:19.32人事部にお問い合わせください
0167126
2013/02/28(木) 12:34:17.03なるほど、
>C c(*s);
で生成されたオブジェクト '*s' は一時オブジェクト、コンストラクタのコールが終わると消えてC::printf() までは生きていないと。
http://toro.2ch.net/test/read.cgi/tech/1359924126/294 ではよくある返り値の一時オブジェクトが話題でしたが、今度は引数の一時オブジェクト例とは、感謝。
>なんだQか
どうしてそう思ったの?
0168デフォルトの名無しさん
2013/02/28(木) 12:57:18.100169デフォルトの名無しさん
2013/02/28(木) 14:06:33.92いいんだって
それより文法を正しく理解しているかどうかだ
0170デフォルトの名無しさん
2013/02/28(木) 14:13:56.71std::mt19937 myrand();
の()内に乱数の種を入れることはわかったのですが、
ここではsrand()のように、種を入れる初期化用関数は存在しないのでしょうか?
初期化用の処理にsrand()を入れていたので、どうしていいのか戸惑っています
0171デフォルトの名無しさん
2013/02/28(木) 14:18:29.060172デフォルトの名無しさん
2013/02/28(木) 14:21:31.690173デフォルトの名無しさん
2013/02/28(木) 14:53:54.98なに言ってるんだ?
>constの参照はコンストラクタで初期化しないとコンパイルエラーになる
当たり前だカス。ドヤ顔でいうことじゃないだろ。
お前がド素人丸出しなんだよ。
それに何よQって?知らんよそんなもん
0174デフォルトの名無しさん
2013/02/28(木) 15:43:53.570175デフォルトの名無しさん
2013/02/28(木) 15:57:39.44顔真っ赤にしてファビョらなくてもいいぞ老害
0176片山博文MZパンク ◆0lBZNi.Q7evd
2013/02/28(木) 20:19:56.19static unsigned m_seed;
std::mt19937 m_rand;
public:
MyRand() : m_rand(m_seed) {
}
...
};
unsigned MyRand::m_seed;
void MySRand(unsigned seed) {
MyRand::m_seed = seed;
}
0177デフォルトの名無しさん
2013/02/28(木) 20:20:16.83そんな奴が就くからドカタ職業になるんだろうなと思う
いや、ドカタ職業だから精神壊れている奴ぐらいしか就かないのかも
0178デフォルトの名無しさん
2013/02/28(木) 21:02:19.68friend か public が必要だけどね。
0179デフォルトの名無しさん
2013/02/28(木) 21:26:56.69精神の壊れ方にもいろいろ種類があるけど、他人に迷惑を掛けない壊れ方(自己破壊的)と、
他人に迷惑を掛けまくり(他罰的)な壊れ方の二種類に大別出来る。
前者は統失・双極性障害・うつ病、後者は人格障害がほとんど。後者はアスペではないかと
思う人もいるかもしれないが、それは単にアスペが人格障害を伴っている場合が多いから。
0180デフォルトの名無しさん
2013/02/28(木) 22:20:16.610181170
2013/02/28(木) 23:19:28.02いえそういうことではなく、乱数クラス内に種を渡す用のメンバ関数がないのかなと思ったのです
>>176>>178
ありがとうございます。しかしかえって使いにくくなっているような気がしますが…
皆さまありがとうございました、自己解決しました。
ttp://ideone.com/6QYWl1
例えばあるクラスで使う場合、コンストラクタで初期化をするのはどうすればいいのかと思っていたのですが、
このようにすればいいのですね。
0182デフォルトの名無しさん
2013/02/28(木) 23:19:46.26分類せずに人を見る事が可能だと思ってるのか?
プログラムで言えばソートアルゴリズムにいろいろあるようなもんだ
0183デフォルトの名無しさん
2013/02/28(木) 23:24:56.87解決したようだけど一応、種の再初期化をしたいってことならseedメンバ関数がある。
0184デフォルトの名無しさん
2013/02/28(木) 23:35:49.160185デフォルトの名無しさん
2013/02/28(木) 23:56:09.93これは流行る
0187126
2013/03/01(金) 02:42:21.240188デフォルトの名無しさん
2013/03/01(金) 02:46:46.780189126
2013/03/01(金) 03:16:18.13>>127を例にとると
C::C(const std::string& s) : cs(s) {}
に対して C c(*s); としたときにスタック上に展開される *s の内容と
C::C(std::string& s) : cs(s) {}
に対してのそれとが異なるかどうか?
あるいは一般的に const をつけるかつけないかで、スタック上に展開される内容が異なるかどうか、気になるのです。
0190デフォルトの名無しさん
2013/03/01(金) 04:15:14.40その場合constは魔法でも何でもない
ただ書き換えのエラーチェックがコンパイル時に為されるだけ
0191デフォルトの名無しさん
2013/03/01(金) 04:16:09.940192デフォルトの名無しさん
2013/03/01(金) 08:01:03.66気になるなら自分でアセンブリ吐かせて見ろよ。
0193デフォルトの名無しさん
2013/03/01(金) 10:19:49.22強いて言えばリファレンスをメンバに持たせるとそのメンバはコンストラクタで必ず初期化しないと
コンパイルが通らない位の違い
0194デフォルトの名無しさん
2013/03/01(金) 20:25:00.31ho(T&& ge)の場合、引数にはポンタ以外何か渡しているのか
0195126
2013/03/01(金) 21:49:39.03http://toro.2ch.net/test/read.cgi/tech/1354116880/806 でそう書いたらぼろくそだった‥‥
0196デフォルトの名無しさん
2013/03/01(金) 23:32:58.04そこであなたが言ってることはほとんど正しいと思うけどね
ボロクソ言ってる奴は何も考えていないシッタカ素人としか思えない
参照がポインタconstの糖衣構文とは言い切れないのって
const参照による一時オブジェクト束縛くらいじゃないの?
そうじゃないって言うなら、そうじゃない例を挙げて欲しいものだよ
0197デフォルトの名無しさん
2013/03/01(金) 23:46:01.850198デフォルトの名無しさん
2013/03/02(土) 00:30:45.10混同している輩には呆れる
0199デフォルトの名無しさん
2013/03/02(土) 00:48:26.960200デフォルトの名無しさん
2013/03/02(土) 01:00:10.530201デフォルトの名無しさん
2013/03/02(土) 01:32:42.820202デフォルトの名無しさん
2013/03/02(土) 02:50:34.74混同している、とはどういう意味?今現在混同している事例が進行中なの?
0203デフォルトの名無しさん
2013/03/02(土) 03:00:58.98その前にお前は敵なのか味方なのかそれをはっきりさせろ
0204デフォルトの名無しさん
2013/03/02(土) 03:02:24.29無能の言うことはいつもこれ
0205デフォルトの名無しさん
2013/03/02(土) 09:35:00.440206デフォルトの名無しさん
2013/03/02(土) 10:10:30.200207デフォルトの名無しさん
2013/03/02(土) 11:45:49.730208デフォルトの名無しさん
2013/03/02(土) 12:26:11.800209デフォルトの名無しさん
2013/03/02(土) 13:22:24.760210デフォルトの名無しさん
2013/03/02(土) 13:58:05.02APIスレみたいになると楽しいよな
0211デフォルトの名無しさん
2013/03/02(土) 16:14:45.45今、次のようなコードがあるとします。
wchar_t * src = L"aabbcc";
wchar_t dest[3];
size_t lenToCpy = 2;
wcsncpy_s(dest, 3 * sizeof(wchar_t), src, lenToCpy);
dest[6] = L'\0';
"aa"だけコピーしたいんですけど。
使い方はこれであってますか?
なんか、wcsncpy_sでsrcの長さ(この場合6文字xsizeof(wchar_t) = 12バイト)だけdestが0xfeで埋められてから
len文字分だけコピーされているように見えます。@VS2008
なのでdestでヒープが壊れるってデバッグ終了時に言われるんですが。。
(この例ではdestはローカルだけど、実際にやってるコードだとヒープです。)
0212デフォルトの名無しさん
2013/03/02(土) 16:19:47.41>dest[6] = L'\0';
ダメ
0213デフォルトの名無しさん
2013/03/02(土) 16:21:10.46あ、すみません。。
そこは2chに書くときに治し忘れてました。。dest[2]=L'\0'って読み替えてください。。
本当に申し訳ない。
0214デフォルトの名無しさん
2013/03/02(土) 16:24:00.68>この動作を無効にするには、_CrtSetDebugFillThreshold を使用します。
正常動作ですが何か
0215デフォルトの名無しさん
2013/03/02(土) 16:45:35.26え?
FEで埋めるのはいいんですが、与えられたバッファサイズを超えて埋めるのってどうなんですか?
なんか追っかけていくと最後に_FILL_STRING(_DEST, _SIZE, _SIZE - available + 1);
って処理があって、これがバッファをバーンと壊してますね。
その直前まではいい感じなのに。
0216デフォルトの名無しさん
2013/03/02(土) 16:45:35.54マニュアルちゃんと読めよ
0217デフォルトの名無しさん
2013/03/02(土) 16:46:40.723 * sizeof(wchar_t) の * sizeof(wchar_t) が要らない
0218デフォルトの名無しさん
2013/03/02(土) 16:46:55.73配列ならテンプレートが勝手に要素数埋めてくれる
0219デフォルトの名無しさん
2013/03/02(土) 16:47:48.62ありがとうございます!
やっぱり使い方が間違っていたんですね。
スレ汚しすみませんでした
0220デフォルトの名無しさん
2013/03/02(土) 16:58:21.750221デフォルトの名無しさん
2013/03/03(日) 09:07:14.32template使ったらヘッダでincludeしなきゃならなくなる。
template使わない方がいいのかな?
0222デフォルトの名無しさん
2013/03/03(日) 09:10:02.15それもテンプレートにすりゃいいじゃん
0223デフォルトの名無しさん
2013/03/03(日) 09:20:01.48例を出すと、Windows.hをヘッダでインクルードしないぞと決めていて、
template使ってしまうと、実装部分にSleep関数あるから困るみたいな感じ。
0224デフォルトの名無しさん
2013/03/03(日) 09:23:12.51void func(int a, F f) { f(a); }
で使う側で func(10, Sleep); としてやればいい
0225デフォルトの名無しさん
2013/03/03(日) 09:46:52.12関数渡してやればいいわけですか
ありがとうございました
あとは自分の中で保守性とか考えてどうするか決めたいと思います
0226デフォルトの名無しさん
2013/03/03(日) 13:18:41.660227デフォルトの名無しさん
2013/03/03(日) 23:29:17.69俺質問者じゃないけど、興味あるから具体的にどうするか教えて
0228デフォルトの名無しさん
2013/03/03(日) 23:48:08.450229デフォルトの名無しさん
2013/03/03(日) 23:49:28.260230デフォルトの名無しさん
2013/03/04(月) 00:11:32.68それじゃ汎用性なさ杉
Sleepが一つならともかく、引数型・数や返値が違うapiを使うたびに書くようじゃ
おいおいじゃないか
0231デフォルトの名無しさん
2013/03/04(月) 00:16:13.93それを継承するのが定石じゃね?
0232デフォルトの名無しさん
2013/03/04(月) 02:23:19.72auto func(F f, Args... args) -> decltype(f(args...))
{ return f(args...); }
0233デフォルトの名無しさん
2013/03/04(月) 03:17:04.21String.copyValueOf(char[] data)使いなよ
0234デフォルトの名無しさん
2013/03/04(月) 03:22:25.60スレタイ見ろよ
0235デフォルトの名無しさん
2013/03/04(月) 03:25:27.520236デフォルトの名無しさん
2013/03/04(月) 03:27:25.040237デフォルトの名無しさん
2013/03/04(月) 03:33:28.250238デフォルトの名無しさん
2013/03/04(月) 03:36:24.64∧_∧
( ・ω・ ) 何も思い残すことはない
(====) ボコボコにされてやんよ
______( ⌒) )
/\  ̄`J ̄ ̄ ̄\
 ̄ ̄ ̄ ̄| | ̄ ̄ ̄ ̄
| |
/ \
0239デフォルトの名無しさん
2013/03/04(月) 03:37:47.11Javaのメソッド紹介してどうする?
0240デフォルトの名無しさん
2013/03/04(月) 03:44:51.160241デフォルトの名無しさん
2013/03/04(月) 20:57:34.98亀ですまんな
薄いテンプレートは型を動的に判定する処理を書いて、テンプレートでラップする事によって型安全性を確保するもの
ttp://ideone.com/l2aW9M
他にも、特定のコンセプトを満たす型を消去したい場合はBoost.TypeErasureが使える
Boost使ってないけどおおよそ以下の感じになる
ttp://ideone.com/l2aW9M
他にもBoost.Variant(Any)など何らかの方法で型を消去してやれば処理の隠蔽が実現できる
0242デフォルトの名無しさん
2013/03/04(月) 23:07:21.04winでcygwin使ってます
0243デフォルトの名無しさん
2013/03/04(月) 23:09:12.310244デフォルトの名無しさん
2013/03/04(月) 23:09:59.230245デフォルトの名無しさん
2013/03/04(月) 23:44:22.91総合開発環境使わないでDXライブラリ使う方法を教えてください
0246デフォルトの名無しさん
2013/03/04(月) 23:50:07.99コード書く
コンパイルする
リンクする
0247デフォルトの名無しさん
2013/03/04(月) 23:50:51.900248デフォルトの名無しさん
2013/03/05(火) 00:23:33.030249デフォルトの名無しさん
2013/03/05(火) 00:44:45.62普段Eclipse使っててCDTなるC/C++開発環境プラグインを導入したのだがコンパイラがついていなかった
なのでcygwin導入したもののEclipseで実行するとバイナリが見つからないチックなエラーが出る
そこで総合開発環境はあきらめて質問した
0250デフォルトの名無しさん
2013/03/05(火) 00:48:12.870251デフォルトの名無しさん
2013/03/05(火) 00:49:21.830252デフォルトの名無しさん
2013/03/05(火) 01:24:36.880253デフォルトの名無しさん
2013/03/05(火) 09:22:27.18の記述はOKなのに、
MAX_DRIVE や MAX_DIR は、前に _ をつけなければならない理由を教えてください。
あと、普段記述するのに、
MAX_PATH
_MAX_PATH
のどちらがいいですか?
0254デフォルトの名無しさん
2013/03/05(火) 09:31:35.01http://www.google.co.jp/search?q=%22MAX_PATH%22+%22_MAX_PATH%22
0255デフォルトの名無しさん
2013/03/05(火) 09:33:39.83変な言い方だがWindowsアプリケーションなのかC/C++アプリケーションなのかで決めろ
_が付く→C/C++実装系の為
付かない->Windows APIのもので言語依存とか知らんがな
0256デフォルトの名無しさん
2013/03/05(火) 19:57:24.85C言語コンパイラで決められているんですか
C言語ではなくOSで決められいるてるんですか
それとも、他のなにかでですか
0257デフォルトの名無しさん
2013/03/05(火) 20:14:51.810258片山博文MZパンク ◆0lBZNi.Q7evd
2013/03/05(火) 21:33:52.520259242
2013/03/05(火) 21:53:02.950260デフォルトの名無しさん
2013/03/05(火) 22:08:41.650261デフォルトの名無しさん
2013/03/07(木) 07:46:37.56両方を引数として受け取れる関数は作れるでしょうか。
void f (int x, int型を引数にとる1引数関数ポインタor関数オブジェクト g)
{
g が関数ポインタなら (*g) (x);
g が関数オブジェクトなら g (x);
}
この関数 f を2種類の引数でオーバーロードするしか無いでしょうか。
0262デフォルトの名無しさん
2013/03/07(木) 07:50:38.780263デフォルトの名無しさん
2013/03/07(木) 12:21:10.79関数ポインタでも g (x); で呼べるだろ。
どちらもtemplate<typename T>void f(int,const T&);
で受けられる。
ただし、VC10にはconst T&に&関数名ではなく、
暗黙に関数ポインタに変換されることを期待して、関数名を渡すと、
おかしな挙動をするバグがあったから注意。
他はしらね。
0264261
2013/03/07(木) 12:45:15.54ありがとうございました。
0265デフォルトの名無しさん
2013/03/07(木) 13:08:32.89template<class F>void call(F f);
のようにコピーで受け取るのが流行ってるのはなぜですか?
無駄なコストに思えるのですが合理的な理由があるのでしょうか
0266デフォルトの名無しさん
2013/03/07(木) 14:41:12.07いちいちそんなコストを気にしていない or inline化を期待してる or operator()に副作用がある場合にそれを呼び出し元に伝えないように or
F&だと一時変数を渡せない。C++11ならtemplate FのF&&でいいかもしれないがC++03とのコードの可搬性を考えているl。
0267デフォルトの名無しさん
2013/03/07(木) 14:45:20.28これならテンポラリも渡せるしconst故に副作用もない(constメソッドに副作用がある書き方をする方が悪い)
やはり値渡しをする理由がないですよ
0268デフォルトの名無しさん
2013/03/07(木) 14:54:38.05const& F自体はinline化には関係ないと思うけど。
内部状態を変更する関数オブジェクトを渡す予定がないならconst F&でもいい。でも柔軟性はなくなるよね。
0269デフォルトの名無しさん
2013/03/07(木) 15:13:59.980270デフォルトの名無しさん
2013/03/07(木) 15:52:17.47環境によっては平行性に影響があるかもしれない。
0271デフォルトの名無しさん
2013/03/07(木) 16:42:06.56classまではわかります
0272デフォルトの名無しさん
2013/03/07(木) 16:49:31.74STLを実現するためにクラスなどC++の装備が整えられた。
クラスをふくめC++の多くの装備は裏方。
STL+C言語ができれば、多くを知らずとも生産性は余り変わらない。
0273デフォルトの名無しさん
2013/03/07(木) 17:08:39.530274デフォルトの名無しさん
2013/03/07(木) 20:28:28.75ま、かなり直交的に設計されてるから、覚える事ってか少ないんだよね。
使い方だけしか載ってないけど、STL 標準講座で十分かなと思う。
少し深入りしたければ、effective STL かな。
0275デフォルトの名無しさん
2013/03/07(木) 20:31:09.55イテレータとかアロケーターの作り方覚えるのめんどかった
なんかこうC#みたいにこのインターフェースを実装しろみたいなのがある方が親切だよね
0276デフォルトの名無しさん
2013/03/07(木) 20:39:20.380277デフォルトの名無しさん
2013/03/07(木) 20:54:16.46C#みたいに簡単にアプリを作る人が使う言語じゃないよな
0278デフォルトの名無しさん
2013/03/07(木) 20:57:00.44でもライブラリ作る人が作ったそのライブラリは誰が使うの?
0279デフォルトの名無しさん
2013/03/07(木) 21:07:52.91実際そういうC++プログラマは多いがな
0280デフォルトの名無しさん
2013/03/07(木) 21:15:48.98他の言語を見下している奴が多いよな
最高の言語はC++でそれを使っている俺は最高の奴だって自負
俺は最近はアプリはC#だけどな
0281デフォルトの名無しさん
2013/03/07(木) 22:28:55.290282デフォルトの名無しさん
2013/03/07(木) 22:37:24.980283デフォルトの名無しさん
2013/03/07(木) 23:00:35.080284デフォルトの名無しさん
2013/03/08(金) 00:29:45.89C++の向こうへと君は還るのか
0285デフォルトの名無しさん
2013/03/08(金) 02:31:03.86わけのわからないいちゃもんつけるなアホ
0286デフォルトの名無しさん
2013/03/08(金) 22:35:03.61もうラムダとかLINQとかいらない。
0287デフォルトの名無しさん
2013/03/08(金) 22:37:17.04メモリの番地を参照したり変更したりもできちゃうのですね 僕、これは反則だと思います
Javaとweb系しかいままでやってきませんでしたが、このポインタを使ってるとまるでチートしてるような気分ですわ
ありがとう たけちゃんより
0288デフォルトの名無しさん
2013/03/08(金) 22:39:25.82反則だな
0290デフォルトの名無しさん
2013/03/08(金) 22:58:36.97もとは高級アセンブラだから、何でもありで、それでいてシンプルだった。
0291デフォルトの名無しさん
2013/03/08(金) 23:02:58.790292デフォルトの名無しさん
2013/03/08(金) 23:05:51.18TRUE FALSE NULLのように大文字で書く理由ってなんなのですかね
例えば小文字にしても動いたり、動かない場合があったりする気がします
0293デフォルトの名無しさん
2013/03/08(金) 23:06:48.720294デフォルトの名無しさん
2013/03/08(金) 23:07:16.330295デフォルトの名無しさん
2013/03/08(金) 23:08:19.600296デフォルトの名無しさん
2013/03/08(金) 23:29:14.34その関数がマクロで作られているってこと??
0297デフォルトの名無しさん
2013/03/08(金) 23:34:56.390298デフォルトの名無しさん
2013/03/08(金) 23:37:09.440299デフォルトの名無しさん
2013/03/08(金) 23:39:26.860300デフォルトの名無しさん
2013/03/09(土) 00:08:44.58#define NULL 0
#define TRUE -1
#define FALSE 0
とかされてる
0301デフォルトの名無しさん
2013/03/09(土) 00:59:19.220302デフォルトの名無しさん
2013/03/09(土) 01:07:24.73VBじゃねーんだから
0303デフォルトの名無しさん
2013/03/09(土) 01:10:41.94C++初心者の素朴な疑問なんですが、どうしてBool型ではなくint型なの?
メモリけちるため?
0304デフォルトの名無しさん
2013/03/09(土) 01:13:04.470305デフォルトの名無しさん
2013/03/09(土) 01:13:52.720306デフォルトの名無しさん
2013/03/09(土) 01:15:22.96マシン語に近いって言われる理由がなんとなくわかった気がする
0307デフォルトの名無しさん
2013/03/09(土) 01:17:28.980308デフォルトの名無しさん
2013/03/09(土) 01:17:36.810309デフォルトの名無しさん
2013/03/09(土) 01:21:26.840310デフォルトの名無しさん
2013/03/09(土) 01:34:17.21C++にbool型はあってもBool型はない
そしてC++ではbool型はあるのでマクロを使う必要はない
Cにはbool型はない
一部の環境・ライブラリではCで真偽値型を模すためにTRUE/FALSEマクロを定義してる
bool型はないのでbool型で定義するのは不可能
0311デフォルトの名無しさん
2013/03/09(土) 02:02:22.12intとbool変換を無制限に許すことになったので、
bool型のご利益がほとんど無い。
0312303
2013/03/09(土) 02:42:54.49C++のライブラリでもそのマクロ?なるものでint型でフラグわけるのですよね?
0313デフォルトの名無しさん
2013/03/09(土) 02:47:42.69Bool/TRUE/FALSEを使うのは一部のライブラリの方言(方便)と思っておけばよろし。
0314デフォルトの名無しさん
2013/03/09(土) 03:04:22.880316デフォルトの名無しさん
2013/03/09(土) 03:20:16.000317デフォルトの名無しさん
2013/03/09(土) 03:30:55.93Javaのラッパークラスとはまた別?
0318デフォルトの名無しさん
2013/03/09(土) 03:40:05.72BOOLは標準じゃないんだから実装次第だよ。
0319デフォルトの名無しさん
2013/03/09(土) 03:46:41.16while ( cond ) {
condの部分は非ゼロなら真、ゼロなら偽という定義は変わってないよね?
0320デフォルトの名無しさん
2013/03/09(土) 08:48:30.19> C++のライブラリでもそのマクロ?なるものでint型でフラグわけるのですよね?
間違い
純粋にC++で完結するなら真偽値マクロは使わずboolだけを使う
C++からC用に真偽値マクロを定義したライブラリを使うところはそのライブラリの定義するマクロを使わなくてはならない
0321デフォルトの名無しさん
2013/03/09(土) 09:30:50.68C++で簡潔するというのがどういうのかがわかんない
例えばC++用のライブラリを作るとして、ある程度Cと互換のあるものを作りたい場合にbool方使わずにint型使ったりするってこと?
0322デフォルトの名無しさん
2013/03/09(土) 10:26:36.97大体はそんな感じ(ライブラリが外部に公開するインターフェイスやデータ構造の話)
C++用がC++専用の意味ならそのライブラリはCとの互換性を考える必要はない(Cから使えなくてもかまわない)からboolを使う
C/C++のどちらからでも使えるライブラリならC用のライブラリとして作ればいいけど
その場合boolは使えないからマクロを用意してそれを使う
0323デフォルトの名無しさん
2013/03/09(土) 10:33:45.53いちいち全部tryでラップすんの?
0324デフォルトの名無しさん
2013/03/09(土) 10:47:10.91BOOLはintだけど、boolは1バイトかint以下のことが多い。
関数の引数なら問題ないだろうけど、
配列や構造体の場合使い分けないとまずいね。
0325デフォルトの名無しさん
2013/03/09(土) 11:05:39.73int p(void);
if (p() == true)
0326デフォルトの名無しさん
2013/03/09(土) 11:16:58.13構造体のサイズとか気にする時に実装が環境依存のboolは使わないよ
charを使うのが普通だ
0327デフォルトの名無しさん
2013/03/09(土) 11:43:26.67C99のtrueマクロは1でC++のtrueは整数拡張で1になるから
それを判定したいならおかしくない
まあいわゆる正しい書き方ではないだろうが
0328デフォルトの名無しさん
2013/03/09(土) 11:50:30.000329デフォルトの名無しさん
2013/03/09(土) 11:55:32.68BOOL b = ( x != FALSE )
boolは2値化を確実にやってくれるところだけはありがたい。
0330デフォルトの名無しさん
2013/03/09(土) 11:56:17.850331デフォルトの名無しさん
2013/03/09(土) 11:58:59.06いささか厳しすぎる内容だと思うが、それでもマクロではまずい場合が多い。
enumかclassにするのが組込型の次に良いらしい。
0332デフォルトの名無しさん
2013/03/09(土) 12:01:18.070333デフォルトの名無しさん
2013/03/09(土) 12:04:22.330334デフォルトの名無しさん
2013/03/09(土) 12:10:27.870335デフォルトの名無しさん
2013/03/09(土) 12:48:14.230336デフォルトの名無しさん
2013/03/09(土) 12:56:37.87C++が難しくて挫折したからって負け惜しみ言うなよ(^w^)
0337デフォルトの名無しさん
2013/03/09(土) 13:06:14.11> ライブラリの投げた例外てキャッチして自前の例外なげるのが普通なん?
その例外をどう扱いたいかを決めてそれにあわせた処理をするのが普通
0338デフォルトの名無しさん
2013/03/09(土) 13:21:25.460339デフォルトの名無しさん
2013/03/09(土) 13:49:19.13a が bool 型なら
a != false と a == true は等しくなるよ
a が bool 型でない場合に保証されないのは
C99 も C++ も同じ
0340デフォルトの名無しさん
2013/03/09(土) 15:49:32.64まあcatchするかしないかのどちらかだとは言える。
0341デフォルトの名無しさん
2013/03/09(土) 17:53:41.66> じゃあどう扱うかは外が決めるとした場合にはどうする?
なにもせず全ての例外をそのまま外に渡す
どこに疑問に思うところがあるんだろう?
0342デフォルトの名無しさん
2013/03/09(土) 19:03:13.450343デフォルトの名無しさん
2013/03/09(土) 19:30:04.390344デフォルトの名無しさん
2013/03/09(土) 19:32:14.020345デフォルトの名無しさん
2013/03/09(土) 19:59:49.450346デフォルトの名無しさん
2013/03/09(土) 20:17:29.99ど素人でもなれる職業にしたから、機械扱いになるのはしょうがない
人間に生まれたのに機械になるなんて信じられない
壊れるまえに人間に戻れ
0347デフォルトの名無しさん
2013/03/09(土) 21:18:04.880348デフォルトの名無しさん
2013/03/09(土) 22:07:29.19やっている連中のレベルが違いすぎて当然
0349デフォルトの名無しさん
2013/03/09(土) 22:17:40.83日本全国さがしても技術的に無理な案件てなんだ?
0350デフォルトの名無しさん
2013/03/09(土) 22:25:13.79でも、ドカタには技術は禄にいらんから、素人でOKってことだろ
0351デフォルトの名無しさん
2013/03/09(土) 22:32:38.84特許庁
0352デフォルトの名無しさん
2013/03/09(土) 22:36:54.330353デフォルトの名無しさん
2013/03/09(土) 22:57:52.20ないやつの方がたぶん多い
0354デフォルトの名無しさん
2013/03/09(土) 23:40:23.62uyか?
uyはコテ付けて暴れろうざい
0355デフォルトの名無しさん
2013/03/09(土) 23:48:26.21特にライブラリの追加。
リンカーだとかインクルードだとか設定が面倒くさすぎだし、初心者がライブラリを使いづらいし、ライブラリ自体追加したいという気にならない。
Java x Eclipseみたいにガンガンライブラリ追加できる仕組みにしてほしいわ
0356デフォルトの名無しさん
2013/03/09(土) 23:51:22.220357デフォルトの名無しさん
2013/03/09(土) 23:58:34.100358355
2013/03/10(日) 00:04:36.81>馬鹿はライブラリなど使うな
ほれみろ。いったとおりじゃないか。結局こういう流れになる。そういう排他的な言語なのか?C++は。
0359デフォルトの名無しさん
2013/03/10(日) 00:09:06.810360デフォルトの名無しさん
2013/03/10(日) 00:10:07.560361デフォルトの名無しさん
2013/03/10(日) 00:10:15.20環境と言語を一緒くたにしてしまう男の人って・・・
0362デフォルトの名無しさん
2013/03/10(日) 00:11:38.66マジキチのクズがいやいややらされる言語がC系列だから仕方ない
性格悪い→++の案件押し付けられる→精神汚染されて性格がさらにゆがむ
この悪循環から抜け出せないんだよ奴らは
0363片山博文MZパンク ◆0lBZNi.Q7evd
2013/03/10(日) 00:13:19.790364デフォルトの名無しさん
2013/03/10(日) 00:14:07.04そんなこと程度をめんどくさがってたらコードなんて書けないだろうに
0365デフォルトの名無しさん
2013/03/10(日) 00:17:46.20c99で規格化されてるよ
お約束的にincludeおすすめ
stdint.h c用
cstdint c++用
0366デフォルトの名無しさん
2013/03/10(日) 00:18:58.07ライブラリのリンクまではVC++だと#pragmaでいけるけど
ものによってはそれもダメだし、
インクルードパスの指定はどうにもならない
0367デフォルトの名無しさん
2013/03/10(日) 00:20:54.780368デフォルトの名無しさん
2013/03/10(日) 00:21:35.930369デフォルトの名無しさん
2013/03/10(日) 00:21:54.37だけどやっぱIDEとともに言語って進化するのではなかろうか
0370デフォルトの名無しさん
2013/03/10(日) 00:28:52.55EclipseとかXcodeなら肯定するけどVSは違うんじゃね
0371デフォルトの名無しさん
2013/03/10(日) 00:30:00.380372デフォルトの名無しさん
2013/03/10(日) 00:30:03.510373片山博文MZパンク ◆0lBZNi.Q7evd
2013/03/10(日) 00:31:05.060374デフォルトの名無しさん
2013/03/10(日) 00:31:57.940375デフォルトの名無しさん
2013/03/10(日) 00:32:54.22可能な限りね。
言語柄しかたないが、個別に振り分けないといけない設定が多すぎるとは思う
0376デフォルトの名無しさん
2013/03/10(日) 00:32:55.86>>322
失礼アンカ間違えた
325は取りあえず、cなら論理式かく必要ないしあまり気にならない
強いてするならfalseと比較かな?
0固定で環境依存しないし。
関数の戻りにbool使うのはwindowsの文化だよね
基本はちゃんとエラーコードを返すべき
エラーと真偽値は意味が違うと思うんだ。
0377デフォルトの名無しさん
2013/03/10(日) 00:34:30.78悪い面が多すぎるw
0378デフォルトの名無しさん
2013/03/10(日) 00:36:43.18おっしゃるとおりですorz
boolつかってないのばればれだ
はずかしー
0379片山博文MZパンク ◆0lBZNi.Q7evd
2013/03/10(日) 00:42:33.78インストールされている開発環境を識別する仕組みが必要だな
0380デフォルトの名無しさん
2013/03/10(日) 00:53:17.720381デフォルトの名無しさん
2013/03/10(日) 01:03:51.140382デフォルトの名無しさん
2013/03/10(日) 01:09:43.54lib/
を開発環境に上書きコピーするだけでライブラリのインストール完了、って形式がいいと思う
0383デフォルトの名無しさん
2013/03/10(日) 01:33:08.27上書き形式だとアンインストールしたいとき少し面倒かもしれない
0384デフォルトの名無しさん
2013/03/10(日) 01:38:39.72流れも読め。>>322はTRUE/FALSEマクロの話からの流れだからC99はお呼びじゃない
0385デフォルトの名無しさん
2013/03/10(日) 01:44:57.24lib/*.lib
bin/*.dll,*.exe
?????_uninstall.bat
コピーしたファイルを消すバッチファイルも付けとくか。
0386デフォルトの名無しさん
2013/03/10(日) 01:47:10.72と思ったけどあれは消すとかしてくれなかったか
0387デフォルトの名無しさん
2013/03/10(日) 02:02:26.99あ゛、UACのせいでバッチが正しく動作しない可能性があった!バッチファイルじゃダメか?
0388デフォルトの名無しさん
2013/03/10(日) 02:06:37.03色んなスレで初心者に嘘教えて喜んでる精神異常は来るな
スレが荒れるだけ
0389デフォルトの名無しさん
2013/03/10(日) 02:09:51.350390デフォルトの名無しさん
2013/03/10(日) 02:13:30.990391デフォルトの名無しさん
2013/03/10(日) 02:21:14.19証拠がなければあなたを名誉棄損で訴えますよ。近々東京地裁に出廷してもらいます。
0392デフォルトの名無しさん
2013/03/10(日) 02:28:53.70https://twitter.com/cpp_akira/status/306631305326632962
https://twitter.com/cpp_akira/status/306632471955509249
0393デフォルトの名無しさん
2013/03/10(日) 02:33:37.41そうとも限らないよ
aがbool型でも未初期化ならfalse/trueでもない値になっている可能性がある
0394デフォルトの名無しさん
2013/03/10(日) 02:41:30.57じゃあ裁判のときに提出するからいいよ
ここだと片山一味が炎上学習法とやらで煽って回答得ようとするからな
0395デフォルトの名無しさん
2013/03/10(日) 02:42:24.38g++で試した所、== true は最適化されて消されるようだ
0396デフォルトの名無しさん
2013/03/10(日) 02:45:18.46バグ仕込ませる回答、が正解。
0397デフォルトの名無しさん
2013/03/10(日) 02:51:32.03http://ideone.com/219P1o
でも流石にbool変数同士を比較する場合にはダメみたいだな
http://ideone.com/MKqFze
まあ未初期化な状態で使った時点で鼻から悪魔なんだが
0398デフォルトの名無しさん
2013/03/10(日) 02:53:26.69そうすれば片山がどれだけいい加減な知識で
適当なことを言ってるかを公にできるし、
2chで質問したらどれほどの糞情報をつかまされるかを
世の中に知らしめることができるw
0399デフォルトの名無しさん
2013/03/10(日) 03:00:49.18>喜んでる精神異常
回答の内容が虚偽であることを証明しろってことじゃなくて、
意図的にそういった書き込みをしていることを証明し、さらに、精神異常と認められるもの(障害者手帳など)をもって証明しろってことじゃないの?
知識が足りないだけで本人は正しいことを書いてると思い込んでるだけならこれは証明できないだろ、ってことじゃないの?
0400デフォルトの名無しさん
2013/03/10(日) 03:03:05.860401デフォルトの名無しさん
2013/03/10(日) 03:07:41.38質問スレッドの私的利用とかな。
(具体的にはスレッドの趣旨に関係ないブログ的利用など)
0402デフォルトの名無しさん
2013/03/10(日) 03:09:59.70http://toro.2ch.net/test/read.cgi/tech/1353308523/961
961:片山博文MZパンク◆0lBZNi.Q7evd :2013/03/10(日) 02:55:15.03 [sage]
あの程度のフリーソフト公開しただけで同業者に恨まれるんだよな。フリーソフト作者は匿名がいいぞまじで。
0403デフォルトの名無しさん
2013/03/10(日) 03:32:12.17確か片山がそういう投稿してたよ
0404デフォルトの名無しさん
2013/03/10(日) 05:27:56.640405デフォルトの名無しさん
2013/03/10(日) 05:34:18.35あなた、あきら君ですよね
0406デフォルトの名無しさん
2013/03/10(日) 07:07:06.560407デフォルトの名無しさん
2013/03/10(日) 07:36:37.87他でやれ スレ荒らしどもめ
0408デフォルトの名無しさん
2013/03/10(日) 08:44:49.54まー所詮キチ連中だからね
0409デフォルトの名無しさん
2013/03/10(日) 08:46:36.63さすがC++
0410デフォルトの名無しさん
2013/03/10(日) 09:23:52.090411デフォルトの名無しさん
2013/03/10(日) 09:59:03.57片山入室禁止って書いとけ
0412デフォルトの名無しさん
2013/03/10(日) 11:37:20.990413デフォルトの名無しさん
2013/03/10(日) 11:39:12.910414デフォルトの名無しさん
2013/03/10(日) 11:47:21.15「ランダムに並び替える」のとはどう違うんだ
0415デフォルトの名無しさん
2013/03/10(日) 11:51:40.23対象としてる全ての数字が全ての順番に同じ確率で現れうることを不公平さが無いと考えてます
0416デフォルトの名無しさん
2013/03/10(日) 12:13:38.13unsigned tmp[101];
memcpy(tmp,a,sizeof(unsigned)*101);
for (i = 0; i <101; ++1) a[i+X%100]=tmp[i];
0417デフォルトの名無しさん
2013/03/10(日) 12:19:11.23X=rand();
a[(i+X)%100]=tmp[i];
0418デフォルトの名無しさん
2013/03/10(日) 12:51:09.55それだと重複しませんか?
並び替えなので当然重複はしてはいけません
0419デフォルトの名無しさん
2013/03/10(日) 13:02:49.290420デフォルトの名無しさん
2013/03/10(日) 13:18:01.440421デフォルトの名無しさん
2013/03/10(日) 13:33:29.120422デフォルトの名無しさん
2013/03/10(日) 13:42:42.12rotateを実装したいんですね。分かります。
0423デフォルトの名無しさん
2013/03/10(日) 14:48:55.050424デフォルトの名無しさん
2013/03/10(日) 14:51:56.14for (int i = N - 1; i > 0; --i) {
int j = rand() % (i + 1);
swap(a[i], a[j]);
}
0425デフォルトの名無しさん
2013/03/10(日) 15:22:56.530426デフォルトの名無しさん
2013/03/10(日) 15:26:49.85一見正しそうだが実は嘘やよくないやり方を教えるのがC/C++使いの美しい伝統
0427デフォルトの名無しさん
2013/03/10(日) 15:32:24.450428デフォルトの名無しさん
2013/03/14(木) 00:17:50.130429デフォルトの名無しさん
2013/03/16(土) 10:01:37.85windows.hのSleep()とか使うの?
0430デフォルトの名無しさん
2013/03/16(土) 11:32:11.67conio.hでキー入力っつーのが分からん
0431デフォルトの名無しさん
2013/03/16(土) 11:35:55.18あとはgetcharとか。
それでSleepとか言ってるようじゃまるっきりわかってねーなw
0432デフォルトの名無しさん
2013/03/16(土) 11:40:29.910433デフォルトの名無しさん
2013/03/16(土) 11:42:52.700434デフォルトの名無しさん
2013/03/16(土) 11:55:52.290435デフォルトの名無しさん
2013/03/16(土) 14:11:46.80イメージとしては、
//メインループ
while() {
//単位フレームあたりの処理
.....
//もしキー入力があれば次のフレームへ
....
}
のようなことをしたいのでwindows.hのSleepでキー入力があるまでSleepさせておくのかなと思ったので質問しました
0436デフォルトの名無しさん
2013/03/16(土) 14:26:56.90今の環境で作る人いないから
何とも言えないと思われ
昔はsleepしなくても動作がもっさりだったので
誰も気にしなかった
0437デフォルトの名無しさん
2013/03/16(土) 15:02:46.730438デフォルトの名無しさん
2013/03/16(土) 15:21:35.88とかで適当に待機しとけばいいだろ
Sleep入れたきゃいれろ
0439デフォルトの名無しさん
2013/03/16(土) 15:28:20.78そんなつまらないことしてるなら
Linux環境の方がましじゃねえか
0440デフォルトの名無しさん
2013/03/16(土) 15:37:16.67すげー懐かしいわwhile(!kbhit());
涙が出そう
0441デフォルトの名無しさん
2013/03/16(土) 17:35:16.340442デフォルトの名無しさん
2013/03/17(日) 10:04:01.04f_in_check == 0 && fmovecheck == 0 && i > 0 && newdepth < 3 * INC_PLY)
{
処理
}
といった感じの記述があったんですが、これだと
・0
・f_in_check == 0
・i > 0
・newdepth < 3 * INC_PLY
がすべて真のときでないとIF文の中に入らなくて
でも0があったら絶対に中に入らない気がするんですけど違うんでしょうか?
0&&っていうのが、判定のためのなんかのテクニック、ということなんでしょうか……?
0443デフォルトの名無しさん
2013/03/17(日) 10:10:19.340444デフォルトの名無しさん
2013/03/17(日) 10:27:39.86#endif
は二箇所書く必要があるからそれを嫌ったのかもしれない
0445デフォルトの名無しさん
2013/03/17(日) 14:47:39.560446442
2013/03/17(日) 15:22:42.17「絶対ここに来ない」というのを逆に利用したんですねきっと
ありがとうございました
0447デフォルトの名無しさん
2013/03/17(日) 15:30:59.180448デフォルトの名無しさん
2013/03/17(日) 17:06:02.96それ結構やる人いるよバッドマナーだと思うけど
俺なら#if 0使うな
0449デフォルトの名無しさん
2013/03/17(日) 17:09:12.260450デフォルトの名無しさん
2013/03/17(日) 17:10:53.37これからするのさ
0451デフォルトの名無しさん
2013/03/17(日) 17:34:54.09酔っぱらってる
0452デフォルトの名無しさん
2013/03/17(日) 19:59:12.40{
struct Data
{
int a;
};
};
クラス内の構造体をテンプレートのデフォルト引数にする方法ないですか?
0453デフォルトの名無しさん
2013/03/17(日) 20:04:36.46素直に外に出しなさい
0454デフォルトの名無しさん
2013/03/17(日) 20:08:47.020455デフォルトの名無しさん
2013/03/17(日) 20:38:24.46みたいな感じでおk
0456デフォルトの名無しさん
2013/03/18(月) 21:04:14.230457デフォルトの名無しさん
2013/03/19(火) 01:19:12.980458デフォルトの名無しさん
2013/03/19(火) 01:46:19.58ヒープとしてだけ使うのにmulti_setやmulti_mapではオーバースペックで重いから
vectorとかでヒープを表現するのに使う
0459デフォルトの名無しさん
2013/03/20(水) 10:14:37.390460デフォルトの名無しさん
2013/03/20(水) 10:18:47.76C++例外はもともとエラー通知目的で作られてそう使われてるから、意図が伝わりづらいし
たぶん遅いよ。
0461デフォルトの名無しさん
2013/03/20(水) 12:23:43.070462デフォルトの名無しさん
2013/03/20(水) 12:42:30.520463デフォルトの名無しさん
2013/03/20(水) 12:53:24.46お前が throw を使わずに高パフォーマンスと高可読性を備えたシンプルなコードを示せば、
そいつは何も言えなくなるだろう。
0464デフォルトの名無しさん
2013/03/20(水) 13:05:16.12デストラクタがないなら
longjmpしてもいいのだろうか
0465デフォルトの名無しさん
2013/03/20(水) 13:12:45.060466デフォルトの名無しさん
2013/03/20(水) 14:07:55.08その手の人は、常識だとか、宗教論争的な理由では動かないんだよね。
理由とその根拠を明示しないと。
0467デフォルトの名無しさん
2013/03/20(水) 14:13:24.750468デフォルトの名無しさん
2013/03/20(水) 14:41:52.74普通returnで返さないの?
0469デフォルトの名無しさん
2013/03/20(水) 14:59:11.75でも、「普通」ってのが難しい人って、結構いるんだよね。
個人的には、そういう人も嫌いなはないんだが、会社で出くわすとめんどい。
0470デフォルトの名無しさん
2013/03/20(水) 15:01:05.770471デフォルトの名無しさん
2013/03/20(水) 15:54:16.64throw 一発で書くほうがずっと楽だから、実行効率と開発効率のトレードオフだね。
0472デフォルトの名無しさん
2013/03/20(水) 15:55:47.89それは再帰を勘違いしてないか?
0473デフォルトの名無しさん
2013/03/20(水) 17:00:21.220474デフォルトの名無しさん
2013/03/20(水) 17:32:17.830475デフォルトの名無しさん
2013/03/20(水) 17:34:48.650476デフォルトの名無しさん
2013/03/20(水) 17:40:49.200477デフォルトの名無しさん
2013/03/20(水) 17:52:26.06例外は、一般的には通常の処理の流れを変えて別の処理に移る仕組みを指す。
C++含む多くの言語ではエラーの通知を主な目的として言語機能に反映されており、
当然エラー通知に使うと便利。
基本的にエラー通知にだけ使っておけばいいけど、自己責任で妙な使い方もできるだろうし、
その中にはもしかすると有用だったり面白い使い方もあったりしないとも言い切れない。
そんなわけで、簡単な答えとしては「エラー通知以外に使うな」となる。
0478デフォルトの名無しさん
2013/03/20(水) 17:59:09.95また、答えを下層からルートまで運ぶのに返り値でリレーしなければならないから無駄が多い
0479デフォルトの名無しさん
2013/03/20(水) 18:06:52.150480デフォルトの名無しさん
2013/03/20(水) 18:08:34.55大抵無駄な最適化だよ
0481デフォルトの名無しさん
2013/03/20(水) 18:20:12.610482デフォルトの名無しさん
2013/03/20(水) 18:23:38.44メモリー確保を試みた結果「確保できませんでした」となる頻度が高く
そのようなシステムではbad_allocの例外は必要ない。
エラーだからといって例外とは限らない。
0483デフォルトの名無しさん
2013/03/20(水) 18:25:10.20これわからない奴がエラー通知に使うんだな
0484デフォルトの名無しさん
2013/03/20(水) 18:33:49.31例外はエラー処理でいいだろ。
0485デフォルトの名無しさん
2013/03/20(水) 18:39:34.14その認識は再帰を理解していないと思われる
0486デフォルトの名無しさん
2013/03/20(水) 18:56:39.24ときどき、catch使えばifによるエラー分岐が不要になってその分効率よくなるとか書いてあるけど、
throw()とかが役に立たない今はthrowなんてプログラムを不安定にするだけだから、使わないし使わせない。
0487デフォルトの名無しさん
2013/03/20(水) 19:10:54.28ま、結局の所、実測してみないと何とも言えないけど。
0488デフォルトの名無しさん
2013/03/20(水) 19:11:17.54逆だろ
例外はいつでも飛んでくるということを前提にしないとダメ
0489デフォルトの名無しさん
2013/03/20(水) 19:28:47.43どういう理屈でthrowがプログラムを不安定にするなんてことになるの?
0490デフォルトの名無しさん
2013/03/20(水) 19:32:48.96各レイヤーにifを入れて分岐させるよりは
throwのlongjumpに任せて例外時のみ判断が入るようにした方が高速
0491デフォルトの名無しさん
2013/03/20(水) 19:38:04.66どれくらい速いの?
0492デフォルトの名無しさん
2013/03/20(水) 19:38:14.550493デフォルトの名無しさん
2013/03/20(水) 19:40:14.840494デフォルトの名無しさん
2013/03/20(水) 20:20:09.870495デフォルトの名無しさん
2013/03/20(水) 21:01:22.17自分の足も他人の足も撃たないように理解して説明も出来るならだが
0496デフォルトの名無しさん
2013/03/20(水) 21:18:15.23exception速いな
0497デフォルトの名無しさん
2013/03/20(水) 21:25:08.24ttp://codepad.org/RwcflKZ9
環境はWindows7 64bt、 CPU はAthlon64x2 3800+
コンパイラはVisualStudio2012、最適化はO2、バイナリは64bit版を生成
結果はこうでした
Normal版 : 326 ミリ秒
Exception版 : 1346 ミリ秒
0498デフォルトの名無しさん
2013/03/20(水) 21:31:01.14最近は例外のが早い
0499デフォルトの名無しさん
2013/03/20(水) 21:33:46.25そろそろコードを見せてくれませんか?
0500デフォルトの名無しさん
2013/03/20(水) 21:35:25.54冗談やめてくれ
0501デフォルトの名無しさん
2013/03/20(水) 21:40:59.02いやまじな話な
例外を使わないとifを繰り返すコストがあるが
例外はもう最近は正常系ではゼロコストだか、
0502デフォルトの名無しさん
2013/03/20(水) 21:41:35.170503デフォルトの名無しさん
2013/03/20(水) 21:42:46.310504デフォルトの名無しさん
2013/03/20(水) 21:43:41.180505デフォルトの名無しさん
2013/03/20(水) 21:44:25.420506デフォルトの名無しさん
2013/03/20(水) 21:45:06.30Javaをやれ
0507デフォルトの名無しさん
2013/03/20(水) 21:45:15.26例外やエラー時に、exception を使う事自体には何の問題もないと思うが、そこに速度の話を持ち込むのはいかがなものかと思うぞ。
正常系の終了処理とかでexception を使うとか言うのは、会社ではやめた方がいいと思う。
0508デフォルトの名無しさん
2013/03/20(水) 21:46:22.82実際に throw されるパスの話をしているわけだが。
0509デフォルトの名無しさん
2013/03/20(水) 21:46:28.240510デフォルトの名無しさん
2013/03/20(水) 21:47:10.69もう固定観念で例外を活用しないてのは素人のやることだよ
0511デフォルトの名無しさん
2013/03/20(水) 21:47:42.33throw するときに必ず if を使うと思うが?
0512デフォルトの名無しさん
2013/03/20(水) 21:48:28.560513デフォルトの名無しさん
2013/03/20(水) 21:49:05.43catch漏れによる異常終了とか、逆に全部補足によるエラーの握りつぶし
前者は例外を追加したときに起こりやすいけど、そうでなくても標準以外の例外まで把握しないとならないとか仕事じゃ使い物にならないし、後者は障害発生の兆しを見逃すことになるから問題外。
標準で発生する例外を捕捉するのは当たり前なのだけどthrowで標準以外の例外まで投げられたらたまらないだろう。常にそれを全部把握していないといないんだよ?
だから使わせない。
javaのせいで同一視されがちだけど例外とエラーの違いはOS関係のエラーとアプリケーションによるエラーという認識なんだ。
0514デフォルトの名無しさん
2013/03/20(水) 21:50:43.71もちつけ
誰と戦ってるんだ?
0515デフォルトの名無しさん
2013/03/20(水) 21:50:46.48申し訳ないが、実装が使用法を規定する、とはどうしても考えにくいのだが。
0516デフォルトの名無しさん
2013/03/20(水) 21:51:52.88重要なポイントは伝播に有る
例外の伝播はなんの苦労もないが
エラーコードチェックは何層にも渡りイフを繰り返さなければならない
これは無論正常系でも同じことでこのオーバヘッドがプログラム全域で積み上がるとバカに出来ない無駄となるわけだ
例外の実装が SjLj ならレジスタを総入れ替えするだけだからきわめて高速。
実装が使用法を規定するなんて考えられない。
0518デフォルトの名無しさん
2013/03/20(水) 21:54:09.94素人かよ
標準例外だけなんてバカなこと言ってるから例外を使いこなせない
0519デフォルトの名無しさん
2013/03/20(水) 21:59:31.78で、throw を使えば、ifはいらないの?
0520デフォルトの名無しさん
2013/03/20(水) 22:00:50.28なんでお前catchするときの話してんの?
0521デフォルトの名無しさん
2013/03/20(水) 22:06:46.24対処漏れの可能性については、エラーが無視されるほかの通知方法よりちゃんと異常終了する例外のがマシだろ。
エラーの握りつぶしの可能性だって、例外なら明示的にやることになるから起こりづらいし見つけやすい。
例外を全部把握していないといけない、などということもない。興味の無い例外は上部のハンドラに引っかかれば
十分なことがほとんど。
例外とエラーの違いについてのその認識も、何の役に立つのかわからない。
0522デフォルトの名無しさん
2013/03/20(水) 22:07:51.22いらないよ
0523デフォルトの名無しさん
2013/03/20(水) 22:08:30.98しない時の話なんだが?
0524デフォルトの名無しさん
2013/03/20(水) 22:10:09.94そんな話はしてないから安心していいよ。
0525デフォルトの名無しさん
2013/03/20(水) 22:12:33.840526デフォルトの名無しさん
2013/03/20(水) 22:13:00.16なんで?
throw する条件を満たしているかどうかのチェックはどうするの?
0527デフォルトの名無しさん
2013/03/20(水) 22:14:03.030528デフォルトの名無しさん
2013/03/20(水) 22:14:36.41エラー以外は例外にしてはいけないと凝り固まっている奴がいるんだな
0529デフォルトの名無しさん
2013/03/20(水) 22:15:29.44バカやなー
流れ追いきれてないよ
0530デフォルトの名無しさん
2013/03/20(水) 22:22:02.690531デフォルトの名無しさん
2013/03/20(水) 22:23:27.02それは例外的状況かという問題と
それに例外機構を使うかという問題は
それぞれ独立していて、都度都度判断すべきだろ
0532デフォルトの名無しさん
2013/03/20(水) 22:24:29.42アホ
そんな話してない
0533デフォルトの名無しさん
2013/03/20(水) 22:27:42.770534デフォルトの名無しさん
2013/03/20(水) 22:31:16.01そもそも、エラーや例外の入るような処理に再帰は適さないと思うのだが。
通常の再帰は戻り値のチェックは行わないで、return で繋いで行くものなので、再帰末尾にreturn を使おうが throw を使おうが余り関係ない。
ほんのちょびっとthrow の方が遅いくらい。
0535デフォルトの名無しさん
2013/03/20(水) 22:31:40.81> 例外やエラー時に、exception を使う事自体には何の問題もないと思うが、そこに速度の話を持ち込むのはいかがなものかと思うぞ。
エラー時や例外時にexception使うのは問題ないのは間違いない。
ここでの話題はエラー時ではない方の例外時に当てはまるかをどう判断するかだろう。
> 正常系の終了処理とかでexception を使うとか言うのは、会社ではやめた方がいいと思う。
正常系の中のエラー以外の例外時にexception使うのは何の問題もないと思ってるんじゃないのか?
0536デフォルトの名無しさん
2013/03/20(水) 22:41:41.12速いのはDW2じゃなかった?
0537デフォルトの名無しさん
2013/03/20(水) 22:43:28.570538デフォルトの名無しさん
2013/03/22(金) 06:19:18.860539デフォルトの名無しさん
2013/03/22(金) 06:27:45.34どこの会社で?
0540デフォルトの名無しさん
2013/03/22(金) 07:16:09.02いったいかわりにどんな言語を使うのか?
0541デフォルトの名無しさん
2013/03/22(金) 07:19:14.790542デフォルトの名無しさん
2013/03/22(金) 07:20:36.28>いったいかわりにどんな言語を使うのか?
そういうのもういいから。何の言語があがろうが打ち負かしたくなるのが君のような人でここの住人だろ。そういう流れにするな
0543デフォルトの名無しさん
2013/03/22(金) 07:57:15.11そこではC++ではなく、より素早く開発できる言語が用いられる
我々はもうOSを開発するしかないんだ
0544デフォルトの名無しさん
2013/03/22(金) 07:59:48.650545デフォルトの名無しさん
2013/03/22(金) 08:24:46.260546デフォルトの名無しさん
2013/03/22(金) 08:45:15.120547デフォルトの名無しさん
2013/03/22(金) 09:01:51.20あぁ昨今の画だけの内容無いゲームのアレね。
0548デフォルトの名無しさん
2013/03/22(金) 09:11:02.480549デフォルトの名無しさん
2013/03/22(金) 09:32:58.68まあ、ミドル以下は必須だろうけど
0550デフォルトの名無しさん
2013/03/22(金) 10:17:12.10>画面叩くだけでカードをゲットするようなゲーム
を大手は本腰入れてやってるんだよね
0551デフォルトの名無しさん
2013/03/22(金) 10:41:43.73スマホ向けとか一部unityを使った開発とかはC++使わないけどまだ少数派だね
大手も力入れてるけど、開発じゃなくて広告の方に金を投入してるだろ
0552デフォルトの名無しさん
2013/03/22(金) 10:57:55.600553デフォルトの名無しさん
2013/03/22(金) 10:59:45.930554デフォルトの名無しさん
2013/03/22(金) 11:04:49.710555デフォルトの名無しさん
2013/03/22(金) 11:10:22.440556デフォルトの名無しさん
2013/03/22(金) 11:12:45.52無駄なコンパイルは馬鹿のすること
0557デフォルトの名無しさん
2013/03/22(金) 11:14:58.62それとも独自スクリプトを作って
ゲームプログラム本体がゲーム機のCPU使って実行するの?
そんな仕組みにしてまでスクリプト使うんだね。
0558デフォルトの名無しさん
2013/03/22(金) 11:17:46.880559デフォルトの名無しさん
2013/03/22(金) 11:18:14.71逆に実行速度が足りてる部分にC++使う理由がないんだが?
0560デフォルトの名無しさん
2013/03/22(金) 12:23:16.59スクリプトと聞いてjavascriptとか
0561デフォルトの名無しさん
2013/03/22(金) 13:06:39.970562デフォルトの名無しさん
2013/03/22(金) 15:02:09.870563デフォルトの名無しさん
2013/03/22(金) 17:20:38.470564デフォルトの名無しさん
2013/03/22(金) 17:38:56.94買えって事だよ
あれはスキャン、しかもわざと荒くスキャンしただけ
0565デフォルトの名無しさん
2013/03/22(金) 17:45:51.46自動で
0566デフォルトの名無しさん
2013/03/22(金) 18:01:45.920567デフォルトの名無しさん
2013/03/22(金) 20:07:50.120568デフォルトの名無しさん
2013/03/22(金) 20:16:29.86世の中糞みたいなソフトだらけになるんだよな。
まずC++もできないような頭の奴に仕事を出すのが間違いなのでは?
0569デフォルトの名無しさん
2013/03/22(金) 20:53:06.810570デフォルトの名無しさん
2013/03/22(金) 21:01:34.95今だにC++に幻想抱いてるコンクリート脳に仕事出す方が危険だよ
0571デフォルトの名無しさん
2013/03/22(金) 21:30:27.800572デフォルトの名無しさん
2013/03/22(金) 23:47:11.580573デフォルトの名無しさん
2013/03/22(金) 23:51:34.64金のなる木である大規模プロジェクトに使えないようじゃだめだからな
0574デフォルトの名無しさん
2013/03/22(金) 23:52:23.780575デフォルトの名無しさん
2013/03/23(土) 02:11:37.85さすがに、そんな事は無いだろ。gnue compilerもたしかC++に移行だし、
他にも、近頃はC++派が多い。特にgoogle周りには。
単純に日本だとC++が出来ても評価できる上が居ないから、
人材が流出しやすいだけだと思うよ。
まぁ、なんというか日本の環境が〜とか言う気は無いけど、
勉強しつづけられる人じゃないとC++はね・・・
0576デフォルトの名無しさん
2013/03/23(土) 02:15:20.860577デフォルトの名無しさん
2013/03/23(土) 03:23:12.01CC++999
0578デフォルトの名無しさん
2013/03/23(土) 07:00:19.62そんな高レベルな話じゃないっしょ
日本でC++プログラマ集めるとメモリリークとかアクセスバイオレーションとか
起こしてそれで何日もはまるようなPGばっかで・・とかそのレベルっしょ。
0579デフォルトの名無しさん
2013/03/23(土) 09:27:51.290580デフォルトの名無しさん
2013/03/23(土) 09:35:20.470581デフォルトの名無しさん
2013/03/23(土) 09:47:25.09世の中にはアプリと呼べるような規模や複雑度では解決できない問題が山積してるのぢゃ
0582デフォルトの名無しさん
2013/03/23(土) 09:48:31.080583デフォルトの名無しさん
2013/03/23(土) 10:05:29.62スタックぶっ壊す奴はいまだにいるけど
0584デフォルトの名無しさん
2013/03/23(土) 10:18:25.130585デフォルトの名無しさん
2013/03/23(土) 10:20:00.640586デフォルトの名無しさん
2013/03/23(土) 11:11:13.95居るからJavaやVBが選択されたんだろ。
0587デフォルトの名無しさん
2013/03/23(土) 11:13:40.48それならプログラマって呼ばないでほしい
0588デフォルトの名無しさん
2013/03/23(土) 11:22:22.34君より知識のない若手でもその辺しっかりしてるヤツは多い。
0589デフォルトの名無しさん
2013/03/23(土) 11:28:01.870590デフォルトの名無しさん
2013/03/23(土) 11:29:10.310591デフォルトの名無しさん
2013/03/23(土) 11:30:54.74儲けたいならPGになんかならねぇよ
その時点で負けなんだからあとはカスどうしで腕のよしあし競うしかないだろ
0592デフォルトの名無しさん
2013/03/23(土) 11:31:17.32それとも日本社会は金でまわっていないと妄信してる学生か?
0593デフォルトの名無しさん
2013/03/23(土) 11:32:47.03今度は拡大解釈ですかw
0594デフォルトの名無しさん
2013/03/23(土) 11:36:00.74金や社会を動かしてるのは別のやつでお前らは機械的に与えられた処理をしてるだけなんだよ
電気を与えられたコンピューターのように、はした金をエネルギーに変えて計算する機械
それがPGだ。一著前になにかを成し遂げたような気になっているんじゃあないぞッ!!
0595デフォルトの名無しさん
2013/03/23(土) 11:43:04.460596デフォルトの名無しさん
2013/03/23(土) 12:46:56.81そいつらは別に商いを成功させてるんじゃなくて
そいつらをこき使って商いしてるやつが成功してるだけで
本人たちは糞みたいな時給です。
つまりちゃんとした技術者がちゃんとした給料を受け取れないのは
業界の違法なサービス残業や偽装請負などで薄利多売で無茶するから。
そしてそれはソフトウエアの品質も下げている。
客は金を払っているが天下りSIerやピンハネ人繰り屋それを盗んでいるので
PGの地位も賃金もソフトの品質も低く、客は高い金を払わざるを得ない。
0597デフォルトの名無しさん
2013/03/23(土) 13:01:37.740598デフォルトの名無しさん
2013/03/23(土) 13:08:43.570599デフォルトの名無しさん
2013/03/23(土) 13:41:58.010600デフォルトの名無しさん
2013/03/23(土) 14:11:55.420601デフォルトの名無しさん
2013/03/23(土) 14:57:23.10リストに際限なく要素を突っ込んでいけばいずれ限界がくる。
リークのしやすさに違いはあるが、最終的には設計のわかりやすさと
担当レベルの技術力しかない。
0602デフォルトの名無しさん
2013/03/23(土) 15:13:08.59それリークじゃないじゃん
単にメモリを使い果たしただけ
0603デフォルトの名無しさん
2013/03/23(土) 15:37:43.49使い終わったメモリ領域を再利用しないでいるのがメモリリークとちゃうの?
0604デフォルトの名無しさん
2013/03/23(土) 15:49:16.00リソースを解放できない状態
0605デフォルトの名無しさん
2013/03/23(土) 15:53:05.22解放し忘れ : 解放しようと思えばいつでも解放できる
リーク : 解放不可能
0606デフォルトの名無しさん
2013/03/23(土) 15:57:33.750607デフォルトの名無しさん
2013/03/23(土) 16:03:42.76たいていはメモリリーク。
確保と解放の時にアドレスをログに
出しておけば
漏れたかどうかはわかる。
0608デフォルトの名無しさん
2013/03/23(土) 16:03:56.48C/C++でダングリングポインタと呼ばれる現象がそれ
つまりmalloc/newで確保した領域を解放する手段がなくなる
GCを備えている言語では原理的にメモリリークは発生しない
単なる怠慢
0609デフォルトの名無しさん
2013/03/23(土) 16:06:43.91それは、リークなのか解放し忘れなのか検出できんことない?
0610デフォルトの名無しさん
2013/03/23(土) 16:06:52.89主語は何かな?
0611デフォルトの名無しさん
2013/03/23(土) 16:07:11.57ただしGC言語でもリソースリークはあり得る
例外が発生したらリソースを解放するパスが二度と実行されない可能性はある
0612デフォルトの名無しさん
2013/03/23(土) 16:12:35.43お前難癖付けて理解したくないだけだろうがカス
重箱の隅をつつくようなマネをする前に意味が分かるだろうが
0613デフォルトの名無しさん
2013/03/23(土) 16:13:19.880614デフォルトの名無しさん
2013/03/23(土) 16:49:37.90エレクトリックフェンスとか使えばできんじゃね? 使ったことないけど
0615デフォルトの名無しさん
2013/03/23(土) 20:32:01.91>>>603
>C/C++でダングリングポインタと呼ばれる現象がそれ
ちげーよ。10年ROMってろ、ヘボ
0616デフォルトの名無しさん
2013/03/23(土) 20:33:55.800617デフォルトの名無しさん
2013/03/23(土) 20:37:02.330618デフォルトの名無しさん
2013/03/23(土) 20:48:48.850619デフォルトの名無しさん
2013/03/23(土) 20:49:49.880620デフォルトの名無しさん
2013/03/23(土) 20:55:09.65メモリの枯渇とメモリリークをごちゃ混ぜにすんな
0621デフォルトの名無しさん
2013/03/23(土) 20:55:58.770622デフォルトの名無しさん
2013/03/23(土) 21:00:27.35寝ぼけたふりしてとぼけてんじゃねーぞ
ダングリングポインタを説明してみろ
0623デフォルトの名無しさん
2013/03/23(土) 21:00:35.720624デフォルトの名無しさん
2013/03/23(土) 21:06:47.38terminateはデストラクタでの例外だった、catch節中の例外はより外側のtry-catch節で捕捉されるはず
0625デフォルトの名無しさん
2013/03/23(土) 21:15:04.69本来解放すべきメモリーを開放せず、サイクルが進むにしたがってメモリが無駄に枯渇する現象で設計ミスです。
C#などでは参照を管理しているので、参照がなくなれば消してもらえるが
参照しっぱなしなら結局リークしていることになる。
ただしC#では参照しっぱなしという状態は作りにくい。
リストにガンガン突っ込み続けるとかそういう本当にアホな事をしないと起きない。
0626デフォルトの名無しさん
2013/03/23(土) 21:17:02.140627デフォルトの名無しさん
2013/03/23(土) 21:37:14.05try {
// DoSomething
} catch(exception const & e) {
string s("ERR in X::Func(void);");
s += e.what();
throw X::Exception(s);
}
こんな感じで例外にデバッグ情報を追加していってるんだけどstringでbad_allocしたらどうするべきなんだろう
0628デフォルトの名無しさん
2013/03/23(土) 21:46:08.030629デフォルトの名無しさん
2013/03/23(土) 21:48:38.910630デフォルトの名無しさん
2013/03/23(土) 22:04:29.45再throwで型を変えてしまったら「デバッグ情報を追加していってる」にはならないよな?
0631デフォルトの名無しさん
2013/03/23(土) 22:06:15.33func();
catch(MyException&e) {
e.add_debug_info(foo);
throw;
}
0632デフォルトの名無しさん
2013/03/23(土) 22:07:20.45深いところで例外を投げられてそれが伝播してくともうどこで起こったかぜんぜんわからないんですよね
0633デフォルトの名無しさん
2013/03/23(土) 22:13:27.420634デフォルトの名無しさん
2013/03/23(土) 22:29:19.99だからその参照を管理しているのを消せば勝手にGCが走った時に解放されるでしょ?
ダングリングポインタというのは例えば
int* a = new int; // (1)
a = new int; // (2)
とやった時に(1)でnewした部分を解放する手段がなくなる事を言う
こういうのが本当のメモリリーク
GCを備えている言語ではメモリの枯渇は起きてもメモリリークはおきない
ちゃんと自分で参照を消せばそれでいい話
0635デフォルトの名無しさん
2013/03/23(土) 22:33:22.05じゃねえんだよ
そんなもんわかってんだよ
広義では参照解放しないのもメモリーリークだっつってんだろ
市ね
0636デフォルトの名無しさん
2013/03/23(土) 22:34:54.110637デフォルトの名無しさん
2013/03/23(土) 22:35:36.59参照を解放しないのは単なる手落ちだろ
相変わらず参照を解放する手段は残ったままだ
それはメモリリークではない
故意であろうとバグであろうと解放する手段が残っているうちはメモリリークではない
解放する手段がなくなった時がメモリリーク
0638デフォルトの名無しさん
2013/03/23(土) 22:36:41.73ダングリングポインタについては俺が誤解していた
しかし>>637で言った事は変わらないぞ
0639デフォルトの名無しさん
2013/03/23(土) 22:37:10.88このバカ、本当にダングリングポインタしらねーでやんの。
晒し上げ
0640デフォルトの名無しさん
2013/03/23(土) 22:38:48.19int* p = new int; // (1)
p = 0; // (2)
(2)の時点でpはダングリングポインタになる
そして(1)で確保した部分を解放する手段がなくなるので
この時点でメモリリークを起こしたと言える
0641デフォルトの名無しさん
2013/03/23(土) 22:38:56.85「広義」なんて言葉、このスレで初めてだ
0642デフォルトの名無しさん
2013/03/23(土) 22:42:19.34ほっときゃいいよ
0643デフォルトの名無しさん
2013/03/23(土) 22:42:40.10参照を解放する手段がなくなってる時の話をしてるんだが。
たとえば参照を握ってるコンテナからの削除に至るUIが無い場合とかね。
0644デフォルトの名無しさん
2013/03/23(土) 22:43:48.11このバカ、まだダングリングポインタを理解して無い。
0645デフォルトの名無しさん
2013/03/23(土) 22:44:15.13具体的なコードで頼む
0646デフォルトの名無しさん
2013/03/23(土) 22:48:06.94参照を握ってるコンテナがスコープを外れたらGCでコンテナごと削除されるんだけど
0647デフォルトの名無しさん
2013/03/23(土) 22:52:39.52↓これで伝わるかな?
class UI {
private static Container<Object> objects;
public void add(Object x) { objects.add(x); }
public void remove(Object x) { /* コンテナからの削除を書き忘れた */ }
// ...
}
アホなコードだと思うだろうが、こういうアホなことをすればGCのある言語でも
メモリリークという現象は生じることになる。
0648デフォルトの名無しさん
2013/03/23(土) 22:52:54.790649デフォルトの名無しさん
2013/03/23(土) 22:53:38.69それ単なるバグ
メモリリークではない
0650デフォルトの名無しさん
2013/03/23(土) 22:57:05.67使えてもC#は使えないって話がでてますけど
本当でしょうか?
C++使えれば多言語でもできそうな気がするけど
0651デフォルトの名無しさん
2013/03/23(土) 22:57:33.33なんか他の部分の実装次第で起こりそうな起こらなさそうな・・・
0652デフォルトの名無しさん
2013/03/23(土) 23:00:01.26単なるバグだったらメモリリークじゃないって言うの?
単なるバグじゃないメモリリークのほうが少ないと思うんだけど・・・。
お前の中の「メモリリーク」の定義を整理して書き出してくれ。わけがわからない。
0653デフォルトの名無しさん
2013/03/23(土) 23:00:08.33あーいや、objectの追加削除に関しては他の実装部分がないのか・・・
すると手段がなくなった時点で、という定義に照らし合わせるとメモリリーク?
0654デフォルトの名無しさん
2013/03/23(土) 23:00:36.58日本語版 :
プログラムが確保したメモリの一部、または全部を解放するのを忘れ、
確保したままになってしまうことを言う。
英語版 :
In object-oriented programming, a memory leak may happen
when an object is stored in memory but cannot be accessed
by the running code.
日本語版は「解放忘れ」、英語版は「アクセスできない」
まぁ、チラッと読んだだけだから、
結局同じ事を違う言葉で言ってるだけなのか知らんが。
0655デフォルトの名無しさん
2013/03/23(土) 23:03:36.70解放する手段はあるだろ
Containerに直接触ればよい
クラスで包んで「あー解放できないやー」とか言って誤魔化してんじゃねーよ
0656デフォルトの名無しさん
2013/03/23(土) 23:04:36.16英語版はmay happenなので定義ですらない気がする
>>653
自己レスだが訂正すると、UIにaddされたオブジェクトが他で開放されてれば別にメモリリークじゃなくなるな
0657デフォルトの名無しさん
2013/03/23(土) 23:05:43.71インスタンスのobjectsにはアクセスできなくね?
0658デフォルトの名無しさん
2013/03/23(土) 23:06:40.15んなこと言い出したらCのfree()忘れだって「ヒープに直接触ればよい」わけで、メモリリークにならんぞ。
0659デフォルトの名無しさん
2013/03/23(土) 23:07:27.28けれどきになるお年頃
0660デフォルトの名無しさん
2013/03/23(土) 23:07:46.35だからインターフェースのバグだっつーの
オブジェクト指向によるprivateと解放する手段がなくなる事を同じ意味で捉えるな
0661デフォルトの名無しさん
2013/03/23(土) 23:08:26.09話が飛躍しすぎ
外行って頭冷やしてこい
0662デフォルトの名無しさん
2013/03/23(土) 23:10:19.250663デフォルトの名無しさん
2013/03/23(土) 23:10:20.41メモリリークの定義が、アクセスする手段がなくなった時点で、ということなんだよね?
privateはその一種なのでは?
0664デフォルトの名無しさん
2013/03/23(土) 23:12:06.78>>654の英文が果たしてオブジェクト指向を考慮した物かどうか分からなければ
これ以上議論しようがない
0665デフォルトの名無しさん
2013/03/23(土) 23:13:56.13In object-oriented programming,
で始まってるんだからprivateも含むような気がする
0666デフォルトの名無しさん
2013/03/23(土) 23:15:24.33メモリ解放の手段がないのがメモリリークというならWindows95まで立ち返らないとダメだな。
0667デフォルトの名無しさん
2013/03/23(土) 23:16:56.58by the running code
0668デフォルトの名無しさん
2013/03/23(土) 23:16:59.41使うとすれば、もしこのclassにコンテナから削除するコードがなければメモリリークだな
0669デフォルトの名無しさん
2013/03/23(土) 23:17:54.05俺はWikiの話なんかしてない
0670デフォルトの名無しさん
2013/03/23(土) 23:20:52.30class UI{
static std::vector<Object> objects;
public:
void add(Object x) { objects.push_back(x); }
void remove(Object x) { /* コンテナからの削除を書き忘れた */ }
};
うーん・・・
0671デフォルトの名無しさん
2013/03/23(土) 23:22:41.15だからさ、保護レベルもメモリリークの一因だと決着が付いたんだからそれでいいんじゃね
0672デフォルトの名無しさん
2013/03/23(土) 23:28:21.610673デフォルトの名無しさん
2013/03/23(土) 23:31:52.52かんぱーーーーい
0674デフォルトの名無しさん
2013/03/23(土) 23:34:05.85その考えこそメモリーリークみたいなものでは
0675デフォルトの名無しさん
2013/03/23(土) 23:35:00.910676デフォルトの名無しさん
2013/03/23(土) 23:35:22.360677デフォルトの名無しさん
2013/03/24(日) 00:35:48.88このボケ死ね。
もういいから己を生から解放しろ。
0678デフォルトの名無しさん
2013/03/24(日) 00:41:00.120679デフォルトの名無しさん
2013/03/24(日) 00:43:54.250680デフォルトの名無しさん
2013/03/24(日) 02:03:57.271日1回サーバー再起動すれば
メモリリークなんて無くなるんじゃね?
0681デフォルトの名無しさん
2013/03/24(日) 02:27:22.43対応しなくておkってシステムあったわ。ちなみに官公庁
0682デフォルトの名無しさん
2013/03/24(日) 02:47:09.30逆になぜ金をかけて治したがるのか?
0683デフォルトの名無しさん
2013/03/24(日) 02:49:56.87そりゃ発注側はプログラマーのオナニーの為
じゃなくて、サービスを提供するために
金払ってるからな。
「プログラマーはバグだらけのシステムしか作れないクズ」
と割り切るのには慣れているだろう。
0684デフォルトの名無しさん
2013/03/24(日) 02:53:55.60相手が行政だとなおさら
0685デフォルトの名無しさん
2013/03/24(日) 03:11:41.752.参照されてないけど標準ライブラリの内部データをいじって解放できたらリークじゃない派
3.参照されていても解放が実行されないバグ派
4.再起動最強。リークなんて幻想派
昔は1をメモリリークということが多かったけど
3もまあいいんじゃないかと思う。
2と4はこのスレで初めて見た。
0686デフォルトの名無しさん
2013/03/24(日) 04:58:31.36それだけ自分の意見を通すだけのためにデタラメを言う奴が多いって事だ
0687デフォルトの名無しさん
2013/03/24(日) 07:16:09.330688デフォルトの名無しさん
2013/03/24(日) 09:09:59.910689デフォルトの名無しさん
2013/03/24(日) 09:30:49.10template<typename InnerException> class MyException: std::exception {
std::string msg_;
InnerException inner_;
public:
MyException(std::string && s, InnerException && e): msg_(std::move(s)), inner_(std::move(e)) {}
// ry
};
try { do_something(); } catch(std::out_of_range & e) {
throw MyException<std::out_of_range>("error: do something", std::move(e));
} catch(std::bad_alloc & e) {
throw // ry
0690デフォルトの名無しさん
2013/03/24(日) 11:44:17.86スライスされてんじゃねーか。型も変わってるし、多段にできそうにもないし。
Boost.Exception でいいよ。
0691デフォルトの名無しさん
2013/03/24(日) 11:48:59.550692デフォルトの名無しさん
2013/03/24(日) 11:49:03.690693デフォルトの名無しさん
2013/03/24(日) 11:50:46.430694デフォルトの名無しさん
2013/03/24(日) 11:53:58.010695デフォルトの名無しさん
2013/03/24(日) 11:55:54.790696デフォルトの名無しさん
2013/03/24(日) 12:07:34.61当たり前のようにstringとかつかってて笑えるんだが?bad_allocで死ぬぞ
0697デフォルトの名無しさん
2013/03/24(日) 12:10:20.87オリジナルの例外のかわりに bad_alloc が飛ぶだけで、別に死ぬわけではない。
0698デフォルトの名無しさん
2013/03/24(日) 12:10:51.450699デフォルトの名無しさん
2013/03/24(日) 12:20:58.45newしてないからつかってないよ
0700デフォルトの名無しさん
2013/03/24(日) 12:24:17.69予め確保されてる中でやりくりしてるのかな?
0701デフォルトの名無しさん
2013/03/24(日) 12:25:07.200702デフォルトの名無しさん
2013/03/24(日) 12:32:15.06死んでくれた方がいい気もする
0703デフォルトの名無しさん
2013/03/24(日) 12:37:49.41お前は例外ハンドラの中で何をしてるの?
0704デフォルトの名無しさん
2013/03/24(日) 12:58:13.42スタックが足りなくなったらbad_allocとは違う理由でプロセスが死ぬだろう
0705デフォルトの名無しさん
2013/03/24(日) 12:59:09.33エラーが出ると危険だ
エラー情報を静的領域に保存してプログラムを安定させてから吐き出そう
0706デフォルトの名無しさん
2013/03/24(日) 13:55:23.15エラー情報はそれでよくてもI/O処理が内部でメモリ動的に使ってたら意味なくね?
0707デフォルトの名無しさん
2013/03/24(日) 14:07:11.60初めからそいつとのパイプを開いておけば良い。
0708デフォルトの名無しさん
2013/03/24(日) 14:18:06.710709デフォルトの名無しさん
2013/03/24(日) 14:23:27.470710デフォルトの名無しさん
2013/03/24(日) 14:30:37.470711デフォルトの名無しさん
2013/03/24(日) 14:31:32.27最後プロセスが死ぬ時にメモリダンプすればいいじゃん
0712デフォルトの名無しさん
2013/03/24(日) 14:31:43.270713デフォルトの名無しさん
2013/03/24(日) 14:32:29.250714デフォルトの名無しさん
2013/03/24(日) 14:52:57.58ログ書き込む前に死ぬかもしれない
死ぬ前にログを書いた方がマシ
0715デフォルトの名無しさん
2013/03/24(日) 15:36:55.430716デフォルトの名無しさん
2013/03/24(日) 17:37:55.26あいほんはOSアップデートの時以外再起動したことないなー
アプリ作ってるときはXCodeで警告だしてくれるけど優秀なのかな
0717デフォルトの名無しさん
2013/03/24(日) 23:53:39.43いろいろな言い方がされているけれどアプリケーションの実行中にリソースが枯渇する現象を「メモリリークしていた」と説明することもある。
まあ、確保と解放を同じスコープ内で行えるようにしていけば、基本は平気なのだけどね。
でもgcあっても参照されていないことにならなければ解放されないから、gcあるから大丈夫なんてのは都市伝説だと思った方がいい。
メモリリテンションいうのだったかな?
ごめ、用語はわすれた。
0718デフォルトの名無しさん
2013/03/24(日) 23:55:43.640719デフォルトの名無しさん
2013/03/25(月) 00:25:38.270720デフォルトの名無しさん
2013/03/25(月) 04:34:38.88>確保と解放を同じスコープ内で
なにかの×ゲームですか?
0721デフォルトの名無しさん
2013/03/25(月) 05:02:20.10何でも質問するんじゃない
0722デフォルトの名無しさん
2013/03/25(月) 07:23:18.340723デフォルトの名無しさん
2013/03/25(月) 07:24:01.870724デフォルトの名無しさん
2013/03/25(月) 07:34:07.770725デフォルトの名無しさん
2013/03/25(月) 07:35:48.380726デフォルトの名無しさん
2013/03/25(月) 08:00:54.990727デフォルトの名無しさん
2013/03/25(月) 10:21:24.85std::listの中身をソートするSTLのアルゴリズムを教えて下さい
0728デフォルトの名無しさん
2013/03/25(月) 10:27:21.930729デフォルトの名無しさん
2013/03/25(月) 13:28:42.99C++は少なくともJavaよりは長生きするから心配しなくていいよ
0730デフォルトの名無しさん
2013/03/25(月) 13:30:11.81できないっす。operator-がどうたら言われます
0731デフォルトの名無しさん
2013/03/25(月) 14:21:04.08listをソートするにはSTLではlist::sortしかないはずだが。
0732デフォルトの名無しさん
2013/03/25(月) 14:34:41.24std::sortのイテレータのtraits要件はRandom Access Iterator
std::listのイテレータのtraitsはBidirectional Iteratorだからstd::sortは使えない
0733デフォルトの名無しさん
2013/03/25(月) 19:58:01.190734デフォルトの名無しさん
2013/03/25(月) 19:58:07.02そのこころは?
0735デフォルトの名無しさん
2013/03/25(月) 20:11:55.58std::begin/endみたく勝手にやってくれないだろうか
0736デフォルトの名無しさん
2013/03/25(月) 20:17:50.53可能な限り生成と同じ場所で?破棄するのがいいよねという話です。
そうすれば、確保と解放が一緒に確認できるので解放が漏れることはなくなるから。
リソース確保した結果が、有効なうちに破棄していることが確認できれば問題はないという目的でスコープ内と表現したので、単純にnewしたもどりがスコープ越えちゃっただけなら同じ話だと思う。
でも、可能なら管理した方がいいような気もする
まぁc++の場合、スタックサイズに制限のある環境でなければ、newが必要になる場面なんてほとんどないから普段はあまり意識しませんけどねー
0737デフォルトの名無しさん
2013/03/25(月) 20:49:39.260738デフォルトの名無しさん
2013/03/25(月) 21:38:08.68std::stable_sort
0739デフォルトの名無しさん
2013/03/25(月) 21:41:54.021個しかないやん
0740デフォルトの名無しさん
2013/03/25(月) 22:08:21.63意地張ってないでいいところは素直に取り入れればいいのにね
0741デフォルトの名無しさん
2013/03/25(月) 22:10:38.81今度からアンモナイトC++と呼ぼう
0742デフォルトの名無しさん
2013/03/25(月) 22:17:09.38わからないが
0743デフォルトの名無しさん
2013/03/25(月) 22:17:41.48暗黙なのに使用には熟考が必要なコピーコンストラクタみたいな事に成るからね
0744デフォルトの名無しさん
2013/03/25(月) 22:34:02.76積極的に便利にしていかないと使用者がどんどん減るな
0745デフォルトの名無しさん
2013/03/25(月) 22:46:05.430746デフォルトの名無しさん
2013/03/25(月) 22:47:27.160747デフォルトの名無しさん
2013/03/25(月) 22:52:33.520748デフォルトの名無しさん
2013/03/25(月) 22:53:37.99でかくなってくりゃCよりC++が楽になることもあるわな
0749デフォルトの名無しさん
2013/03/25(月) 23:15:55.04perlみたいに名前付けたブロック系をbreakとかできるようにはしてほしかった。
いや、マジであればすごい便利だと思うんだ。
0750デフォルトの名無しさん
2013/03/25(月) 23:21:14.750751デフォルトの名無しさん
2013/03/25(月) 23:40:47.100752デフォルトの名無しさん
2013/03/26(火) 00:13:46.59ガベージがないからコレクション系がおのずと使いにくいアルゴリズムなことになってしまうんだが
それにしても糞。
C++の黎明期に標準ライブらつくったやつらのオナニーのせいで伸び悩んでるんだよ。
0753デフォルトの名無しさん
2013/03/26(火) 00:31:49.10そのせいでvector<bool>とかcoutとか邪悪な代物があるけど
それほど悲観するほどでもない
0754デフォルトの名無しさん
2013/03/26(火) 00:52:37.390755デフォルトの名無しさん
2013/03/26(火) 00:56:11.180756デフォルトの名無しさん
2013/03/26(火) 01:02:37.850757デフォルトの名無しさん
2013/03/26(火) 01:26:27.960758デフォルトの名無しさん
2013/03/26(火) 07:13:01.69何に追加するの?
0759デフォルトの名無しさん
2013/03/26(火) 07:22:56.900760デフォルトの名無しさん
2013/03/26(火) 09:45:40.470761デフォルトの名無しさん
2013/03/26(火) 10:43:09.29わざわざ追加なんて言葉を使わないからな。
0762デフォルトの名無しさん
2013/03/26(火) 10:50:57.520763デフォルトの名無しさん
2013/03/26(火) 10:52:50.500764デフォルトの名無しさん
2013/03/26(火) 11:02:37.430765デフォルトの名無しさん
2013/03/26(火) 11:29:45.76ダウンロードしてきて使いたい環境用にコンパイルしてみたいなことじゃないの?
0766デフォルトの名無しさん
2013/03/26(火) 12:27:28.85規格読め
正確に知りたければ結局それが早くて確実
0767デフォルトの名無しさん
2013/03/26(火) 12:35:32.25もともと std 名前空間にない外部のライブラリを
わざわざ std 名前空間に入れるのは何故?
その作業は少なからず苦労すると思うが、
その苦労に見合ったメリットが私には思いつかない。
0768デフォルトの名無しさん
2013/03/26(火) 13:04:48.13boostだってboostという名前空間だろ
0769デフォルトの名無しさん
2013/03/26(火) 13:06:52.18正確じゃなくても要約でいいです
0770デフォルトの名無しさん
2013/03/26(火) 13:09:27.85http://www.cplusplus.com/reference/stl/
ここ読め
英語が読めないという方向はなしで
Chrome使ってすぐに翻訳出来るだろ
ブラウザが火狐だから無理?あんたの事情なんか知るかよ
0771デフォルトの名無しさん
2013/03/26(火) 13:25:07.60いくつかのtypedefされた型と規定された動作をするメンバ関数をメンバに持つこと
0772デフォルトの名無しさん
2013/03/26(火) 15:22:12.790773デフォルトの名無しさん
2013/03/26(火) 15:40:20.76https://sites.google.com/site/stl4jp/reference/iterator
ここでも十分だ
0774デフォルトの名無しさん
2013/03/26(火) 16:45:48.66害を及ぼすのみ
もうこれは絶対法則
0775デフォルトの名無しさん
2013/03/26(火) 16:50:30.670776デフォルトの名無しさん
2013/03/26(火) 16:52:23.40それは言い過ぎ
時間がない時にサラッと読めるのはやはり日本語
>もうこれは絶対法則
いやあんたの価値観が他人に通用するとは限らないからそういう書き方はおかしい
0777デフォルトの名無しさん
2013/03/26(火) 17:04:02.740778デフォルトの名無しさん
2013/03/26(火) 17:18:02.340779デフォルトの名無しさん
2013/03/26(火) 17:19:43.320780デフォルトの名無しさん
2013/03/26(火) 17:35:40.49明らかなら証明してみろ
反証可能性って知ってるよな?これがない物は明らかも糞もない
0781デフォルトの名無しさん
2013/03/26(火) 17:47:21.39つまんないんだけど。
0782デフォルトの名無しさん
2013/03/26(火) 17:59:17.250783デフォルトの名無しさん
2013/03/26(火) 18:27:57.410784デフォルトの名無しさん
2013/03/26(火) 18:46:29.15お前の部分だけ言っている意味が全く分からない
0785デフォルトの名無しさん
2013/03/26(火) 20:04:37.30英語読めないバカは部下をもてない
0786デフォルトの名無しさん
2013/03/26(火) 20:18:25.25但し今後このスレで英語すら読めないゴミに気を使って日本語のドキュメントを探してきてやる必要はない
0787デフォルトの名無しさん
2013/03/26(火) 20:30:17.35そんなこと、子どもみたいにわざわざ宣言しなくてもいいと思うよ。
相手に合わせて和洋ドキュメントを選んでくれる人もいれば、
そうじゃない人も当然いるわけで、そんなのは普通のことだから。
0788デフォルトの名無しさん
2013/03/26(火) 20:39:39.58だから>>786は自分を中心に世界が回ってると思い込んでる自己愛性パーソナリティ障害だから
放っとけって
0789デフォルトの名無しさん
2013/03/26(火) 20:43:29.99あくまでその人の人格的な問題であって、各種疾病のせいなんかじゃないよ。
人格が破綻した駄目な奴なだけだよ。
0790デフォルトの名無しさん
2013/03/26(火) 20:46:46.51そういうバカは身の程をわきまえて、英語メッセージのツールや日本語ドキュメントが整っていないツールには一切近づかない事だ
0791デフォルトの名無しさん
2013/03/26(火) 20:50:11.89お前ら生きてる価値ないなw
0792デフォルトの名無しさん
2013/03/26(火) 20:52:56.36死んで欲しいところだけど
0793デフォルトの名無しさん
2013/03/26(火) 20:53:27.44部下を持ってる人は日本中誰であっても英語が読める人だと言いたいのか
0794デフォルトの名無しさん
2013/03/26(火) 20:53:48.61>人格が破綻した駄目な奴なだけだよ。
まあ同じ事だなww
0795デフォルトの名無しさん
2013/03/26(火) 21:07:41.320796デフォルトの名無しさん
2013/03/26(火) 21:07:41.44それくらい読めたって「英語出来る」なんてとても言えないレベルだぞ
0797デフォルトの名無しさん
2013/03/26(火) 21:08:55.06英語できないのに英語英語いうやつが
0798デフォルトの名無しさん
2013/03/26(火) 21:54:17.960799デフォルトの名無しさん
2013/03/26(火) 22:11:19.470800デフォルトの名無しさん
2013/03/26(火) 23:55:30.15お前バカだろ。逆は真ならずって知らねーだろ。
0801デフォルトの名無しさん
2013/03/26(火) 23:58:33.21Windows携帯も売れなくて
Microsoftもオワコンになる?
0802デフォルトの名無しさん
2013/03/26(火) 23:59:28.70わざとらしいのは面白くない
0803デフォルトの名無しさん
2013/03/27(水) 00:15:56.170804デフォルトの名無しさん
2013/03/27(水) 00:22:30.830805デフォルトの名無しさん
2013/03/27(水) 00:23:25.76を初期化したいんですが、
{"aoieo kakikukeko", "sasisuseso tatituteto", "naninuneno hahihuheho"};
順番にpush_backとかで代入するしかないですか?
0806デフォルトの名無しさん
2013/03/27(水) 00:23:37.690807デフォルトの名無しさん
2013/03/27(水) 00:24:50.35最新規格のC++11なら = { ... } で初期化できるが
対応してないならpush_backするか
別に配列を用意してその配列で初期化するかだな
0808デフォルトの名無しさん
2013/03/27(水) 00:27:05.470809デフォルトの名無しさん
2013/03/27(水) 00:31:12.18std::vector<std::string> vs(vs_def, vs_def + _countof(vs_def));
_countofはVC++のマクロなので
ないなら自分で似たようなの作る
0810デフォルトの名無しさん
2013/03/27(水) 00:34:59.660811デフォルトの名無しさん
2013/03/27(水) 02:05:33.68std::begin std::endでいいだろ
0812デフォルトの名無しさん
2013/03/27(水) 08:29:44.290813デフォルトの名無しさん
2013/03/27(水) 08:53:20.800814デフォルトの名無しさん
2013/03/27(水) 19:27:52.85&ってなに
なんでアンドってよんだり暗パーサンドって言ったりするの?
っていうかそもそも暗パーサンドってなに?なんで変換できないの?
アンパーサンドってアンドの親戚かなにか?
俺ら&がめちゃ身近になってるけど
実は謎だらけ。
0815デフォルトの名無しさん
2013/03/27(水) 19:49:32.05http://ja.wikipedia.org/wiki/%E3%82%A2%E3%83%B3%E3%83%91%E3%82%B5%E3%83%B3%E3%83%89
あなたのPCで変換できないのは、学習されていないから。
私のPCでは変換できる。
調べればずくに分かるたった4つの質問で謎だらけとよく言えるな。
0816デフォルトの名無しさん
2013/03/27(水) 19:51:34.83つまんね
0817デフォルトの名無しさん
2013/03/27(水) 21:16:05.950818デフォルトの名無しさん
2013/03/29(金) 23:57:38.41参照ムズカシイネー
上のコードではBのコンストラクタでAのコンストラクタを呼んでるんだけど
const参照で保持しておけばBが死ぬまでAを抑えてくれるかと思ったらそんなことないのね
この場合、constでAを予め生成しておくのか、Bの中にAを実体で持っておくのか
どっちが良いの?
0819デフォルトの名無しさん
2013/03/30(土) 00:10:30.180820デフォルトの名無しさん
2013/03/30(土) 00:14:13.12ないよね
0821デフォルトの名無しさん
2013/03/30(土) 00:22:09.99constの参照は一時オブジェクトを束縛するってやつだろ?
でもそれをメンバに持ったら、コンストラクタから帰還次第一時オブジェクトは
解体されてしまうんで参照先がなくなる
0822デフォルトの名無しさん
2013/03/30(土) 00:23:15.280823デフォルトの名無しさん
2013/03/30(土) 00:26:03.090824デフォルトの名無しさん
2013/03/30(土) 01:36:00.450825デフォルトの名無しさん
2013/03/30(土) 01:37:32.860826デフォルトの名無しさん
2013/03/30(土) 02:10:34.54std::set<T>での集合演算(共通部分や(集合の)差)のコンパクトで実行効率の良い書き方って、どうなんでしょうか、、、
*(イテレータ)に書き込みを行えるタイプのコンテナ(std::vector<T>とstd::list<T>)であれば
std::set_intersection()とかstd::set_deference()が使えるのですが、
いかんせんstd::set<T>はそうではなく、VC++2010でコンパイルエラーになります、、
0827デフォルトの名無しさん
2013/03/30(土) 02:37:09.810828デフォルトの名無しさん
2013/03/30(土) 02:39:02.31演算結果を書き込む時にエラーが出るだけなら、std::vectorにback_inserterなどで
outputしておいてそれをstd::setにinsertすりゃいいじゃん
0829デフォルトの名無しさん
2013/03/30(土) 02:40:20.57ああそうかstd::back_inserterはstd::setに使うと意味が変わるのね
やった事ないから分からなかった
0830デフォルトの名無しさん
2013/03/30(土) 02:53:22.96int main()
{
std::set<int> si1, si2, si3;
for (int i = 0; i < N; i++) {
si1.insert(std::rand() % N);
si2.insert(std::rand() % N);
}
std::insert_iterator<std::set<int> > ins3(si3, si3.begin());
std::set_intersection(si1.begin(), si1.end(), si2.begin(), si2.end(), ins3);
std::copy(si3.begin(), si3.end(), std::ostream_iterator<int>(std::cout, " "));
}
こんな感じだな
ちなみにstd::back_inserterをstd::setに使おうとするとコンパイルエラー
0831デフォルトの名無しさん
2013/03/30(土) 03:09:40.790832デフォルトの名無しさん
2013/03/30(土) 03:21:29.44> std::insert_iterator<std::set<int> > ins3(si3, si3.begin());
> std::set_intersection(si1.begin(), si1.end(), si2.begin(), si2.end(), ins3);
そこは↓これでいい。
std::set_intersection(si1.begin(), si1.end(), si2.begin(), si2.end(), std::inserter(si3, si3.begin()));
0833デフォルトの名無しさん
2013/03/30(土) 03:22:00.56push_back() を持っていない、の間違いだろ。
0834826
2013/03/30(土) 11:18:02.86>832式に行ってみようかと、
しかし#include <iterator>って何だよなんでiteratorみたいなちょー基本概念に関する手段がなんで別のヘッダファイルに隔離されてるんだよコンテナのヘッダをインクルードしただけで使わせてくれよ、、、
とそこはかとなくオモタ、
0835デフォルトの名無しさん
2013/03/30(土) 11:21:07.88そういうことだ
0836デフォルトの名無しさん
2013/03/30(土) 11:55:17.27シンボルが見える(宣言される)ことと、シンボルが指す機能の直交性に何の関係が
0837デフォルトの名無しさん
2013/03/30(土) 12:25:19.290838デフォルトの名無しさん
2013/03/30(土) 13:00:02.08const は寿命を制御するわけではないようだね。
普通に委譲的手法で B::B() で A を new するしか思いつかない。
0839デフォルトの名無しさん
2013/03/30(土) 16:49:43.270840デフォルトの名無しさん
2013/03/30(土) 17:05:41.010841デフォルトの名無しさん
2013/03/30(土) 17:22:19.38>>819の言うとおりだな。
BがAを所有してないからおかしくなる。
BがAの実体を持つようにして、
右辺値参照でもスマポでもいいけど
ムーブする所。
0842デフォルトの名無しさん
2013/03/30(土) 19:24:48.920843デフォルトの名無しさん
2013/03/30(土) 23:34:16.23暗黙の型変換でのスコープ範囲はずれればデストラクタ発生するのはあたり前なんじゃないのか?
俺的には
Aは、実体として宣言するか、実体のrefを保持するのが無難だと思う。
使うときめんどくさくなるから、コンストラクタやデストラクタで例外が発生する処理は避けるなあ
0844片山博文MZパンク ◆0lBZNi.Q7evd
2013/03/30(土) 23:43:35.110845デフォルトの名無しさん
2013/03/31(日) 00:07:48.140846デフォルトの名無しさん
2013/03/31(日) 02:27:12.650847デフォルトの名無しさん
2013/03/31(日) 02:35:22.61とか
コマンドまたはファイル名が違います
あんまり懐かしいとは思えないな。日本語でまでやる事無い
0848デフォルトの名無しさん
2013/03/31(日) 03:01:50.30ttp://up3.viploader.net/pc/src/vlpc013497.jpg
0849デフォルトの名無しさん
2013/03/31(日) 06:24:21.84災害に会ってそのままアボンするんだろうな
まぁ、それはそれで本人がそれで良いっつってんだから誰も止めないけどw
0850デフォルトの名無しさん
2013/03/31(日) 12:20:47.57知識をひけらかして自己顕示欲を満たそうとしたゴミの一部始終w
自己顕示欲を満たしたいだけだから質問者の役に立つ書き込みかどうかは問題じゃないんだよなw
片山博文MZパンク ◆0lBZNi.Q7evd = 本物のクズ
0851デフォルトの名無しさん
2013/03/31(日) 20:14:38.20{
template< typename U > explicit Test( const Test< U >& other ){}
};
int main()
Test< int > a( Test< int >() );
0852デフォルトの名無しさん
2013/03/31(日) 20:16:24.93{
template< typename U > explicit Test( const Test< U >& other ){}
};
int main()
{
Test< int > a( Test< int >() ); // warning C4930: 'Test<T> a(Test<T> (__cdecl *)(void))': プロトタイプされている関数が呼び出されませんでした (変数の定義が意図されていますか?)
return 0;
}
という警告が出るのですが何故ですか
0853デフォルトの名無しさん
2013/03/31(日) 20:42:04.09たぶん変数の定義を意図してるんだろうけど実は関数の宣言と解釈されてて、
その関数を呼び出すコードも無いし、ますます変数の定義なんじゃないかとコンパイラが
疑ってるから。
0854デフォルトの名無しさん
2013/03/31(日) 23:00:11.27なんか個人的にC++の仕様書を読んだら気が狂って死んでしまいそうな気がする、、、
0855デフォルトの名無しさん
2013/03/31(日) 23:13:09.61Test<int>()
が関数宣言だと認識されてるだけ。
0856デフォルトの名無しさん
2013/03/31(日) 23:22:48.82文語(四段活用)と口語(上一段活用)が混ざっている
0857デフォルトの名無しさん
2013/03/31(日) 23:23:57.46文語四段活用と口語上一段活用が混在している
0858デフォルトの名無しさん
2013/03/31(日) 23:28:35.44それとも誤爆?
0859デフォルトの名無しさん
2013/03/31(日) 23:28:44.410860デフォルトの名無しさん
2013/03/31(日) 23:28:46.91だと警告は出ません。デフォルトコンストラクタ付けてもだめでした。VC2010です。
0861デフォルトの名無しさん
2013/03/31(日) 23:31:29.03全体で関数宣言であってTest<int>()は引数の型でしかないんだよ
わかってない奴はだまってろ
0862デフォルトの名無しさん
2013/03/31(日) 23:33:06.480863デフォルトの名無しさん
2013/03/31(日) 23:34:21.600864デフォルトの名無しさん
2013/03/31(日) 23:45:28.330865デフォルトの名無しさん
2013/03/31(日) 23:52:29.850866デフォルトの名無しさん
2013/04/01(月) 10:38:25.380867デフォルトの名無しさん
2013/04/02(火) 09:56:27.09色々捗りそうな気がしたんだが、ちょっと調べてみたところ見当たらないということは、自作するしかない?
0868デフォルトの名無しさん
2013/04/02(火) 12:11:26.250869デフォルトの名無しさん
2013/04/02(火) 16:25:15.18== はオーバーフローしないって、ただそれだけのために、こんなアフォな仕様を誰か強硬に主張したの?
0870デフォルトの名無しさん
2013/04/02(火) 16:36:25.12__builtin_return_address と _ReturnAddress
0871デフォルトの名無しさん
2013/04/02(火) 22:10:56.44printStacktrace()一発だもんな
0872デフォルトの名無しさん
2013/04/02(火) 22:58:40.81Java使ったことないからしらなんだが、Javaにはそんな便利なのがあるのか。
0873デフォルトの名無しさん
2013/04/02(火) 23:07:51.37オーバーフローしないんじゃなくて、
オーバーフローしたらコンパイル諦めてね
ってことじゃないの?
0874デフォルトの名無しさん
2013/04/02(火) 23:08:54.430875デフォルトの名無しさん
2013/04/03(水) 01:25:10.73「英語が出来れば、近縁であるドイツ語も簡単だ」
という言説に然りという人もあれば無茶言いやがると抗議する人もあろう。
自転車に乗れるかどうかなどという話と同じで頭も、単純な良し悪しとは
違う語学の運動感覚みたいなものがある。そういうのを会得しているひとに
とっては「英語がチャンとできているなら独逸語など数ヶ月でマスターできるだろう」
と言い、実際彼はそのようにできるだろうし、一方ドクトルの学位を持ちながら
数年に及ぶ刻苦の末になおアイサツ程度の独逸語しかものにできないものも
あるだろうし、その一方彼はドクトルの学位を取得していることから簡単に彼を
アンポンタンと呼ぶのもまたアンフェアというものであろう。
0876デフォルトの名無しさん
2013/04/03(水) 01:58:53.32そうじゃなくて、分母、分子、両方一致したときだけ等しいとか有理数としておかしいだろってことかと。
>>869
でも 20.10.3p2 で gcd で割って正規化されるんで正しい規定だと思うよ。
0877デフォルトの名無しさん
2013/04/03(水) 07:54:33.44別のファイルにおいて前方参照する方法について質問です。
class.h と class.cpp と use.cpp の3つのファイルがあります。
class.h ではクラスを宣言しており、private メンバとして、
std::map <int, const char *> 型の変数を宣言しています。
この変数は、クラス内でデータを管理するためにだけに使います。
class.cpp には class.h で宣言したクラスの定義が書かれています。
use.cpp では class.h ファイルを include し、そのクラスを利用しています。
class.h で宣言した変数の map 型を直接使うことはありません。
class.cpp では std::map <int, const char *> 型のメンバ関数を使うので、
map ファイルを include しています。
一方 use.cpp では直接使うことはないので map ファイルは include しません。
しかし、使わなくても use.cpp で include した class.h では
std::map <int, const char *> の記述があるので未定義エラーを起します。
そこで、class.hpp 内のクラス宣言の前に前方参照をしておきたいのですが、
どのように書けば良いのでしょうか。
普通のクラスを前方参照するなら、単に class ClassName; と書けば良いのですが・・・
0878デフォルトの名無しさん
2013/04/03(水) 08:15:10.60stdな要素を前方宣言するのは難しい。
namespace std {template <class K, class T, class C, class A> class map;}
そもそも、privateなものは宣言もヘッダーに書かずに隠すべき。
0879デフォルトの名無しさん
2013/04/03(水) 08:16:56.38追加しておいて。
0880デフォルトの名無しさん
2013/04/03(水) 08:27:32.92retuen (values 1 "aaa")
みたいな方法ないのでしょうか
0881デフォルトの名無しさん
2013/04/03(水) 08:30:05.49boostのoptionalやtupleを
0882デフォルトの名無しさん
2013/04/03(水) 09:00:35.44pair<Foo, Bar> を返り値にする関数とかにすればよいのでは
make_pair ってのを使うと便利
0883877
2013/04/03(水) 12:52:21.89やってみました。
std::map の他に std::pair や std::less など必要なものを前方参照しましたが、
iterator の前方参照でどうしたら良いのか分からなくなりました。
class.h 内の自作のクラス内では、
typedef std::map<int, const char *> Items;
typedef Items::iterator ItemsItr;
と private に宣言しているのですが、iterator の所でこれは型名ではないという、
コンパイルエラーがてました(gcc 4.7.1 です)。
それはそうと
> そもそも、privateなものは宣言もヘッダーに書かずに隠すべき。
どういう事でしょうか。
宣言をヘッダに書かずに何処に書くのでしょう?
0884デフォルトの名無しさん
2013/04/03(水) 13:25:51.900885デフォルトの名無しさん
2013/04/03(水) 18:38:13.78p2って、ratio_less の話ちゃうの?
0886デフォルトの名無しさん
2013/04/03(水) 18:40:25.59mapの実体をメンバで持ってしまっているのなら、そもそも前方参照は不可能だと思うけど。
それは一般的なクラスでも同じだよね?
前方参照可能なのは、サイズ計算の必要がないポインタか参照で宣言した変数のみじゃね?
0887877
2013/04/03(水) 18:48:52.31あぁ、なるほど、そうですね。
use.cpp でそのクラスを使う時に、サイズが分からないといけない。
クラスに別のクラスの実体(と言うのですか)があれば、
その別のクラスの内容が分からなければサイズの計算ができないですね。
納得しました。
ありがとうございます。
0888デフォルトの名無しさん
2013/04/03(水) 21:08:06.6220.10.「3」p2
0889デフォルトの名無しさん
2013/04/03(水) 22:46:25.97class.hがmapをインクルードするに
決まってるだろう。
前方山椒とか何を言ってるんだ?
0890877
2013/04/03(水) 23:17:29.01何を言っていたのか説明します。
その class.h を include している use.cpp が、
class.h 内で宣言された map に直接アクセスすることは無いので、
前方参照により、use.cpp のコンパイル単位に map を含めなくてもよくなる、
と勘違いしていました。
実際は、直接アクセスすることは無くても、コンパイルにはサイズを計算する必要があるため、
use.cpp からも map の宣言が見えていなければならない事が >>886 の指摘でわかりました。
何を言っていたのか理解していただけたでしょうか。
0891デフォルトの名無しさん
2013/04/03(水) 23:51:22.00thx
0892デフォルトの名無しさん
2013/04/04(木) 01:13:46.620893デフォルトの名無しさん
2013/04/04(木) 01:22:54.98文語四段活用と口語上一段活用が混在している
0894デフォルトの名無しさん
2013/04/04(木) 02:59:09.26class N {
shared_ptr<N> p_;
N(shared_ptr<N> const& p) : p_(p) {}
};
shared_ptr<N> v(new N(shared_ptr<N>()); // ルートは親なし
for (int i=0; i<T; ++i) {
shared_ptr<Node>(new Node(v)).swap(v); // 前のノードが親
}
みたいにvを葉とする一本鎖を作った後、v.reset()で全ノードを連鎖的に解放したいのですが、
深さTが大きいと解放の連鎖が途中で止まってしまいます。(Tが小さいとうまくいく)
原因が分かる方いますか?
0895デフォルトの名無しさん
2013/04/04(木) 08:44:07.68解決策を求めているのではなく、理由を知りたかっただけだろ。
原因さえわかれば対応策なんていくらでも練れるし。
0896デフォルトの名無しさん
2013/04/04(木) 09:13:45.87お前がそういうプログラムを書いたから
なんかよくわかってない奴の設計した変なプログラムの感じだし
0897デフォルトの名無しさん
2013/04/04(木) 10:34:13.33大小が問題になるなら、ある程度読める程度の数値を書いてくれ。
Tが100程度で失敗するのか、10億程度で失敗するのかでは話が違う。
0898894
2013/04/04(木) 10:50:13.55codepad.org/OyYRvLKK
これは深さT=10の場合でうまくいった例。
手元の環境(gcc4.5.3)だと、Tを50000くらいにすると
最後p:0に到達する前に処理が止まっちゃう…。
0899デフォルトの名無しさん
2013/04/04(木) 12:15:42.750900894
2013/04/04(木) 13:01:02.07Thanks!!
stackoverflow.com/questions/14057262/segfault-using-stdshared-ptr-during-destruction-likely-due-to-too-many-functio
「shared_ptr」と「stack size」で調べたら↑でも議論されてました。
しかし…shared_ptr使うケースならDestructorの再帰は当然多発すると思うけど、
これは盲点だなぁ。
0901デフォルトの名無しさん
2013/04/04(木) 13:15:40.420902デフォルトの名無しさん
2013/04/04(木) 13:33:03.50デストラクタの中でメンバ変数のデストラクタ呼び出し
->そのメンバ変数のデストラクタ呼び出しの中でメンバ変数のメンバ変数のデストラクタ呼び出し->・・・
で関数呼び出しのネストが深くなりすぎてスタック食いつぶしてるだけだから
0903デフォルトの名無しさん
2013/04/04(木) 13:52:38.10確かにそうだわ
でもそんな再帰が起こるような設計は本能的に避けるから無問題
0904デフォルトの名無しさん
2013/04/04(木) 20:21:39.47/* program A */
//program Bを実行
while(FLAG){
//program Bから値を受け取る処理
}
/* program B */
while(FLAG)
{
if(COD)
//program Aに値を渡す処理
}
こんな処理がしたいのですが良い方法はないでしょうか
0905デフォルトの名無しさん
2013/04/04(木) 20:24:09.48プロセス間通信を使うとか
0906デフォルトの名無しさん
2013/04/04(木) 20:24:09.650907デフォルトの名無しさん
2013/04/04(木) 20:27:40.19TCPでなくてUDPに近いのか
0908デフォルトの名無しさん
2013/04/04(木) 21:05:20.420909デフォルトの名無しさん
2013/04/04(木) 21:28:57.40メールスロットが簡単そうなのでそれにしてみます
不安定だったら一度書き出してやるのがよさそうですね
ありがとうございます
0910デフォルトの名無しさん
2013/04/04(木) 21:39:53.950911デフォルトの名無しさん
2013/04/05(金) 09:48:05.34その方法だとコピーコンストラクターが呼ばれるの避けれない
0912デフォルトの名無しさん
2013/04/05(金) 09:49:16.220913デフォルトの名無しさん
2013/04/05(金) 10:46:23.860914デフォルトの名無しさん
2013/04/05(金) 15:33:58.990915デフォルトの名無しさん
2013/04/05(金) 20:46:31.17{
int Val;
int Ary[ 2 ][ 3 ];
};
void Func( int Ary[ 2 ][ 3 ] )
{
stST stSt;
stSt.Val = 10;
stSt.Ary = Ary; ←こんな感じで配列のアドレスを書き換えたいのですが、コンパイルエラーになります。
どうすればよいでしょうか??
FuncSub( &stSt );
}
0916デフォルトの名無しさん
2013/04/05(金) 20:54:16.53int** Aryにしなさい
0917デフォルトの名無しさん
2013/04/05(金) 21:01:48.510918デフォルトの名無しさん
2013/04/05(金) 21:05:13.85事情があってポインタにしたくないんです。
>>917さんも書いてますが、何で許されないのかが理解できないです。
論理的には可能なはずですよね?
0919デフォルトの名無しさん
2013/04/05(金) 21:05:28.51>>917
ttp://app.f.m-cocolog.jp/t/typecast/1126727/1148503/71235733
多次元配列を引数にするには注意が必要
0920デフォルトの名無しさん
2013/04/05(金) 21:08:12.82いったん、メモリ動的確保して値をコピーしてわたせ。
それで解決する保証はない。
0921デフォルトの名無しさん
2013/04/05(金) 21:10:06.54>>919はミスった
多次元配列どうしのアドレスコピーはそれではできない
各次元ごとの先頭アドレスをそれぞれ渡す必要がある
0922デフォルトの名無しさん
2013/04/05(金) 21:12:53.28コピー部分を自作するか、構造体のほうをアドレス(ポインタ)保存に書き換えればいいだろうという結論。
上の者。
0923デフォルトの名無しさん
2013/04/05(金) 21:13:02.29全然ちげーよあほ
0924デフォルトの名無しさん
2013/04/05(金) 21:15:55.010925デフォルトの名無しさん
2013/04/05(金) 21:17:49.36一次元配列ならすぐできる
多次元だからややこしくなる
0926915
2013/04/05(金) 21:18:20.43実際の配列要素数がそこそこあってパフォーマンス的なオーバーヘッドが無視できないですし、
何よりエレガントじゃないです。
>>924
&Ary[0][0]とすれば配列変数の先頭ポインタを指し示せませんか?
&stSt.Ary[0][0] = &Ary[0][0]
とやってもエラーでしたけどね・・・。
0927デフォルトの名無しさん
2013/04/05(金) 21:18:36.61へ?
0928デフォルトの名無しさん
2013/04/05(金) 21:20:17.46&stSt.Ary[0][0]は右辺値だからな
0930デフォルトの名無しさん
2013/04/05(金) 21:23:11.64こんなことはできないだろ?
そういうことだ
0931デフォルトの名無しさん
2013/04/05(金) 21:25:19.90ほい、ぐちゃぐちゃだけどこんな感じ
0932915
2013/04/05(金) 21:29:26.10あー、すごく分かりやすいですw
>>931
わざわざコードまで書いてくださってありがとうございます。
でも>>915のstST構造体の定義は諸事情により変えれないので、
ポインタの配列方式を使うこともできないんです。
残念ですが、諦めて素直にコピーすることにします。
0933デフォルトの名無しさん
2013/04/05(金) 21:33:54.94実体を持っているのだからmemcpy()するところなんじゃないか?
アドレスのみの参照とか危険なにおいしかしない。
>>919
char **のconstもちゃんと指定できる人も意外に少ないよねー
0934デフォルトの名無しさん
2013/04/05(金) 21:34:42.240935デフォルトの名無しさん
2013/04/05(金) 21:39:07.39int *a;
int *b;
a = b;
これができて、
int a[] = {0};
int b[] = {1};
a = b;
(配列の内容をコピーしたいのではなく、
a の先頭アドレスを b の先頭アドレスと同じにしたい)
これができないのも、>>930 と同じ理屈?
それとも >>924 の理屈?
0936デフォルトの名無しさん
2013/04/05(金) 21:42:44.330937デフォルトの名無しさん
2013/04/05(金) 21:44:19.22参照渡しやSTLで代替できるだろ。
0938デフォルトの名無しさん
2013/04/05(金) 21:45:32.17どっちも同じ理屈じゃね?
0939デフォルトの名無しさん
2013/04/05(金) 21:51:44.97vector使えよ
0940デフォルトの名無しさん
2013/04/05(金) 21:55:08.230941デフォルトの名無しさん
2013/04/05(金) 21:59:48.430942デフォルトの名無しさん
2013/04/05(金) 22:40:01.31んなモンは無い
0943デフォルトの名無しさん
2013/04/05(金) 22:42:21.520944デフォルトの名無しさん
2013/04/05(金) 22:46:53.29昼休み一回消費すれば後は使い放題なのに処理系の性にすんなカス
0945デフォルトの名無しさん
2013/04/05(金) 22:55:15.630946デフォルトの名無しさん
2013/04/05(金) 23:00:06.230947デフォルトの名無しさん
2013/04/05(金) 23:01:55.39お前は30分で単体試験成績書兼報告書まで作れるのか?
できなきゃ他人に迷惑かかるだけだぞカス
>>943
今時、標準化前の化石コンパイラ使ってるなんて可哀想。
ちなみにstd::arrayはムーブコンストラクタ無いからな。
0948デフォルトの名無しさん
2013/04/05(金) 23:04:32.00しばらく次から次へと余計な仕事が舞い込むからなぁ
0949デフォルトの名無しさん
2013/04/05(金) 23:05:20.400950デフォルトの名無しさん
2013/04/05(金) 23:06:33.81え?お前できないの?
0951デフォルトの名無しさん
2013/04/05(金) 23:06:39.270952デフォルトの名無しさん
2013/04/05(金) 23:08:09.140953デフォルトの名無しさん
2013/04/05(金) 23:08:22.530954デフォルトの名無しさん
2013/04/05(金) 23:11:22.080955デフォルトの名無しさん
2013/04/05(金) 23:22:52.24あっいや、char **のconstをconst char ** って、書く人が多かったという話。
使ってる本人はconstのつもりだから、問題はでないのだけどconstがたりてない事にきづいてないんだ。。。
といいつつ、俺も2次元以上のポインタは、あんまり理解できて無いので、使わないようにしてる。
まぁ、クラスの場合、参照型でも多態できることを知ってから全体的にポインタ自体ほとんど使わなくなったけど。。。
0956デフォルトの名無しさん
2013/04/05(金) 23:25:17.530957デフォルトの名無しさん
2013/04/05(金) 23:26:46.090958デフォルトの名無しさん
2013/04/05(金) 23:31:55.200959デフォルトの名無しさん
2013/04/05(金) 23:37:46.820960デフォルトの名無しさん
2013/04/05(金) 23:40:11.920961デフォルトの名無しさん
2013/04/05(金) 23:40:32.72C++も妙な技巧に走りすぎている。
そんなものしなくてもキャストすればいいじゃん
とか
コードレビューして解放漏れをチェックすればいいじゃん
で
終わってしまうようなコーディングミスを隠すのにうじゃうじゃくだらない技巧に走りすぎ。
あとXMLも糞。
あんなものなーんもよくねーよ。
書くのめんどくさいしネームスペースとかうるせえ約束が多いし
改行が無視されたり改行を期待した使いかたするソフトがあるし。
インナーテキストに改行期待するんじゃねーよ。
ってか&とか素でいれんな。
つーか冗長だよ。バイナリストリームじゃだめなんかい。
iniファイルで充分だろう。
CSVにしとけや
なんでも形式に乗っかってとりあえず安心する。そして今日も残業ご苦労さん。
0962デフォルトの名無しさん
2013/04/05(金) 23:40:36.830963デフォルトの名無しさん
2013/04/05(金) 23:41:28.630964デフォルトの名無しさん
2013/04/05(金) 23:44:11.580965デフォルトの名無しさん
2013/04/05(金) 23:46:03.940966デフォルトの名無しさん
2013/04/05(金) 23:54:16.330967デフォルトの名無しさん
2013/04/05(金) 23:54:38.11何年前の人間だよ
なんでもかんでもXML使うアホなんてもういないだろ
0968デフォルトの名無しさん
2013/04/05(金) 23:58:01.70みたいなやつばっかだが
0969デフォルトの名無しさん
2013/04/06(土) 00:03:48.530970デフォルトの名無しさん
2013/04/06(土) 00:11:37.100971デフォルトの名無しさん
2013/04/06(土) 00:15:34.670972デフォルトの名無しさん
2013/04/06(土) 00:19:16.750973デフォルトの名無しさん
2013/04/06(土) 00:21:34.350974デフォルトの名無しさん
2013/04/06(土) 05:15:00.26特に理由が無ければ、xmlにしておくに賛成。
0975デフォルトの名無しさん
2013/04/06(土) 07:31:36.86の代用になるってことでいいの?
0976デフォルトの名無しさん
2013/04/06(土) 07:41:34.520977デフォルトの名無しさん
2013/04/06(土) 07:57:39.45iniやcsvで十分。
0978デフォルトの名無しさん
2013/04/06(土) 08:06:22.21フォーマットが一定していれば汎用性がある。
多言語やネットワークへデータ送信するのに便利。
ただしXMLは表示に自由度があるし
XMLもJSONもテキスト用でバイナリデータの扱いが困る。
0979デフォルトの名無しさん
2013/04/06(土) 08:12:34.010980デフォルトの名無しさん
2013/04/06(土) 08:26:55.74ライブラリの有無にもよるけどxmlは、人間が手書きするには向いてないからおすすめするところはないなぁ。
iniについて、規格はないけど暗黙の了解レベルで記述は、最低ラインは統一されてる感が強い。
個人的にはiniよりもconf形式の方が好きだ。
所詮、アプリ固有の情報なのに変なこだわりは無用だ。
簡単越したことはない。
0981デフォルトの名無しさん
2013/04/06(土) 08:32:36.600982デフォルトの名無しさん
2013/04/06(土) 08:43:34.620983デフォルトの名無しさん
2013/04/06(土) 08:50:36.01一人で開発するならその通り。
0984デフォルトの名無しさん
2013/04/06(土) 09:15:49.55逆。
利用者が多くなるほど単純であるべき
xmlは、アプリが自分自身で完結するにはいいのかもしれないが、自アプリ以外とのインターフェイスには不向き
設定ならiniで十分だし、データならテキスト形式の固定長が一番いい。
仕様書はかざりじゃないのだ。
所詮、xmlは俺すげーしたいやつだけの自己満足用データ形式。
※インターネットメッセージを除く(笑
0985デフォルトの名無しさん
2013/04/06(土) 09:23:17.11ロード・セーブの手順が定まっていなければ
読み(エンコード・シリアライズ)
書き(デコード、デシリアライズ)
部分を自作しなきゃならん。
0986デフォルトの名無しさん
2013/04/06(土) 09:23:56.60わざわざ小さなファイルに複数の形式持ち込むのも一貫性が無いし大抵XMLだわ
あとはCSV程度かな
0987デフォルトの名無しさん
2013/04/06(土) 09:30:22.58xmlがいいといってる人は、取り込んだ後の事をはなしてる?
そんなものパーサの役割であってデータ形式とは関係ないな。
出力については、後のこと考えず、アプリ内部の情報をダダ漏れさせるならxmlでもよいと思うが、他者とインターフェイスするような正規化されたデータならレコード単位に出力すればすむ話。
0988デフォルトの名無しさん
2013/04/06(土) 09:51:53.63なので、ライブラリの有無しだいという前提がある。
とはいえ、
自作すると言っても、単純な形式の読み書き部分なんて、テストケース込みでも300L程度。
xmlはxsdとセットにして初めて意味を持つし、かなり強力なのだけどねぇ。
オーバースペック感が半端ない。
xmlについて行き着くところは、手書きするのがダルいという点に限るな。
0989デフォルトの名無しさん
2013/04/06(土) 09:54:03.87たいへんそう・・・。
0990デフォルトの名無しさん
2013/04/06(土) 12:21:48.710991デフォルトの名無しさん
2013/04/06(土) 12:33:28.800992デフォルトの名無しさん
2013/04/06(土) 12:33:58.63人間がタグを見るなんてアホすぎ。
0993デフォルトの名無しさん
2013/04/06(土) 12:35:42.19あれってキモくない?
.exeと同階層に.iniファイル設けて保存すりゃイイじゃんって思う。
アンインストールしてもレジストリ設定だけ残るとかキモい。
0994デフォルトの名無しさん
2013/04/06(土) 12:36:47.490995デフォルトの名無しさん
2013/04/06(土) 12:36:56.39何のためにアンインストーラがあると思ってんの?
0996デフォルトの名無しさん
2013/04/06(土) 12:42:12.71お前なんのためにレジストリがあると思っているんだ……?
0997デフォルトの名無しさん
2013/04/06(土) 12:46:58.08共通はProgramDataの下、ユーザー設定はプロファイルの下と
自分で決めたルールにマイクロソフトが従わないんだから困る。
0999デフォルトの名無しさん
2013/04/06(土) 12:49:22.15素直にUltimateの仕様版ずっと使い続ける方法教えて下さいと言えばどうだ?
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。