1 名前:前々スレ985 mailto:sage [03/12/18 06:52] 理解できないわけないだろ! デザパタも知らずにC++使いの質を下げるC厨には げんあり 前スレ達 難易度:1 pc2.2ch.net/tech/kako/1058/10586/1058675178.html 難易度:2 1pc2.2ch.net/test/read.cgi/tech/1063323615/
428 名前:デフォルトの名無しさん [04/09/24 08:39:01] int* をtypedefして違う名前を与える さらにはintを変えられるようにtemplate化
429 名前:デフォルトの名無しさん mailto:sage [04/09/24 09:23:41] C言語の型とは何か。 typedef int *iptr; int *は ptr->int iptrも ptr->int int *[]はarray->ptr->int int (*)();はptr->function as int int *();はfunction as ptr->int struct { int a,b;} *;はptr->struct{int a;int b;} 構造が同じなら互換性があると言う。 iptr a; int *b; a = b; // ok しかし struct { int x,y;} a; struct { int x,y;} b; b = a; // error '=' : 互換性のない型が含まれています。 これはいったい、どうしたことか。
430 名前:デフォルトの名無しさん mailto:sage [04/09/24 10:25:14] >>429 b=a; が b.x=a.x; b.y=a.y; と同義であるとはいえない。 直感的にはそうであるが。 同義であるなら同義であるとoperator=なりで コンパイラに教えなきゃわからん。
431 名前:デフォルトの名無しさん mailto:sage [04/09/24 10:43:24] >>429 struct A { int x,y;} a; struct B { int x,y;} b; 名前を省略しただけの扱いなんだろ。 別々の構造体で、たまたまメンバの並びが同じになっただけで代入ができたら困る。
432 名前:デフォルトの名無しさん mailto:sage [04/09/24 11:45:46] C++スレでC虫臭い話を続けるな
433 名前:デフォルトの名無しさん mailto:sage [04/09/24 17:58:58] >>424-425 こんな解決法もある。 typedef int *PINT; PINT a, b;
434 名前:デフォルトの名無しさん mailto:sage [04/09/24 18:03:42] それ終わってる。 とっくに。
435 名前:デフォルトの名無しさん mailto:sage [04/10/07 00:13:22] >>429 基本的に別の型に代入はできない。当たり前だけど。Java だって C# だってそうでしょ。 typedef は単なる別名で、新しい型を作る訳では無いって、仕様で決まってますから。
436 名前:デフォルトの名無しさん mailto:sage [04/10/26 17:24:17] メンバの並びが同じな別々の構造体を作る必要性はあるのか?
437 名前:デフォルトの名無しさん mailto:sage [04/10/26 18:09:29] あたりまえ
438 名前:デフォルトの名無しさん mailto:sage [04/10/26 19:18:18] >>436 「今はたまたま同じメンバだけど、将来的には拡張されるかも知れない」 ってことはありそう泣きガス
439 名前:デフォルトの名無しさん mailto:sage [04/10/26 19:56:30] >>438 その場合、直接代入できる必然性はないよね。
440 名前:デフォルトの名無しさん mailto:sage [04/10/27 11:48:39] >>439 ふむ。そりゃそうだ。
441 名前:デフォルトの名無しさん mailto:sage [04/10/29 01:42:08] ふと思ったんだけど、構造体やクラスの(データ)メンバを while文のようなループ文でくるくる回しながら順番に取れたら便利かも? 名前とか個数とかデータ型を意識せずにクルクル…。 そういうのってうまいこと出来ないかな?
442 名前:デフォルトの名無しさん mailto:sage [04/10/29 01:46:03] >>441 意味が判らない
443 名前:デフォルトの名無しさん mailto:sage [04/10/29 01:53:58] >>441 型の違うデータメンバのいったい何が取得したいのか? ってことだね。 たとえば各メンバの文字列表現が取得したいのなら そのような関数を用意すればすむ。
444 名前:デフォルトの名無しさん mailto:sage [04/10/30 03:34:49] うっ、わかりにくかったか…。orz 例えば擬似的なコードを書いてしまうと…。 struct TEST_STRUCT { int mInt; long mLong; char mChar[255 + 1]; }; void main() { vector<VARIANTのような型> dstArray; ^^^^^^^^^^^^^^^^^^^^^ TEST_STRUCT srcData; //適当に初期化済みの状態とする int i = 0; while( 1 ) { dstArray.push_back( srcData.○[ i ] ); i++; ^^^^^^ } } こんな感じで、データメンバを「名前ではない方法」でアクセスできれば、 結構便利な使い方ができそうだなぁと思ったのでつ。 「○[ i ]」の部分って必ずデータメンバの名前で指定しなければならないから…。 dstArray.push_back( srcData.mInt ); dstArray.push_back( srcData.mLong ); …のように一つ一つ全部指定しなきゃいけないし、型に「VARIANTのような型」が無い以上、 そういうやり方すら出来ないではないでつか…。 関数にしても結局はすべて名前で指定しなければならないし…。
445 名前:444 mailto:sage [04/10/30 03:37:25] >>444 しまった、ループの脱出条件を書いてないから無限ループケテ〜イだ…。orz まぁ、その辺は突っ込み入れないでちょ。
446 名前:r mailto:sage [04/10/30 08:20:36] >>444 offsetof 使った事無いけど。多分。
447 名前:r mailto:sage [04/10/30 08:25:36] >>444 つーか TEST_STRUCT srcData[] = ...; for( int i = 0; i < ...; i++ ) dstArray.push_back( srcData[i] ); じゃなくて?
448 名前:デフォルトの名無しさん mailto:sage [04/10/30 09:57:07] >>444 実体でなくポインタを維持すればいいなら、 std::vector<void *>dstArray; dstArray.push_back(reinterpret_cast<void *>(&srcData.mInt)); dstArray.push_back(reinterpret_cast<void *>(&srcData.mLong)); dstArray.push_back(reinterpret_cast<void *>(srcData.mChr)); 構造体のメンバの列挙は誰かがやらないといけないからねぇ。 static const unsigned sOffsets[] = { offsetof(TEST_STRUCT, mInt), offsetof(TEST_STRUCT, mLong), offsetof(TEST_STRUCT, mChr), }; for (unsigned i = 0; i < sizeof(sOffsets) / sizeof(*sOffsets); ++i) { dstArray.push_back(reinterpret_cast<void *>(reinterpret_cast<char *>(&srcData) + sOffsets[i])); } これでもなんとかなるかな。
449 名前:デフォルトの名無しさん mailto:sage [04/10/30 19:41:55] >>446 「offsetof」なんて初めて聞いた! …と思ったらひょっとしてC++の言語仕様にはないものですよね? ぐぐってみたらどうやら「.NET Framework」なのかな? >>448 ふむふむ、ポインタを駆使すれば結構なことが出来そうですね。 しかしなんていうか難しいというかちょっぴり複雑に…。(^^; 基本的に私もメンバを一つ一つ指定することになんの抵抗も無かったんですが、 最近職場でBorlandC++Builderに慣れた同僚が、 「構造体のメンバって一つ一つ名前でアクセスしないといけないんですかねぇ? 面倒くさいですねぇ」 …などと話していたので、興味を持った次第でつ。 これができるとどういうメリットがあるかという話ですが、 (C++Builderの話限定になってしまうのですが) DBの不特定なテーブルから、フィールド名を指定せずに 不特定の構造体のメンバにデータを突っ込めるため、 プログラムの汎用性が高まるということらしいです。
450 名前:デフォルトの名無しさん mailto:sage [04/10/30 22:20:56] offsetofを知らないだけならともかく(それも問題だが)、C#って・・・ 絞り込みも出来ない、googleのトップしか見ないで、2番目は無視する人かね
451 名前:448 mailto:sage [04/10/31 01:07:37] >>449 offsetofなんて、Cでもマクロで簡単に書ける代物なんだけど。 標準ヘッダを探してみることもできないのかな?
452 名前:デフォルトの名無しさん mailto:sage [04/10/31 02:37:42] うわ〜ん、そんなにいじめるなぁ〜。ヽ(`Д´)ノ 簡単にできるというのがいいのだよ。 めんどっちいのはイヤ。
453 名前:デフォルトの名無しさん mailto:sage [04/10/31 02:45:31] しかし、とりあえずoffsetofというマクロが 標準的に用意されてることを教えていただき、 ありがとうございますた。m(_ _ )m
454 名前:r mailto:sage [04/10/31 17:05:43] クラスのメンバを、別々に、同じベクタに入れる意味がわからん
455 名前:デフォルトの名無しさん [04/11/25 02:44:24] 最近書き込みがないね。
456 名前:デフォルトの名無しさん mailto:sage [04/11/25 04:01:13] 重複スレだからな。
457 名前:デフォルトの名無しさん mailto:sage [04/11/26 03:07:57] C言語とJavaとRuby使って,そこそこ書きました. 次はC++にチャレンジするかと,プログラミング言語C++を買ってきました. 難しいです.何書いてるのかわかりません. 俺の頭が悪いのが原因でしょうが,C++の難しさに挫けそうです
458 名前:デフォルトの名無しさん mailto:sage [04/11/26 08:15:19] ヽ(冫、)ノズコーッ 何処が難しいか言ってみて。 十分習得出来る知識あるように見えるけど…
459 名前:デフォルトの名無しさん mailto:sage [04/11/26 10:26:54] >>458 >十分習得出来る知識あるように見えるけど… んな事が >>457 読んで解るのか!ESPer でつか?
460 名前:デフォルトの名無しさん mailto:sage [04/11/26 10:52:23] >>459 Yep
461 名前:デフォルトの名無しさん mailto:sage [04/11/26 14:05:17] >>457 CからC++に移ったばかりの人 for (int i = 0; i < 10; i++) { v[i] = 1; } C++を使い慣れてきた人 for (std::vector<int>::iterator it = v.begin(); it != v.end(); it++) { *it = 1; } C++が「使える」と言えるレベルの人 std::fill(v.begin(), v.end(), 1); これでやっと中級に入門です。先は長いです。くじけそうです。
462 名前:デフォルトの名無しさん mailto:sage [04/11/26 14:07:40] C++のことがある程度わかってくると、++、--は前置にするもんです。
463 名前:デフォルトの名無しさん mailto:sage [04/11/26 16:44:04] 運置
464 名前:デフォルトの名無しさん [04/11/26 21:17:08] >>462 どうして?
465 名前:デフォルトの名無しさん mailto:sage [04/11/26 21:20:14] >>464 前置の方がコピーのコストがかからないから
466 名前:デフォルトの名無しさん mailto:sage [04/11/26 21:27:04] >>465 どうして?
467 名前:デフォルトの名無しさん mailto:sage [04/11/26 21:32:47] >>466 More Effective C++の項目6を嫁
468 名前:デフォルトの名無しさん mailto:sage [04/11/26 21:36:34] >>467 読んでみた。ありがとう。 インライン展開されるような場合は別に気にしなくていいね。
469 名前:デフォルトの名無しさん mailto:sage [04/11/26 22:23:28] >>461 それ見てC++の方がタイプ量多い割にたいしたこと出来ない。 Cの方が1000万倍マシと悟った。
470 名前:デフォルトの名無しさん mailto:sage [04/11/26 22:24:18] >>469 それはちょっと勘違いだ。 C++ は C より便利だよ。
471 名前:デフォルトの名無しさん mailto:sage [04/11/26 22:24:53] >>467 んじゃ、これから Effective ++C と書くことにしちくりマンボ
472 名前:デフォルトの名無しさん mailto:sage [04/11/26 22:28:36] >>471 山田君、座布団一枚持ってっちゃって
473 名前:デフォルトの名無しさん mailto:sage [04/11/26 22:32:14] >>468 テンプレートでの汎用プログラミングのために常に 前置にしておくと後々組み込み型をクラスにしたくなった とき修正量が減る。
474 名前:デフォルトの名無しさん mailto:sage [04/11/26 23:07:05] >>473 組み込み型かクラスかは別に関係ないような?
475 名前:デフォルトの名無しさん mailto:sage [04/11/26 23:35:39] >>474 クラスだとテンポラリオブジェクトが生成されるよ。 インライン展開されてもね。
476 名前:457 mailto:sage [04/11/27 02:51:11] 思ったよりレスが…ありがとうございます. >>458 最初は俺も楽勝だろーとか思っていたのですが,何故か頭が受け付けません. >>461 今の俺の書き方だと,モロ最初の書き方ですね…
477 名前:デフォルトの名無しさん mailto:sage [04/11/27 03:07:44] >>461 C++を究めた人はアセンブリに戻る。
478 名前:デフォルトの名無しさん mailto:sage [04/11/27 03:10:04] >>477 そういう内容のメガデモ作品があったな
479 名前:デフォルトの名無しさん mailto:sage [04/11/27 06:47:22] >>461 の二番目みたいに、全く抽象化されてもいないのに 無理やりイテレータ使う意義って、全くないように思えるんだが
480 名前:デフォルトの名無しさん mailto:sage [04/11/27 09:02:51] インポラリ
481 名前:デフォルトの名無しさん mailto:sage [04/11/27 09:22:04] >>457 > C++の難しさに挫けそうです 「プログラミング言語C++」の難しさに挫けそうなだけだろ。
482 名前:デフォルトの名無しさん mailto:sage [04/11/27 09:34:42] >>479 そんなことはない。 少なくともコンテナを差し替えられる。
483 名前:デフォルトの名無しさん mailto:sage [04/11/27 23:14:25] そんなこといったら、最初の書き方ならば vectorを配列にさしかえれるという利点があるなw
484 名前:デフォルトの名無しさん mailto:sage [04/11/27 23:16:08] >>483 vectorを配列に差し替えても、あまり嬉しくはないだろう。
485 名前:デフォルトの名無しさん mailto:sage [04/11/27 23:37:44] 速くなるやん
486 名前:デフォルトの名無しさん mailto:sage [04/11/28 04:04:31] >>485 そういう用途なら、boost::arrayがあるから利点とはならない。
487 名前:デフォルトの名無しさん mailto:sage [04/11/28 04:36:03] boost::rangeでcontainerとbuilt-in arrayが汎用に扱えるようにもなったしね
488 名前:デフォルトの名無しさん mailto:sage [04/11/28 11:09:50] 後からコンテナを差し替えやすいってのが利点。
489 名前:デフォルトの名無しさん mailto:sage [04/11/28 17:27:41] コンテナの差し替えなんかするのか?ホントか? テンプレート引数で型を受け取るときに、 どのコンテナでもOKなのは、確かに意義があるといえるが 前述の例はそういうわけでは全くないし、 正直、三つある例のどの書き方でも、優劣はないと思うが
490 名前:デフォルトの名無しさん mailto:sage [04/11/28 20:57:16] 前述の例だけみればたしかにどれでもいいレベルの話だけど、 意識の持ち方のことを言ってるんじゃないの? できるだけSTLコンテナやSTLアルゴリズムを使おうという。
491 名前:デフォルトの名無しさん mailto:sage [04/11/28 21:39:47] しっかし、組み込み型(intとかdoubleとか)のコンテナならSTLのアルゴリズムは 教科書通りに使えるんだが、クラスになると途端に使い物にならなくなるのは どういうこと? STLの範囲で済ます場合、メンバ関数ならアダプタでなんとかなるが、メンバ変数は 叙述関数・関数オブジェクトを用意しなければならない。 正直、boost::bindやboost::lambdaが無かったらやってられないよ。 でもこれも一長一短で、boost::lambdaは動かないコンパイラもあるし(bcc32)、 boost::bindは遅いし。
492 名前:デフォルトの名無しさん mailto:sage [04/11/28 22:55:18] > boost::bindは遅いし。 なんで?
493 名前:デフォルトの名無しさん mailto:sage [04/11/28 23:17:06] >>492 なんでだろう? 俺が聞きたいよ。 アセンブリコード見たけどよく分からん。あまり最適化されてない様子。 lambdaは早いんだけどな。 単純なlambda式なら、イテレータをループで回すより早かったりする。
494 名前:デフォルトの名無しさん mailto:sage [04/11/28 23:47:31] >>493 テストコード出せる?
495 名前:デフォルトの名無しさん [04/11/28 23:49:47] boostの一部のライブラリを見てると、素直にC++にクロージャを足した 新しい言語を作って使えよと言いたくなる。
496 名前:デフォルトの名無しさん mailto:sage [04/11/28 23:55:10] boost使ってる時点で負け組み
497 名前:デフォルトの名無しさん mailto:sage [04/11/28 23:57:22] >>496 何を使うと勝ち組みになれるの? boost のめざそうとしているものを使わなくてもいいってこと?
498 名前:デフォルトの名無しさん mailto:sage [04/11/29 03:52:25] >>495 C++Builder言語
499 名前:デフォルトの名無しさん [04/11/29 08:41:38] C++が難しいのは、テンプレートのがポリモルフィズムより速いからだと思う。
500 名前:デフォルトの名無しさん [04/11/29 08:55:56] pc5.2ch.net/tech/kako/1058/10586/1058675178.html pc5.2ch.net/test/read.cgi/tech/1063323615/
501 名前:デフォルトの名無しさん [04/11/29 09:53:18] >>495 templateの良し悪しはともかくとして、 言語のコアとしてそういった概念のシンタックスを 持つのではなく、メタプログラミングによって後から 追加できるのっていいなと思うけど。
502 名前:デフォルトの名無しさん [04/11/29 11:15:07] このスレ見てるとげんなりしてくるなw
503 名前:デフォルトの名無しさん mailto:sage [04/11/29 11:19:09] >>501 同感、クロージャーなどを突っ込むよりtemplate機能をもっと整理して この種の機能はライブラリとして実装してもらいたい。 クロージャー以外にもデザパタ一式ガベコレ一式程度は自働ジェネレートできるくらいがいい。 言語のコアはあくまでシンプルで高速な物がいい。
504 名前:デフォルトの名無しさん [04/11/29 12:55:33] VC++で計算した数値を引数で表示したいんですが、printfで表示されません。だからMessageBoxを使って表示したいんですがエラーがでます。どうしたらいいんでしょうか?どなたか分かる人教えてください。
505 名前:デフォルトの名無しさん mailto:sage [04/11/29 13:10:08] ( ゚Д゚)ポカーン
506 名前:デフォルトの名無しさん [04/11/29 15:55:09] 505うぜーよ!! 知らないならくるな!!! 消えちまえーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
507 名前:モウモウ mailto:sage [04/11/29 21:13:40] >>504 とりあえず、現状のソース見せて。
508 名前:デフォルトの名無しさん mailto:sage [04/11/29 21:15:44] 質問した本人はそのスレ全てを覚えてるとは思えないが…(笑)
509 名前:デフォルトの名無しさん mailto:sage [04/12/04 16:22:48] 「ファイアーエムブレム」は難しすぎ game.2ch.net/poke/kako/1020/10203/1020340325.html Linuxは難しすぎ pc.2ch.net/linux/kako/1025/10252/1025263879.html 三連複は難しすぎ cocoa.2ch.net/keiba/kako/1025/10252/1025257025.html メモ帳は難しすぎ pc5.2ch.net/test/read.cgi/win/1101205340/
510 名前:デフォルトの名無しさん mailto:sage [04/12/13 13:46:51] C++はSTLと継承を使いこなし始めた辺りが 生産性・理解向上の分水嶺だった記憶がある。
511 名前:釣られたか(w mailto:sage [04/12/13 14:01:00] >504 ConsoleとWinアプリは違うから。 デバイスコンテキストをキーワードに勉強しる。 あとこの手の質問はVC++のスレ・・・って適当なの無いな今は MFC限定しか
512 名前:デフォルトの名無しさん mailto:sage [04/12/13 14:44:57] >>511 ★初心者にVisual C++を教えるスレ★ Part16
513 名前:デフォルトの名無しさん mailto:sage [05/01/01 23:35:39] C++には、他に類を見ない自由と絶対的な○○が与えられている。
514 名前:デフォルトの名無しさん mailto:sage [05/02/15 18:08:52 ] C++の機能限定版とか無いの?
515 名前:デフォルトの名無しさん mailto:sage [05/02/15 18:32:19 ] >>514 例外、クラス、関数オーバーロードや デフォルト引数などの機能を取り除いた C というものがあります。
516 名前:デフォルトの名無しさん mailto:sage [05/02/16 18:00:21 ] >>514 EC++なんてものもある。 ja.wikipedia.org/wiki/Embedded_C_Plus_Plus
517 名前:デフォルトの名無しさん mailto:sage [05/02/17 00:39:05 ] >>516 だがしかし、はっきり言ってウンコだ。
518 名前:デフォルトの名無しさん mailto:sage [05/02/19 00:11:41 ] >>516 例外処理が省かれてるのが最大の問題だな。
519 名前:361=別名ポリホ mailto:sage [05/02/19 00:26:05 ] >>518 テンプレートも名前空間もない。 実際にEC++環境があったのでコーディングしてみたことがあるけど、 全然C++らしくない。
520 名前:デフォルトの名無しさん mailto:sage [05/02/19 06:54:53 ] まああくまでもembeddedだからねえ。
521 名前:デフォルトの名無しさん mailto:sage [05/02/22 15:21:43 ] 時々、ECMAScript をバイナリに落とすことが出来ればと考えることがある。 obj = new Object; obj["Method"] = function( a, b ) { echo("OK"); } obj.Method(); // OK 441 がやりたいことも、プロトタイプ取得で簡単OK
522 名前:デフォルトの名無しさん mailto:sage [05/02/23 14:30:47 ] 漏れの考えはこうだ! >461 様の例で「CからC++に移ったばかりの人」の書き方は いかにも効率が悪そうな印象を受けるけど、 漏れが「仕事で」プログラムを作るなら、 迷わずこのやり方を取る。 (かなり馬鹿にされるだろうけど…。) そして趣味で(個人的な事情で)プログラムを作るなら、 「C++を使い慣れてきた人」や「C++が『使える』というレベルの人」のような 書き方ができるように努力するだろう。 なぜなら仕事でプログラムを作り、それを他の技術者に引き継ぐ場合、 単純な書き方がもっとも無駄な手間を省くからだ。 そして多くの場合、理解しにくいバグの発生を予め抑制することができる。 また、改修を加えるときや、 不幸にしてプラットフォームの異なる環境へ移植する場合にも、 少ないコストで作業を終えることができるであろう。 スレ違いで申し訳ないけど、 引継ぎ作業によるコストって、 プログラムの書き方で随分変わるんですよ。 「凄いC++技術者」の書いたプログラムを引き継いだ場合、 「凄くないC++技術者の私」が改修を加えるのは大変なんですよ。
523 名前:デフォルトの名無しさん mailto:sage [05/02/23 15:30:38 ] >>522 ごく普通なC++プログラマな私からすれば、他人のソースを引き継いだときに ループが書いてあったらそれだけで要注意項目になります。 std::fillならそのまま読み飛ばせる分だけ、引き継ぎコストは抑えられるわけですな。 構造体も然り。初期化処理をその構造体を利用する側でやらなければいけないよりは コンストラクタを書いておいてくれたほうがよっぽど確実。 まぁ、「凄くないC++技術者=C++をベターCとしてしか使えない技術者」というなら別ですが。
524 名前:デフォルトの名無しさん mailto:sage [05/02/23 18:11:34 ] ようするに522が凄いC++技術者になればいいだけ。
525 名前:デフォルトの名無しさん [05/03/12 16:40:27 ] なんで一時オブジェクトは非const参照に変換できないんだ template<typename E, typename T, typename A, typename Value> inline std::basic_string<E, T, A>& ToString(std::basic_string<E, T, A>& rstr, Value t) { return rstr = static_cast<std::basic_ostringstream<E, T, A>&>(std::basic_ostringstream<E, T, A>() << t).str(); } //static_castしないとエラーを吐く。これはコンパイラのせいだと思う。 #define ToStr0(t) ToString(std::string(), t) template<typename E, typename T, typename A, typename Value> inline std::basic_string<E, T, A>& ToString(std::basic_string<E, T, A>* pstr, Value t) { return *pstr = static_cast<std::basic_ostringstream<E, T, A>&>(std::basic_ostringstream<E, T, A>() << t).str(); } #define ToStr1(t) ToString(&std::string(), t) int main() { cout << ToStr0(5) << endl; //エラー:一致するものが見つからない cout << ToStr1(.125) << endl; //OK return 0; } って書こうと思ったんだよ。 そしたらふと思いついてこうしたら動くんだよ。 #define ToStr0(t) ToString((std::string&)std::string(), t) 頼むからこんなのキャスト無しでも適当にやってくれよ。 そもそもオブジェクトを値渡しで返そうとするとインライン展開できない ってのがなけりゃこんなことで悩む必要は無かったんだよ>Borland
526 名前:デフォルトの名無しさん mailto:sage [05/03/12 17:34:19 ] それはインライン展開しない方がいいと思うが。 つうか、boost::lexcal_castとか素直に使った方がええんじゃないの?
527 名前:デフォルトの名無しさん mailto:sage [05/03/12 19:06:53 ] >>526 lexcal_cast.hppをインクルードするとエラーになってしまうもんで。
528 名前:デフォルトの名無しさん mailto:sage [05/03/13 04:15:03 ] >>525 > //static_castしないとエラーを吐く。これはコンパイラのせいだと思う。 ostream に対する operator << の戻り値は ostream& だから、 コンパイラに依らずエラーになるはず。 一時オブジェクトで処理しようとしているのが間違い。