- 1 名前:デフォルトの名無しさん mailto:sage [2013/04/04(木) 20:05:20.33 ]
- The C++ Standards Committee
www.open-std.org/jtc1/sc22/wg21/ Wikipedia ja.wikipedia.org/wiki/C%2B%2B11 C++11/C++1y 16 toro.2ch.net/test/read.cgi/tech/1349356417/
- 2 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2013/04/04(木) 20:13:11.37 ]
- >>2 get
- 3 名前:デフォルトの名無しさん mailto:sage [2013/04/04(木) 20:28:02.98 ]
- 後方互換性を適当に切り捨てた素敵C++来い
- 4 名前:デフォルトの名無しさん mailto:sage [2013/04/04(木) 20:32:55.97 ]
- 禿が牛耳ってる間は無理だろ
- 5 名前:デフォルトの名無しさん mailto:sage [2013/04/04(木) 20:45:26.00 ]
- >>3
Dでいいじゃん
- 6 名前:デフォルトの名無しさん mailto:sage [2013/04/04(木) 20:49:09.66 ]
- DはベターCとして使えないから
- 7 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2013/04/04(木) 20:55:37.14 ]
- >>6
C の制約を捨てられないなら結局 C++ と似たようなものになるんでないの。
- 8 名前:デフォルトの名無しさん mailto:sage [2013/04/04(木) 21:11:57.40 ]
- Cレベルの高級アセンブラとして使えればいいと言うこと
- 9 名前:デフォルトの名無しさん mailto:sage [2013/04/04(木) 21:24:35.64 ]
- CレベルでいいならCでいいじゃん
- 10 名前:デフォルトの名無しさん mailto:sage [2013/04/04(木) 23:21:53.98 ]
- C++コンパイラでコンパイルできるC++の一部ではない本当のCを必要とする人はどれだけいるというのか?
- 11 名前:デフォルトの名無しさん mailto:sage [2013/04/04(木) 23:29:04.04 ]
- ・変数を使うときに宣言できる
・//でコメントアウトできる これだけでC++は神言語だ。
- 12 名前:デフォルトの名無しさん mailto:sage [2013/04/04(木) 23:36:44.25 ]
- C99でできるじゃん
- 13 名前:デフォルトの名無しさん mailto:sage [2013/04/04(木) 23:42:47.52 ]
- >>12
(;゚△゚)マジでっ!? でもVC++だとC99対応してないしなぁ。
- 14 名前:デフォルトの名無しさん mailto:sage [2013/04/04(木) 23:42:54.03 ]
- それじゃあC++が要らない子になっちゃうじゃん!!ダメだよ!
- 15 名前:デフォルトの名無しさん mailto:sage [2013/04/04(木) 23:47:42.50 ]
- C#がちょっとしたGUIツール作るのに便利だということで触ってみたら、
ハットとかいうキモい記号がある時点で拒絶反応が起こった。 そう、C++はこの世でだれよりも速く・・・・・・そして美しい!!
- 16 名前:デフォルトの名無しさん mailto:sage [2013/04/04(木) 23:49:47.70 ]
- むしろbetterCが欲しければC99以降を使うように誘導して、betterCとしてのC++の使用は排除していくべき
- 17 名前:デフォルトの名無しさん mailto:sage [2013/04/05(金) 00:23:57.28 ]
- C++よりC99/C2011を使うべきという人に、
どうしてC++ではダメなのかの根拠を ちゃんと説明できた人を見たことがない。
- 18 名前:デフォルトの名無しさん mailto:sage [2013/04/05(金) 00:50:54.37 ]
- www.infoq.com/jp/news/2013/04/gcc48_released
- 19 名前:デフォルトの名無しさん mailto:sage [2013/04/05(金) 01:28:17.17 ]
- >>17
BetterCとしてCでのやり方をそのまま全てC++でも使おうとしてC++ならではのやり方を受け入れず、あるいは公然と否定までして C++として使っている人との間に争いを起こしたりするのは双方にとってただ不幸でしかないだろ
- 20 名前:デフォルトの名無しさん mailto:sage [2013/04/05(金) 07:39:00.84 ]
- もともとC++だったLLVMに続いて
GCCもC++に移行か。
- 21 名前:デフォルトの名無しさん mailto:sage [2013/04/05(金) 09:18:34.92 ]
- はやくC#に完全移行しないかな
- 22 名前:デフォルトの名無しさん mailto:sage [2013/04/05(金) 10:52:20.02 ]
- itpro.nikkeibp.co.jp/article/Watcher/20130331/467401/
closeされてるwww
- 23 名前:デフォルトの名無しさん mailto:sage [2013/04/05(金) 11:50:21.71 ]
- >>19
C++はCと組み合わせて使えるのが基本的な設計方針。
- 24 名前:デフォルトの名無しさん mailto:sage [2013/04/05(金) 11:54:16.28 ]
- P/InvokeでC#からCのDLL呼び出したけど地獄だったぞ
STAThreadで呼び出せれば楽だけどパラメータが多いとシャレにならない
- 25 名前:デフォルトの名無しさん mailto:sage [2013/04/05(金) 12:40:43.42 ]
- >>17
C++にはVLA(可変長配列)が無いのでCの方が同じ事を低オーバーヘッドで書ける、とかw C++11になるまではC99の機能もなかったから、Cを使うべき理由はたくさんあったw C++は覚えなきゃいけないことが多い(Effective C++レベルの知識が必要とか)ので、 コーディングに気を遣いたくない人はCにしておけとは思うね。
- 26 名前:デフォルトの名無しさん mailto:sage [2013/04/05(金) 13:25:22.78 ]
- >>17
単純に速度的なものかと思ってた、 Cの構造体コピー = memcpy C++クラスコピー = コピコン(メンバー一個一個コピー) 参照とかポインタにしてコピコン減らせるけど、できない部分も出てくるし C++っぽいプログラムにすればするほどコピコン増える気がする
- 27 名前:デフォルトの名無しさん mailto:sage [2013/04/05(金) 18:27:35.95 ]
- memcpyで済むような構造体はPODにすればC++でも一緒だし
それで済まないクラスならCでだって結局コピーに伴って初期化とか色々しなきゃならないと思うんだけど
- 28 名前:デフォルトの名無しさん mailto:sage [2013/04/05(金) 19:15:39.77 ]
- だよね
- 29 名前:デフォルトの名無しさん mailto:sage [2013/04/05(金) 19:30:34.91 ]
- せやな
- 30 名前:デフォルトの名無しさん mailto:sage [2013/04/05(金) 19:41:39.77 ]
- Deep CopyとShallow Copyがなぜ区別が付いてるのか理解出来ない低脳が
住み着いてるようだよな
- 31 名前:デフォルトの名無しさん mailto:sage [2013/04/05(金) 19:52:32.25 ]
- ピュアなcで作ったアプリは、ファイルサイズも小さく、利用メモリも小さくすむからそこが利点だと思う。
- 32 名前:デフォルトの名無しさん mailto:sage [2013/04/05(金) 20:18:59.06 ]
- Cは演算子は兎も角普通の関数の
オーバーロード位は欲しい所だよね。 性能には関係ないのだから。
- 33 名前:デフォルトの名無しさん mailto:sage [2013/04/05(金) 20:35:19.93 ]
- 関数テンプレートあるだけでCも相当便利になるような気がするんだが
って言っても今更C使う必然性なんて全然ないか(笑)
- 34 名前:デフォルトの名無しさん mailto:sage [2013/04/05(金) 20:35:51.37 ]
- >>22
うわ、つい昨日全部読んだところだった。 よかったw しかし、この記事読むと、ゾッとするね。 非同期プログラミングとか、ソフトウェアの利点を否定してるようなもんだw
- 35 名前:デフォルトの名無しさん mailto:sage [2013/04/05(金) 20:35:54.16 ]
- そういや C11 に _Generic とかいう型switchが存在してたな。
- 36 名前:デフォルトの名無しさん mailto:sage [2013/04/05(金) 20:52:31.39 ]
- なんでもかんでも _ を付ける今のCって
- 37 名前:デフォルトの名無しさん mailto:sage [2013/04/05(金) 20:59:38.97 ]
- >>32
ISO/IEC 9899:2011というものがあってだな。 実装したコンパイラ見たことないけど。
- 38 名前:デフォルトの名無しさん mailto:sage [2013/04/05(金) 22:34:51.83 ]
- >>36
誰かが使ってるものと被ったら嫌だから 予約語の _大文字 を使うしやないんや・・・
- 39 名前:デフォルトの名無しさん mailto:sage [2013/04/05(金) 23:07:51.22 ]
- _Boolとかダサすぎて使う気になれなかった
- 40 名前:デフォルトの名無しさん mailto:sage [2013/04/05(金) 23:15:20.72 ]
- #import <stdbool.h>
- 41 名前:デフォルトの名無しさん mailto:sage [2013/04/05(金) 23:18:40.90 ]
- stdboot.hもダサい
- 42 名前:デフォルトの名無しさん mailto:sage [2013/04/05(金) 23:19:44.99 ]
- #import って何?
- 43 名前:デフォルトの名無しさん mailto:sage [2013/04/05(金) 23:21:09.68 ]
- includeの間違いだろう。どう見ても
- 44 名前:デフォルトの名無しさん mailto:sage [2013/04/05(金) 23:30:28.96 ]
- >>42
#include の一回しか読み込まない版
- 45 名前:デフォルトの名無しさん mailto:sage [2013/04/05(金) 23:34:53.97 ]
- >>44
お前の中ではそうなんだろう
- 46 名前:デフォルトの名無しさん mailto:sage [2013/04/05(金) 23:39:32.46 ]
- >>42
Objective-Cの話か?
- 47 名前:デフォルトの名無しさん mailto:sage [2013/04/06(土) 01:07:17.86 ]
- ファイルがシンボリックリンクやらハードリンクされてる場合はどうなるの?
- 48 名前:デフォルトの名無しさん mailto:sage [2013/04/06(土) 01:16:04.43 ]
- コンパイラ次第です
- 49 名前:デフォルトの名無しさん mailto:sage [2013/04/06(土) 01:43:33.85 ]
- 下手に規定しない方が実装が自由にやれる
- 50 名前:デフォルトの名無しさん mailto:sage [2013/04/06(土) 01:48:17.10 ]
- >>17
C99 の designated initializer はかなり便利 FreeBSD のカーネルコードでガシガシ使ってる
- 51 名前:デフォルトの名無しさん mailto:sage [2013/04/06(土) 02:34:16.78 ]
- import == 輸入だす
- 52 名前:デフォルトの名無しさん mailto:sage [2013/04/06(土) 05:30:36.64 ]
- >>47
os レベルで処理されるから、多くの場合は普通のファイルと変わらない扱いだろうな
- 53 名前:デフォルトの名無しさん mailto:sage [2013/04/06(土) 08:20:20.35 ]
- C++ってCの上にくっ付けた機能がセンス無さ過ぎて...
所詮C人気に便乗したゴミ言語
- 54 名前:デフォルトの名無しさん mailto:sage [2013/04/06(土) 09:03:48.65 ]
- >>53
人気に便乗したというよりもともとがcのラッパー(プリプロセッサ)だからね? すでに存在するものは極力利用するなんていかにもc技術者らしいけどc++のstructとか、言語的欠陥のおかしい部分はそこに引きずられていたという気もしてる。 c/c++の関係は、今でいうjavascriptとtypescriptのような関係だ。
- 55 名前:デフォルトの名無しさん mailto:sage [2013/04/06(土) 12:35:29.62 ]
- >>50
初期化といえば、C++にはユーザ定義リテラルがあるぜ。
- 56 名前:デフォルトの名無しさん mailto:sage [2013/04/06(土) 12:38:04.56 ]
- >>55
知らないかもしれないけどC++にはコンストラクターがあるんだぜ。 初期化方法をユーザー定義できるんだぜ。
- 57 名前:デフォルトの名無しさん mailto:sage [2013/04/06(土) 12:50:17.73 ]
- C++にはデストラクタがある。
これだけでCを捨てるには十分な理由。
- 58 名前:デフォルトの名無しさん mailto:sage [2013/04/06(土) 12:50:21.45 ]
- C++は後方互換を切り捨ててコンパクトになれよ
- 59 名前:デフォルトの名無しさん mailto:sage [2013/04/06(土) 13:00:05.91 ]
- むしろ今のC++についてこれない奴を切り捨てる方がずっと早いし意義がある
- 60 名前:デフォルトの名無しさん mailto:sage [2013/04/06(土) 13:01:59.87 ]
- >>58
Dでいいじゃん
- 61 名前:デフォルトの名無しさん mailto:sage [2013/04/06(土) 13:03:41.01 ]
- C++言語はこの世で最も洗練された美しいプログラミング言語だ。
- 62 名前:デフォルトの名無しさん mailto:sage [2013/04/06(土) 13:04:02.95 ]
- >>60
今C++以上に混沌としていて仕様の破壊的変更を待っているマゾしかいないのに
- 63 名前:デフォルトの名無しさん mailto:sage [2013/04/06(土) 13:06:01.70 ]
- Designated InitializerってC++11に入らなかったんだ。なんで?
VLAが嫌われるのは何となく分かるけど。
- 64 名前:デフォルトの名無しさん mailto:sage [2013/04/06(土) 13:07:32.00 ]
- ひとつの言語で低レベルから高レベルまで
全部書けるべきというスタンスが頭悪過ぎて目眩がする
- 65 名前:デフォルトの名無しさん mailto:sage [2013/04/06(土) 13:09:55.52 ]
- Cの方がC++との歩み寄りを否定しちゃってるよな
- 66 名前:デフォルトの名無しさん mailto:sage [2013/04/06(土) 13:16:40.74 ]
- Cから見ればC++なんて、相互運用可能な
数多ある言語のひとつに過ぎないからね
- 67 名前:デフォルトの名無しさん mailto:sage [2013/04/06(土) 13:19:19.78 ]
- >>62
後方互換を捨てるってそういうことだろ?
- 68 名前:デフォルトの名無しさん mailto:sage [2013/04/06(土) 13:34:01.76 ]
- >>63
constexprコンストラクタが有れば要らないと判断されたんじゃね
- 69 名前:デフォルトの名無しさん mailto:sage [2013/04/06(土) 13:57:33.50 ]
- constexpr は、コンパイル時計算不可の時にエラーを吐くようなオプションが欲しい。
- 70 名前:デフォルトの名無しさん mailto:sage [2013/04/06(土) 14:04:49.90 ]
- 警告位は出してほしいよな
黙って実行時評価に変更されても
- 71 名前:デフォルトの名無しさん mailto:sage [2013/04/06(土) 14:13:54.65 ]
- 禿が決めたことには従え
- 72 名前:デフォルトの名無しさん mailto:sage [2013/04/06(土) 15:43:08.46 ]
- >>69
gccはその内にできるんじゃない?
- 73 名前:デフォルトの名無しさん mailto:sage [2013/04/06(土) 18:20:44.99 ]
- >>61
いや::が醜いわ
- 74 名前:デフォルトの名無しさん [2013/04/07(日) 23:41:12.01 ]
- 昔はC++には否定的だったけど、JavaやってC++への評価が改まったよ。
- 75 名前:デフォルトの名無しさん mailto:sage [2013/04/08(月) 04:21:12.17 ]
- C#やったらC++がクソと思えるようになるだろ
- 76 名前:デフォルトの名無しさん mailto:sage [2013/04/08(月) 04:30:43.01 ]
- C#やったけど
こんなに適当に書けていいのかって思ったな
- 77 名前:デフォルトの名無しさん mailto:sage [2013/04/08(月) 07:30:34.13 ]
- C#はスレッドが扱いやすい
- 78 名前:デフォルトの名無しさん mailto:sage [2013/04/08(月) 11:23:32.99 ]
- BOOST_SCOPE_EXITの代替になるようなものは無いの?
- 79 名前:デフォルトの名無しさん mailto:sage [2013/04/08(月) 13:32:29.51 ]
- >>78
言語機能にはないので自動変数のデストラクタを使ってください(BOOST_SCOPE_EXITも基本はそのラッパーマクロです)
- 80 名前:デフォルトの名無しさん mailto:sage [2013/04/08(月) 19:28:53.09 ]
- finally実装すれば済むだけな気もするけど
何か難しい問題点があったのだろうか
- 81 名前:デフォルトの名無しさん mailto:sage [2013/04/08(月) 20:45:21.75 ]
- デストラクタで賄えって思想なんじゃね
- 82 名前:デフォルトの名無しさん mailto:sage [2013/04/08(月) 20:51:52.49 ]
- ゼロオーバーヘッドの原則がイケメンすぐる。
- 83 名前:デフォルトの名無しさん mailto:sage [2013/04/08(月) 21:00:57.66 ]
- clangにfinallyが無くてエンバカが慌てたらしいが結局混在出来なくなって
どちらか一方でしかコンパイル出来ないようだ
- 84 名前:デフォルトの名無しさん mailto:sage [2013/04/08(月) 21:22:40.68 ]
- >>83
kwsk
- 85 名前:デフォルトの名無しさん mailto:sage [2013/04/08(月) 21:27:24.77 ]
- docwiki.embarcadero.com/RADStudio/XE3/ja/Finally_%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%81%AE%E8%A8%98%E8%BF%B0%EF%BC%88Delphi%EF%BC%89
こんな感じでC++Builder 64bitはfinallyが使えなくなったんだろ? で、こういう方向へ docwiki.embarcadero.com/RADStudio/XE3/ja/%E3%82%88%E3%82%8A%E5%8E%B3%E5%AF%86%E3%81%AA_C%2B%2B_%E3%82%B3%E3%83%B3%E3%83%91%E3%82%A4%E3%83%A9%EF%BC%88BCC64%EF%BC%89 >BCC32 では、__try と catch を混在させることができます。 >BCC64 では、try/catch(標準 C++)か __try/__except/__finally(Microsoft による拡張)のどちらか一方でなければなりません。
- 86 名前:デフォルトの名無しさん mailto:sage [2013/04/08(月) 21:29:09.66 ]
- あのさぁ、C++Builderとか使ってるやついるの??
- 87 名前:デフォルトの名無しさん mailto:sage [2013/04/08(月) 21:29:15.77 ]
- そもそも例外と構造化例外は違うだろう
- 88 名前:デフォルトの名無しさん mailto:sage [2013/04/08(月) 21:31:21.62 ]
- >>85
>BCC64 は Clang をベースにしています。 へー知らなかった
- 89 名前:デフォルトの名無しさん mailto:sage [2013/04/08(月) 21:32:40.46 ]
- マジか。じゃあWindowsでまともなC+11実装が欲しければBCC64を買えと
- 90 名前:デフォルトの名無しさん mailto:sage [2013/04/08(月) 21:41:10.90 ]
- >>86
俺 >>87 へ? >>88 やっとC++11に純粋に対応したが既に時遅し感 CodeGuardも64bitでは使えないし >>89 そういう事だろうな
- 91 名前:デフォルトの名無しさん mailto:sage [2013/04/08(月) 21:43:46.19 ]
- つまりC++BuilderはDelphiのVCLをそのまま使ってるので、どうしても__finallyがいる
それでも対応しきれないライブラリは使えないように殺してしまってるし clangを使ったのはもちろん手抜きだろう もう1から64bitコンパイラを作るだけの企業体力が残ってないんだろ
- 92 名前:デフォルトの名無しさん mailto:sage [2013/04/08(月) 21:53:17.39 ]
- 一から作るのなんて単なる無駄では...
- 93 名前:デフォルトの名無しさん mailto:sage [2013/04/08(月) 21:54:44.94 ]
- ロマンはある。
- 94 名前:デフォルトの名無しさん mailto:sage [2013/04/08(月) 21:54:52.96 ]
- ではなぜMSは1から作るんだ?
そこに他にはない商品価値があるからではないか?
- 95 名前:デフォルトの名無しさん mailto:sage [2013/04/08(月) 21:57:01.60 ]
- MSでさえなんでも一から作らずにOSS使ってるよ。
- 96 名前:デフォルトの名無しさん mailto:sage [2013/04/08(月) 22:05:47.77 ]
- ときどきGPLを混ぜてやらかすからな
- 97 名前:デフォルトの名無しさん mailto:sage [2013/04/08(月) 22:59:36.76 ]
- 会社ごと買い取って自社製品として売り出すなんてこといつもやってるじゃん
- 98 名前:デフォルトの名無しさん mailto:sage [2013/04/09(火) 00:15:03.38 ]
- C++11はそろそろ安定して仕事に使っても大丈夫な感じなんだろうか
まだ不安でC++03のままなんだけど(boost経由で知らない間に使ってるかもしれないけど)
- 99 名前:デフォルトの名無しさん mailto:sage [2013/04/09(火) 00:20:46.74 ]
- g++オンリーなら使えなくもないレベル
thread_localがないとか若干微妙だが、概ね実装されてる VC++はまだまだ糞
- 100 名前:デフォルトの名無しさん mailto:sage [2013/04/09(火) 00:33:54.60 ]
- gcc は↓がダメというわけわからんバグがあるから
ラムダはちょっと怖い。今のところ問題ないけど int main() { int x = 0; [&]{ try {} catch(...){ x; } }; // NG [&]{{ try {} catch(...){ x; } }}; // (OK) }
- 101 名前:デフォルトの名無しさん mailto:sage [2013/04/09(火) 00:37:01.89 ]
- 4.6.0 だと大丈夫だった
4.7.x だとエラーになるのか
- 102 名前:デフォルトの名無しさん mailto:sage [2013/04/09(火) 00:48:32.60 ]
- 出た。50歩100歩のGCC信者。
gnu自信がexperimentalって言ってるのに msに無くてgccにある機能を見つけて msを批判しないと 精神の安定が保てないんだね。 gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.2011
- 103 名前:デフォルトの名無しさん mailto:sage [2013/04/09(火) 05:25:05.80 ]
- VCに限っては批判されてもおかしくはない
それくらい酷い状態
- 104 名前:デフォルトの名無しさん mailto:sage [2013/04/09(火) 05:26:35.66 ]
- お前等C++11なんてクソ言語を実装させられる身にもなってみろよ
- 105 名前:デフォルトの名無しさん [2013/04/09(火) 06:15:12.08 ]
- もうC++は諦めろよ・・・いい加減
いつまで老害になる気だよ
- 106 名前:デフォルトの名無しさん mailto:sage [2013/04/09(火) 08:36:21.77 ]
- このままだとC++03がいつまでも標準なままだな
- 107 名前:デフォルトの名無しさん mailto:sage [2013/04/09(火) 10:35:02.13 ]
- c11みたいにGCCにすら相手に
されない言語に比べたらc++11は はるかにマシ
- 108 名前:デフォルトの名無しさん mailto:sage [2013/04/09(火) 10:47:40.92 ]
- ハァ? GCCは(Clangも)C11ほぼ全部実装してるだろ
Appendixはそりゃ実装してないけど
- 109 名前:デフォルトの名無しさん mailto:sage [2013/04/09(火) 10:54:32.24 ]
- あ、ごめん。Appendixじゃない。Optional featureのことね。
- 110 名前:デフォルトの名無しさん mailto:sage [2013/04/10(水) 00:45:11.39 ]
- >>108
_Genericとかthread.hあったっけ?
- 111 名前:デフォルトの名無しさん mailto:sage [2013/04/10(水) 02:23:46.16 ]
- _Genericはあるだろ、自分で確認しろよそのくらい
thread.hはOptional
- 112 名前:デフォルトの名無しさん mailto:sage [2013/04/11(木) 19:58:37.92 ]
- どこかのサイトに、fstreamはfopenよりもパフォーマンス的に良くないと書いてあったんだけど、どうして??
fstreamはfclose的なものがないから好きなんだけどなぁ。
- 113 名前:デフォルトの名無しさん mailto:sage [2013/04/11(木) 20:02:43.84 ]
- メンバ関数にclose()はあるけどな
時々使わなくてはいけない時もある 通常はスコープが外れるとデストラクタでclose()呼び出すけどな
- 114 名前:デフォルトの名無しさん mailto:sage [2013/04/11(木) 20:05:15.30 ]
- >>112
d.hatena.ne.jp/s-yata/20100726/1280138663 もしかしてこういう奴か
- 115 名前:デフォルトの名無しさん mailto:sage [2013/04/11(木) 20:08:07.88 ]
- >>113-114
そんなこた>>112は知ってんだろうから 質問に答えてやったらどうだ?
- 116 名前:デフォルトの名無しさん mailto:sage [2013/04/11(木) 20:09:06.85 ]
- 何言ってんだこの馬鹿
- 117 名前:デフォルトの名無しさん mailto:sage [2013/04/11(木) 20:12:04.08 ]
- お前が答えてやれやカス
- 118 名前:デフォルトの名無しさん mailto:sage [2013/04/11(木) 20:25:15.03 ]
- iostreamは「いくらお前等が信者でも
iostreamがクソだと気付よ」 というメッセージが込められている。 だから実装もわざと遅くしてある。 それに気づくかどうかを試す 禿のトラップなんだよ
- 119 名前:112 mailto:sage [2013/04/11(木) 20:40:18.57 ]
- >>114
そこではなかったんだけど、どっかのブログに書いてた。 しかし、こんなにも差が出るんだなぁ。 stdio.hのファイル入出力使う場合、 fscanfが重宝するんだけど、 ifstream(operator >>)よりは速いかなぁ。 >>118 そうだったのか!!
- 120 名前:デフォルトの名無しさん [2013/04/11(木) 20:42:32.04 ]
- そんなことわざわざするか。タコ
- 121 名前:デフォルトの名無しさん mailto:sage [2013/04/11(木) 20:51:18.04 ]
- iostreamなんて必要ないよ。
- 122 名前:デフォルトの名無しさん mailto:sage [2013/04/11(木) 21:29:23.06 ]
- 速度が必要な所ではそもそもAPIを使う
- 123 名前:デフォルトの名無しさん mailto:sage [2013/04/11(木) 22:28:51.00 ]
- shared_ptrのカスタムデリータにfclose登録しとけばいいじゃない
- 124 名前:デフォルトの名無しさん mailto:sage [2013/04/11(木) 22:36:28.10 ]
- そんなクソなコードはメンテしたくない
- 125 名前:デフォルトの名無しさん mailto:sage [2013/04/11(木) 22:42:52.03 ]
- 明示的にcloseする必要が無いならcloseなんかしなくてもいいじゃん
だって、closeするのはそこでcloseされてないと困る場合だろ。 どうでもいいならプログラム終了までほっとけばいい。
- 126 名前:デフォルトの名無しさん mailto:sage [2013/04/11(木) 22:53:09.51 ]
- ロックしっぱなし、内容フラッシュされないままで放っておくのかよ
- 127 名前:デフォルトの名無しさん mailto:sage [2013/04/11(木) 22:54:13.68 ]
- >>125
>明示的にcloseする必要が無いならcloseなんかしなくてもいいじゃん 開く処理と同じスコープを抜けるときに クローズしたいことは 極めてよくあることですが。 明示的に書くと漏れる恐れがあるから デストラクタに任せるのも 極めてよくあることです。
- 128 名前:デフォルトの名無しさん mailto:sage [2013/04/11(木) 22:55:42.30 ]
- >>125
こいつ最高にアホ
- 129 名前:デフォルトの名無しさん mailto:sage [2013/04/11(木) 23:02:49.16 ]
- きっとクローズ処理のエラーハンドリング
の厳密性を重視しているのだろう。 そうに違いない。
- 130 名前:デフォルトの名無しさん mailto:sage [2013/04/11(木) 23:02:50.53 ]
- バカチョン発狂
- 131 名前:112 mailto:sage [2013/04/11(木) 23:06:25.83 ]
- >>122
APIもいいか・・・。 >>123 そうか! カスタムデリータ、ほんと便利だ。 COMプログラミングでもRelease自動でやってくれる。 神。
- 132 名前:デフォルトの名無しさん mailto:sage [2013/04/11(木) 23:10:11.77 ]
- クローズしないと他のソフトに迷惑でしょ
- 133 名前:デフォルトの名無しさん mailto:sage [2013/04/11(木) 23:25:42.15 ]
- 書き込んだ場合のfclose()は、ちゃんと戻り値チェックしろよー
お約束だろ?
- 134 名前:デフォルトの名無しさん mailto:sage [2013/04/11(木) 23:50:12.99 ]
- してませんが
- 135 名前:デフォルトの名無しさん mailto:sage [2013/04/11(木) 23:56:47.74 ]
- fcloseがエラー返してもどうしようもないですしおすし
まあログくらいはできるが
- 136 名前:デフォルトの名無しさん mailto:sage [2013/04/12(金) 00:54:19.27 ]
- streamは例外飛ばすオプションがあるからそれを利用する手もあるな
- 137 名前:デフォルトの名無しさん mailto:sage [2013/04/12(金) 06:35:22.05 ]
- 書き込み後のファイルクローズに失敗したという事は、出力ファイルの内容が信頼できないという事だから、そのファイルは破棄するべき。
直接上書きとかしているとできないだろうけれど、テンポラリーファイル作ってrenameするという手順とっておけば問題ない。
- 138 名前:デフォルトの名無しさん mailto:sage [2013/04/12(金) 07:04:01.04 ]
- デストラクタ信者はエラーは握りつぶして良いという
強い強い信念をもっている だってデストラクタから例外投げるとカオスになるから
- 139 名前:デフォルトの名無しさん mailto:sage [2013/04/12(金) 07:09:48.68 ]
- デストラクタからでも例外投げればいいじゃない
死ぬだろうけど
- 140 名前:デフォルトの名無しさん mailto:sage [2013/04/12(金) 07:09:54.32 ]
- ↑&↑↑アホ
- 141 名前:デフォルトの名無しさん mailto:sage [2013/04/12(金) 07:12:16.74 ]
- ↑マヌケ
- 142 名前:デフォルトの名無しさん mailto:sage [2013/04/12(金) 07:13:09.10 ]
- デストラクタで起こるリソース破棄時の
問題は頭が痛い。 だが元の>>125がそれを気にしていたかというと 恐らく違うだろう
- 143 名前:125 mailto:sage [2013/04/12(金) 13:26:20.49 ]
- 俺が言ってるのは明示的にcloseする必要の無いときの話だから。
どうでもいいならcloseなんかしないでほっておけばいいし、 そこでやる理由があるならやればいい(closeを呼ぶとか そこでデストラクタが呼ばれるようにするとか)。
- 144 名前:デフォルトの名無しさん mailto:sage [2013/04/12(金) 13:35:14.43 ]
- 何か結構怖い感覚でプログラム書いてくれちゃってるなあ
こいつには仕事任せたくないわ
- 145 名前:デフォルトの名無しさん mailto:sage [2013/04/12(金) 14:01:15.30 ]
- >>144
逆に聞きたいんだけど、どこでcloseする必要があるかを検討せずに プログラムを作ることがあるの?
- 146 名前:デフォルトの名無しさん mailto:sage [2013/04/12(金) 14:07:59.75 ]
- あれれ?言ってる事が違って来てますね
- 147 名前:デフォルトの名無しさん mailto:sage [2013/04/12(金) 14:10:41.21 ]
- なんで?
明示的にcloseする必要があるか検討せずに分かるの? どうでもいいならしなくてもいいと言ってるんだけど。
- 148 名前:デフォルトの名無しさん mailto:sage [2013/04/12(金) 14:50:53.20 ]
- 動作中にハングアップするだの停電になるだので
ファイル吹っ飛ばしたことが無い幸せな人なんだろうなぁ
- 149 名前:デフォルトの名無しさん [2013/04/12(金) 15:57:19.48 ]
- UPSも付けないアホが安全性について語ってるぞ
- 150 名前:デフォルトの名無しさん mailto:sage [2013/04/12(金) 15:58:42.78 ]
- closeしたからといって停電とかに対して安全な状態になるわけじゃないからね
- 151 名前:デフォルトの名無しさん mailto:sage [2013/04/12(金) 16:19:43.22 ]
- >closeしたからといって停電とかに対して安全な状態になるわけじゃないからね
- 152 名前:デフォルトの名無しさん mailto:sage [2013/04/12(金) 16:26:50.93 ]
- ハングアップするプログラムをリリースしちゃうような人の頭の中はこんなもん
- 153 名前:デフォルトの名無しさん mailto:sage [2013/04/12(金) 16:32:39.99 ]
- ここの人たちはスレ違いな話をしてる間だけは幸せなんだろうな、、、
- 154 名前:デフォルトの名無しさん mailto:sage [2013/04/12(金) 16:32:56.93 ]
- 11スレでこんなネタ話されてもなー
使い回すならともかく、使用しなくなった時点で閉じるのが普通じゃない?
- 155 名前:デフォルトの名無しさん mailto:sage [2013/04/12(金) 17:13:16.05 ]
- やっぱり言語って
みんなが入り込んで規格決めると肥大化してクソになるんだな C++は完全に終わったわ
- 156 名前:デフォルトの名無しさん mailto:sage [2013/04/12(金) 17:17:53.43 ]
- 終わってない言語なんてあるの?
- 157 名前:デフォルトの名無しさん mailto:sage [2013/04/12(金) 17:21:40.13 ]
- 実際closeなんてファイルディスクリプタの回収ぐらいの意味しかないぜ
ディスクにきっちり書き込まれることを保障したいならそれ用の関数呼んどけ
- 158 名前:デフォルトの名無しさん mailto:sage [2013/04/12(金) 17:52:49.40 ]
- 日本語の話者は大概がクソ以下
- 159 名前:デフォルトの名無しさん [2013/04/12(金) 19:55:52.48 ]
- >なんで?
>明示的にcloseする必要があるか検討せずに分かるの? >どうでもいいならしなくてもいいと言ってるんだけど。 ↑キチガイage
- 160 名前:デフォルトの名無しさん mailto:sage [2013/04/12(金) 20:24:45.93 ]
- この話題何回目だよ
「解法に失敗しうるものでRAIIすんな」でFAだろ
- 161 名前:デフォルトの名無しさん mailto:sage [2013/04/12(金) 20:39:01.60 ]
- そう言ってるのはお前だけ
自分が正しいと思うなら少数派の異常者と思われても自分だけでそれを貫けばいい 自分の言うことが正しいとみんなに認められるまでことあるごとに話題にしようとするな
- 162 名前:デフォルトの名無しさん mailto:sage [2013/04/12(金) 20:44:01.32 ]
- 貫けばいいとかアホかと
納得がいく結論が出ないソフトウェア工学ならいらない
- 163 名前:デフォルトの名無しさん mailto:sage [2013/04/12(金) 21:20:30.94 ]
- >>160
それだと大抵のリソースはRAIIで扱えなくなって やっぱC++ウンコじゃんって話になるので 信者にとって非常に都合が悪い
- 164 名前:デフォルトの名無しさん mailto:sage [2013/04/12(金) 21:35:32.25 ]
- ヒープは扱えるんだからそれで十分だろ
- 165 名前:デフォルトの名無しさん mailto:sage [2013/04/12(金) 21:43:56.35 ]
- つか、close だって失敗してもどうしようもないよな。
- 166 名前:デフォルトの名無しさん mailto:sage [2013/04/12(金) 21:44:04.17 ]
- 扱えない大抵のリソースってなんだよ
- 167 名前:デフォルトの名無しさん mailto:sage [2013/04/12(金) 21:52:43.31 ]
- 解放時エラーは全て握りつぶす
その覚悟無き軟弱者にRAIIは扱えない
- 168 名前:デフォルトの名無しさん mailto:sage [2013/04/12(金) 22:07:41.43 ]
- FAはこっち
「明示的解放が必要なリソースはRAIIで扱え 解法の失敗を考慮する必要があるならデストラクタでの解法はミスや異常時の保険としておき デストラクタによらない解法処理を自前で行え」
- 169 名前:デフォルトの名無しさん mailto:sage [2013/04/12(金) 22:36:28.34 ]
- >>166
newとmallocで取ったヒープ以外のほぼ全て
- 170 名前:デフォルトの名無しさん mailto:sage [2013/04/12(金) 22:51:26.45 ]
- >>165
それがおかしい。 closeに失敗したのだからエラー処理としてロールバック処理をするべきだろう。 ファイルの中身が壊れていてもかまわないというなら話は別だけどな。 closeをチェックする癖付けとかないと、NFS扱い始めたとき、原意不明の障害調査やる羽目になるぞ。 ローカルディスクならほとんど発生しないと思うけど。。。
- 171 名前:デフォルトの名無しさん mailto:sage [2013/04/12(金) 23:05:55.37 ]
- >>170
おかしいかどうかはアプリケーション次第だよ。 君のイメージは書き出しみたいだけど、読み出しなら失敗自体が稀だし、失敗したところで別に困らないし、何もできない。
- 172 名前:デフォルトの名無しさん mailto:sage [2013/04/12(金) 23:40:59.49 ]
- どうしてreadだけに絞った?
おかしいのは君の姑息な心理操作の方だよ
- 173 名前:デフォルトの名無しさん mailto:sage [2013/04/12(金) 23:48:03.97 ]
- >>169
ファイルの他に何があるの?ほぼ全てって言うぐらいなら2,3個軽く挙げられるよね?
- 174 名前:デフォルトの名無しさん mailto:sage [2013/04/13(土) 03:33:10.75 ]
- ストリーム
データベースコネクション スレッド プロセス ハンドル
- 175 名前:デフォルトの名無しさん mailto:sage [2013/04/13(土) 06:52:23.77 ]
- >>171
表現の違いか。 それはなにもできないのじゃなく、する必要がないだけ。
- 176 名前:デフォルトの名無しさん mailto:sage [2013/04/13(土) 10:57:55.48 ]
- する必要がないはしなくて良いにはならない
表現の違いという落としどころに落としたいんですね可哀想ですね
- 177 名前:デフォルトの名無しさん mailto:sage [2013/04/13(土) 12:30:24.27 ]
- まぁ今時のOSならプロセスが正常終了すればたいてい後片付けしてくれる
正常終了すれば
- 178 名前:デフォルトの名無しさん mailto:sage [2013/04/13(土) 13:03:03.02 ]
- 突然話飛ばした?
- 179 名前:デフォルトの名無しさん mailto:sage [2013/04/13(土) 13:09:09.09 ]
- 面倒くさいから、ハードウエアリセット
えぇ、うちの会社の数千万円の装置です
- 180 名前:デフォルトの名無しさん mailto:sage [2013/04/13(土) 13:28:52.88 ]
- 億行ってる装置でも再起動させるんだから全然問題ないな
- 181 名前:デフォルトの名無しさん mailto:sage [2013/04/13(土) 13:37:51.63 ]
- 無能な開発のケツを運用が拭けばいいだけの話だな
- 182 名前:デフォルトの名無しさん mailto:sage [2013/04/13(土) 15:35:08.93 ]
- ↑まともな開発を不可能にする無能すぎる営業が背伸びしてPG板に来ちゃいました?
- 183 名前:デフォルトの名無しさん mailto:sage [2013/04/13(土) 16:42:33.94 ]
- 発狂パーティーを開催いたします
- 184 名前:デフォルトの名無しさん mailto:sage [2013/04/13(土) 20:28:25.02 ]
- C++で常時起動型のサーバープログラムを
書いてはいけないんですねわかります。 だからプロセス終了とか言っちゃうんですねプ
- 185 名前:デフォルトの名無しさん mailto:sage [2013/04/13(土) 20:31:13.86 ]
- 大丈夫だよ週次リブート()とかするから
- 186 名前:デフォルトの名無しさん mailto:sage [2013/04/13(土) 20:58:59.50 ]
- linux daemon全否定w
- 187 名前:デフォルトの名無しさん mailto:sage [2013/04/13(土) 21:54:55.64 ]
- ここの人たち技術ないから
- 188 名前:デフォルトの名無しさん mailto:sage [2013/04/13(土) 22:16:51.32 ]
- RAIIに技術?
- 189 名前:デフォルトの名無しさん mailto:sage [2013/04/14(日) 00:04:39.90 ]
- なんでRAII限定にしたのか知らないけど常時起動型のサーバープログラムを落とす技術
- 190 名前:デフォルトの名無しさん mailto:sage [2013/04/14(日) 10:36:28.81 ]
- C系はメモリ破壊の可能性を否定できないからな。
キチンと試験して稼働実績の有るプログラムでも 新人が加えた一文字のスペルミスで 既存部分のメモリが破壊されて火を噴くから、 プロセス分割したり短時間で終了するような ウンコ設計にしないと、 精神論だけでは品質を保てないウンコ言語。
- 191 名前:デフォルトの名無しさん mailto:sage [2013/04/14(日) 10:43:56.90 ]
- 使えん新人100人より
優秀な奴5人の方が生産性高いと思うぞ
- 192 名前:デフォルトの名無しさん mailto:sage [2013/04/14(日) 11:14:05.85 ]
- 最初はみんな新人さ。
- 193 名前:デフォルトの名無しさん mailto:sage [2013/04/14(日) 11:31:10.84 ]
- "C++0x Concepts Should Stay Dead" -- Bjarne Stroustrup
- 194 名前:デフォルトの名無しさん mailto:sage [2013/04/14(日) 11:53:28.15 ]
- conceptがC++がプログラミング言語の世界に出来る最大の貢献だと思うがな。
generic programmingの集大成だろう。
- 195 名前:デフォルトの名無しさん mailto:sage [2013/04/14(日) 12:45:31.75 ]
- >conceptがC++がプログラミング言語の世界に出来る最大の貢献
Javaのインターフェースの劣化版コピーだと 思っとりました。
- 196 名前:デフォルトの名無しさん mailto:sage [2013/04/14(日) 12:50:27.31 ]
- >>195
もしかしてtraitsも知らないの? traitsの時点でJavaのinterfaceとはぜんぜん違うだろ。
- 197 名前:デフォルトの名無しさん mailto:sage [2013/04/14(日) 12:51:27.26 ]
- えっ?
- 198 名前:デフォルトの名無しさん mailto:sage [2013/04/14(日) 12:52:01.85 ]
- >>195の意味がわからん
- 199 名前:デフォルトの名無しさん mailto:sage [2013/04/14(日) 13:03:59.14 ]
- 寝言だろ
気にするな
- 200 名前:デフォルトの名無しさん mailto:sage [2013/04/14(日) 13:15:39.44 ]
- Javaは同じSunにいたSelfグループのtraitとmixinに対する成果をうまく取り入れられてない。
- 201 名前:デフォルトの名無しさん mailto:sage [2013/04/14(日) 13:30:26.27 ]
- もしかしてConceptsって単語をconceptのことだと勘違いした?
- 202 名前:デフォルトの名無しさん mailto:sage [2013/04/14(日) 13:37:34.91 ]
- inheritanceとかinterfaceとかtraitとかmixinとかDIとかbindingsとか
区別がつかない wikipediaからもってきたflavors、roles、abstract classも追加 スレッドやら関数回りも同じような thread、fiber、coroutine、Light-weight process、microthread、protothread 区別する程有用な作用があるのか 俺が何か間違ってる事は正しいんだけど
- 203 名前:デフォルトの名無しさん mailto:sage [2013/04/14(日) 13:41:47.00 ]
- インヘリタンスは分かれよ。
- 204 名前:デフォルトの名無しさん mailto:sage [2013/04/14(日) 14:06:37.40 ]
- むしろインヘリタンスと何の区別が付かんのだろw
- 205 名前:デフォルトの名無しさん mailto:sage [2013/04/14(日) 14:14:43.39 ]
- バカっぽいんだけど妙に面白い事言うやつっているよね
- 206 名前:デフォルトの名無しさん mailto:sage [2013/04/14(日) 14:41:30.99 ]
- C++のtraitsはクラス書かないでも
traitsをユーザ定義して型をどうマッチさせるか記述できる。
- 207 名前:デフォルトの名無しさん mailto:sage [2013/04/14(日) 15:11:36.28 ]
- C++0x concept には死んで貰って、concept lite に生まれ変わるという話。
- 208 名前:デフォルトの名無しさん mailto:sage [2013/04/14(日) 15:20:29.09 ]
- concept liteはあくまで繋ぎでしょ
- 209 名前:デフォルトの名無しさん mailto:sage [2013/04/14(日) 15:59:41.12 ]
- >>208
その辺も含めて >>193 の表題の文章に書いてある
- 210 名前:デフォルトの名無しさん mailto:sage [2013/04/14(日) 16:43:03.96 ]
- 早く当初の構想どおりの完全版conceptが
現実にならないものかね。
- 211 名前:デフォルトの名無しさん mailto:sage [2013/04/14(日) 16:45:05.56 ]
- またtemplateでの黒魔術が増えるの?
- 212 名前:デフォルトの名無しさん mailto:sage [2013/04/14(日) 17:42:13.50 ]
- >>211
template 周りのコンパイルエラーで出てくる謎の暗号を解読しなくてよくなる
- 213 名前:デフォルトの名無しさん [2013/04/14(日) 17:59:08.71 ]
- ほう
- 214 名前:デフォルトの名無しさん mailto:sage [2013/04/14(日) 23:09:59.88 ]
- 日本語の解説本って、いつになったら出るの?
- 215 名前:デフォルトの名無しさん mailto:sage [2013/04/15(月) 01:08:22.12 ]
- Boost C++ Libraries プログラミング 第3版に期待するべ
- 216 名前:デフォルトの名無しさん mailto:sage [2013/04/15(月) 01:24:13.37 ]
- それは11の解説書としては使い物にならないだろ
- 217 名前:デフォルトの名無しさん mailto:sage [2013/04/15(月) 01:33:38.91 ]
- 解説なんてその辺の解説サイトでいいでしょ。
仕様を正しく理解したいなら原文しかないぜよ。
- 218 名前:デフォルトの名無しさん mailto:sage [2013/04/15(月) 01:38:06.83 ]
- 疑問点があればここではなく、Stack Overflow で質問するといい。
- 219 名前:デフォルトの名無しさん mailto:sage [2013/04/15(月) 01:53:20.81 ]
- Stack Overflow質問文テンプレ
「初心者です(_*_)。右辺値参照って何ですかぁ? 調べたけどさっぱりですぅ☆ エロい人宜しく(^^)/ あ、答えられない人のレスはお断りです(プゲラ
- 220 名前:デフォルトの名無しさん [2013/04/15(月) 02:22:19.91 ]
- >>219
はっはっは。元気があっていいね。頑張るんだよ。
- 221 名前:デフォルトの名無しさん mailto:sage [2013/04/15(月) 02:27:33.28 ]
- 日本語じゃないので☆1つ
- 222 名前:デフォルトの名無しさん [2013/04/16(火) 00:18:44.22 ]
- >>191
しかしその優秀な人たちは管理業務にまわされます。
- 223 名前:デフォルトの名無しさん mailto:sage [2013/04/16(火) 01:25:53.28 ]
- 日本のキャリアパスにシニアプログラマってあまりないからな
- 224 名前:デフォルトの名無しさん mailto:sage [2013/04/16(火) 02:52:46.46 ]
- 未経験の若いプログラマ雇って炎上みたいなのばかり
- 225 名前:デフォルトの名無しさん mailto:sage [2013/04/16(火) 03:24:29.66 ]
- >>202
クックック... 我はinheritanceの使い手にして最凶のinterface、 我が道を阻むことなどたとえabstract classでもできはせぬわ このスレの住人供よ、Light-weight processなど捨てて我が軍門に下るがよいわ 俺もよくわからんけど、多分このへんの単語考えた外人は中二病なんだろうと思うよ。 「俺の考えた呼び方の方がかっけーし」見たいな感じで クラウドとかも内輪ではめっちゃ受けてるのかもしれん
- 226 名前:デフォルトの名無しさん mailto:sage [2013/04/16(火) 23:52:19.27 ]
- >>224
出来るヤツだけ集めても なぜかうまくいかないのが プロジェクトと言うもの・・・
- 227 名前:デフォルトの名無しさん mailto:sage [2013/04/17(水) 00:35:42.00 ]
- まとめるとプロジェクトは失敗するもの
- 228 名前:デフォルトの名無しさん mailto:sage [2013/04/17(水) 00:59:50.26 ]
- JISのC++11って何巻目になるん?
1冊1万前後だから結構な出費だな
- 229 名前:デフォルトの名無しさん mailto:sage [2013/04/17(水) 07:30:48.76 ]
- >>227
まとめすぎwww
- 230 名前:デフォルトの名無しさん mailto:sage [2013/04/17(水) 08:35:27.55 ]
- COM(Direct3D11)を使ってプログラミングしてて、
インターフェースの解放(Release)を忘れないように、 shared_ptrを使おうとしてるんだけど、壁にぶつかった。 ある関数はインターフェースのポインタを引数に取る。 この場合は以下で大丈夫。 shared_ptr<ID3D11xxx> pD3D11xxx; ・・・ Func( pD3D11xxx.get() ); しかし、関数の中にはインターフェースのダブルポインタ(ID3D11xxx* const* pp)を引数に取るものがあって、 以下のように書いても「'&'に左辺値がない」と言ってコンパイラに怒られる。 Func( &pD3D11xxx.get() ); どうしたものかと、検索をかけると、 shared_ptrではなくて自作っぽいスマートポインタを作って、 pD3D11xxx.GetAddressOf()みたいなメソッドを利用して引数に与えていた。 std::shared_ptrでは上記みたいな関数に渡せないの??
- 231 名前:230 mailto:sage [2013/04/17(水) 08:39:56.70 ]
- ID3D11xxx* p = pD3D11xxx.get();
Func( &p ); ってしたらコンパイルは通ったけど、 もっとエレガントにできないかなぁ。
- 232 名前:デフォルトの名無しさん mailto:sage [2013/04/17(水) 08:41:29.81 ]
- CComPtrを使えばよろし
- 233 名前:230 mailto:sage [2013/04/17(水) 08:59:24.88 ]
- >>232
CComPtrなら大丈夫なんですね。 しかし、できればATLに依存したくないんです。
- 234 名前:デフォルトの名無しさん mailto:sage [2013/04/17(水) 09:04:19.90 ]
- ポインタのポインタを受け取るってことはポインタ自体の変更が行われるわけで
ID3D11xxx* p; Func(&p); pD3D11xxx.reset(p); こんな風にするしかないだろう
- 235 名前:230 mailto:sage [2013/04/17(水) 09:20:06.70 ]
- >>234
ありがとう! ああ、そうか。 面倒くさい。死にそう・・・。 調べてみると、どうもATLとは違うMicrosoft::WRL::ComPtrというのがあるみたい。 msdn.microsoft.com/ja-jp/library/vstudio/br230382.aspx なぜATLがイヤかというと、 まず開発がVC++のExpress(無料)バージョンが使えないこと。 自分はPro持ってるけど、他人にプロジェクトを渡すことがあって、 できれば相手にProを強要したくない。 あと、コンパイルした.exeを配布する際、 ATLを使用していると、ランタイムのインストールをユーザーに強要することになる。 WRLだとどうなんだろうか? 開発的にはExpress(for Windows8だけど)で使えることが調べて分かった。 あとは.exeを配布するときにユーザーがWRLのための追加インストールが必要か。 こういうのってどうやって調べたらいいの? DependencyWalkerとかでチェックしかないかな。
- 236 名前:デフォルトの名無しさん mailto:sage [2013/04/17(水) 09:27:56.32 ]
- >>235
ATLは古いのならWDK7.1辺りに入ってたりする CComPtrはテンプレートなんだからランタイムも糞もないぞ
- 237 名前:デフォルトの名無しさん mailto:sage [2013/04/17(水) 09:32:01.68 ]
- WTL?
- 238 名前:230 mailto:sage [2013/04/17(水) 09:59:29.69 ]
- 早速WRLのComPtr使ってみた。
余計なコードが激減した。 感動した。 さっきまで悩んでたのがあほみたいだ。 もう他人のことなど知るか(おい) >>236 ありがとう! 安心した。
- 239 名前:230 mailto:sage [2013/04/17(水) 10:07:14.80 ]
- 少し気になったのは、
同じダブルポインタ引数でも、 Create系では&pって渡せるのに、 他の関数ではp.GetAddressOf()で渡さないといけないこと。 後者を&pで渡したらぶっ壊れた。 まぁ、Create系もGetAddressOf()でいけるから、 これで統一しておくほうが無難かな。
- 240 名前:デフォルトの名無しさん mailto:sage [2013/04/17(水) 10:10:33.16 ]
- またひとりC++/CXの魔境に旅立ってしまったか
- 241 名前:デフォルトの名無しさん mailto:sage [2013/04/17(水) 10:14:10.97 ]
- ttp://msdn.microsoft.com/ja-jp/library/vstudio/br230430.aspx
日本語おかしいがちゃんと違いが書いてあるじゃない
- 242 名前:230 mailto:sage [2013/04/17(水) 10:22:51.60 ]
- >>241
あ、すんません・・・。 ああ、そういうことか。 参照カウントのこと意識せんといかんのね。 しかし、Create系以外でダブルポインタを引数に取るとか、 ややこしいからやめてくんないかなぁ・・・。
|

|