C++相談室 part54
■ このスレッドは過去ログ倉庫に格納されています
0001v(^・^)v
2006/10/30(月) 22:34:08ただし質問の前にはFAQに一通り目を通してください。
IDE(VC++など)などの使い方の質問はその開発環境のスレに
お願いします。
テンプレその他 >>2-15 付近参照
前スレ
C++相談室 part53
http://pc8.2ch.net/test/read.cgi/tech/1159340181/
0002v(^・^)v
2006/10/30(月) 22:34:41[C++ FAQ]
http://www.parashift.com/c++-faq-lite/
http://www.bohyoh.com/CandCPP/FAQ/ (日本語)
Cとその仕様を比較しながらの解説なので分かりやすい。
***** 質問の前に必ずこの二つに目を通してください *****
[C/C++ リファレンス]
http://www.cppreference.com/ (英語)
http://www.cppll.jp/cppreference/ (↑の日本語訳だけど最新は反映しない)
[禿 Stroustrup]
http://public.research.att.com/~bs/
[C++ International Standard]
http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=38110&ICS1=35&ICS2=60&ICS3=
[JTC1/SC22/WG21 - C++]
http://www.open-std.org/jtc1/sc22/wg21/
ここから規格の最新(2003より新しい)ドラフトがダウンロードできる。
0003v(^・^)v
2006/10/30(月) 22:35:03amazon.com C,C++関連書籍
http://www.amazon.com/exec/obidos/tg/browse/-/3956/ref=br_bx_c_1_3/
The C++ Programming Language
ttp://www.amazon.com/exec/obidos/ASIN/0201700735/
ttp://www.amazon.co.jp/exec/obidos/ASIN/475611895X/ (翻訳)
C++ Primer (3rd Edition)
ttp://www.amazon.com/exec/obidos/ASIN/0201824701/
ttp://www.amazon.co.jp/exec/obidos/ASIN/4756140068/ (翻訳)
The C++ Standard Library
ttp://www.amazon.com/exec/obidos/ASIN/0201379260/
ttp://www.amazon.co.jp/exec/obidos/ASIN/4756137156/ (翻訳)
Effective C++
ttp://www.amazon.com/exec/obidos/ASIN/0201924889/
ttp://www.amazon.co.jp/exec/obidos/ASIN/4756118089/ (翻訳)
More Effective C++
ttp://www.amazon.com/exec/obidos/ASIN/020163371X/
ttp://www.amazon.co.jp/exec/obidos/ASIN/4756118534/ (翻訳)
Exceptional C++
ttp://www.amazon.com/exec/obidos/ASIN/0201615622/
ttp://www.amazon.co.jp/exec/obidos/ASIN/4894712709/ (翻訳)
More Exceptional C++
ttp://www.amazon.com/exec/obidos/ASIN/020170434X/
Exceptional C++ Style
ttp://www.amazon.com/exec/obidos/ASIN/0201760428/
ttp://www.amazon.co.jp/exec/obidos/ASIN/4894714663/ (翻訳)
C++ Coding Standards
ttp://www.amazon.co.jp/exec/obidos/ASIN/0321113586/
ttp://www.amazon.co.jp/exec/obidos/ASIN/4894716860/ (翻訳)
0004v(^・^)v
2006/10/30(月) 22:35:30Effective STL
http://www.amazon.com/exec/obidos/ASIN/0201749629/
http://www.amazon.co.jp/exec/obidos/ASIN/4894714108/ (翻訳)
Modern C++ Design
http://www.amazon.com/exec/obidos/ASIN/0201704315/
http://www.amazon.co.jp/exec/obidos/ASIN/4894714353/ (翻訳)
C++ Templates
http://www.amazon.com/exec/obidos/ASIN/0201734842/
C++ Template Metaprogramming
http://www.amazon.com/exec/obidos/ASIN/0321227255/
0005v(^・^)v
2006/10/30(月) 22:35:50[Boost]
Boost http://www.boost.org/
(日本語) http://www.kmonos.net/alang/boost/
(日本語) http://shinh.skr.jp/boost/
[標準ライブラリ]
SGI-STL http://www.sgi.com/tech/stl/
STLport http://stlport.sourceforge.net/
GNU libstdc++ http://gcc.gnu.org/libstdc++/
Apache STDCXX http://incubator.apache.org/stdcxx/
STLFilt http://www.bdsoft.com/tools/stlfilt.html
(日本語) http://www005.upp.so-net.ne.jp/episteme/html/stlprog/
(日本語) http://www.wakhok.ac.jp/~sumi/stl/
[Loki]
http://sourceforge.net/projects/loki-lib/
LokiPort-MSVC6sp5 http://fara.cs.uni-potsdam.de/~kaufmann/?page=lokiport
0006v(^・^)v
2006/10/30(月) 22:36:122 http://pc.2ch.net/tech/kako/996/996640937.html
3 http://pc.2ch.net/tech/kako/1003/10038/1003832761.html
4 http://pc.2ch.net/tech/kako/1009/10090/1009071535.html
5 http://pc.2ch.net/tech/kako/1014/10142/1014217496.html
6 http://pc.2ch.net/tech/kako/1018/10184/1018454705.html
7 http://pc.2ch.net/tech/kako/1021/10217/1021787032.html
8 http://pc3.2ch.net/tech/kako/1025/10250/1025010364.html
9 http://pc3.2ch.net/tech/kako/1027/10273/1027347982.html
10 http://pc3.2ch.net/tech/kako/1029/10293/1029315669.html
11 http://pc3.2ch.net/tech/kako/1032/10323/1032345774.html
12 http://pc3.2ch.net/tech/kako/1035/10350/1035005882.html
13 http://pc3.2ch.net/tech/kako/1038/10380/1038031395.html
14 http://pc5.2ch.net/tech/kako/1041/10413/1041328679.html
15 http://pc5.2ch.net/tech/kako/1043/10436/1043605481.html
0007v(^・^)v
2006/10/30(月) 22:36:3217 http://pc5.2ch.net/tech/kako/1047/10475/1047560042.html
18 http://pc5.2ch.net/tech/kako/1050/10501/1050177746.html
19 http://pc5.2ch.net/tech/kako/1052/10526/1052625846.html
20 http://pc5.2ch.net/tech/kako/1055/10551/1055162298.html
21 http://pc5.2ch.net/tech/kako/1057/10575/1057580107.html
22 http://pc5.2ch.net/tech/kako/1060/10603/1060361082.html
23 http://pc5.2ch.net/tech/kako/1062/10626/1062690663.html
24 http://pc5.2ch.net/tech/kako/1066/10665/1066546387.html
25 http://pc5.2ch.net/tech/kako/1067/10679/1067949669.html
26 http://pc5.2ch.net/test/read.cgi/tech/1070164402/ (迷子)
27 http://pc5.2ch.net/test/read.cgi/tech/1074454641/ (迷子)
28 http://pc5.2ch.net/test/read.cgi/tech/1077985164/
29 http://pc5.2ch.net/test/read.cgi/tech/1082047479/
30 http://pc5.2ch.net/test/read.cgi/tech/1084030770/
0008v(^・^)v
2006/10/30(月) 22:36:5332 http://pc5.2ch.net/test/read.cgi/tech/1088236078/
33 http://pc5.2ch.net/test/read.cgi/tech/1090180012/
34 http://pc5.2ch.net/test/read.cgi/tech/1092018643/
35 http://pc5.2ch.net/test/read.cgi/tech/1093958200/
36 http://pc5.2ch.net/test/read.cgi/tech/1096304546/
37 http://pc5.2ch.net/test/read.cgi/tech/1098543578/
38 http://pc5.2ch.net/test/read.cgi/tech/1101473340/
39 http://pc5.2ch.net/test/read.cgi/tech/1106466303/
39(実質40) http://pc8.2ch.net/test/read.cgi/tech/1106527792/
40(実質41) http://pc8.2ch.net/test/read.cgi/tech/1113408957/
41(実質42) http://pc8.2ch.net/test/read.cgi/tech/1120190961/
43 http://pc8.2ch.net/test/read.cgi/tech/1124113879/
44 http://pc8.2ch.net/test/read.cgi/tech/1128512737/
45 http://pc8.2ch.net/test/read.cgi/tech/1133007604/
0009v(^・^)v
2006/10/30(月) 22:37:1347 http://pc8.2ch.net/test/read.cgi/tech/1139931895/
48 http://pc8.2ch.net/test/read.cgi/tech/1142423595/
49 http://pc8.2ch.net/test/read.cgi/tech/1146185570/
50 http://pc8.2ch.net/test/read.cgi/tech/1149427282/
51 http://pc8.2ch.net/test/read.cgi/tech/1153079297/
52 http://pc8.2ch.net/test/read.cgi/tech/1156525695/
53 http://pc8.2ch.net/test/read.cgi/tech/1159340181/
■関連スレ■
多すぎ。とりあえずスレタイ C++ で検索して。
以下、スレタイで見つからなさそうな関連スレ。
Boostを語れゴラァ part3
http://pc8.2ch.net/test/read.cgi/tech/1158991211/
GCCについて part7
http://pc8.2ch.net/test/read.cgi/tech/1145357824/
0010デフォルトの名無しさん
2006/10/30(月) 22:38:150011デフォルトの名無しさん
2006/10/30(月) 22:43:36もつかれ�d。
0012デフォルトの名無しさん
2006/10/30(月) 22:45:430013デフォルトの名無しさん
2006/10/30(月) 22:53:45環境によるだろ。
俺はVC++に /Yc オプションを指定して、極力
プリコンパイルヘッダを使用するようにして使っているが、例えばboost::lambdaを
使っても使わない時と比べ10秒ほどしか増えない。
0014デフォルトの名無しさん
2006/10/30(月) 23:05:370015デフォルトの名無しさん
2006/10/30(月) 23:08:52あれ?こんなのあったっけ?
0016デフォルトの名無しさん
2006/10/30(月) 23:12:16ないね
0017デフォルトの名無しさん
2006/10/30(月) 23:16:38とかいうエラーが出るんだけどこれってどうすればいいの?
0018デフォルトの名無しさん
2006/10/30(月) 23:17:47後死ね。
0019デフォルトの名無しさん
2006/10/30(月) 23:18:31まぁヒントぐらいにはなったな。
うむごくろう。
0020デフォルトの名無しさん
2006/10/30(月) 23:20:15自作パーサとSpiritじゃマジでコンパイル時間100倍になるぜ。
0021デフォルトの名無しさん
2006/10/30(月) 23:20:23環境によるだろ。
俺はBorland-C++5.6.2に -D_RTLDLL オプションを指定して、極力
ランタイムを使用するようにして使っているが、例えばstd::vectorを
使っても使わない時と比べ10Kほどしか増えない。
0022デフォルトの名無しさん
2006/10/30(月) 23:32:400023デフォルトの名無しさん
2006/10/30(月) 23:36:23〜しばらくおまちください〜
0024デフォルトの名無しさん
2006/10/30(月) 23:52:44CreateFileとかCopyFile等の動作チェック用です。
自分で作ってもいんですが、既に多機能な機能やグラフィカルなツールがあるかもしれないので探しています。
VisualStudioパッケージあるかもしれんがようわからん。
誰か知らないか?
0025デフォルトの名無しさん
2006/10/30(月) 23:56:44スレ違い。意味が分からんからどこ行っても答えは得られないだろうが。
0026デフォルトの名無しさん
2006/10/31(火) 00:24:29メモ帳
0027デフォルトの名無しさん
2006/10/31(火) 01:57:43Σ(゚Д゚;エーッ!!
0028デフォルトの名無しさん
2006/10/31(火) 02:14:540029デフォルトの名無しさん
2006/10/31(火) 02:34:570030デフォルトの名無しさん
2006/10/31(火) 02:37:48それだけ聞くとできそうに思う。
何故不可能だと思ったのかね?
0031デフォルトの名無しさん
2006/10/31(火) 02:37:55環境による
0032デフォルトの名無しさん
2006/10/31(火) 03:19:33こういうやつのことか?
template <typename T>
class A { public: T v; };
template <typename T>
std::ostream& operator<<(std::ostream& os, const A<T>& v)
{ return os << v.v; }
0033デフォルトの名無しさん
2006/10/31(火) 15:14:17その通りです
>>31
GCCだと単純に>>32のように書くとコンパイルエラーになります
Tの型が未決定なためエラーになるようです
なんかうまい方法はないでしょうか
0034デフォルトの名無しさん
2006/10/31(火) 15:49:09gcc-3.3.6, gcc-3.4.6, gcc-4.0.3, gcc-4.1.1 on Linux でコンパイル通るぞ。
コードの別のところの問題だろう。
手元で通したコード全文はこれ。
#include <iostream>
#include <ostream>
(ここに >>32 を入れる)
int main(void)
{
A<int> a;
a.v = 1;
std::cout << a << std::endl;
return 0;
}
0035デフォルトの名無しさん
2006/10/31(火) 18:25:41逆に言うとできないわけがない。
0036デフォルトの名無しさん
2006/10/31(火) 23:29:17int a
int b
std::string str;
};
class B{
int a
int b
vector<double>v_fat;
};
class C{
int a;
int b;
map<std::string, int>num;
};
こんな似た様なメンバを持つクラスをJavaのArrayListみたいに
扱いたいときはどうするのですか?Objectクラスみたいなのを
作ってキャストすればOK?
0037デフォルトの名無しさん
2006/10/31(火) 23:34:29ttp://www.ksky.ne.jp/~seahorse/cpp/virtualbase.html
どれにしてもテンプレートを使って、1つの型に押し込んでいることには違いない。
0038デフォルトの名無しさん
2006/11/01(水) 01:42:08共通部分を基底クラスにくくりだし、その基底クラスへのポインタの配列を作ればいい。
必要に応じて dynamic_cast する。しないでいい設計のほうが好ましいんだけど。
0039デフォルトの名無しさん
2006/11/01(水) 01:49:07そこの FruitItem は
template <class T>
class FruitItem : public Fruit, T {
public:
FruitItem() {}
FruitItem(const T& y) : T(y) {}
const char* color() const { return T::color(); }
};
としたほうがよさそうだな。
0040デフォルトの名無しさん
2006/11/01(水) 18:03:37Target lexical_castSource arg)
{
std::stringstream interpreter;
Target result;
if (!(interpreter << arg) || !(interpreter >> result) || !(interpreter >> std::ws).eof()) {
throw bad_lexical_cast();
}
return result;
}
Exceptional C++ Style で上のような記述を見かけたのですが、
>!(interpreter >> std::ws).eof()
の部分は何を行っているのでしょうか?
std::wsというのは初めて見ました
検索しても関係ないページがヒットしてしまい意味がつかめません・・・
0041デフォルトの名無しさん
2006/11/01(水) 18:49:39C++標準ライブラリ
§13.1.5 マニピュレータ
wsはistreamに適用して、空白を読み飛ばす
0042デフォルトの名無しさん
2006/11/01(水) 20:45:370043デフォルトの名無しさん
2006/11/01(水) 21:12:530044デフォルトの名無しさん
2006/11/01(水) 21:37:20ttp://www.google.co.jp/
0045デフォルトの名無しさん
2006/11/01(水) 21:44:590046デフォルトの名無しさん
2006/11/01(水) 22:28:240047デフォルトの名無しさん
2006/11/01(水) 22:47:11namespace A
{
struct X {};
void *operator new (size_t n, X&) { return 0; }
void f()
{
X c;
new (c) int; // ←ここ
}
}
"ここ"で(size_t n, X&)に適合する呼出が見つかりませんと言われてしまいます。
ネームスペースAからグローバルスペース?に移すと難なく通ります。
operator new (...)で呼び出すとネームスペースから外さなくてもエラーになりません。
仕様でしょうか?
ちなみにVS2003です。
0048デフォルトの名無しさん
2006/11/02(木) 00:05:40//敵の生成時に一時的に入れる変数と、敵をまとめて管理する変数
EnemyObj* enemy;
vector<EnemyObj*> EnemyArr;
//敵の生成時に呼ばれる関数
enemy = new Enemy1(arg_x, arg_y);
EnemyArr.push_back(enemy);
このようにした場合、例えばこれで敵を三体生成したとして、
(EnemyArr[0], EnemyArr[1], EnemyArr[2])
この中から
delete EnemyArr[1];
としてもオブジェクトが破棄されないので困っています。
一番最後に生成した物(この場合EnemyArr[2])なら破棄できるみたいなのですが・・・。
一体どうしたらいいでしょう。
0049デフォルトの名無しさん
2006/11/02(木) 00:19:22本当か?もう一度よく考えてみろ。
0050デフォルトの名無しさん
2006/11/02(木) 00:21:32えっと、それはどういう意味でですか?
「破棄できないはずはない」のか、「根本的なミスをしている」のか
どっちの意味でしょう。
0051デフォルトの名無しさん
2006/11/02(木) 00:22:120052デフォルトの名無しさん
2006/11/02(木) 00:28:04オブジェクトが普通に表示されたり、
deleteする前の値(位置情報 xやyなど)
をそのまま持っているかどうかで確認しています。
0053デフォルトの名無しさん
2006/11/02(木) 00:29:46> enemy = new Enemy1(arg_x, arg_y);
> EnemyArr.push_back(enemy);
原因の予感。push_back(const T&)じゃなかったか。
ゆえに、push_back(new Enemy1(arg_x, arg_y))で試してみて。
0054デフォルトの名無しさん
2006/11/02(木) 00:34:07それって、破棄したオブジェクトをそのまま使ってるんじゃないか?
erase()でvectorの方も縮めておかないとだめだろ。
0055デフォルトの名無しさん
2006/11/02(木) 00:34:33deleteしたからって中のデータは直ぐに破壊されん。
そんなん何の参考にならんし確認にもなってない。
0056デフォルトの名無しさん
2006/11/02(木) 00:36:15使いやすいぞ。erase()したら自動的にdeleteしてくれるしな。
0057デフォルトの名無しさん
2006/11/02(木) 00:42:11各個別は古典的にstateパターンで処理可能なルールとして実装できると思いますが
文脈を管理するためのクラスはどのように実現するのが一般的なのでしょうか?
ルールはR0 = Aから始まるとします。
A = B | C
B = a b c
C = a | b c
a = ...
b = ...
StateパターンでR0の状態を処理する。
0058デフォルトの名無しさん
2006/11/02(木) 00:42:59ポインタが指してる部分に情報が残ってるだけでは?
デストラクタにstd::cout << "Delete Enemy" << std::endl;って行を入れて動作を確認してみて。
0059デフォルトの名無しさん
2006/11/02(木) 00:44:190060デフォルトの名無しさん
2006/11/02(木) 00:45:17成る程、そういうことでしたか。
eraseする前に破棄されてるか確認したかったのですが、
それでは意味がないですね。
>>53
結局破棄されてないと勘違いしただけだったみたいですが、
その記述で一時的な変数が必要なくなって助かりました。
>>56
そういう便利なものもあるんですね。
ちょっと調べてみたいと思います。
>>58
成る程、デストラクタに入れておけば破棄された確認になりますね。
やってみます。
0061デフォルトの名無しさん
2006/11/02(木) 00:50:43とりあえず、文法を解析するときに
個別のルールはStateパターンで処理したいけど
文脈はどうやって処理すればいいのか思いつかないから助けて
ほしいだけかもしれない
0062デフォルトの名無しさん
2006/11/02(木) 00:53:03ないなら、0を代入しておく方法もある。vectorコンテナは要素数が
大きくなると、eraseにO(N)かかるので高くつく。そこでdeleteした要素
には0を入れておき、後で必要になったらまず0の入っている要素を
再利用するという方法もある。
もちろんプログラム側で要素に0が入っていたら処理をスキップする
必要があるが。
0063デフォルトの名無しさん
2006/11/02(木) 00:54:59まずデザパタに頼らず強引に文法解析の骨子を書いてみたら。
その後でStateパターンでまとめると綺麗にまとまるというだけの話。
0065デフォルトの名無しさん
2006/11/02(木) 01:03:50push_back(new ...) はあからさまに例外安全じゃないので考え直したほうがいい。
0066デフォルトの名無しさん
2006/11/02(木) 01:20:55破棄の確認が取れました。
ちゃんと破棄できていたようです。有難う御座います。
>>62
成る程、そういった利用方法もできるのですかぁ。
勉強になります。
>>64
持たせて破棄の確認をしました。
お騒がせしました。
>>65
それは
push_back(new ...)
にするより、元のコードのままの方がいいということですか?
0067デフォルトの名無しさん
2006/11/02(木) 01:27:11コンテナに対する操作とは分離しておいた方がいいだろう。
それと、コンテナの要素にアクセスする方法が単なるラウンドロビン的な
方法のみで、ランダムアクセスをしないのであればstd::listの採用を考え
るのもよい。こちらはeraseしても反復子が無効にならない上、常にコストは
O(1)だから。
0068デフォルトの名無しさん
2006/11/02(木) 01:27:12new に対応する operator new はクラスのメンバとして宣言されたものか、
グローバルなものかのどちらかになる。 (5.3.4 9)
0069デフォルトの名無しさん
2006/11/02(木) 01:28:15問題は push_back() が例外を投げた場合なわけだが。
0070デフォルトの名無しさん
2006/11/02(木) 01:29:52元のコードも多分例外安全じゃない(いや、まcatchで適切にリソースの解体しているなら別だけど)
auto_ptr<Enemy>enemy(new Enemy(..));
EnemyAry.push_back(enemy.get());
enemy.release();
だいたいこんな感じで書けば例外安全。
0071デフォルトの名無しさん
2006/11/02(木) 01:32:33ちょwwwwそれやり過ぎww
まあ業務用ソフトならそこまでするのかもしれんけど
0072デフォルトの名無しさん
2006/11/02(木) 01:40:29うーむ、まだまだ未熟で理解できない点がありますので、
これから習熟していく上で徐々に理解していきたいと思います。
有難う御座いました。
0073デフォルトの名無しさん
2006/11/02(木) 01:42:36これくらいがふつう
0074デフォルトの名無しさん
2006/11/02(木) 01:45:22いつの日か、こんなのがリークの原因になってしまったとしたら、見つける自信が無い。
最初に書くときに安全を確保してしまうのが吉。
0075デフォルトの名無しさん
2006/11/02(木) 01:47:45これって、もしEnemyAryがptr_vectorだったら例外安全難しくない?
1.
auto_ptr<Enemy>enemy(new Enemy(..));
EnemyAry.push_back(enemy.get());
enemy.release();
→enemy.release()が例外を投げるとptr_vectorとauto_ptrによる二重delete
2.
auto_ptr<Enemy>enemy(new Enemy(..));
EnemyAry.push_back(enemy.release());
→push_backが例外を投げるとリーク
0076デフォルトの名無しさん
2006/11/02(木) 01:51:02releaseは例外を投げなーい。
だから安心安心。
0077デフォルトの名無しさん
2006/11/02(木) 01:58:46prt_vector なら push_back(new ...) でいいだろ。 >>70 みたいな
コーディングを不要にするためのものなんだから。
0078デフォルトの名無しさん
2006/11/02(木) 02:03:000079デフォルトの名無しさん
2006/11/02(木) 02:08:320080デフォルトの名無しさん
2006/11/02(木) 02:08:38auto_ptr::release()は例外投げません……
0081デフォルトの名無しさん
2006/11/02(木) 02:10:45少なくともバッファが確保出来ないときは投げるんじゃない?
0082デフォルトの名無しさん
2006/11/02(木) 02:11:44配列の拡張時にメモリ確保失敗する可能性があるから投げると思うよ。
ちょっとソース見てくる。
008382
2006/11/02(木) 02:21:02>>77のいうようにptr_*系は直接push_back呼び出して問題ない。
というか内部でauto_ptrつかって実質的に>>70と同じ処理をやってる。
だから、むしろauto_ptr使うと例外時に2重開放になるから使っちゃ駄目。
例外発生時にはpush_backは何もしないと思ってたので、
勝手に引数の開放するのは予想外だったのでちょっと驚き。
これからはptr_*系をちょくちょく使っていくか......
0084デフォルトの名無しさん
2006/11/02(木) 02:23:110085デフォルトの名無しさん
2006/11/02(木) 02:29:03言えないな。
あれー?
http://www.boost.org/libs/ptr_container/doc/ptr_sequence_adapter.html#modifiers
0086デフォルトの名無しさん
2006/11/02(木) 02:49:000087デフォルトの名無しさん
2006/11/02(木) 02:53:46new したオブジェクトの所有権が関数をまたいで頻繁に移動するならそうなるだろう。
0088デフォルトの名無しさん
2006/11/02(木) 03:22:22なるほど。忘れていました。そうですよね。所有権が移動するから使えるんですか。
ありがとうございます。
0089デフォルトの名無しさん
2006/11/02(木) 03:23:08使わんとは言わんが、結局目の届く範囲においとかないと怖くて仕方ないので
エラー処理とかでdeleteまとめんのが面倒くさいとかの時くらいしか出番ないですよ。
叩いて叩いて。
0090デフォルトの名無しさん
2006/11/02(木) 03:31:520091デフォルトの名無しさん
2006/11/02(木) 03:43:15あればあったで構わないけど積極的な使用を推奨する気にはなれん代物でFA。
0092デフォルトの名無しさん
2006/11/02(木) 03:46:02new があるところに auto_ptr あり。少なくとも new と同じぐらい使う。
boost 使ってるときは、ほとんどそっちになるけど。
0093デフォルトの名無しさん
2006/11/02(木) 03:46:45auto_ptr で増える不便って何?
0094デフォルトの名無しさん
2006/11/02(木) 04:00:22手動deleteで例外安全確保しようと思ったらauto_ptrの100倍は面倒だろ
0095デフォルトの名無しさん
2006/11/02(木) 04:08:200096デフォルトの名無しさん
2006/11/02(木) 06:42:13つか例外でたらabortせざるをえない。
0097デフォルトの名無しさん
2006/11/02(木) 09:30:17遅くなりました。
ネームスペースに入れるとクラスのメンバのような扱いになっているって事ですか??
もう少しヒントを・・・
0098デフォルトの名無しさん
2006/11/02(木) 10:44:22あー、よく聞くな。そのいいわけ。
0099デフォルトの名無しさん
2006/11/02(木) 10:45:53new を使ったときにメモリ確保に使われる operator new の決定方法は規格で
決められているわけだが、(以下 >>68 )
0100デフォルトの名無しさん
2006/11/02(木) 12:17:19始皇帝氏って奴?
0101デフォルトの名無しさん
2006/11/02(木) 15:17:56{
vector<T> array;
public:
vector<class T>::iterator getBeginIterator()
{
return array.begin();
}
};
こんなクラスを作ったのですが
main関数で
Test<unsigned char> test1;
vector<unsigned char>::iterator itr = test1.getBeginIterator();
とすると
main.cpp(37) : error C2440: '初期化中' : 'std::vector<_Ty>::iterator' から 'std::vector<_Ty>::iterator' に変換できません。
というエラーがでます。
どなたか原因がわかりませんか?
■ このスレッドは過去ログ倉庫に格納されています