後方互換性を適当に切り捨てた素敵C++来い
禿が牛耳ってる間は無理だろ
DはベターCとして使えないから
>>6 C の制約を捨てられないなら結局 C++ と似たようなものになるんでないの。
Cレベルの高級アセンブラとして使えればいいと言うこと
CレベルでいいならCでいいじゃん
C++コンパイラでコンパイルできるC++の一部ではない本当のCを必要とする人はどれだけいるというのか?
・変数を使うときに宣言できる ・//でコメントアウトできる これだけでC++は神言語だ。
C99でできるじゃん
>>12 (;゚△゚)マジでっ!?
でもVC++だとC99対応してないしなぁ。
それじゃあC++が要らない子になっちゃうじゃん!!ダメだよ!
C#がちょっとしたGUIツール作るのに便利だということで触ってみたら、 ハットとかいうキモい記号がある時点で拒絶反応が起こった。 そう、C++はこの世でだれよりも速く・・・・・・そして美しい!!
むしろbetterCが欲しければC99以降を使うように誘導して、betterCとしてのC++の使用は排除していくべき
C++よりC99/C2011を使うべきという人に、 どうしてC++ではダメなのかの根拠を ちゃんと説明できた人を見たことがない。
>>17 BetterCとしてCでのやり方をそのまま全てC++でも使おうとしてC++ならではのやり方を受け入れず、あるいは公然と否定までして
C++として使っている人との間に争いを起こしたりするのは双方にとってただ不幸でしかないだろ
もともとC++だったLLVMに続いて GCCもC++に移行か。
はやくC#に完全移行しないかな
>>19 C++はCと組み合わせて使えるのが基本的な設計方針。
P/InvokeでC#からCのDLL呼び出したけど地獄だったぞ STAThreadで呼び出せれば楽だけどパラメータが多いとシャレにならない
>>17 C++にはVLA(可変長配列)が無いのでCの方が同じ事を低オーバーヘッドで書ける、とかw
C++11になるまではC99の機能もなかったから、Cを使うべき理由はたくさんあったw
C++は覚えなきゃいけないことが多い(Effective C++レベルの知識が必要とか)ので、
コーディングに気を遣いたくない人はCにしておけとは思うね。
>>17 単純に速度的なものかと思ってた、
Cの構造体コピー = memcpy
C++クラスコピー = コピコン(メンバー一個一個コピー)
参照とかポインタにしてコピコン減らせるけど、できない部分も出てくるし
C++っぽいプログラムにすればするほどコピコン増える気がする
memcpyで済むような構造体はPODにすればC++でも一緒だし それで済まないクラスならCでだって結局コピーに伴って初期化とか色々しなきゃならないと思うんだけど
だよね
せやな
Deep CopyとShallow Copyがなぜ区別が付いてるのか理解出来ない低脳が 住み着いてるようだよな
ピュアなcで作ったアプリは、ファイルサイズも小さく、利用メモリも小さくすむからそこが利点だと思う。
Cは演算子は兎も角普通の関数の オーバーロード位は欲しい所だよね。 性能には関係ないのだから。
関数テンプレートあるだけでCも相当便利になるような気がするんだが って言っても今更C使う必然性なんて全然ないか(笑)
>>22 うわ、つい昨日全部読んだところだった。
よかったw
しかし、この記事読むと、ゾッとするね。
非同期プログラミングとか、ソフトウェアの利点を否定してるようなもんだw
そういや C11 に _Generic とかいう型switchが存在してたな。
なんでもかんでも _ を付ける今のCって
>>32 ISO/IEC 9899:2011というものがあってだな。
実装したコンパイラ見たことないけど。
>>36 誰かが使ってるものと被ったら嫌だから
予約語の _大文字 を使うしやないんや・・・
_Boolとかダサすぎて使う気になれなかった
#import <stdbool.h>
stdboot.hもダサい
#import って何?
includeの間違いだろう。どう見ても
>>42 #include の一回しか読み込まない版
ファイルがシンボリックリンクやらハードリンクされてる場合はどうなるの?
コンパイラ次第です
下手に規定しない方が実装が自由にやれる
>>17 C99 の designated initializer はかなり便利
FreeBSD のカーネルコードでガシガシ使ってる
import == 輸入だす
>>47 os レベルで処理されるから、多くの場合は普通のファイルと変わらない扱いだろうな
C++ってCの上にくっ付けた機能がセンス無さ過ぎて... 所詮C人気に便乗したゴミ言語
>>53 人気に便乗したというよりもともとがcのラッパー(プリプロセッサ)だからね?
すでに存在するものは極力利用するなんていかにもc技術者らしいけどc++のstructとか、言語的欠陥のおかしい部分はそこに引きずられていたという気もしてる。
c/c++の関係は、今でいうjavascriptとtypescriptのような関係だ。
>>50 初期化といえば、C++にはユーザ定義リテラルがあるぜ。
>>55 知らないかもしれないけどC++にはコンストラクターがあるんだぜ。
初期化方法をユーザー定義できるんだぜ。
C++にはデストラクタがある。 これだけでCを捨てるには十分な理由。
C++は後方互換を切り捨ててコンパクトになれよ
むしろ今のC++についてこれない奴を切り捨てる方がずっと早いし意義がある
C++言語はこの世で最も洗練された美しいプログラミング言語だ。
>>60 今C++以上に混沌としていて仕様の破壊的変更を待っているマゾしかいないのに
Designated InitializerってC++11に入らなかったんだ。なんで? VLAが嫌われるのは何となく分かるけど。
ひとつの言語で低レベルから高レベルまで 全部書けるべきというスタンスが頭悪過ぎて目眩がする
Cの方がC++との歩み寄りを否定しちゃってるよな
Cから見ればC++なんて、相互運用可能な 数多ある言語のひとつに過ぎないからね
>>63 constexprコンストラクタが有れば要らないと判断されたんじゃね
constexpr は、コンパイル時計算不可の時にエラーを吐くようなオプションが欲しい。
警告位は出してほしいよな 黙って実行時評価に変更されても
禿が決めたことには従え
74 :
デフォルトの名無しさん :2013/04/07(日) 23:41:12.01
昔はC++には否定的だったけど、JavaやってC++への評価が改まったよ。
C#やったらC++がクソと思えるようになるだろ
C#やったけど こんなに適当に書けていいのかって思ったな
C#はスレッドが扱いやすい
BOOST_SCOPE_EXITの代替になるようなものは無いの?
>>78 言語機能にはないので自動変数のデストラクタを使ってください(BOOST_SCOPE_EXITも基本はそのラッパーマクロです)
finally実装すれば済むだけな気もするけど 何か難しい問題点があったのだろうか
デストラクタで賄えって思想なんじゃね
ゼロオーバーヘッドの原則がイケメンすぐる。
clangにfinallyが無くてエンバカが慌てたらしいが結局混在出来なくなって どちらか一方でしかコンパイル出来ないようだ
あのさぁ、C++Builderとか使ってるやついるの??
そもそも例外と構造化例外は違うだろう
>>85 >BCC64 は Clang をベースにしています。
へー知らなかった
マジか。じゃあWindowsでまともなC+11実装が欲しければBCC64を買えと
>>86 俺
>>87 へ?
>>88 やっとC++11に純粋に対応したが既に時遅し感
CodeGuardも64bitでは使えないし
>>89 そういう事だろうな
つまりC++BuilderはDelphiのVCLをそのまま使ってるので、どうしても__finallyがいる それでも対応しきれないライブラリは使えないように殺してしまってるし clangを使ったのはもちろん手抜きだろう もう1から64bitコンパイラを作るだけの企業体力が残ってないんだろ
一から作るのなんて単なる無駄では...
ロマンはある。
ではなぜMSは1から作るんだ? そこに他にはない商品価値があるからではないか?
MSでさえなんでも一から作らずにOSS使ってるよ。
ときどきGPLを混ぜてやらかすからな
会社ごと買い取って自社製品として売り出すなんてこといつもやってるじゃん
C++11はそろそろ安定して仕事に使っても大丈夫な感じなんだろうか まだ不安でC++03のままなんだけど(boost経由で知らない間に使ってるかもしれないけど)
g++オンリーなら使えなくもないレベル thread_localがないとか若干微妙だが、概ね実装されてる VC++はまだまだ糞
gcc は↓がダメというわけわからんバグがあるから ラムダはちょっと怖い。今のところ問題ないけど int main() { int x = 0; [&]{ try {} catch(...){ x; } }; // NG [&]{{ try {} catch(...){ x; } }}; // (OK) }
4.6.0 だと大丈夫だった 4.7.x だとエラーになるのか
VCに限っては批判されてもおかしくはない それくらい酷い状態
お前等C++11なんてクソ言語を実装させられる身にもなってみろよ
105 :
デフォルトの名無しさん :2013/04/09(火) 06:15:12.08
もうC++は諦めろよ・・・いい加減 いつまで老害になる気だよ
このままだとC++03がいつまでも標準なままだな
c11みたいにGCCにすら相手に されない言語に比べたらc++11は はるかにマシ
ハァ? GCCは(Clangも)C11ほぼ全部実装してるだろ Appendixはそりゃ実装してないけど
あ、ごめん。Appendixじゃない。Optional featureのことね。
>>108 _Genericとかthread.hあったっけ?
_Genericはあるだろ、自分で確認しろよそのくらい thread.hはOptional
どこかのサイトに、fstreamはfopenよりもパフォーマンス的に良くないと書いてあったんだけど、どうして?? fstreamはfclose的なものがないから好きなんだけどなぁ。
メンバ関数にclose()はあるけどな 時々使わなくてはいけない時もある 通常はスコープが外れるとデストラクタでclose()呼び出すけどな
何言ってんだこの馬鹿
お前が答えてやれやカス
iostreamは「いくらお前等が信者でも iostreamがクソだと気付よ」 というメッセージが込められている。 だから実装もわざと遅くしてある。 それに気づくかどうかを試す 禿のトラップなんだよ
119 :
112 :2013/04/11(木) 20:40:18.57
>>114 そこではなかったんだけど、どっかのブログに書いてた。
しかし、こんなにも差が出るんだなぁ。
stdio.hのファイル入出力使う場合、
fscanfが重宝するんだけど、
ifstream(operator >>)よりは速いかなぁ。
>>118 そうだったのか!!
120 :
デフォルトの名無しさん :2013/04/11(木) 20:42:32.04
そんなことわざわざするか。タコ
iostreamなんて必要ないよ。
速度が必要な所ではそもそもAPIを使う
shared_ptrのカスタムデリータにfclose登録しとけばいいじゃない
そんなクソなコードはメンテしたくない
明示的にcloseする必要が無いならcloseなんかしなくてもいいじゃん だって、closeするのはそこでcloseされてないと困る場合だろ。 どうでもいいならプログラム終了までほっとけばいい。
ロックしっぱなし、内容フラッシュされないままで放っておくのかよ
>>125 >明示的にcloseする必要が無いならcloseなんかしなくてもいいじゃん
開く処理と同じスコープを抜けるときに
クローズしたいことは
極めてよくあることですが。
明示的に書くと漏れる恐れがあるから
デストラクタに任せるのも
極めてよくあることです。
きっとクローズ処理のエラーハンドリング の厳密性を重視しているのだろう。 そうに違いない。
バカチョン発狂
131 :
112 :2013/04/11(木) 23:06:25.83
>>122 APIもいいか・・・。
>>123 そうか!
カスタムデリータ、ほんと便利だ。
COMプログラミングでもRelease自動でやってくれる。
神。
クローズしないと他のソフトに迷惑でしょ
書き込んだ場合のfclose()は、ちゃんと戻り値チェックしろよー お約束だろ?
してませんが
fcloseがエラー返してもどうしようもないですしおすし まあログくらいはできるが
streamは例外飛ばすオプションがあるからそれを利用する手もあるな
書き込み後のファイルクローズに失敗したという事は、出力ファイルの内容が信頼できないという事だから、そのファイルは破棄するべき。 直接上書きとかしているとできないだろうけれど、テンポラリーファイル作ってrenameするという手順とっておけば問題ない。
デストラクタ信者はエラーは握りつぶして良いという 強い強い信念をもっている だってデストラクタから例外投げるとカオスになるから
デストラクタからでも例外投げればいいじゃない 死ぬだろうけど
↑&↑↑アホ
↑マヌケ
デストラクタで起こるリソース破棄時の
問題は頭が痛い。
だが元の
>>125 がそれを気にしていたかというと
恐らく違うだろう
143 :
125 :2013/04/12(金) 13:26:20.49
俺が言ってるのは明示的にcloseする必要の無いときの話だから。 どうでもいいならcloseなんかしないでほっておけばいいし、 そこでやる理由があるならやればいい(closeを呼ぶとか そこでデストラクタが呼ばれるようにするとか)。
何か結構怖い感覚でプログラム書いてくれちゃってるなあ こいつには仕事任せたくないわ
>>144 逆に聞きたいんだけど、どこでcloseする必要があるかを検討せずに
プログラムを作ることがあるの?
あれれ?言ってる事が違って来てますね
なんで? 明示的にcloseする必要があるか検討せずに分かるの? どうでもいいならしなくてもいいと言ってるんだけど。
動作中にハングアップするだの停電になるだので ファイル吹っ飛ばしたことが無い幸せな人なんだろうなぁ
149 :
デフォルトの名無しさん :2013/04/12(金) 15:57:19.48
UPSも付けないアホが安全性について語ってるぞ
closeしたからといって停電とかに対して安全な状態になるわけじゃないからね
>closeしたからといって停電とかに対して安全な状態になるわけじゃないからね
ハングアップするプログラムをリリースしちゃうような人の頭の中はこんなもん
ここの人たちはスレ違いな話をしてる間だけは幸せなんだろうな、、、
11スレでこんなネタ話されてもなー 使い回すならともかく、使用しなくなった時点で閉じるのが普通じゃない?
やっぱり言語って みんなが入り込んで規格決めると肥大化してクソになるんだな C++は完全に終わったわ
終わってない言語なんてあるの?
実際closeなんてファイルディスクリプタの回収ぐらいの意味しかないぜ ディスクにきっちり書き込まれることを保障したいならそれ用の関数呼んどけ
日本語の話者は大概がクソ以下
159 :
デフォルトの名無しさん :2013/04/12(金) 19:55:52.48
>なんで? >明示的にcloseする必要があるか検討せずに分かるの? >どうでもいいならしなくてもいいと言ってるんだけど。 ↑キチガイage
この話題何回目だよ 「解法に失敗しうるものでRAIIすんな」でFAだろ
そう言ってるのはお前だけ 自分が正しいと思うなら少数派の異常者と思われても自分だけでそれを貫けばいい 自分の言うことが正しいとみんなに認められるまでことあるごとに話題にしようとするな
貫けばいいとかアホかと 納得がいく結論が出ないソフトウェア工学ならいらない
>>160 それだと大抵のリソースはRAIIで扱えなくなって
やっぱC++ウンコじゃんって話になるので
信者にとって非常に都合が悪い
ヒープは扱えるんだからそれで十分だろ
つか、close だって失敗してもどうしようもないよな。
扱えない大抵のリソースってなんだよ
解放時エラーは全て握りつぶす その覚悟無き軟弱者にRAIIは扱えない
FAはこっち 「明示的解放が必要なリソースはRAIIで扱え 解法の失敗を考慮する必要があるならデストラクタでの解法はミスや異常時の保険としておき デストラクタによらない解法処理を自前で行え」
>>166 newとmallocで取ったヒープ以外のほぼ全て
>>165 それがおかしい。
closeに失敗したのだからエラー処理としてロールバック処理をするべきだろう。
ファイルの中身が壊れていてもかまわないというなら話は別だけどな。
closeをチェックする癖付けとかないと、NFS扱い始めたとき、原意不明の障害調査やる羽目になるぞ。
ローカルディスクならほとんど発生しないと思うけど。。。
>>170 おかしいかどうかはアプリケーション次第だよ。
君のイメージは書き出しみたいだけど、読み出しなら失敗自体が稀だし、失敗したところで別に困らないし、何もできない。
どうしてreadだけに絞った? おかしいのは君の姑息な心理操作の方だよ
>>169 ファイルの他に何があるの?ほぼ全てって言うぐらいなら2,3個軽く挙げられるよね?
ストリーム データベースコネクション スレッド プロセス ハンドル
>>171 表現の違いか。
それはなにもできないのじゃなく、する必要がないだけ。
する必要がないはしなくて良いにはならない 表現の違いという落としどころに落としたいんですね可哀想ですね
まぁ今時のOSならプロセスが正常終了すればたいてい後片付けしてくれる 正常終了すれば
突然話飛ばした?
面倒くさいから、ハードウエアリセット えぇ、うちの会社の数千万円の装置です
億行ってる装置でも再起動させるんだから全然問題ないな
無能な開発のケツを運用が拭けばいいだけの話だな
↑まともな開発を不可能にする無能すぎる営業が背伸びしてPG板に来ちゃいました?
発狂パーティーを開催いたします
C++で常時起動型のサーバープログラムを 書いてはいけないんですねわかります。 だからプロセス終了とか言っちゃうんですねプ
大丈夫だよ週次リブート()とかするから
linux daemon全否定w
ここの人たち技術ないから
RAIIに技術?
なんでRAII限定にしたのか知らないけど常時起動型のサーバープログラムを落とす技術
C系はメモリ破壊の可能性を否定できないからな。 キチンと試験して稼働実績の有るプログラムでも 新人が加えた一文字のスペルミスで 既存部分のメモリが破壊されて火を噴くから、 プロセス分割したり短時間で終了するような ウンコ設計にしないと、 精神論だけでは品質を保てないウンコ言語。
使えん新人100人より 優秀な奴5人の方が生産性高いと思うぞ
最初はみんな新人さ。
"C++0x Concepts Should Stay Dead" -- Bjarne Stroustrup
conceptがC++がプログラミング言語の世界に出来る最大の貢献だと思うがな。 generic programmingの集大成だろう。
>conceptがC++がプログラミング言語の世界に出来る最大の貢献 Javaのインターフェースの劣化版コピーだと 思っとりました。
>>195 もしかしてtraitsも知らないの?
traitsの時点でJavaのinterfaceとはぜんぜん違うだろ。
えっ?
寝言だろ 気にするな
Javaは同じSunにいたSelfグループのtraitとmixinに対する成果をうまく取り入れられてない。
もしかしてConceptsって単語をconceptのことだと勘違いした?
inheritanceとかinterfaceとかtraitとかmixinとかDIとかbindingsとか 区別がつかない wikipediaからもってきたflavors、roles、abstract classも追加 スレッドやら関数回りも同じような thread、fiber、coroutine、Light-weight process、microthread、protothread 区別する程有用な作用があるのか 俺が何か間違ってる事は正しいんだけど
インヘリタンスは分かれよ。
むしろインヘリタンスと何の区別が付かんのだろw
バカっぽいんだけど妙に面白い事言うやつっているよね
C++のtraitsはクラス書かないでも traitsをユーザ定義して型をどうマッチさせるか記述できる。
C++0x concept には死んで貰って、concept lite に生まれ変わるという話。
concept liteはあくまで繋ぎでしょ
早く当初の構想どおりの完全版conceptが 現実にならないものかね。
またtemplateでの黒魔術が増えるの?
>>211 template 周りのコンパイルエラーで出てくる謎の暗号を解読しなくてよくなる
213 :
デフォルトの名無しさん :2013/04/14(日) 17:59:08.71
ほう
日本語の解説本って、いつになったら出るの?
Boost C++ Libraries プログラミング 第3版に期待するべ
それは11の解説書としては使い物にならないだろ
解説なんてその辺の解説サイトでいいでしょ。 仕様を正しく理解したいなら原文しかないぜよ。
疑問点があればここではなく、Stack Overflow で質問するといい。
Stack Overflow質問文テンプレ 「初心者です(_*_)。右辺値参照って何ですかぁ? 調べたけどさっぱりですぅ☆ エロい人宜しく(^^)/ あ、答えられない人のレスはお断りです(プゲラ
220 :
デフォルトの名無しさん :2013/04/15(月) 02:22:19.91
>>219 はっはっは。元気があっていいね。頑張るんだよ。
日本語じゃないので☆1つ
222 :
デフォルトの名無しさん :2013/04/16(火) 00:18:44.22
>>191 しかしその優秀な人たちは管理業務にまわされます。
日本のキャリアパスにシニアプログラマってあまりないからな
未経験の若いプログラマ雇って炎上みたいなのばかり
>>202 クックック... 我はinheritanceの使い手にして最凶のinterface、
我が道を阻むことなどたとえabstract classでもできはせぬわ
このスレの住人供よ、Light-weight processなど捨てて我が軍門に下るがよいわ
俺もよくわからんけど、多分このへんの単語考えた外人は中二病なんだろうと思うよ。
「俺の考えた呼び方の方がかっけーし」見たいな感じで
クラウドとかも内輪ではめっちゃ受けてるのかもしれん
>>224 出来るヤツだけ集めても
なぜかうまくいかないのが
プロジェクトと言うもの・・・
まとめるとプロジェクトは失敗するもの
JISのC++11って何巻目になるん? 1冊1万前後だから結構な出費だな
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 :2013/04/17(水) 08:39:56.70
ID3D11xxx* p = pD3D11xxx.get(); Func( &p ); ってしたらコンパイルは通ったけど、 もっとエレガントにできないかなぁ。
CComPtrを使えばよろし
233 :
230 :2013/04/17(水) 08:59:24.88
>>232 CComPtrなら大丈夫なんですね。
しかし、できればATLに依存したくないんです。
ポインタのポインタを受け取るってことはポインタ自体の変更が行われるわけで ID3D11xxx* p; Func(&p); pD3D11xxx.reset(p); こんな風にするしかないだろう
235 :
230 :2013/04/17(水) 09:20:06.70
>>234 ありがとう!
ああ、そうか。
面倒くさい。死にそう・・・。
調べてみると、どうもATLとは違うMicrosoft::WRL::ComPtrというのがあるみたい。
http://msdn.microsoft.com/ja-jp/library/vstudio/br230382.aspx なぜATLがイヤかというと、
まず開発がVC++のExpress(無料)バージョンが使えないこと。
自分はPro持ってるけど、他人にプロジェクトを渡すことがあって、
できれば相手にProを強要したくない。
あと、コンパイルした.exeを配布する際、
ATLを使用していると、ランタイムのインストールをユーザーに強要することになる。
WRLだとどうなんだろうか?
開発的にはExpress(for Windows8だけど)で使えることが調べて分かった。
あとは.exeを配布するときにユーザーがWRLのための追加インストールが必要か。
こういうのってどうやって調べたらいいの?
DependencyWalkerとかでチェックしかないかな。
>>235 ATLは古いのならWDK7.1辺りに入ってたりする
CComPtrはテンプレートなんだからランタイムも糞もないぞ
WTL?
238 :
230 :2013/04/17(水) 09:59:29.69
早速WRLのComPtr使ってみた。
余計なコードが激減した。
感動した。
さっきまで悩んでたのがあほみたいだ。
もう他人のことなど知るか(おい)
>>236 ありがとう!
安心した。
239 :
230 :2013/04/17(水) 10:07:14.80
少し気になったのは、 同じダブルポインタ引数でも、 Create系では&pって渡せるのに、 他の関数ではp.GetAddressOf()で渡さないといけないこと。 後者を&pで渡したらぶっ壊れた。 まぁ、Create系もGetAddressOf()でいけるから、 これで統一しておくほうが無難かな。
またひとりC++/CXの魔境に旅立ってしまったか
242 :
230 :2013/04/17(水) 10:22:51.60
>>241 あ、すんません・・・。
ああ、そういうことか。
参照カウントのこと意識せんといかんのね。
しかし、Create系以外でダブルポインタを引数に取るとか、
ややこしいからやめてくんないかなぁ・・・。
普通は戻り値使うよね
C++11のテンプレートの実体化のことで疑問なんですが extern templateと、それをtypedefしたものを同時に使った場合 extern template Temp<T>; の直後に typedef Temp<T> Type; とすると実体化されてしまいますか? もう一つ、以下のようにusingにtemplateを付けない場合、実体化されますか? using Type = Temp<T>;
extern template とか考えなくても、 typedef しただけじゃメンバ関数は実体化しないだろ? ならそういうことだ。 // a.h template <class T> struct Temp { void f(); }; // a.cpp #include "a.h" template <class T> Temp<T>::f(){} typedef Temp<T> Type; // これじゃ実体化しない // main.cpp #include "a.h" int main(){ Temp<T>f(); } // 実体化してないので使えない
さわるなよ
?
248 :
デフォルトの名無しさん :2013/04/23(火) 22:43:29.02
触らないで触らないで垢が付くから
やめてよして触らないで垢が付くから だったな俺の地域では
ここは加齢臭漂うスレですね
>>249 うちもそう。
あんたなんてキライよ♪顔も見たくない、ふん!
MicrosoftがClangに興味を示しているらしいですね VCもClang/LLVMに切り替えるつもりなんだろか
半年間(場合により延長有)なんて雇用で切り替えられるか?
もしそうだとしてもVC++の独自仕様・拡張を維持したいだろうから フロントエンドはClangでなく全く独自のものかClangの改造版になるだろう そのうえでバックエンドをLLVMに切り替えるというのならありえなくはないかな
Linuxカーネルもgccを独自に拡張して使ってるせいで 未だclangでコンパイルできないときいた
extension will never be supported
何で今更C言語に戻るの?
LinuxのデバイスドライバってC固定?
C#に対するMonoみたいないやつを、 Clangで作るって公開するってことならありうるかも。 C#懼Mono C++/CLI懼Clang/CLI
俺のポッケに入る
個人で輸入すると関税も個人で払うことになるから かえって高くなるかも試練
1300ページか 日本語版は1万円くらいになりそうだな
英語版がPDFで多量に流出しちゃってるんだが・・・ でも日本語版でないと読めないしなあ早く出版してくれ
おまえら禿の妄想本なんかでなく ちゃんとisoの規格嫁よ
めんどい
JISは無料なのでJIS待ち
えっ、JISってただなの?
見るだけならね
見る以外の使い道ないだろ
>>
JISC のサイトで見れるよ。
http://www.jisc.go.jp/ 但し、ウェブで閲覧することが出来るだけで、保存や印刷は出来ない。
それが必要なら買ってくれってことになってる。
実際はちょっと小細工すれば保存も印刷も出来るけど。
日本の法律だと公文書には著作権が発生しないことになってて、
法的に見れば JIS 規格は公文書であると考えられている (異論はある) んだけど、
ISO の規約では規格に著作権があることになってるのでそれに批准していることになってる日本としては著作権を認めなければならず、
間を取って閲覧だけ無料でという微妙な状況。
(ISO は民間団体なので国際条約のような強制力はなく、厳密に言えば日本の法律をそのまま適用してかまわない。)
実際のところ、規格書って高すぎだよなー。
10ページもないようなペラッペラの冊子でも何千円も取るんだぜ。
JISは誤訳あるから注意。
規格書はISOの運営資金源だし払うのは普通企業だから仕方ないといえば仕方ない
>>273 > 但し、ウェブで閲覧することが出来るだけで、保存や印刷は出来ない。
この部分が不思議だよな。
閲覧できるということはどこかには保存されている。
どこにどう保存するかはUAの設計次第だし、
プログラマ視点で考えると「どうするかは、要は自分の考え次第」
>>276 今時の電子出版も分からないのですね?
凄いプログラマがいるもんだな。
>>277 webでPDF公開している形の電子出版なんかあるの?
Adobe JavaScriptを使用している唯一の糞PDF
規格の後ろ盾が必要ない人はISOのdraftを見ればよい。 無料でダウンロードできる。
後ろ盾の必要ない人はググってりゃいい。 難解な規格を読み解くのは人生の時間の無駄。 自己満オナニーしたい人だけご購入ください。
このご時世にc++11使ってる人はみんなオナニスト
そんなに褒めるなよ照れるだろ
右辺値山椒で1ヶ月ぐらいは抜ける
おまいら変態すぎてワロタw
スレ違いだが。 >273 >日本の法律だと公文書には著作権が発生しないことになってて そうだっけ? 13条は法令とかでこれを公文書全体ととるのは拡大解釈じゃないの? 米国著作権法だと連邦政府職員の職務による著作物には 著作権が発生しないことになってるけど。
委員会は飯の種にはならんだろうし オナニー言語の仕様を議論できるのは 相当なアスぺ脳基地外である確率が高い
天才とキチガイは紙一重ってか・・・。 何か報われないね・・・。
自己紹介の書き出しが 「自由ソフトウェア主義者」 ってなってる痛い状況だしね
あの人は自由自由言ってて気持ち悪い
とか言いつつこのスレ常駐してるやつはみんな見てるんだろそこ
そりゃ見ないと気持ち悪いかどうかわからんからな
こんな小者知らんがな。きんもー☆
こういう変な思想ってヒッピー辺りから受け継いだものなのか? ストールマンとか、正直見ていて怖いぞ。
江添さんは思想関係ないときの記事はわかりやすい 思想が絡むと色々めんどい 宗教家の典型
空飛ぶスパゲッティー教信者だしな
空飛ぶスパゲッティ・モンスター教な 昔これの本買ったわ ラーメン
まあ面倒な人じゃなければ普通にバリバリ仕事してるだろうな しかし面倒な人じゃなければC++にあそこまで入れ込んでないとも言える
日本の標準化委員会の人もあれだよな掲示板の発言みてると性格きつい
委員にとってアスぺは褒め言葉なのであります
誰?
わんくまもそうだな まあ俺は好きだけど
もうライターになればいいんじゃね?
化委員ライター アスぺス
大学教授のほうがよっぽどアスペなのに、社会的地位が高いのがムカつくぜ。
アスぺのくせに自分の価値を主張するとは生意気だな アスぺは所詮、特定領域で役に立つこともたまにある使い捨てのコマ
それを言ったら会長以外全員使い捨てのコマ
人間は所詮、猫の下僕
猫でも分かるC++14
C++14にもなるとPL/Iを遥かに超えるかつてない言語規模になるなあ まあ現状でももう超えてるだろうけどさ STLが大き過ぎ
さすがに2013年なんだし
外部ライブラリの利用はrubygemsやcpanみたいな、LL系のやつ見習ってほしい Goにはそういう機構ある
江添はさっさと本出して寄付金の用途公開しろよ
そろそろモジュールシステムをどうにかしてほしい
c++14ってそんなにすごいんですか?
optionalさんが入るらしいので楽しみ
おまいら11の前でもそれいえんの
そろそろスレタイからC++11外していいと思う
c++スレも11が当たり前になりつつあるしね 本スレはアスぺの集う自慰スレでおk
モジュールとABIと静的リフレクションを入れてくれ
何を入れろじゃなくて、どの問題を解決すべきなのかで言ってほしいな。
オナニーするのに理由が必要なのかよ 実用を考えたらこれ以上肥大化させないで欲しいものだ
でも最終的にboostまで入れるんじゃないの?
零オーバーヘッドの法則があるから使わない機能が増えても問題ないな
おいテンプレートが追加されたぞ! →ゼロオーバーヘッドだから関係ないね おい右辺値参照で効率化だって! →ゼロオーバーヘッドだから関係ないね おいautoでイテレーターがすっきりだって! →ゼロオーバーヘッドだから関係ないね おいマルチスレッドが標準化されたぞ! →ゼロオーバーヘッドだから関係ないね おいラムダでコードの局所性があがりそうだ! →ゼロオーバーヘッドだから関係ないね おいvectorの要素が連続だって! →ゼロオーバーヘッドだから関係ないね おいconstexprで定数表現の範囲が広がぞ! →ゼロオーバーヘッドだから関係ないね
ゼロオーバヘッドってなんかかっこいいなw
ゼロオーバーヘッドさんの 確執っぷりが漢らしい
言い換えると「嫌なら使うな」
まぁそんなことばっか言ってっからこんな事になった訳ですが
こんなことってどんなこと?
ミドルウェアでの圧倒的なシェアじゃない?
ゼロオーバーヘッド気に入った これからリアルでどんどん使ってく
でもリアルにはよくいるよね。 Javaが5にメジャーバージョンアップだって! →既存コードはそのまま動くから関係ないね 俺らの年金が確定拠出になったぞ! →ゼロオーバーヘッドだから関係ないね お前そろそろ結婚しないと →ゼロオーバーヘッドだから関係ないね おい松葉杖の人が乗ってきたぞ →ゼロオーバーヘッドだから関係ないね
センス無いな
何書いてようがスルーすればゼロオーバーヘッドだから問題ない
337 :
デフォルトの名無しさん :2013/05/10(金) 00:12:04.84
http://www.open-std.org/jtc1/sc22/wg21/ News 2013-05-09: The deadline for the next mailing is 2013-06-28
News 2013-05-09: The 2013-05 mailing is available
News 2013-05-09: The C++ Standard Core Language Issues List (Revision 83) is available
日本語でおk
粒度の小さいループとかTPLのように並列化する手段ってないの?
無い
341 :
デフォルトの名無しさん :2013/05/26(日) 09:38:44.71
日本語でおk
そんな糞文章の作るより PDFみたいな糞に代わるまっとうな ファイルフォーマットでも作れよ
本の虫の人おつ
pdfってほんと糞だよな
PDFはクソだけど本の虫のPDF叩きネタは寒い 後で本人が見返すときに恥ずかしくなるだろう
PlainTextFormatは糞 いつまでPlainTextFormatでプログラミングするんだよ
>>344 ISでなくドラフトだろ?
成果でなく努力を労う内輪ネタを
2ちゃんでやるなハゲ
>>347 http://www.stroustrup.com/Software-for-infrastructure.pdf > WHY WORRY ABOUT CODE?
> Do we need traditional programmers and traditional programs?
> Can’t we just express what we want in some high-level manner,
> such as pictures, diagrams, high-level specification languages,
> formalized English text, or mathematical equations, and
> use code-generation tools to provide compact data structures
> and fast code? ...
> ... I suspect that we can make progress on many fronts, but for > the next 10 years or so, relying on well-structured, type-rich > source code is our best bet by far.
ドラフトがないと、過去のドラフトとの diff を取って頭をアップデートすることができない
今度から全てのレスには「江添さんチーッス!」を付けよう
>>341 ,349
江添さんチーッス!
PDFは閲覧ソフトの操作が糞。 作るソフトが有償なのが糞。 時々動き出すAdobeARM.exeとかいう アップデートウイルスが糞。 フォーマットはどうでもいいや。
盲目的にAdobeのソフトしか使わない人か
Office で文書を作って 受け渡し・公開するときは PDFでっていう規則があるんだろ
Adobeなんて月5000円で使い放題じゃん
日本規格協会の販売するISO規格PDFは 見出しが付いていないので糞 日本規格協会の販売するJIS規格PDFはよく テキスト検索できないので糞
6万円で買い切りにしてくれれば1年で元取れるのにケチくさい話。
昔は、postscriptみたいなページ記述言語で手書きしたりスクリプト書いて印刷したり、NEXT/AppleもDisplay PostScriptを用意したり結構重宝されてたんだけどな。 GNUも重要性分かっててghostscriptやgnustepあるわけだし。 PDFはそのPostScriptの交換向けのもの。 Officeほどバイナリなデータフォーマットではなかったので、 illustratorやPageMakerのフリーソフトウエアのクローンが出ていれば、 一般的な認識も編集不可な印刷物的なファイルフォーマットとは、ならなかったかも。 実際には、GUIのツールは開発コストがかかるので、(企業のお金がガンガン投入されてるが)オープンな実装で花開いたのはブラウザだけなので、 フリーなGUIにこだわるなら、WEB関連技術の資産を増やすしかない訳だが。
363 :
デフォルトの名無しさん :2013/05/26(日) 16:34:00.83
PDFの見出し自体が糞であり、あれはシカトするのが正論 JSAの糞なところは公文書に高額な金を取るところ # 年額6万とか本当に貢いでる情弱いないよな? ネタだよな # ケチるつもりがなくても馬鹿すぎる
PCやワークステーションのOS作るのにC++は必須?というか向いている?
C++がOS作りに向いてるとか言うとLinusさんが激怒するんじゃまいか
MonaOSはC++だったろ
Cなんて使っているから脆弱なんだよLinuxは
じゃあ主にC++使ってて堅牢なOS教えてくれ 言っておくが堅牢と言われてるSolarisとかOpenBSDだって
Darwinはドライバがembedded C++相当くらいしか思い浮かばないな。
Darwin の IOKit の C++ は、かなり面白、不思議なことになってたな
SystemCという腐ったC++のライブラリがあって、それでHW作ってるよ。 堅牢かどうかは知らんけど。 HW系の人は本当にダメ…
BeOSはほぼ全部C++で書かれていたな。 Be->Palm->ACCESSと買収で所有権が変わってる。 クローンのHaikuってOSがあるらしい。
374 :
364 :2013/05/26(日) 22:00:54.06
様々な意見、参考になりました。
つ SunのSpring
LinuxとかBSDを作ってた頃はGCCのC++の実装は糞だったから C++は選択肢に入ってなかった
ここまでwindowsなs(ry
>>371 SytemCはC++のライブラリじゃなくC++の言語フォーマットをパクッたHDLだろ
VHDLがAdaパクッたようにさ
C++使いって、いまじゃC++使い用HDLのSystemCを使いICの論理設計もできないなと馬鹿にされるからな もう、C/C++な奴はハードからソフトまでこなせないようじゃ価値なしって感じなっているし ソフトならC/C++でなくてJavaやC#などで十分ってのが非常に増えたからしょうがないか
>>378 ライブラリだよ。C++コンパイラでコンパイルして実行できる。
マクロも使ってるけどw
>>379 おせーよ!重くてイライラする言語でアプリつくんじゃねえ
CPUが200倍速くなってメモリが1万倍になってもダメダメなソフトが全て台無しにする
いままでC++のSystemCでどんなのを設計した?
メモリクリーナーとか田中式とか
385 :
デフォルトの名無しさん :2013/05/27(月) 23:35:01.10
>>362 ロジック部分などは好きな言語でHTTPしゃべるように作って、GUI部分をHTML5, Javascriptってのが今は無難かなぁ。
>>379 SystemCでLSI作ってる手抜き会社ってどこだ?
あれてまどもなLSIなんて出来ると思ってる方がどうかしてる
電電板でもHDL関連スレはあるけどSystemCなんか話題にも上ってないだろうが
>もう、C/C++な奴はハードからソフトまでこなせないようじゃ価値なしって感じなっているし
そんなのは昔から、
>>379 間違われやすいのでもひとつ言っとくと
Verilog上位互換のSystemVerilogは普通に使われてるから。
SystemCは既に終了
求人でVerilog やVHDLはいくらでもヒットするけどSystemCはほとんどないな
Intel Cofluent StudioでもSystemCが検証ベンチで使われてるよ。 SystemCで書くとC++によるシミュレータを記述してることになるんで。 OSSなんでいろいろな製品や研究でも使われてる。 まあマイナーだけど。
検証ベンチとHW設計なんて全くの別物だぜ
>>391 合成品質のレベルをわかって言ってるのか?
それで動くならなんでRTLレベルのHDLで書く必要があるんだい?
みーんなSystemCの合成ツールに任せれば済む話しだよなぁゲラゲラ
それとSystemCはFPGAよりむしろASICの機能検証で使われることぐらいしっとこうか
>俺でもVerilog/SystemVerilogはある程度使えるからな
これが全て。
お前みたいなカスが書いても金もらえるレベルになることが重要
局所的アルゴリズムはC/C++で開発する その後 SystemCはシステムにおける挙動検証をするために用いられるが 結局、これだとハードウェア実体からは遠いので主流にはなり得ていない というか今後もならない 間違いなくSystemCはSystemVerilogに取って代わられる
けどこのスレ的にはSystemC万歳。
俺もSystemCの絶滅した世界に行きたい。 ちなみにRTL用のテストベンチはC++で書けばいいのでSystemCみたいな アホなものは要らん。 SystemVerilogは、C++がどんなに素晴らしいものだったか認識できるという 点でのみ意味がある。C++の後にどうやったらこんなものを作れたのか気が しれない。 SystemVerilogはDPIがあるがVerilogにはPLI/VPI、VHDLにはVHPIがある。 超機能限定版がDPIで、その代わり簡単に書ける。
古い言語が割と生き残るのがプログラムの世界。既に入手困難な環境を使うのが普通「
>>396 >SystemVerilogは、C++がどんなに素晴らしいものだったか認識できるという
>点でのみ意味がある。C++の後にどうやったらこんなものを作れたのか気が
>しれない。
ハァ?
SystemCでRTLレベルで回路書いてミロ
書こうと思えばRTLで回路を記述できることにこそ意味がある
>>395 そのスレで聞いたら?なんでこっちにふってんの?
>>399 SystemVerilogはスレチガイだがSystemCはC++ってことで
このスレにはSystemC、SystemVerilogの猛者がいるし
SystemVerilogとSystemCの比較をしてみたい
C言語で文字列が面倒だが、分かりやすいと思ったな。 他の言語で文字列型変数ってどう扱っていいのか躊躇するようになった。
Cの文字列が分かりやすい? 正気か
文字操作関数覚えなくてもどーとでもできるのがシンプルだし ハード的にわかりやすいとは思うな BASICからC触ったときすごくシンプルで"コレ"だと思った インタプリタでもないC#のstringとかもなにがしかの操作しようとすると新たにコピーされる仕様とか 今のメモリ事情だから許されるんだろと思うな
ハードウェアの性能向上は理由のひとつにはあるだろうけど、最適化技術の向上もあなどれないと思うな。 「コピーされる仕様」とは言うが、事実はコピーされるかのように見えるってことだろ。 破壊的操作がされないことをフロー解析で看破できれば実際にはコピーしなくても見掛け上の動作は同じになる。 むしろ高級アセンブラでしかない C/C++ はコンパイラができることが少なくて本来なら最適化はしづらいタイプの言語だし。 異様にリソースが投入されてるから未だ動作速度では優勢だけど、原理的にはそれほど有利でもない。
コピーされるよ そんな変な解釈変更するぐらいなら初めからstring不変をわざわざ言語仕様に盛り込まない CやC++と同じ仕様にしとけばよかった。なんでわざわざ今のような仕様にしたんだwwww それと 破壊操作されるんじゃなくガベコレ対象になる 最適化技術の向上てんなもんは信じてる方が馬鹿 コーディングの際人間が最大限配慮しなければならないのは20年前からなんらかわってない。 そんな魔法がまかり通るなら今頃言語翻訳もOCRも読み上げソフトもあのレベルのはずもなし >原理的にはそれほど有利でもない。 いや原理的には速度上は圧倒的に有利だろ。 人間様が使いやすくするために配列の添え字チェックやってりゃ速くなるはずがない。
添字チェックしないコンパイルオプションのある高級言語もあるけど 行列演算をCでベタ書きした場合より速く計算してくれる高級言語なら割とあるよ メモリの配置とかSIMDとかマルチスレッドとか勝手にやってくれるし 有能な人間がゴリゴリ最適化すりゃそりゃCの方が速いが、その労力のかけかたは明らかに無駄
別にC言語の規格でも配列の添え字チェックやって悪いってことはないはずなんだがね それを売りにしたコンパイラもあったはず C文字列はC文字列で各関数ではほぼ毎回strlen的な処理が走ってるので、不利な部類 効率だけならPascal文字列のほうがずっと速いし、 あらゆる文字列がstring_viewなD言語の文字列は至高
最近はようやくSSA最適化も普及してきた コンパイラの最適化は相変わらず課題山積みって感じだが、 着実に進歩はしている
409 :
デフォルトの名無しさん :2013/05/29(水) 06:15:49.86
> C文字列はC文字列で各関数ではほぼ毎回strlen的な処理が走ってる 寝言は寝て言え
>>406 >メモリの配置とかSIMDとかマルチスレッドとか勝手にやってくれるし
その比較はアンフェアだろ
Cはシングル前提で
比較対象の言語はSIMDにマルチスレッドなんて比較は。言語比較じゃねーだろが
>有能な人間がゴリゴリ最適化すりゃそりゃCの方が速いが、その労力のかけかたは明らかに無駄
無駄じゃない。組み込みとか実際そーやってるんだから。
>>407 >別にC言語の規格でも配列の添え字チェックやって悪いってことはないはずなんだがね
計算負荷をかけず添え字チェックをどーやってやるのかアセンブラコードで説明してくれ
どんなコードを書けば添え字チェックが計算コストにならないか
そんな命令コード持ってるCPUを知りたい実に興味がある
馬鹿か?
SIMD最適化くらいCコンパイラでもするだろう
>>414 お兄さん、ARMでSIMD/DSP命令最適化するコンパイラ教えてくれない?
最適化とは名ばかりで最適からは程遠いけどな
そんな汎用的な最適化アルゴリズム見つかったらノーベル賞やで
VLIWアーキテクチャだとある程度対応できるんだろうけど、 いかんせんマイナーアーキテクチャなんでC++とかないかな?
時々いるけど最適化を魔法の杖みたいに勘違いしてる人は 意味不明なこと言うよね。
C++は互換性気にしてるけど、 もう新規案件でしか使えなくてもいいから 機能を整理した規格を作って欲しい
Dでいいじゃん
DはGCが
かなり前からC++の最適化は優れたものになってるそうだな。 GUIになってからスケルトンそのものが環境によって違うから最初から互換性を考えて設計してない 限りC++でも移植は難しいな。
DCも便利かもしれんが、メモリリークを起こすなどPGの恥だぞ
×DC ○GC
>>411 たぶん「計算負荷をかけず」って話じゃないと思うんだ。
ABIをどうにかしてくれ
よし、もっと複雑にしてやる
>GCも便利かもしれんが、メモリリークを起こすなどPGの恥だぞ 組織での開発に於いてこういう 考えをしている奴が一番危険。
しょぼい組織にお勤めなようで
GC は GC でちゃんとクセを把握して使わないと性能が出ないのは確かだけど、 そもそもほとんどのケースでそこまで性能が必要ないのも確かなわけで。 性能を出したい部分は C/C++ で書いて、全体をまとめるにはもうちょっと気楽な グルー言語を使うってのが合理的選択じゃねーの。 最近の C++ はグルー言語やコードジェネレータでやればいい部分まで自前でやろうとしてるみたいで ちょっとイケてない気がする。 今後は役割の分割していかないといいかげん巨大すぎる。 現在のプリプロセッサのイケてなさへの反省があるのかもしれんが、 あれはあのプリプロセッサが駄目なだけでしょ。
>GC は GC でちゃんとクセを把握して使わないと性能が出ないのは確か このあいだ姉妹スレでc++のnewがGCに完敗して 「意味のない比較だ」とか言い訳してる奴いたよな
だからなんで malloc とガベコレを比較してるんだ 意味の無い比較と言ってるのはその通りだろ 馬鹿なのお前?
"Garbage Collection Can Be Faster Than Stack Allocation" という古い論文があるな。
C/C++に都合の悪い比較は 意味のない比較とします
でもGCってどういうタイミングで実行されるか事前に把握出来ない事が多いんだよな JavaとかC#で書かれたプログラムを走らせてみれば分かるけど、メモリギリギリ一杯まで 使いきってからようやくGCが実行される タスクマネージャを見てると心臓に悪いぞ
そりゃなるべく回数を減らして一回のGCでたくさんのゴミを一掃する方が効率いいんだから仕方がない でもOSや他のアプリにしてみれば無駄にメモリ圧迫されて迷惑だよな・・
むしろメモリがクソ安い時代にただのアプリごときに Cの方がメモリ少ないからとメリットを作り上げ ようとしているのが無様
都合のいい条件設定でマヌケ過ぎる比較して 中間言語が速度上も優位なんて結論を出そうと画策 してる方が異常
>>436 メモリ使用量を節約する (使われてないメモリが余っている) という方針にした場合、
それはメモリが無駄になっているとも言える。
ギリギリまで使うのは意図的な方針だと思う。
GC にも特性の違うものが無数にあって、時には組合わせたりもするわけだけど、
いわゆるインクリメンタル化は体感的な速度上昇が見込める場合が多い。
それと言うのも一般的なプログラムは常に CPU を目一杯使うことはなくて大半は待機時間なので、
その待機時間の間に GC を発動すればメモリ回収のために使う時間は事実上のゼロになる。
C++ でもデストラクタで領域を登録だけして実際の開放は後回しっていうやり方である程度の緩和は
見込めるけど、普通の使い方ではデストラクタ発動のときに関連するオブジェクトのデストラクタが
連鎖的に動いてその間は本来的な動作が停止してしまうという問題が指摘されてる。
>>439 まだ言ってるのか。
単に「C/C++は動的メモリ確保が他言語より遅い」
が本当か比べただけだろ。
「そのうちアセンブラを追い越す」みたいな煽りは別として、
誰も全般で優位なんて言ってないし、落ち着けよカス。
C++の仕様にGCが入れば最強
Boehm さんがかかわったりしてるし、いずれ入るんじゃね。
>>434 スタック割り当て?mallocと何も関係無いだろ
マイクロソフトのアレでいいや ゼロオーバーヘッドさんも納得の仕様
>>443 GCのライブラリ実装がポータブルになるための最小限の仕様変更は既に入った。
>>444 俺が英語わからんつっても、いくらなんでもこのくらいの英語は読めるぞ。
「ガベージコレクションはスタック割り当てより速くできる」で、
比較対象としてスタックを持ち出してるんだろ。 関係あるよ。
マローク/ニュー>>スターク>gcnew ってことで
比較に意味がないなんてことはねーよ。
絶対値でどちらかが速いということを示そうとするのは意味がないとは言えるけど。
要するに状況によって有利不利がある。
俺が
>>440 で言ったような待機時間を活用する話は、
待機時間が無いような処理 (画像のエンコードとか、めいっぱい処理を詰め込む系) では意味がなくなるしな。
そういう場合はインクリメンタル化は無駄だからやめようってだけのこった。
速いか遅いかじゃなくて比較検討しようぜって話だ。
マインクラフトはJavaで書かれたゲームだけど全くGCが気になった事はないな むしろ今のJavaはこれだけ高速で動くようになったのかとむしろ驚き
間違いない。C++を貶めるステマがいる
>>448 ヒープ割り当てるmallocとスタック割り当てに何の関係があるんだつってんだろが
>>443 >Boehm さんがかかわったりしてるし、いずれ入るんじゃね。
C#が勝手なGC抑制するためにどーしてるかわかってんのか?
そもそもGCは言語レベルの仕事じゃない
>>454 >GCは言語レベルの仕事じゃない
言語仕様に基づいて確保した領域の開放が
言語の仕事でないと?
Boehmは糞。 リフレクション機能が全く無い言語で ガベージコレクションなんて無理に決まってるのに なんちゃってガベコレを繕うという発想がバカ。
>>458 GCCはおUNKOなので-lpthreadが必要です(たぶん)
よしお前、 (650) 857-3406 に電話して訊け
本来できるはずがないことを 動いたように見せかけるあたりが 中学生の工作レベル 使い捨てツールぐらいなら使えるかもな
単純化しないと物事を考えられない性能の低い脳みそなんですね
>>461 おお、追試ありがとうございます。
結局 ideone の thread 周りの不具合って事で FA かな。
しょうがないので、会社のVS2012で試すとするか…
自宅だとc++11環境が無いんだよね…
>>467 >ideone の thread 周りの不具合って事でFA
必要なリンクオプションが足りないのにノーエラーでリンクできてしまう糞ツール群を内部で使用したサービス、
という意味ではそうなんだろうけど
しっくりこない解釈だなおい。
>自宅だとc++11環境が無いんだよね 自宅のパソコンにVMwarePlayer入れて ウブンコ入れてClangとG++入れなさい 家で毎日どうやってオナニーしてんのよ
>ウブンコ 何かとクソ談義のさかんなC++スレだが そう来たか…
X-Window を X-Windows とか言うようなもんじゃね。
全然ちがうんこ
debianで最小限インストールすればディスクイメージ小さくて済むよー。 たしかshとfileutilsくらいしかない。
1
1FDDブートできますかっ
1-475 ここまで糞コテの自作自演
1 floppy disk drive
floppyってなんですか?
パズルゲームの主人公
それはフラッピーだろ 不自由ソフトだ
フロッピーが現役なシステムも普通に存在する
僻地の役所とかはそんなもんだとか聞いたことある。
金が無けりゃ昔のシステムをずっと使うしかないからな MS-DOSも現役
江添さんチーッス
さすがにconfig.sysの書き方とかもう忘れた 戻れないわ
c++1yの話題が乏しいな 適当に出したc++11の見直しみたいな ものになるん? ヘッダー名が<cstding>みたいな誤記とか レビューしてんのかよっ てかんじ だったからな
仕様追加があるらしい 今以上にC++11本が出なくなるじゃねえか
誤記があっても正誤表は出さない それがWG21クォリティー
コンセプトさんは期待してよかですか?
コンセプト?何ソレ?
これから日本で実現する政策 TPP参加 解雇規制緩和 限定正社員の導入 派遣労働の拡大、派遣対象の業種を全面解禁 ホワイトカラーエグゼンプション(残業代0) セーフティネット削減(失業保険の受給期間を短期間、生活保護受給厳格化、親族の扶養強化) 混合診療解禁(国保適用外の拡大) 留学生30万人受け入れ グローバル企業の英語公用語化 貸金業法の改正(総量規制廃止、グレーゾーン合法化、金利引き上げ)
>>487 言語って旬の時期があってc++はもうその時期を過ぎた
今後仕様追加されてもそれをキャッチアップするやつどの程度いるのかな?
FortranやCが新スペック追いかけてる奴なんてもうほとんど居ないのと同じでさ
FORTRANやCの新スペックは当時でも斬新なものは全くない。 FORTRAN実装の独自仕様なら90年代でも斬新なものが幾つもあったが。 C++の新規格は先鋭的すぎるところが面白い。 新機能の多くを使わない人が多いのはどの言語でも一緒だし。 templateなんか誰も使わないとか、害しかないとか当時は言われた。
そのC++の新スペックより既にもっと上を行くのがC#なわけ WinアプリではC++の必要とされるほとんどの部分はC#で既に十分
いつの間にWinアプリの話になってんの?
496 :
デフォルトの名無しさん :2013/06/03(月) 14:52:28.68
C++ の新機能は「待望」のものが多いのが、C のそれとの大きな違い・・・というか真逆といってもよい 満点はやれないけどね ゼロオーバーヘッド厳守の仕様を渇望していただけに
なんか違反してるのあったか?
Winアプリ作ってるけどC#じゃ無理
499 :
デフォルトの名無しさん :2013/06/03(月) 18:23:52.40
>>497 例えば noexcept をデフォにするとかね
既存コード保護の観点から難しいのはわかるんだけど
それはC++11で起きた問題じゃないと思うが。
501 :
デフォルトの名無しさん :2013/06/03(月) 18:40:02.10
new が NULL を返さなくなった日の狼狽は何だったんだろう... メジャーチェンジってそういうもんだと期待してたんだけど
noexceptデフォとか死ねる そんな言語他にあるか?
503 :
デフォルトの名無しさん :2013/06/03(月) 19:27:55.66
他になくていい ・・・って女かC++はw
デフォルトにするといえばポインタ引数に noknot みたいなもん宣言出来ればいいな メンバや他の引数に実体を結びつけず気兼ね無くスコープ消滅と同時にdelete出来たりコンパイル時警告を出してくれる様な
>>501 new するまえに変数が NULL で初期化されてれば良いんじゃね?
>>501 exportが無くなってComeauがビックリしました
C++と違ってCは2011年に改訂されたことすら 世間では知られていない C++はまだマシな状況
Cを改訂する意味ってあるの?
>>501 別にそれはオーバーロードで置き換えられるし
そもそも規格化される前の話だしな
>>499 「noexcept がデフォ」が何のこと言ってるのかよくわからない。
それがゼロオーバーヘッドの原則とどう関係するのかもよくわからない。
もうちょっと詳しく。
atomicの辺りのデフォルトがゼロオーバーヘッドではないとか 聞いたことがある気がする
void foo() except(true) {...} みたいな感じで例外を投げる可能性のある方を指定できるようにして、 投げないのをデフォに、って主張じゃない? 例外は組み込み系なんかだとサイズ(や速度)の点で好まれないこともあるんだが、 try, catch, throw使わないでも例外のために挿入されるコードというのもあるので。
>>513 そんな要求はコンパイルオプションで例外無効にしろってことでずっと昔から
答えが決まってるんだから、規格の改定で考慮する必要ないだろ。
例外指定付けるか付けないかでコードが変わるなんて事情、規格が知るかよ
実装を全く考慮しないということは無いだろうけど、今はメジャーになった
テーブルアプローチによる例外実装であれば多くのプログラムでたいした
違いにならないとは言えそうな気がする。
あ、例外を使うこと自体は前提での「違い」のことね。それ自体(例外実装
コードのリンクだけ)で領域があふれるようなら
>>515
ゼロオーバーヘッドキーック!!
株全部売っといてよかったわ
[[noreturn]]付けるか付けないかでコードが変わるなんて事情、規格が知るかよ
↑馬鹿
アベノミクスはまやかし
gist.github.com/anonymous/5812246 これclangとg++で結果違うんだけどclangのバグかな
ちょうどllvm3.3がリリースされたからそれでも確認してみれば bug database見るとエイリアステンプレートでのパラメータパックに対する sizeof...に不具合があるような報告もあるけどよくわからん
>>524 template <class... Types> struct test<Derived<Types...>> : public std::true_type {};
何かへんじゃね
Derivedはテンプレートだからtestは
template<template<…>…>
で始まらないといけないんじゃね?
clangの実装ペース半端ないな。もうC++11終わったのか
528 :
デフォルトの名無しさん :2013/06/22(土) 21:32:00.51
目指すはC++14
>>527 最強C++コンパイラのVCなんてVC2012でC++11はサポート済みだろ?
サポート済み(全ての機能を実装したとは言ってない)
>>529 いいえ、Visual C++はC++規格第3版の仕様を
サポートしていません
今月26日に公開予定のVS2013プレビュー版なら、きっとC++11をフルサポートしてるはず! フルサポートしてなかったら俺はMSを見捨てるぞジョジョ!
コンパイラ製作者が手に負えない仕様って…
その名もexpoort!さん
>>532 http://blogs.msdn.com/b/somasegar/archive/2013/06/03/teched-2013.aspx 12 Jun 2013 10:19
>Most folks on the VS team use Visual Studio including those who use C++11. When we released the C++11 CTP, there was no IDE support (e.g. intelisense) for some of the C++11 features but we have added such support in this release
C++11CTPがVisual Studioに統合された以上のことは期待するなってことだと理解した
>>533 Variadicテンプレートは結構死ねると思う。
・C(forward<Args>(args)...)
→C(forward<A>(a), forward<B>(b))
・template<typename...T>void f(T(*...t)());
→void f(A (*)(), B(*)())
・struct X:Mixins...{X(Mixins&... mixins):Mixins(mixins)...{}
→struct X:A,B{X(A&a, B&b):A(a),B(b){}
コンパイラはよく頑張るよ まったく。
>>534 Comeauというコンパイラーがあってだな。
ゼロオーバーヘッドだから関係ないね 既存のコードがそのまま動くのこと重要
日本語でお書きくだしあ
ここC++11以後スレだけど、そこにたむろしているお前らって コンパイラー何を使ってるんだよ? C++11をたいしてサポートしていないVC2012? 俺はそうなんだけど
clang だろ。 常識的に考えて。
clangはインスコの仕方がわからんかった
>>541 Clangが良いと分かっていても、さくっとWinにインスコできないからVC2012なんだよ
sudo apt-get install clang
VC++2012で十分じゃん! autoやrange based forなんかもう神だね!
546 :
542 :2013/06/24(月) 20:31:16.96
>544 そこまではやったけど コンパイルしたら壮大なリンクエラーが出て めんどくさくなった
windowsで不完全なコンパイラを買う金でmacが買える
MS的にVSはIDEでC#、VBがメイン用途でVCはおまけって感じだからね おまけには力なんてたいして入れないだろうし
ギガクラスのCPUでもJavaや.Netは一拍置いてから動作する。まあVC++のデバッガも ステップ実行がやけに遅くなったが… 瞬間的に動作しないアプリで満足できる奴が分からん
そんなことは誰も聞いていない
>>550 QZ と混同するのはやめてくれ。
俺は Scheme スレ出身だぞ。
なんであなたここ来てるの?
Scheme スレが過疎ってて暇だから。
ふむふむ Qzはschemeかぶれと
じゃあモリタポスレに来なよ糞ース豊漁突っ込みどころ満載だ
VS2013でVCが最強のC++11/C++14サポートコンパイラになるらしいな さすがMS
すげー!!
>>559 Visual C++2013で対応されなかったもの
=default,=delete
noexcept
constexpr
inline namespace
メムバー関数に &
[[属性]]
その他多数。
つまりマイクロソフトはUNKO
メムバー関数ってなんですか?
>>563 struct kuso_vs {
void fuck() & {} ←これ
};
そこにアンドってどういう意味?
>>565 右辺値と左辺値がオーバーロードできる
struct kuso_vs {
void fuck() & {}
void fuck() && {}
};
void f() {
func_returns_kuso().fuck();
kuso_vs unko;
unko.fuck();
}
きたねえ幼稚なコード書いてんじゃねえよ
>>566 C++は好きだけどこの先どこに行くんだろうって思う
そりゃjavaはconstをなくすわけだ
こんなスレ覗いてる奴が言っても説得力ないw 自分がどこに行ってもいいのに、ここにいるくせに
老害ジジイは新しいことを覚えられないので 何十年も同じものにしがみつくしかないのです
>>568 constこそJavaやC#に比べたC++の良いところだと思うが?
特に引数にconst指定できないのは危険極まりないと思う。
Javaはintとかの組み込み型でも関数の引数に参照渡しできないのがね・・・ C#はref明示で使えるが、これが紛らわしさも解消して一番いいと思う
Integerにboxingすればできるだろ
えっ?
「え」とか「は」とだけのレスは無意味だからやめとけ java.lang.Integerはimmutable
Bulid2013見てたら RTMとその後のCTPでいろいろ実装する予定らしいね
そこでリリースバージョンという概念にとらわれない アプリケーションライフサイクルマネージメント というわけですね
ああ、現地で聞いたのか。すまぬ。
ハーブサッターってMSの人だったのか 今さらながら知った
LINQをC++11に提案してたじゃない。
LINQはC++11に入ってもいいと思う C#で使いまくってるけど本当便利 STLでも同じ事ができるけど、それをさらに分解した感じがするのと、 遅延評価という点と、INTO句で更に絞り込みを掛けれるしな
GCの無い言語との親和性はどんなものだろう あとLINQは横糸の技術で理解されにくい
いい香りがしそうなお名前ですね
LINQ をゼロオーバヘッドで実装できたらすごいな
お前、ゼロオーバーヘッドの意味わかってないだろ
絶対そういわれると思った 真意は、LINQ を使う箇所はそれ相応のコストを覚悟する しかし、それ以外の部分の実行に余分なコストがかかっては嫌だと言うこと 例えば、LINQ を使うためには、全てにおいて GC 必須とかね
>>588 LINQを使ったC#をVC++から呼び出せば
ゼロオーバーヘッドだぜ
>>589 そ、それで C++ LINQ サポートて言えるのか?
P/Invokeの逆版か
でもC++11はC#に比べてラムダがめんどくさい作りなのでLINQに対応しても C#ほどには楽にはならなそう。 C#の場合 var ret = list.Where(x => x.a == 1).Select(x => new { x.a, x.b }); C++11の場合 auto ret = list.Where([](data& x){ return x.a == 1; }).Select([](data& x){ return tuple<int, string>(x.a , x.b); });
C#ってコンパイラが賢いのになんであんなにコンパイル速いん?
実行速度が遅きゃ何にもならん
ヒント:VM 賢い機能はVMに丸投げ、実はVMが頑張ってる
禿「LINQはテンプレートライブラリで実装して提案してね」 と終了
ヘジたんはコンパイルが高速な事にMSに移ってもこだわってるわけか
おっとスレ違いになるな
>>597 クエリメソッドとラムダ式を使っているだけでLINQの一種
>>592 なにそのC++11のコード。 つまり使うなってことか
シンタックスシュガーという言葉が万能薬だと思うなよ コンパイラが内部で変換してくれているんだ ありがたく思え
クエリ式だけをLINQだと勘違いしてる奴は結構いるんだな スレチだからこのくらいにしとくけど
クエリ式をLINQじゃないと勘違いしている奴は結構いるんだな
クエリ式のLINQしか知らない奴が
>>592 にそれはLINQじゃなくね?といったら、
メソッド形式のLINQがあることを指摘されて、激おこぷんぷん丸になっちゃたのか。
コンパイラ作るのが一番難しいと言われているC++にクエリ式を導入するのは
難しいんじゃないかな。
メソッド形式ならyieldを言語機能に追加する以外はライブラリでなんとかなりそう。
ラムダはC++14で若干楽になるようだけど、C#並に簡単にならないとLINQで
使いこなせる人はかなり限られてしまうのでは。
yield return がないとシステムコールなしではコルーチンが作れないし不便だよなあ
>メソッド形式のLINQ それはLanguage Integrated Queryを実現 するために必用なメソッド群であって Language Integrated Queryではない
>>607 もう見苦しいからやめなよ(´・ω・`)
C#スレで仕様書つき合わせてやれ
ところで、C++14の目玉機能を 俺に10行以内で教えてくれ。
ラムダが完成した
軽量版concept
>>614 先日の委員会ドラフトに見あたらないのだが…
小粒だが言語仕様自体への変更はどれも目玉だろ ・lambda式の初期化キャプチャ ・ジェネリックlambda式 ・constexpr関数の制限緩和 ・実行時要素数指定配列 ・関数の返却値型推論
軽量版って使い物にならいおまけってことか
実行時要素数指定配列ってdynarrayクラスじゃなくて C99みたいな奴?
構造化アセンブラなだけだと言われたC言語が複雑怪奇もいいところになってきたな これでネイテブなんだから凄い
iostreamとかSTLの部分のコードを見ると失神しそうになる
もちろん、ゼロオーバーヘッドキィーック!!
boostのVC++対策のifdef部分読むと頭が禿げる
int (*a)[x]=new int(*)[y][x]; みたいな?
スレタイ見てC++18まで来たのかと思ってしまった。
626 :
デフォルトの名無しさん :2013/07/01(月) 07:16:36.37
それはそれで、おもろいな
C++17の作業中だしC++18になる可能性は十分ある
そろそろ新しいiostreamを考えてもいいんじゃないかと
iostreamみたいな糞はもう要らん
630 :
デフォルトの名無しさん :2013/07/01(月) 21:18:57.03
うむ、そろそろメジャーチェンジきぼんぬだね
iostreamを使ってる奴は情弱確定
auto z = composable_functor(a) >> b >> c >> d; std::cout << a << std::endl; みたいなライブラリ書いて使ってる俺冷や汗の流れ。 演算子をオーバーロードして別の用途で使うのはやっぱ醜いッスか?
CUI?
GUIのことグイって人いるけど、 CUIはキュイ? ギニュー特戦隊みたいだw
iomanip さんが使えない子なので iostream さんも要らない子
636 :
デフォルトの名無しさん :2013/07/02(火) 01:42:59.14
>>634 CUIというのは、ないらしい(日本人には、通じるが、アメリカ人には、通じないかもしれない)
637 :
デフォルトの名無しさん :2013/07/02(火) 01:46:53.16
CLI(Command Line Interface)とかText UI
TUIは罫線使ったり色変えたりしてGUIの一種じゃね?ってイメージ
コマンドラインがゆるされるのはテレタイプまでよね
>>636 ホントか?
C:\>dumpbin.exe /headers test.exe
Microsoft (R) COFF/PE Dumper Version 11.00.60315.1
OPTIONAL HEADER VALUES
3 subsystem (Windows CUI)
この「CUI」の表示は少なくとも
Windows 3.1の時から見かけるのだが
くいっくいっ
はい。次の方。
悔いの無い人生を送りたいのですが
んー、次っ!
>>644 だったらC++の最新規格をリアルタイムに追いかけるようなことはしない方がいい。
どうせ実務では使わせてもらえないんだから、無駄にストレスが溜まるだけw
でも、CUIの無い人生をなんて考えられません
総理、ここは突っ込んだら負けですぞ…
たいへんよ できました
うまかっ です。
ワロタw
今日も平和だ風邪ひいた
CUNッ、があったらナッパできるのになぁw
ここまでイルククゥの話題なし
C/C++が進歩して色々便利にはなったが、これ以上複雑化しても意味あるんだろうか? ネイテブで専門アプリが要求されない限り選択肢はC++しか無くなってきたがC++自体が まるでスクリプト言語の仕様を全部飲み込んだような物になっても保守が大変になる。 仕事で新規のが少ないんだし
そもそも複雑化してるかな? autoとか戻り値の型推論で煩わしい部分を簡略化してて寧ろ楽になっていってる。 constexprもC++14が実装されれば普通に書けるようになるし? 俺としてはテンプレート+プリプロセッサなコンパイル時スクリプトが欲しい。 テンプレートの展開を転用してロジック書こうとするから黒魔術になる。 いっそ定数と型を扱うコンパイル時スクリプトを実装した方が絶対便利だと思う。
あれだな コーディングは楽になったな 保守はやりにくくなったかもしれん
shared_ptrやautoは革命。 その他STLも素晴らしいよ。
STLとは何ぞや? 1.iostreamはSTLですか? 2.stringはSTLですか? 3.auto_ptrはSTLですか? 4.regexはSTLですか?
言語仕様の全容を把握できるか自信がなくなってきた C++11の巨大さは、AdaとかCommon Lispもびっくりな気がする
>>656 ,658
「保守」ってのがどういう仕事を想定しているのかわからない。
C++11 以降の改定によって大変になることの具体的な例があったりする?
>>662 保守ってのは拡張・デバッグ・他製品との統一ってのも知らんのか?
新規ソフトは会社が嫌う。技術者が見たら明らかに新規のが早いってのも保守をやらせる
C++はオモチャじゃないんだ。気付かないうちにライブラリが増えるだけでも保守の為の
システム把握に手間が増える。つまり開発費用が嵩む
>>663 C++11 以降の改定による具体例たのむ
>>664 例えばだけど、
auto a = b.getX();
a.write(obj);
とかされてたとして、write 付近に何かの不具合があったとする。
すると、先ずは write の仕様を確認したいが、型がわからないので、b から調べる羽目になる。
まあ、MS で言うところのインテリセンス系の技術が発達すれば問題なさそうだけど、明らかにコードの視認性が悪くなってるよね。
コードがすっきりして 必用なときはマウスを持ってくと表示されるから 視認性はばつ牛ンだわ IDEが無かったら厳しいな
667 :
655 :2013/07/03(水) 22:36:54.07
>>665 の追記だけど、一人で開発してる分には多分問題ないと思うんだ。
ある程度把握できるような思想で統一的に作ったりするだろうし。
他人のコードとかが問題だよね。
668 :
655 :2013/07/03(水) 22:40:34.81
>>666 まんまの見た目はスッキリするけど、、、
何て言うのかな、透過性って言ったらいいのかな。
見ただけではクラスの関連がわからなくなるじゃん?
>>668 関数名がクソだとそうだけど
auto a = b.getX();
この場合は明確だろ?
670 :
655 :2013/07/03(水) 23:04:24.99
>>669 ま、まあ、それは一例だからね。
チーム開発をしてると、クソ名も多くなってくるけど、そんなのいちいちチェックできないし。
大抵、不具合発生してからなんじゃこれーってね。
関数名もそうだけど変数名も重要 この二つが不適切な名前だとカオス
現状のインテリセンスってテンプレートクラスや関数内ではテンプレートに纏わるアシストの 効きが落ちるのが不満。 template <class X>のXが不明なうちはアシストしようがないって理屈は分かるんだけど [intellisense: X = optional<o>, bool, tumuyatumazaruya] template <class X> とか書いて仮の型を(インテリセンスに対して)提示することでアシストが効くようになってほ しい。
最近のC++は脳内コンパイラがないとコーディング困難とかいう記事をどこかのブログで見た。 なるほどって思った面もあるんだけど、scalaみたいにインタプリタを提供すれば脳内コンパイルの 助けになると思うんだよな。そういう点も含めてclangに期待してる。 IDEの補助とC++インタプリタを使えれば、コーディング凄い楽になると思う。
そもそも全部を把握してる必要あるの? 誰も使わなくなったら終わりなんだからC++は簡単になっていかなければ未来はないよ 今は簡単になっていってると思うよ
>>674 全部は無い。だがプロには未知の機能を使う事を強いられる時が多い
ジェネリックラムダとか 「こういう機能です」じゃなくて 「こういう関数オブジェクトクラスが 生成される」と理解しないと 厳しいものがある あとfor (:)も
ラムダは「なんでそう記述できるのか」理解しないと使いこなしにくいわな
自分が使える機能だけ使えばいいじゃん。 コードが読みにくくなるのは、ほとんどプログラマーのせい。 理解できないものには手を出さなければいい。
プログラマは書けるだけでは半人前 誰が書いたコードでも読めるようになって一人前 誰が書いたコードでも読めると胸張って言うには全てを把握する必要がある
IOCCCみたいなプログラムは読む必要がない いや読めない
Boost.MPLバリバリのも勘弁
>>681 慣れると読めるというか、苦労するけどなんとか追える。
Lokiも登場当時はイミフすぎバロスだったけど、今では意外と普通?って気すらする。
>>679 一人前である必要のある人間だけが読めればいい。
一山いくらの連中のために仕様を削る必要はない。
仕様自体は増えてるけど、汚いパッチワーク仕様や今となっては意味のないクソ機能・クソライブラリが どんどんdeprecated逝きしてるから、1から学習する分にはずいぶん学びやすくなってると思うんだけどなあ
C++はゆとり機能を色入れてグダグダになったって感じだからな
>>665 キミはそのコードが a.write(b.getX()); となっていたら「コードの視認性が悪い」と言うのかね?
>>686 >>665 はa.write(b.getX());とかが視認性悪いって言っているんじゃないと思う
auto使っていることが
>>665 の視認性悪いにつながっている
頭悪いと、そんなレスするのかなって気がする
>>687 auto使ってなくたって「write の仕様を確認したいが、型がわからないので、b から調べる羽目になる」という結果は同じだろ。
689 :
655 :2013/07/04(木) 23:05:01.12
>>688 autoでなければaの型がわかるのだから、直接aを調べれば良いのでは…
C言語を(古っ)覚えた後は他の言語(慣れ親しんだBASICでさえ)文字列型変数って何?!ってなった
>>689 auto使ってなくたってa.write(b.getX());でも同様に型がわからないという状況は発生する、と言っている。
あと、番号コテ間違ってるよね、たぶん。
692 :
665 :2013/07/04(木) 23:44:50.30
>>691 えっ?
元の例え話が、
> auto a = b.getX();
> a.write(obj);
なのだが、
auto を使わないと言う事は、
A a = b.getX();
と言う事なので、型は明確だよね…
で、定義が遠い場所にある場合は、確かに君の言う通りかもしれない。
でもね、元々は auto を使う事で発生しうる不利益の一例をあげたのだから、この例にそぐわないケースで反論されても、その通りだね、で?としか言いようがないのだが。
あ、番号スレの指摘ありがとう。
マジで気付いてなかった。
693 :
665 :2013/07/04(木) 23:45:57.61
×番号スレ ○番号コテ
C++11って可読性が著しく低下してない?
>>692 C++11以降の規格改訂で増える保守の手間とは?
↓
例えばautoによってこんな問題が。
↓
それautoじゃなくても前から同じ問題起こり得る(んだから
規格改訂で発生した問題ってわけじゃない)よね?
↓←イマココ
>>694 規格の全項目読破が可能かどうかという意味の「可読性」なら同意する。
698 :
665 :2013/07/05(金) 00:06:06.94
>>695 いや、だから、auto が故に起きた問題を例示したじゃん。
それを、違う例にすり替えて反論されても、話の筋が通ってないでしょ?
>>695 autoの使い方によって読みづらくなるケースがあることには反対していない。
それが規格改訂によって発生する問題であるという主張に疑義を示している。
autoはむやみに使わない/使わせないようにしないとダメだね
>>696 宣言部分で曖昧なソースでは整数・実数・文字列とかの時代と違って複雑な階層を持つ
クラスを定義されたら何が起こってるのか把握しにくい。
>>697 それほど?C++使いがいなくなりそうだ。むしろトドメを刺す気だろうか
702 :
665 :2013/07/05(金) 00:22:54.33
>>699 規格改訂によりauto が取り入れられて、そのauto の使い方で発生しうる一例を挙げた。
規格改訂がなければあの例のケースは発生し得ないよね?
そこは納得してもらえる?
>>699 規格改訂によって発生する問題と
a.write(b.getX()); がどう関係するんだ?
a.write(b.getX());は規格改定でできるようになったのか
>>700 アホなことにauto使わないってことだな
autoが「型が明確で無くなる」として害悪であり避けられねばならないと言うのなら、 同じ理由で「関数の引数に他の関数呼び出しその他クラス型に依存する式の結果を 直接渡すことは、型が明確で無くなるので避けるべきである」などと主張することに なるのではないか、後者のような主張をしないとすればautoと何が違うことによるのか。
706 :
665 :2013/07/05(金) 00:39:17.46
>>705 違う違う。
型が明確でなくなるのではなくて、人間が確認するときの手間が増える事を問題視してるのよ。
静的型付け言語なんだから、型は常に明確だよ。
ただ、templateを駆使すると、型が複雑になるからコーディングが大変。
そこでautoの登場でコーティングが楽になる。
反面、読むのは辛くなるから保守に影響しそうと言うのが、僕の主張ね。
>>665 の例とその後の話を繋げるには a.write(b.getX()) じゃなくて b.getX().write(obj) を考えないとダメだね。
708 :
665 :2013/07/05(金) 00:42:58.83
>>707 そうだね。
それなら確かにauto関係なしだね。
auto x = b.getX(); a.write(x); とした時にxの型が一目で確認できないというなら a.write(b.getX()); だって一目で確認できないから同じでしょ? って話じゃないの? 後者はa.write()の引数の型から分かるってこともあるけど a.writeがオーバーロード持ってたら?とか a.writeがtemplate<F>を引数に取るとしたら?とか 考えると、前者と後者には確かに大した差はない。
>>707 あ・・・大変申し訳ない。見間違えてた。
ただ、示している疑義については変わらない。
C++コードを保守するプログラマはC++98時代からb.getX().write(obj)のような式が
存在する世界に居るわけで、autoによって
>>665 のような例が発生するとしても
それによって保守の手間が増えるなどということはない、あるいはたいした違いでは
ないだろう、と。
711 :
665 :2013/07/05(金) 01:01:11.32
712 :
665 :2013/07/05(金) 01:03:16.22
>>710 んー、確かにね。
その例ならこちらも納得せざろう得ないなあ。
ま、可能性があるかもねくらいに受け取ってもらえればよしとしようかな。
>a.write(b.getX()); >だって一目で確認できないから同じでしょ? その通りだと思うし、2行に分けて書いた方がいいと思う
>>710 auto aだと、クラス名が分からない
でも、XXXX a だと、クラス名が分かるからコードの理解に少し役立つから少し安心。
保守の手間って言うより、その場での可読性だと思う
>>665 例だと 俺はautoじゃなくクラス名にしろってなる
「C++はオーバーロードで可読性がー」とか「仮想関数で可読性がー」とか喚いてたCジジィと同じ感覚かな。
しかし、アレだな 例が hoge じゃないだけで、かなり良スレ化したな 俺はむしろその点を評価するぜ
そもそも現在においてIDEの補助がない世界を考える必要ってある? scalaは猛烈に複雑な型を扱うことがあるけど、IDEの補助を前提とする限りは問題にならない。 極論でauto使用禁止とかいう話になったらbindとかクソ面倒臭くてやってられなくなる。 必要な時にはIDEがいつでも即座に型を提示してくれる世界では、人は型を明示的に書く必然性はない。 今後現れるであろうより複雑な型を扱うには、そういう前提が必要になってるんだと俺は思うんだけどな。
IDE の補助がない環境の方がまだ多いと思うぞ
え〜、うそ〜ん、ヤダそんな世界。俺泣いちゃうw
チーム開発で bind は悪
WindowsならVSがあるが、Linux系でC++開発やってる人って、 IDEは何使ってるんだろ
>>717 俺はVSだけで組み込みやったことないけど
組み込み系のIDEではろくな補助がないのが多いんじゃないのかって気がする。
あとLinux系で使うIDEは即座にautoの型を提示してくれるのが普通なのかな
eclipse CDT とかかね?
>>721 emacsかviにきまってるだろがjk
>>722 NetBeansはVSに劣らない機能があるよ。
EclipseはCDTの評判がここ最近頗る悪いらしいがどうなんだろう?
あとvimはclang(のフロントエンド?)と組み合わせるとエディタの範疇を遥かに超えるほど
強力って話は聞いたことあるけど、エディタ派生のIDEもどきって全然いい印象がないw
viにきまってるだろがjust kidding
>NetBeansはVSに劣らない 笑わせてもらった
eclipse過小評価されすぎワロエナイ eclipseも型表示くらいできるし、vsなんかリファクタリング機能すらないヘッポコだろ?
linuxな方々って設定ファイルを手書きすることに対してなんかこう思うとこはないんかな?w
思わないからリナックスなんです
>>716 例に「hoge」を用いる文化ってどこが発祥なの
fjあたりじゃね? キモヲタウニクサー
いつまでもしつこいんだよhogeハゲ
どうしてhogeで発狂するキチが生成されるようになったんだ?
738 :
デフォルトの名無しさん :2013/07/05(金) 20:54:33.46
ファクトリにもクラスとインスタンスがあってだな
C++使いを多態したらHogeで基地になるバグが....
半端に知識があるだけで自分のレベルが高いと勘違いしていたところをhogeを多用する人にか場所でフルボッコされたんだろ
プログラムはテクニックが要るからな。
>>740 どうしてそういう卑屈な発想になるんだ
普通に人に説明する際、特に意味の無い名前
にhogeは不適切だろ?
pee poo
pee pooを流行らせよう
class poop
このスレのおかげで、適当な変数名なんかにUnkoとかKusoとか付ける癖がついてしまったw うっかり会社でやりかねんw
それはなによりです struct unko_del final { };
unkoなら直ぐに意味の無い名前とわかるけど hogeは一般人には通じないから問題だと思う
ご参考:規格3.9p6(Types) typedef int UNKA[]; UNKA* arrp;
流石に自演だと思いたい。 クソスレ化する原因は大概たった一人のクソスレメーカーが自演で暴れた結果なんだよなw
人間は誰しもクソメーカー。
いやUNKOはじわじわ来るぞw てかこのクソスレに書き込んでるの 5、6人くらいだろ
よーし、じゃあトリ付けて数えてみようか。 まずはオレから。
どれどれ
このスレには8X2XSCHEMEと9Ce54OonTIの 二人しか居ないようだなw
hogeよりUNKO・KUSOのほうがはるかに良い! UNKO・KUSOなら初心者でもどんなものか分かるし
unko: バカかこいつ hoge: 氏ね
おい、江○添の7/3のブログに コメントしたのおまえらだろ絶対
(≧∀≦)ゞ
>>742 別に何でもいいんじゃね?
まあ、俺は使わないけどな
ホゲとか言うのがはずかしいわ
>>742 hogeを使うことの是非に関する意見はともかく
C++関連スレでhogeを使うなと騒いでる人の行為を抽象化して客観視すれば
どういう人であるか、そういう人の行動原理はなにに基づくことが多いかは自然に感じるところがある
・目標に知らせずに長期にわたって目標の行動を継続的に監視、動きがあれば速やかに反応
・目標のなにげない行動一つをきっかけにして、目標やその周囲の反応を無視して自身が満足するまで執拗に行動を続ける
・目標の言動を自分に都合よく解釈して目標の人格・思想・感情を決めつけて、目標自身やその周囲から否定されても認識を変えない
・行動を糾弾されると理由にならない理由を持ち出して自分の行為の原因は全て目標にあると責任回避・自己正当化
実体が一人の人間ではなくても総体としてよくまとまった行動が可能な集団の構成員なら各自の根本に共通するものがある
むしろC++関連すれでは hoge使いの方が基地外
・気にしない人(普通) ・hoge で釣り針垂らす人(2ch) ・hoge に激しく反応する人() と言う構図だろ
釣り糸たらす奴は激しく反応する基地で遊ぶためだし 簡単に釣れ、キチ反応じゃ遊ばれるよね
なんかC#のようにあらゆる物を取り込んで積荷と偽装で沈む船みたいになりそうな
766 :
デフォルトの名無しさん :2013/07/13(土) 15:51:45.14
hoge志向だからそうなる
hoge思考言語C++ hogeeeeeeeeeeeeeeeeeee!
おまえら少しはC++11の規格に関して話せよ hogehogehogehogeうっせーよ
769 :
デフォルトの名無しさん :2013/08/09(金) 08:51:11.57
hagehageいうなhage
VisualC++2010のC++11対応状況はどんな感じですか?
うんこ
autoとnullptrぐらいじゃね
ムーブやラムダもかろうじて
でもラムダ式くらいは使えるのでしょう?
右辺値参照も一応ある
11から13のdiffを簡単に教えてくれ
>>776 右辺値参照の暗黙の変換っていうんだっけ?
void func(string&& str); が、
VC++11 では、func("xxx") では呼ばれないが、
VC++13 では呼ばれるようになった。
早くideoneでthread使えるようにならないかなかなかなー
779 :
デフォルトの名無しさん :2013/08/11(日) 17:27:10.10
fork爆弾でつぶされる、に1000ペリカ
C/C++はコンピュータで何が起こってるのが分かるから好きだし裏ワザも使えるが C++11は危なそう
型推論を理解していなければそうみえるだろう TAPLよめTAPL
C++11便利すぎてたまらん。 もう離れられん。
C++11程度と一緒にされたら、真面目に型推論を実装してる言語の人達は怒っていいと思う
>>783 十分使い勝手いいよ
そら静的型付の関数型言語には負けるが
自演?
786 :
デフォルトの名無しさん :2013/09/05(木) 01:44:03.58
http://www.open-std.org/jtc1/sc22/wg21/ News 2013-09-04: The deadline for the next mailing is 2013-10-11
News 2013-09-04: The 2013-09-pre-Chicago mailing is available
News 2013-09-04: The C++ Standard Core Language Issues List (Revision 85) is available
News 2013-09-04: The C++ Standard Library Issues List (Revision 84) is available
実装というか今後、企画を満たすコンパイラがどの程度普及するのかも問題
GCC/Clang は C++14 対応に関してそう長くはかからないだろうし、 VC++ もそろそろ本気出すらしいって話だけどね。
Windows 8.1出てから本気出す(たぶん)
>>783 そんなことないよ
C++はかなり厳密な型システムを持ってる
>>792 strong typingでなくtype deductionの話なのだが
794 :
デフォルトの名無しさん :2013/09/08(日) 23:21:17.76
>>783 明確な一線が存在するが、
それで「怒る」ってのは不自然だな
残念ながら「笑う」が現実だと思う
>>792 キャストでconstはずせるしdynamic_cast使わずにvoid*から適当な型にキャストできるけどな
>>795 は「厳密な型を持つ」と
「型を無視する抜け道が存在しない」
の区別が付かない人
797 :
デフォルトの名無しさん :2013/09/09(月) 00:27:26.06
>>795 絶対的で硬直化した「型システム」と
必要悪を必要悪と認識したうえで危機管理できる「型システム」ってやつだな
どちらが良いか、この場では言及を避けるが
未知(でなければ金とれない)案件でどちらを選ぶか
後者あっての前者がそのあるべき立ち位置だが
それすらも傲慢な態度で撥ねつける、原理と違う原理主義者が蔓延るのも現実で
研究する上では抜け道は無いものとして扱うけど 現実の処理系には抜け道がある、ってのが典型的
元の話は抜け道がどうとかじゃなくて
>>781 の型推論の話だろ。
型推論の強力さは Haskell 等に比べれば確かに C++ は複雑なばかりで強力とは言えない。
だけどあまり強力な推論はプログラマの意図の外のまるっきり考えてなかったところで型が嵌ってしまうことがあり、
やっぱそこそこでいいやっていう説もあって、その意味でも C++ は現実的な折り合いが付くポイントを探しながら、
発展を続けていると言える。
>プログラマの意図の外のまるっきり考えてなかったところで型が嵌ってしまう のはC++のほうが多そうな罠 なんだよ括弧の有無で動作が違うって…
リリリリら
>>799 >だけどあまり強力な推論はプログラマの意図の外の
>まるっきり考えてなかったところで型が嵌ってしまうことがあり
ねえよwありえねえよw
想像だけで語るなよw
型推論の宗教論争はともかく decltypeちゃんがどんどん黒魔術に成り果てていくのが見てて辛い
>>796 それをわかった上で抜け道があることが厳密性を破壊してるって指摘してるんだけど
scalaとかIDEなしだとどんな型になってるのか訳が分からん。
>>804 decltypeちゃんとautoさんはバギーな脳内コンパイラをよしなに補ってくれる天使
std::optional さんの命運や如何に
808 :
片山博文MZコスモ ◆T6xkBnTXz7B0 :2013/10/07(月) 13:14:59.86
日本語訳しといて。
おう
shared_ptr遅くね?
shared_ptrより万倍遅いやつがいるから大丈夫
>shared_ptrを管理して高速化 バカの発想はどうしようもないな
だいたいshared_ptrのオーバーヘッドが問題になるくらいの使い方ってどんなのよ? ベンチマークか?
shared pointer等からアドレスをとって、それに対して何らかの処理をしていると、 何らかの処理にかかる時間の方が随分と大きくなるのが当たり前。 shared pointerと生pointerの違いがベンチマークで表面化することは、普通はあり得ないくらい shared pointerによるオーバーヘッドは極めて微量。
ナパームドライバー!
make_shared使ってるか?
make_sharedの方がコンストラクタ呼んでくれるから便利
make_uniqueが11で入らなかったのが不思議
元となったBoost.SmartPointersに無かったからじゃない?14では提案されているし
宣言にauto 使えるだけでshare_ptr ほどにはご利益が無いじゃん
newを隠せるとか
多次元配列を実装してくれ
多次元配列なんていらんだろ。
826 :
デフォルトの名無しさん :2013/10/13(日) 21:25:17.27
自分でできるだろ。
>>824 多次元配列や行列はハードウェア固有機能を使った最適化の影響が大きい
汎用品では性能差がありすぎて実用的ではない
shared_ptrで気になるオーバーヘッドって、マルチスレッド対応で同期処理してる部分のことじゃないの
>>828 shared_ptrに同期保証なんてあったの?
std::shared_ptrはアトミック保証
atomic = 同期 とは限らんからなあ。 N2351 Improving shared_ptr for C++0x, Revision 2 >A variant of shared_ptr that is atomic, that is, safe to be manipulated from multiple threads without synchronization wait-freeかlock-freeな実装してるんじゃないの
引用したところは「使う側は同期する必要ないよ」って言ってるだけだろ アトミック命令だって一種の同期メカニズム
競合する箇所では使わないからもっと速度優先でやってくれ の場合 自分で作るしかないか
Boostのshared_ptrだとdefineで同期機能の無効化(高速化)ができる
参照カウンタの増減に使ってる程度なら、 CASだけで実装できるだろうから、 オーバーヘッドは軽微でないかいな
>>834 同期機能あり版と無し版を同時に使えない?
>>835 CAS重いぞ。ベンチマークが極端に変わる
>>836 ソースごとにdefine+includeすればモジュール単位での併用はいけるかもしれないが完全共用は無理臭い
マルチスレッド無視でいいから速度重視のsharedptr欲しいなら まじで作ってしまうのが手っ取り早いぞ 試しに作ってみろ ベンチ圧倒的だ 昔のCPUだとフロントクラスのメンバーに実ポインタを持たせると速かったが(boostとかそうしてる) 今はむしろ逆だからな オブジェクトのサイズをコンパクトに抑えてキャッシュ効果を上げろ
フロントクラスてなに?
>>840 スマートポインター系は、どれも前と後ろに分かれてんじゃね?
んなこたーない
>>842 分かれてないやつは具体的にどういうのがある?
auto_ptrはオワコン
じゃあunique_ptr
typedef (void *) smart_ptr;
claver_ptr
clever_ptrだった
You is big fool man.
そういえば生ポをラップしただけのアホの子ポインタを入れる話は結局どうなったの
低レベル言語のくせに 化け物みたいに膨らんだグロテスクな文法 仕様の切捨てしろよ
854 :
デフォルトの名無しさん :2013/10/22(火) 17:11:47.09
例外を刷新してほしい
856 :
デフォルトの名無しさん :2013/10/22(火) 17:30:00.07
catch のオーバーロードなんかいらねえ exception_ptr と dynamic_cast さえあればどうにでもできる それと RESUME がないのも 諸説あろうが俺は好かん
お前らが過去を切り捨てた綺麗なc++作るとしたらどこを切り捨てるの?
なにはともあれ、まずユーザー定義リテラルだな
++の部分を全て
>>857 変数定義や宣言を意味する予約語を新設。関数宣言を意味する別の予約語も新設。
今のC++の場合
a b(c);
と書かれている箇所を解釈しようとしても、
型aの変数bを定義して引数cをコンストラクタの引数に渡しているのか、
引数の型がcとなる型aの関数bを宣言しているのか、
この表現を見ただけでは分からない。
つまり構文解析の結果を知っていないと解析できない。
>>860 そこは、削除するべきはコンストラクタの ( ) 呼びじゃね?
{ } で統一されたんだから
>>861 int i = getpid();
double d = double(i) / 2;
は
int i = getpid();
double d = double{i} / 2;
になるべきだと?
>>862 double tod(int i) { return double(i); } を
double tod(int i) { return {i}; } って書けるんだから、それでいいだろ
過去を切り捨てた美しいC++が欲しいなら Java、C#、Dがもう既にあるのだからこてを今すぐ使えばいい。 C++は良くも悪くもCと互換性があるというところに存在意義がある。
Cとの互換性なんて どうでもいいんだが
>>864 > 過去を切り捨てた美しいC++が欲しいなら
> Java、C#、Dがもう既にあるのだから
違う。
それらが切り捨てたのはC互換だけじゃない。
867 :
デフォルトの名無しさん :2013/10/23(水) 02:31:24.20
>>864 よしてくれ
そんな軟派と一緒になんか
Jだけは論点によっては傾聴すべきところはあるが
おまえはそこに噛みついてこれるか?
>>867 お前が聴くから、その聴いてる行為に対して他人が噛みつけと?
869 :
デフォルトの名無しさん :2013/10/23(水) 03:00:34.05
>>868 何の話か通じない人たちには聞いてないから無理にレス返さなくていいよ
stlのライブラリをboostベースにして ついでに.bad()とか使ってる人にしか理解できないメソッドを 一度整備してほしい std::streamとか初めて見た時具合悪くなったw
872 :
デフォルトの名無しさん :2013/10/23(水) 03:30:38.31
>>870 論点によってはと言っているだろ
おまえくどい
>>867 Jって書かれるとJ言語に見えるからやめたまえ
>>872 お前が傾聴するなら、お前は聴いてる立場だろ。
お前が論じるならお前に噛みつく奴は現れるかもしれないけど、
お前が聴いてるだけの立場なら、お前に噛みつく奴はいないだろ。
>>875 それは屁理屈
聞いているか論じるかなんてこっちの勝手だ
お前が決める事ではない
C++2ch つくろーぜ
>>876 そうだね。
君の自由意思で、君は論じずに傾聴すると決めたんだよね。
で、他人は論じない君に対してどうやって噛みつくの?
>>878 傾聴するなんて一言も言ってないわけだが
アルツハイマーかよ
本物の病気の相手はほどほどにな ドグラマグラみたいなの読まされるの勘弁
キチガイ地獄祭文
>>867 つまりお前が言いたいのは
「論点によっては傾聴すべきこともあるから、
すわなち、論点によっては、俺はお前の意見を傾聴してやるから、
その件についてお前は俺に噛みついてこれるか(俺に反論できるか)?」
ってことだろ?
いいからC++14の話しろよ
>>857 Cにclassとtemplateを追加した感じかなぁ。
Cのラッパーだったときのしがらみはちゃんと切り捨てたい。切り分けたい
構造体はデータの塊というだけで十分なんだよ。
あと、仮想デストラクタのないクラスは、デフォルトでは継承不可とか?
仮想デストラクターになるのが "class" そうでないものが "struct" structは基底クラスへのポインターで取り扱うことができない ってしてほしかったぞ
仮想デスクトラクタとかめったに使わんわ
仮装デストラクターが無いとポリモーフィズムができないとでも 言いたいんだろうか
>>890 ほとんどやらんな
静的に解決できてるわ
プログラムの意味的に継承構造があまり必要でない オブジェクトがあまりスコープをこえて旅しない のどっちだろ
> オブジェクトがあまりスコープをこえて旅しない こっちじゃね? オブジェクトを手元だけで使う分には静的にできるからね。 離れた場所に旅させるとオブジェクト自身の動的な機能が必要になる。
895 :
デフォルトの名無しさん :2013/10/23(水) 23:15:15.70
>>865 Cのライブラリそのまま使えるのはでかかったよ
shared_ptrにつっこんどけば仮想デストラクタにしなくても適切なデストラクタが呼ばれるって選択肢も 使い方変えたときに間違いの元になるが。
>>896 これ便利だよね
virtual付け忘れてやっべリークしたかと思って調べたらセーフだったことがある
その仕組み規格では明記されてないから やってくれるかどうかはimplementation-definedじゃなかったっけ
あ、C++11/14のstd::shared_ptrの話な boost::shared_ptrはドキュメントに書いてあるから大丈夫
こうしてC++の深い部分を理解しない土方PGが量産されるのであった。
量産されるほど人数いたのか
動的削除子サポートされてないshared_ptrなんて現存するの?
>>898 規格読んでないけどその仕組みのためにコンストラクタのポインタの型がテンプレートになってるんじゃないの?
どちらとも言わずにつまらん煽りしか言わない人は何者になれるのかな
デストラクタにはvirtual付け必須でイイんでね?
905 :
デフォルトの名無しさん :2013/10/25(金) 01:47:11.03
もはやC++ではなくなる
906 :
デフォルトの名無しさん :2013/10/25(金) 01:48:46.56
非virtualの明示化なら、まだ意味わかるんだけど それがfinalと連動とかだとキモすぎて耐えらんない
>>904 非ポリモーフィックなクラスはファイナルかつ非仮想デストラクタにする
908 :
904 :2013/10/25(金) 03:46:26.66
909 :
デフォルトの名無しさん :2013/10/25(金) 06:49:14.99
>>864 > 過去を切り捨てた美しいC++が欲しいなら
> Java、C#、Dがもう既にあるのだからこてを今すぐ使えばいい。
全部GCがついてくるというのが心底頭抱えたくなるんだが……
JavaScriptを覇権言語にしたがってる連中もだがどいつもこいつも何なの
Java-House MLあたりで「ふんづまり現象」だのとクソのような名前で呼ばれていた頃から
GC pause、結局全然解決しとらんではないか。
「Javaでハイパフォーマンスアプリが作れないというのは誤解だ。作り方が悪い」キリッ
→newしない&オブジェクトプール(笑)
「JavaScriptでハイパフォーマンスアプリが作れないというのは誤解だ。作り方が悪い」キリッ
→newしない&オブジェクトプール(笑)
いくらCPUが速くなってもカクカク動作のAndroid
一方、AppleはiPhoneの成功を受けてMacでもGCを非推奨にした。
GCのある言語はクソであること、GCのない言語を置き換えることはできないことをそろそろ学習するべきだ。
その根底が分からない限り、better C++など100年経っても出てこない。
910 :
デフォルトの名無しさん :2013/10/25(金) 06:57:39.62
世の中にはほんの数ミリ秒でも動作が止まっちゃまずいソフトウェアというものが数多くあって (例えば機械制御、ゲームプログラム、株取引、シンセサイザー等) そういう世界が見えていない、時間解像度が低いプログラマが多すぎる 特にウェブの連中は数百ミリ秒のめちゃめちゃ荒いオーダーの世界で生きてるくせに その認識がまったくないからマジで頭に来る
マルチコア当たり前の現在でもやっぱりガベコレで糞詰まるもんなの? D言語+マルチコアで革命的な何かが起こると期待してたんだけど まったく何も起こらないんでガッカリしてるとこなんだけど・・・・・・
912 :
デフォルトの名無しさん :2013/10/25(金) 07:57:19.07
マルチコアでガベコレが速くなると思えるのが不思議。
「GCで詰らなくなる」と「GCが速くなる」が同じと思えるのが不思議
原理的な問題と実装上の問題が混同されている Erlangとそれを使ったシステム開発は、ソフトリアルタイムシステムまでは GCが特に問題なく適用できることを示した事例にあたると思う ハードリアルタイムな例えば車のブレーキ制御とかだとさすがに不味い気はする
>>909 ,910
頑張らなければならないところでJavaを使うのもどうかとおもうけれども、頑張らなくてもいいところでC++というのも
正直メモリまわりが手抜きに書けるのはありがたい
>>913 結局、詰まらなくなるのと速くなるのは同じじゃねーか?
ソフトウェアは待機時間の方が長いことも多い。 (特にデスクトップ用途なら。) 何もしてないはずの待機時間をメモリの回収のために使えば体感的な動作速度が速くなるのは道理。 GC を使うことによって単位時間あたりの処理量が少なくなってもレスポンスタイムは速くなる可能性がある。 デストラクタの発動時に関連オブジェクトのデストラクタが連鎖的に発動するのは GC で詰まるのと似たようなもの。 C++ でもデストラクタで不要なオブジェクトの登録だけして後で回収するとかいった工夫も出来ることは出来るけど、 それなら GC のある言語を使った方がマシ。 いずれにしてもそれは作ろうとしているソフトウェアの性質によるのであって、 GC が不利になる状況だけをことさらに抜き出して比較するのはアンフェアというものだよ。
そんな道理通りにいかないのはJavaアプリちょっと使ってたら体感できるじゃねーか
>>917 Chromiumの中身で使われてるメモリ領域なんて99% スマポ(sp)だし
Eclipseは重すぎて高スペック要求
現実は全く逆なんだけど、どうしてそんな主張というか見解が生まれるの?
GC嫌ならRustにしたら
GCは便利なツールってだけだよ 事実をねじ曲げてまで肯定するアホは死んでください
もしかしてEclipseがクソ重いのはGCのせいだと思っているのか
>>923 動作自体が重い処理もあるので、GCだけで重くなってるとは言わない
が、現実としてGC回数減らすとぐっと速くなる
コンカレントGCとかG1GCを動かすと速度が露骨に落ちるな マルチコアだと落ちないと思ってたけど甘かった
>>916 GCの停止時間とGCのスループットはトレードオフの部分もあるので、
そこまで単純でない。あの辺りの話は一概には言えないことばっかり
ちなみに参照カウントは遅いという議論もあって……
参照カウントが遅い?
もちろんatomicなshared_ptrに限定した参照カウントです
その辺の比較してる文献ソースとかプログラムソースとかないの? 体感で遅い速い言っててもしょうがないよ。
で参照カウントがGCより遅いって根拠はどこ?
>>931 参照カウントもGCの一種だから
参照カウントとGCのなにを比較してんのかと
ひたすらコピーするのがポインタと比べて遅いとか言ってるんじゃねえの?
定数文字列をコンパイル時に操作できるライブラリってありませんか? できれば某氏の以外で・・・
定数文字列をコンパイル時に操作って何よ?意味不明なんだけど
え、そのまんまだろw
>>936 コンパイル時、定数文字列から、別の新しい定数文字列を作成するようなものです。
C++11対応で、より一般的なライブラリがないかなと思いまして。
>>939 は何が分からないの?「コンパイル時」?「定数文字列」?「文字列操作」?
>>917 GC って途中でやめることができるのか?一度走り出したら最後まで止まらないとおもっていたんだが
マーク&スウィープとかさ
>>938 コンパイル時に編集したファイルをコンパイルするようにすればいいじゃん。
別名で保存してさ
>>938 > 別の新しい定数文字列を作成
って具体的に何すんの?
>>944 えーと・・そういうやつですが、mplみたいな黒魔術的なのでなく、
C++11で、かつ某氏のSproutよりも一般的なものがないかなと。
ないならSproutを拝借するつもりです。
めんどくせえ 実行時にやれ
そういえば目的を聞いてなかったな
いえ、もう結構です。 ありがとうございました。
ちょwww
もう埋め埋め 店じまい
constexprってC++1yで早々に手直しが入ってなかったっけ
三項演算限定の制約無くなったんだっけ
関数の
constexpr時代のクラス ・ポリモーフィックなクラス ・非ポリモーフィックなクラス ・インターフェイスなクラス ・リテラルなクラス<new
>>941 ものによる。
細かな空き時間を使えるようにちょこちょこ GC する方式もあって、
そういった種類の GC は「インクリメンタル GC」と呼ばれている。
int hoge() { comeback (0)//return の返り値が0だったら実行 { } return 0; }
次スレのタイトルはどうなるんだ? いくらなんでも11を付けたままなのは そろそろまずいだろう
いつになったら.ccと.hh分割の呪いから解消されるの? そろそろ他の言語みたいに拡張子ひとつで書きたいよ
959 :
デフォルトの名無しさん :2013/10/26(土) 19:12:21.77
昔、区分編成データセットというのがあってだな・・・
C++14/C++1yでいいだろ
>>958 ファイルが分かれていないと、非公開部分だけを修正しても依存ファイルがリビルドされてしまいそうだけど。
(公開部分だけを抜き出してハッシュで管理するような超賢いビルドツールがある場合を除く)
結局C使い以外は「コンピュータとは何か?」が見えてないんだな
哲学的だな
いや、まんまだろ
>>962 後続の言語がそういうのをぞくぞくと解決しているのにC++ときたら
例えばJavaの大量のimport文の羅列が美しいかどうかってこと?ないな rubyとかだとそれさえ不要になってるとか言う?Railsボケあたりが寝ぼけた反論してくるのが関の山だろ ヘッダファイルは泥臭くとも最小の解の一つ 対案たる実装はない
ヘッダファイルはとても便利だと思うがなあ コンパイラに何が見えてて何が見えないか把握できるのが非常に便利 そういう把握が出来ないならプログラマ向いてない
privateメンバも別ファイルにできたら良かったんだけどなぁ。 まぁ、pImpleイディオムがあるけど。
import文の有無とヘッダファイルの有無って関係なくね
ファイルの参照も理解できないのか
クラスのサイズが変わっちゃうから無理なんじゃないかな
精神分裂とか2重人格をオブジェクト指向に取り入れられないか class A { unknown://自分の知らない自分 private: protected: public: };
じつに興味深いテーマだw
this が左辺値になってくれるとうれしいんだけど root=>bintree_add(obj);
オペレーターの外部定義や、C#の拡張メソッドなどが、 publicを利用しているだけなんだけど class自身が知らない世界に近いかな
980 :
◆QZschizo.ptH :2013/10/27(日) 16:34:04.11
>>975 精神分裂って別に unknown な自分があるとかじゃないよ、ただただだんだん馬鹿になっていくだけで、自覚はないらしいよ
本人がいうから間違いないよ
>>975 Obj-C はそういうのも簡単にできる。カテゴリプロパティとか。
今更新しくもないな javascriptでインスタンスに後付で関数追加すればこんな感じじゃん
std::async が c++14 で deprecated になるかもという話を ちらほら見かけるのだけど、 非同期な処理ガーとかいう話なのか、 スレッドを安全に終了する方法ガーとかいう話なのか、 sort の並列化なんかに使うには adaptive なスレッド生成して work stealing ガーとかいう話なのか、 だれか説明求む。
使えない奴は何をやってもダメ ただそれだけ 例えばC++のせいにするバカとか
次スレは?
付き合ってくれる人がいるから一般人は適当できるんじゃね
30代に入ってから言語仕様の仔細追いかけるのやめたわ Good Parts適当に抜き出したらもうその範囲しか使わん。 プログラミング言語は道具にすぎないし プロダクトを作るとか、脳内嫁を大切にするとか 人生にはもっと重要なことがある。
>脳内嫁を大切にするとか うむ ただ俺は脳内嫁を動かすためにPGやってるけどな
埋まらなすぎだろ
993 :
デフォルトの名無しさん :2013/10/28(月) 18:47:24.07
埋めますか
994 :
デフォルトの名無しさん :2013/10/28(月) 18:49:28.51
埋めましょう
995 :
デフォルトの名無しさん :2013/10/28(月) 18:51:38.22
埋めますね
はい
寸止めBBA
999ならC++17は計画倒れ
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。