- 1 名前:デフォルトの名無しさん mailto:sage [2010/01/29(金) 23:15:45 ]
- エスケープシーケンスやWin32APIなどの環境依存なものでもOK。
ただしその場合、質問者は必ず環境を書きましょう。 ※sage禁止です(と代々スレに書いてありますが自己判断で)。 【前スレ】 【初心者歓迎】C/C++室 Ver.70【環境依存OK】 pc12.2ch.net/test/read.cgi/tech/1258873470/ 【アップローダー】(質問が長い時はココ使うと便利) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm codepad.org/ (コンパイルもできるし出力結果も得られるのでお勧め) ◆ソースのインデントについて 半角空白やTABでのインデントはスレに貼ると無くなります。 そのため、アップローダーに上げるのも手ですが直接貼る場合は、 全角空白か に置換すると見栄えだけはよくなります。
- 255 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 12:58:56 ]
- サブクラスを普通に使いつつ、スーパークラスをインスタンス化を禁止する方法ってありますか?
- 256 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 13:06:01 ]
- virtual function-name() = 0
- 257 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 13:06:21 ]
- スーパークラスのコンストラクタをprivate/protectedにして実装を書かない
って技があったと思う iostreamライブラリでも使われてるってEffectiveC++のどっかに書いてあった
- 258 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 13:10:25 ]
- 抽象クラスっていうんでしょうか?
ただスーパークラスの関数はすべてvirtualながらも定義していて、 必要に応じてサブクラスで上書きしているので、純粋仮想関数は使えないです スーパークラスのデフォルトコンストラクタをprotectedにしてみました これはアリでしょうか?
- 259 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 13:12:07 ]
- >>257
リロードしてなかった・・・ いまその記事発見しました ありがとうございます
- 260 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 13:30:30 ]
- >>254
どうもです。 CGI作成の方を調べたら、だいぶ分かってきました。
- 261 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 13:33:30 ]
- codepad.org/TMxmPZN4
こういうやり方もあるようだが これは正しい方法なのかな? vc++とcodepadでは期待通りになる
- 262 名前:257 mailto:sage [2010/02/09(火) 14:08:02 ]
- むしろそれが普通のやり方だね
257は訂正、protectedにして(コピーコンストラクタや代入演算子を)実装しないってのは インスタンス化は許すけどコピーは出来ないようにする といった要求がある時に使う技だった
- 263 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 15:08:46 ]
- std::tr1::unordered_set<Foo>
Fooはoperator std::size_tを定義していないとだめだと聞いたんですが これはいったいどんな値を返すべきなんでしょうか?
- 264 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 17:17:16 ]
- >>249
vc++ee2008で試したら仮想関数のほうが3倍速かったわ
- 265 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 17:39:16 ]
- >>263
たぶんハッシュ値
- 266 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 18:19:00 ]
- template <typename T> class Hoo : public T
という使い方は可能なのでしょうか? 例えば template <typename T> class ExceptionEX : public T としてテンプレート引数を標準例外とし、任意の標準例外を継承して 通常のメッセージの他に 行番号__LINE__やファイル名__FILE__等の情報を含む汎用的な例外を作りたいと考えています。 最終的には #define divide_by_zero_error() ExceptionEX<std::logic_error>(/*追加情報+0で除算メッセージ*/) こんな形でマクロ定義で楽ができればな、と考えています こういう事は可能なのでしょうか?
- 267 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 18:26:01 ]
- CRTPで調べてみるといいかもよ
- 268 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 18:49:29 ]
- >>266
できるよ。
- 269 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 19:08:32 ]
- 指定したAというフォルダのなかに何が入ってるか
知る方法ってありますか
- 270 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 19:13:49 ]
- コンセプトさん早くこないかな
- 271 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 19:21:03 ]
- >>265
ありがとうございます
- 272 名前:デフォルトの名無しさん [2010/02/09(火) 20:00:13 ]
- 質問です
普段はVC++ 2008 Express Editionで開発しているのですが ふと別のコンパイラでコンパイルしたところ、エラーが出ました エラーの内容は「ここでは宣言は出来ない」という文章で4箇所 47,82,93.96行の場所です どうも構造体のポインタを宣言する事が引っかかっているようです ちなみに、VC++の方ではエラーは検出されませんでした 構造体へのポインタは、サイトをざっと見て試行錯誤しながらやったものなので 何かが間違っているのだろうとは思いますが、どの辺りかがよく分かりません どなたかご指摘お願いします ソースコードです↓ codepad.org/bPyH9hRl
- 273 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 20:03:29 ]
- C言語としてコンパイルするなら途中で変数の宣言は出来ない。関数の頭へ移動されればOK
- 274 名前:デフォルトの名無しさん [2010/02/09(火) 20:09:10 ]
- >>273
つまりそれぞれの宣言を、関数の一番先頭に持ってくればよいと言う事でしょうか? それはint型などの変数でも同じなのですか?
- 275 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 20:17:20 ]
- そうだよ
- 276 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 20:26:43 ]
- >>273,>>275
順序を変えてみたところ、素直にコンパイルしてくれました こんな些細なことでもエラーが出るとは思いませんでした ありがとうございました
- 277 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 20:40:17 ]
- >>276
> こんな些細なことでもエラーが出るとは思いませんでした C/C++ではそんなんしょっちゅうだよ。 ・・・まあコンパイルエラーが出ているウチは楽だよ。 実行時エラーが出ると発狂しそうになる。
- 278 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 20:54:45 ]
- >>269
あるよ
- 279 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 20:55:38 ]
- オブジェクトの比較は演算子をオーバーロードするのが一般的なのですか?
- 280 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 20:59:23 ]
- >>279
うん でも比較用の関数やファンクタを使うこともしばしばある
- 281 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 21:04:04 ]
- templeteってジェネリックってことで、おk?
- 282 名前:296 mailto:sage [2010/02/09(火) 21:06:55 ]
- >>278
どうすればできますか? また、その方法が紹介されているサイトとかあったら教えてください
- 283 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 21:09:04 ]
- >>282
環境別な方法(一般的)と、大抵の環境で出来る方法があるが、どっちがいい?
- 284 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 21:13:43 ]
- >>281
まあ表面的にはそう。
- 285 名前:281 mailto:sage [2010/02/09(火) 21:21:48 ]
- >>284
thx
- 286 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 21:24:06 BE:1620859469-2BP(0)]
- >>282
1. boost::filesystem 2. dirent.h 3. Win32 APIなどの環境別API 4. system("dir > temp"); 5. __asm { 中略 int 1bh }
- 287 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 23:00:41 ]
- #include <Hoge>としただけなのに、Hoge* h = new Hoge();とできるクラスには
namespaceが設定されていないんですか?
- 288 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 23:20:01 ]
- #includeとクラスとnamespaceに何の関係が?
- 289 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 23:29:29 ]
- >>288
いまいわからないから、質問しているわけで
- 290 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 23:33:31 BE:960508984-2BP(0)]
- #define Hoge foo::HogeImpl
namespace foo { class HogeImpl { }; } かもしれん
- 291 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 23:34:50 ]
- 基本的に指定しなければグロバールのネームスペースに所属させられる。
明示的にくくってやればおk。
- 292 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 23:38:41 ]
- >>289
#include は、そこに書いてある名前のファイル (この場合では Hoge) の内容を、 あたかも直接書いたかのように取り込むだけです 例えばファイル Hoge の中身が class Hoge {}; で、以下のソースコード #include <Hoge> int main(){ Hoge *h = new Hoge(); } をコンパイルした場合、この #include <Hoge> の部分がファイル Hoge の中身に置き換わって class Hoge {}; int main(){ Hoge *h = new Hoge(); } と書いたかのようにコンパイルされます ファイル Hoge に namespace が書いてあればそれは書いてあるように適用されるし、書いてなければ何もなしです
- 293 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 23:41:15 ]
- C++では、enum型を==で比較するのはダメなのでしょうか。
- 294 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 23:41:35 ]
- 別にダメくない
- 295 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 23:44:11 ]
- というか比較しまくる
- 296 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 23:48:20 BE:720382346-2BP(0)]
- 他にどうやって比較するのじゃ
- 297 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 23:49:04 ]
- 引き算
- 298 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 23:51:21 ]
- 多重定義
- 299 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 23:52:11 BE:480255528-2BP(0)]
- 2重switch
- 300 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 23:55:33 ]
- >>291-292
thx
- 301 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 00:07:33 ]
- あのーplacement new[]の使い方がいまいち解りません。
Hoge* h = new Hoge[100];っていうのを placement new[]でやるには、Hogeにどんなnewを定義すればいいでしょうか?
- 302 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 00:30:29 ]
- void *p = operator new(sizeof(Hoge)*100);
Hoge *h = (Hoge *)(new (p) Hoge[100]); で大丈夫かな? コンパイルは通るはずだけど。 (当然、Hogeにはデフォルトコンストラクタが必要。 デフォルト引数がある引数を持つコンストラクタで可能かは知らない) ていうか、こうすると、 全部の要素に対して個々にデストラクタを呼び出してからメモリを解放するわけだし だったらコンストラクタだって、(placement newを使って)個々に呼び出すだけで良いじゃない、という話になる。 それだったら、引数の制限も無いしね。
- 303 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 00:32:59 ]
- placement newって実装に依存するって話を聞いたんだが正確な話ではどうなってんの?
- 304 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 00:34:48 ]
- えー?
new[]が要素数をどこかに保存しているから実装依存、という話ではなくて?
- 305 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 00:38:33 ]
- homepage2.nifty.com/well/Operator.html
ここの配置newのところに コンパイラによって動作が異なるという問題があり って書いてあるのが気になって
- 306 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 00:47:35 ]
- void *p = ::operator new(sizeof(Hoge));
Hoge *h = new (p) Hoge; // ここで普通にhを使う h->~Hoge(); ::operator delete(h); というコードは、どのコンパイラでも通るし正常に動くと思う。 (例外対応してない点を除けば) 普通のnew演算子とdelete演算子のやっていることを エミュレートしているだけだから。
- 307 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 01:11:53 ]
- >>302
それ危ない。領域が足りない可能性が高い。 安全にやる方法は、いまのところ実装に依存する方法(実際に試してみるとか)しかない。 www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#476
- 308 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 01:59:04 ]
- int main() {
printf("xx"); } returnを書かなくてもエラーにも警告にもならないのですが、 これはC++の仕様なんでしょうか、それとも環境依存なのでしょうか。 VC++2008を使っています。
- 309 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 02:13:03 ]
- 仕様
- 310 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 09:22:17 ]
- using namespace とテンプレートの特殊化についてですが
template<> class hoge<std::string> という特殊化を定義してて 使用者側がusing namespace std;を宣言していて hoge<string>とした場合呼ばれるクラスは汎用のものなのか特殊化された物なのかどちらになるのでしょうか
- 311 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 09:23:03 ]
- >>308
ttp://www.open-std.org/jtc1/sc22/wg21/ からたどれる current draft の 58、59頁には If control reaches the end of main without encountering a return statement, the effect is that of executing return 0; とある
- 312 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 11:52:32 ]
- クラスのメンバ関数はいつから使用可能なのでしょうか?
コンストラクタの初期化子にメンバ関数の返り値をあてることは出来るのでしょうか?
- 313 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 12:15:13 ]
- >>312
コンストラクタでメソッドが利用するメンバを初期化してたりしなければ問題ない;
- 314 名前:デフォルトの名無しさん [2010/02/10(水) 14:02:13 ]
- Microsoft Visual C++ 2008 Express Edition SP1 のフォームアプリケーションでの質問です。
char配列若しくはwchar_t配列をテキストボックス(this->textBox1->Text)に表示したいのですが 単純に下のように代入しようと char str[256]; this->textBox1->Text = str; すると下のように出てしまいます。 理由: 'char *' から 'System::String ^' へは変換できません。 テキストボックスにchar配列の内容を表示する方法を勉強できるサイトを教えてください。 よろしくお願いします。
- 315 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 14:15:35 ]
- >>314
フォームだとC++の範疇じゃない、C++/CLIになる。 this->textBox1->Text = gcnew String(str); とかかな。 とにかく、C++のサイト探しても見つかりにくいよ、C++/CLIで
- 316 名前:デフォルトの名無しさん [2010/02/10(水) 14:17:43 ]
- >>315
本当にありがとうございます!! C++/CLIで検索しつつ精進します。
- 317 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 14:17:56 ]
- >>312
初期化子でthisを使うのは直接・間接を問わずバグの原因になりうる だから初期化子でthisやメンバ関数を使うのは避けるべき スコープに入ってからならthisやメンバも使っておk
- 318 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 14:35:09 ]
- >>313
>>317 大丈夫かも知れないけど変なバグの温床になりやすいと言うことでしょうか ならばstaticなメンバにすれば大丈夫なのでしょうか
- 319 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 14:48:45 ]
- 初期化子リストを使う段階ではオブジェクトが構築されてないのでthisが危険
初期化子リストは初期化される順番が決められていないので初期化順に依存するコードは危険 メンバ関数は基本的に構築が正確に済んでいるオブジェクトから呼び出されることを前提にしているから初期化子への代入目的には基本的には使えない staticメンバは問題無いので使っていい
- 320 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 16:09:31 ]
- vc2003+MFCのコンソールアプリについてですが、
入力待ち、処理中に閉じるボタンを押された際の処理方法を 教えてもらえないでしょうか。
- 321 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 18:28:27 ]
- >初期化子リストは初期化される順番が決められていないので初期化順に依存するコードは危険
メンバの初期化順はメンバ変数が定義された順と決まってるだろう。
- 322 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 18:30:04 ]
- あれちゃんと順番に書いてる奴いんの?めんどくさいんだけど
- 323 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 18:42:19 ]
- 危険 (キリッ
を放置するのが楽しいんじゃないか余計な突っ込み入れるなよぅ
- 324 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 18:49:19 ]
- プログラマって性格悪いやつすごく多くね?
- 325 名前:デフォルトの名無しさん [2010/02/10(水) 18:57:01 ]
- 以下のプログラムで、shori内のa[][]の値をそっくりメインのdata[][]に渡すにはどうすればいいのかが分かりません。教えてください。グローバル変数にしないとだめですか?
void shori() { int a[2][4]; a[1][1] = 10;//などと適当な処理 } int main() { int data[2][4]; shori(); return 0; }
- 326 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 18:59:31 ]
- void shori(int a[2][4])
{ a[1][1] = 10; } int main() { int data[2][4]; shori(data); return 0; }
- 327 名前:デフォルトの名無しさん [2010/02/10(水) 21:01:50 ]
- >>326
解決しました ありがとうございます
- 328 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 21:24:52 ]
- #include <iostream>
#include <fstream> #include <iterator> void cat(std::istream &s) { std::istreambuf_iterator<char> it = s, end; while(it != end) { std::cout << *it; ++it; } } int main(void) { std::ifstream s("Test.cpp"); cat(s); return 0; } EffectiveC++のサンプルコードではこういう感じでファイル名を渡す形ではなくそのままストリームを渡していました なぜこの形式を使うんでしょうか?ファイル名を渡すのと比べてどんな利点があるんでしょう?
- 329 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 21:28:29 BE:540287429-2BP(0)]
- ファイル以外にも使えるようにじゃないか
- 330 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 21:29:41 ]
- >>328
ストリームをfstreamからiostreamやstringstreamに置き換えても そのまま動くからじゃね?汎用化というか
- 331 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 21:37:35 ]
- Oh! ナルホド!
- 332 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 22:07:19 ]
- >>322
コンパイラによっては順番に書けやって怒られるぞ。
- 333 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 22:26:25 ]
- >310
string が std::string を指していて、かつ hoge<std::string> が可視なら特殊化されたものを使うだろ。 template だからって変なこと考える必要はないと思うよ。
- 334 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 22:30:57 ]
- 別のファイルでstd::stringを自分で定義してhoge<std::string>ってしたらどうなるの?
- 335 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 22:32:18 BE:1080572494-2BP(0)]
- std内に何かを追加した時点で
動作が保障されないんだっけ?
- 336 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 22:33:25 ]
- stdに追加していいのはテンプレートの特殊化だけだったような
- 337 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 22:36:57 ]
- >>332
> コンパイラによっては順番に書けやって怒られるぞ。 そんなクソコンパイラもあるのか。
- 338 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 22:39:51 ]
- > std内に何かを追加した時点で
> 動作が保障されないんだっけ? そう。未定義の動作になる。 ただし特殊化を除く。 > stdに追加していいのはテンプレートの特殊化だけだったような その通り。
- 339 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 22:59:33 ]
- 定義したくらを
class Hoge { .... } Hoge h[100]; ってやるとエラーになっちゃうんですけど h[100]って定義するためには何を自分のクラスに 記述すればいいのでしょうか。
- 340 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 23:02:32 ]
- デフォルトコンストラクタ
- 341 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 23:02:36 ]
- Hoge* h = new Hoge[100];
配列形式はPODしか使えない おそらくコンストラクタを持っているのだろう
- 342 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 23:08:47 ]
- class Hoge {
int i; public: void seti(int j) { i = j; } void printi() const { std::cout << i << std::endl; } } hoge[100]; int main() { for (int i = 0; i < 100; i++) hoge[i].seti(i); for (int i = 0; i < 100; i++) hoge[i].printi(); } 悪い、勘違いしていたようだ >>340さんの言う通りデフォルトコンストラクタが抜けているんだろうな デフォルト引数などを使って解決する事もできる
- 343 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 14:56:12 ]
- DLLの中の人が使うための共有メモリがあるとします
このメモリの確保・開放はDllMainでやるか、グローバルスマポでやるか どっちが安全でしょうか?
- 344 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 15:10:31 ]
- DLLの中の人次第
- 345 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 15:40:54 ]
- >>343
グローバル変数やDllMainは使わない方法を考えるべきだね。
- 346 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 17:20:02 ]
- エディタのCPad for bccを
VisualC++のコンパイラに適応させるにはどうしたらいいですか? コンパイラの場所以外になにか設定が必要でしょうか?
- 347 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 17:31:28 ]
- >>346
普通はそんな使い方しない。 IDE使えばいいんじゃないかな??
- 348 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 17:42:06 ]
- >>347
IDEがちょっと重いのでエディタでと変えようとしてたんですが、無理ですかね?
- 349 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 17:49:19 ]
- >>348
一応、CL自体はコマンドラインから使えるようにはなってるはずだが、もうズーットつかってないなぁ。 >cl /help でヘルプが見れたので適時変換して使えるようにすればできるかも。 ただ、労力には見合わないと思う。
- 350 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 17:52:25 BE:1200636858-2BP(0)]
- プロジェクトを用意してdevenvがいいんじゃないか
- 351 名前:296 mailto:sage [2010/02/11(木) 17:56:53 ]
- たしかにVC++は重い(スタートメニューが)
- 352 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 17:58:15 ]
- 名前間違えた
- 353 名前:デフォルトの名無しさん [2010/02/11(木) 18:22:28 ]
- -lm でlibm.aをリンクするらしいですが、
じゃあ僕もlib?.aファイル作ってみたいです mingw32 gcc 4.4.1 Windows2000 SP4ですが どうやって生成するんですか?
- 354 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 19:31:27 ]
- ld使え
- 355 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 19:55:04 ]
- コンストラクにstd::bad_allocをつける
場合、宣言の部分にだけかけばいいのでしょうか。 誰かサンプル書いて
|

|