この板見てるとC++良いって意見ばっかなんだが
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん
2008/01/04(金) 12:49:160002デフォルトの名無しさん
2008/01/04(金) 12:56:310003デフォルトの名無しさん
2008/01/04(金) 13:00:310004デフォルトの名無しさん
2008/01/04(金) 13:25:15×C++は良い
○会社から与えられたものは良い。
会社に逆らう奴は許されない。会社が白いと言えばカラスも白い。
0005デフォルトの名無しさん
2008/01/04(金) 13:39:230006デフォルトの名無しさん
2008/01/04(金) 13:48:430007デフォルトの名無しさん
2008/01/04(金) 13:51:28そんな意見は初めて聞いたな
おまえの意見か
0008デフォルトの名無しさん
2008/01/04(金) 13:59:570009デフォルトの名無しさん
2008/01/04(金) 14:00:06C++ってことなんじゃねーの
0010デフォルトの名無しさん
2008/01/04(金) 15:19:190011デフォルトの名無しさん
2008/01/04(金) 15:36:120012デフォルトの名無しさん
2008/01/04(金) 15:40:190013デフォルトの名無しさん
2008/01/04(金) 16:06:470014デフォルトの名無しさん
2008/01/04(金) 19:45:100015デフォルトの名無しさん
2008/01/04(金) 19:56:560016デフォルトの名無しさん
2008/01/04(金) 22:33:04C++のダメなとこって具体的にどこでそれをどう直したんだろうな
0017デフォルトの名無しさん
2008/01/04(金) 22:42:240018デフォルトの名無しさん
2008/01/04(金) 22:55:42ポインタ
goto文
関数
構造体
多重継承
演算子オーバーロード
プリプロセッサ
0019デフォルトの名無しさん
2008/01/04(金) 23:02:43そこに挙げてるのってどれも必要不可欠だと思うけど
それらがどう悪くてどう直したんだ?
0020デフォルトの名無しさん
2008/01/04(金) 23:40:50実現できることと、できないことと、どのような用途に使われているかなどの実績を比べないと意味ないよね。
0021デフォルトの名無しさん
2008/01/04(金) 23:45:45ちょっと比較するにはレベルが違う言語かな。
0022デフォルトの名無しさん
2008/01/04(金) 23:56:46その考えでよければオブジェクト志向なんでパラダイムは出てこなかったんじゃね?
派遣でもバイトでもできるだけ考える事をさせずにコーディングさせようぜってがJavaの考え方
ってか、プログラマってソフトウェア工学に関する専門書とか読んだりしないのか?
基本中の基本だと思うんだけど。
普通は>>20見たいなレスはウンコ漏れでもしない。
0023デフォルトの名無しさん
2008/01/05(土) 00:03:53C++/Javaの両刀使いが断然お得だな。
0024デフォルトの名無しさん
2008/01/05(土) 00:07:000025デフォルトの名無しさん
2008/01/05(土) 00:14:100026デフォルトの名無しさん
2008/01/05(土) 00:32:580027デフォルトの名無しさん
2008/01/05(土) 00:51:26具体的にはOS,コンパイラ,インタプリタ,デバッガとかか
0028デフォルトの名無しさん
2008/01/05(土) 01:27:02読んだりするがマトモなコーディングすると上から煙たがられるw
バイトでもメンテできるように高度な実装技術は排除w
0029デフォルトの名無しさん
2008/01/05(土) 03:43:23仕事でJAVAやれって言われたらやる
俺みたいな雑魚に選択権は無いから、良いも悪いもどーでもいいぜ
0030デフォルトの名無しさん
2008/01/05(土) 15:22:03C++を使うならCで十分だと思う
0031デフォルトの名無しさん
2008/01/05(土) 15:26:27これは本当に(笑)をつけたくなる
0032デフォルトの名無しさん
2008/01/05(土) 15:44:45C++でやれって言われたら、その妥当性を検討して
(=今後発生する問題を想定し列挙して)
妥当でなければ妥当な案を提案する。おそらくは
却下されるんで指示通りにやる。で、あとで問題が
起きたときあのときこういう提案をしていました、と
主張して、問題の対処において、こちらが有利になる
ような交渉の布石とする。
逆も同じ。
0033デフォルトの名無しさん
2008/01/05(土) 17:32:12感じだからなあ。。
5年以上プログラムやるつもりならやってもいいというかやるべきだと思うけど、
プログラムは2,3年で卒業みたいな上流工程の人はやらない方がいいだろうね。
0034デフォルトの名無しさん
2008/01/05(土) 17:39:47これしか残ってないからな
0035デフォルトの名無しさん
2008/01/05(土) 19:05:300036デフォルトの名無しさん
2008/01/05(土) 19:08:480037デフォルトの名無しさん
2008/01/05(土) 20:02:55ユーザーからはC/C++のどちらで開発されててもわからんわけだし。
0038デフォルトの名無しさん
2008/01/05(土) 20:07:28マニアックなテンプレート相当なことはCだと無理かな。
それ以外なら、若干めんどいけどCでも頑張れると思う。
0039デフォルトの名無しさん
2008/01/05(土) 20:29:36ガベコレ以外で
0040デフォルトの名無しさん
2008/01/05(土) 20:30:440041デフォルトの名無しさん
2008/01/05(土) 20:48:02オブジェクト思考なんて、Cで別言語を書いてそこで使えばできないわけじゃないし。
そういう話じゃない?
0042デフォルトの名無しさん
2008/01/05(土) 20:54:520043デフォルトの名無しさん
2008/01/05(土) 20:55:410044デフォルトの名無しさん
2008/01/05(土) 21:53:09C++はリフレクションが貧弱すぎて困るな。
マクロとかで型ごとにリフレクション実装コード書けば
ある程度のことはできるが、めんどいし汚い。
0045デフォルトの名無しさん
2008/01/05(土) 23:00:540046デフォルトの名無しさん
2008/01/05(土) 23:17:320047デフォルトの名無しさん
2008/01/05(土) 23:31:01マシン移行面を考えるとC++は不利。
004847
2008/01/05(土) 23:34:20GUIのアプリケーションの開発にはC/C++はJavaより不経済。
ファームウェア(カスタムLSIへの実装ソフト)向けにはC/C++がJavaより有利。
更に、高速性を求めるならばC。
0049デフォルトの名無しさん
2008/01/05(土) 23:50:53JavaのGUIはSwingしか知らんのだが、挙動が遅すぎる。
LinuxならJava使うかなぁ。楽だから。
WindowsでGUIなら今はC#+.NETを推したい。楽だから。
.NETも重たいアプリ作るとモッサリするんだよなぁ・・・。
0050デフォルトの名無しさん
2008/01/05(土) 23:52:44ソフトウェア工学に関する専門書をあげてみてくれんか?できたら日本語のを頼む。
たまたま見たソフトウェア工学らしき本は、クライアントの要求に対してどうのこうのという内容だった。
でもこれは22がいうものと違うんだと思う。
0051デフォルトの名無しさん
2008/01/05(土) 23:52:46005247
2008/01/06(日) 00:04:15やっぱそうだよね。
セカンドマシンで一気にLinux&Ooo&JVM。
0053デフォルトの名無しさん
2008/01/06(日) 00:08:03005447
2008/01/06(日) 00:10:04済まん、そうだった
0055デフォルトの名無しさん
2008/01/06(日) 00:18:16005647
2008/01/06(日) 00:24:23そこらじゅうにある。
携帯のゲームもそうだし。
005747
2008/01/06(日) 00:30:050058デフォルトの名無しさん
2008/01/06(日) 00:40:36マッカー相手にJavaのGUIアプリ作ってる人いた
その人にC++とJavaってどうなの?みたいな質問したら、
C++に比べるとJavaは馬鹿でもおkみたいな返答だった。
バグの原因の大半=メモリ管理のどうので
0059デフォルトの名無しさん
2008/01/06(日) 00:45:25Eclipse はどうなってしまうんでしょうか ...
006047
2008/01/06(日) 00:48:22C++でGUIアプリの開発をLinuxの元でやってやれなくは無いが、
高度なスキルが要求される。
C++ & Qt にてGUIアプリを構築というのは知っている。
当然、DBはPostgreSQLだな。
組込みのばらまきの世界なんてそんなもの。
006147
2008/01/06(日) 00:51:39その話が出てくるのを待っていた。
EclipseはIBM陣営
NetBeansはSun陣営
俺はNetBeansの方が好み。
0062デフォルトの名無しさん
2008/01/06(日) 00:53:51携帯ゲームだけじゃん
クライアントがwindowsならjavaのguiは出番がない。
10年前、アプレットは絶対流行るかと思ったけどなぁ、ぜんぜん流行らなかったなー
0063デフォルトの名無しさん
2008/01/06(日) 00:59:57バカには使えないけどバカしか選ばないのがC++
0064デフォルトの名無しさん
2008/01/06(日) 01:00:03>携帯ゲームだけじゃん
だろうなw
技術者の活躍の場が偏在なんだろw 電話会社に多く捕まった
(厳密には、ゲームソフトメーカー)
>クライアントがwindowsならjavaのguiは出番がない。
やって見て解ったんだが、起動が遅い。
出番がないと言う表現は確かにぴったりだな。
0065デフォルトの名無しさん
2008/01/06(日) 01:00:15JavaGUI代表的なアプリを聞かれてうさんくさい携帯のオモチャ出すようじゃJavaの擁護にならなくねーか?
>>59
eclipseのGUIはJavaだけどJavaじゃないのよね
0066デフォルトの名無しさん
2008/01/06(日) 01:03:08起動が遅いし、時々すんげー固まる(GC?)
まあ、素直にC++の方がいいような。
0067デフォルトの名無しさん
2008/01/06(日) 01:05:33なにが言いたいのかよくわからんw
Javaの擁護って何?
0068デフォルトの名無しさん
2008/01/06(日) 01:09:17Javaは何向けの言語か解ってるのかな?
0069デフォルトの名無しさん
2008/01/06(日) 01:09:590070デフォルトの名無しさん
2008/01/06(日) 01:13:07なんで?
007162
2008/01/06(日) 01:14:43実は最新のJAVAだと結構早いっていう噂を耳にしたことがある(Java6か7か8。どれか忘れた)
実状はどこも1.3.1とかだから遅すぎてやってられんです
ちなみにjavaでC/S型のwindowsアプリのプロジェクトやったことあるけど、VB6と比べて圧倒的に負けていたよ
0072デフォルトの名無しさん
2008/01/06(日) 01:15:030073デフォルトの名無しさん
2008/01/06(日) 01:15:17気持ち悪いから。
0074デフォルトの名無しさん
2008/01/06(日) 01:15:43専ブラでも分かるから。
0075デフォルトの名無しさん
2008/01/06(日) 01:16:43クラスライブラリの効果だろうね。
0076デフォルトの名無しさん
2008/01/06(日) 01:18:22改行にもこだわる奴もいるけど、馬鹿扱いされるよ。
そんな本筋から逸脱したレスばかりしてると。
0077デフォルトの名無しさん
2008/01/06(日) 01:20:31君ならできるだろ? >>73
0078デフォルトの名無しさん
2008/01/06(日) 01:20:54そうだね。おやすみ。
0079デフォルトの名無しさん
2008/01/06(日) 01:21:35J2SE7ではSwingのF/WがEoD的な改善されるようだけど、パフォーマンス的に改善は触れてないよ
JSRでもそこら辺無くない?
008062
2008/01/06(日) 01:24:59フリーワード検索に「JABA」で検索すると15件も引っかかる(お試しあれ、半角不可の仕様だから「JABA」は全角で検索して)
008171
2008/01/06(日) 01:28:38すまん、噂で聞いただけだから私は詳しいことは知らんのですよ。
バージョンがあがる度に速度が上がっていると聞きました
0082デフォルトの名無しさん
2008/01/06(日) 01:46:160083デフォルトの名無しさん
2008/01/06(日) 01:51:380084デフォルトの名無しさん
2008/01/06(日) 02:27:34△改悪した
○馬鹿でも使えるよう改造
0085デフォルトの名無しさん
2008/01/06(日) 02:30:28じゃあ、俺は○に1億w
0086デフォルトの名無しさん
2008/01/06(日) 05:25:30>>1はこの板のどこをどう見て「C++良いって意見ばっか」ととったのだろうか
0087デフォルトの名無しさん
2008/01/06(日) 06:53:240088デフォルトの名無しさん
2008/01/06(日) 06:59:060089デフォルトの名無しさん
2008/01/06(日) 07:05:280090デフォルトの名無しさん
2008/01/06(日) 10:14:170091デフォルトの名無しさん
2008/01/06(日) 11:21:04C++とJavaのどちらを選ぶかって話なら、Javaを選ぶのが正解ってわけか。
実際C++は趣味で使うなら面白いけど仕事でなら勘弁して欲しい言語だし。
0092デフォルトの名無しさん
2008/01/06(日) 12:02:580093デフォルトの名無しさん
2008/01/06(日) 13:12:17見ず知らずの奴と C++ でプログラムを作り合う気はしない。
0094デフォルトの名無しさん
2008/01/06(日) 13:32:53人月の神話にも出てくるソフト開発マネジメントの超基本じゃん。
C++程度も使いこなせないアホと仕事をせにゃならん時点で
そいつの能力、管理者の頭の程度、仕事の程度の低さなんかがよくわかるよ。
0095デフォルトの名無しさん
2008/01/06(日) 14:00:28C++は学者が作ったので色んなパラダイムを吸収できる柔軟性がある
そのためにのんびり次の規格を模索できる
イマ足りないものはboosterがなんとかしてくれる
Javaは現場のバカが作ったので柔軟性がないので
ガンガン機能を追加していくほかない
しかし、その精神はC++のそのものだな
0096デフォルトの名無しさん
2008/01/06(日) 14:02:35仕事は金を稼いでなんぼなんです。プログラムスキルの有無なんて二の次なんです。
仕事を趣味のプログラムの延長上としか考えてない奴と一緒に仕事する他の人のことももっとよく考えてやって下さい。
0097デフォルトの名無しさん
2008/01/06(日) 15:09:55仕事は金を稼いでなんぼなんです。プログラムスキルの有無も他人の苦労も二の次なんです。
0098デフォルトの名無しさん
2008/01/06(日) 15:12:32プログラムを仕事でしかやりたくない奴と一緒に仕事する他の人のことももっとよく考えてやって下さい。
0099デフォルトの名無しさん
2008/01/06(日) 15:57:20CPANのように質より量的なリポジトリを作ろうという動きは無いのかね?
0100デフォルトの名無しさん
2008/01/06(日) 16:42:44アプレットは流行らなかったかも知れないが
しぃペインターの様な物はなかなか面白い
0101デフォルトの名無しさん
2008/01/06(日) 16:51:15boost file vault
boost sandbox
この辺がそれにあたるかも
0102デフォルトの名無しさん
2008/01/06(日) 18:04:41C++はライブラリ化が難しいんだよなあ。ユーザの要求するパフォーマンスとか
機能とかが高いから、誰もが満足するものが作りづらい。
0103デフォルトの名無しさん
2008/01/06(日) 19:26:09むしろ、なんでわざわざ素人が趣味で作ったしょぼい仮想マシンの上で、
がんばって低速にプログラムを動かそうとしてるのか。
0104デフォルトの名無しさん
2008/01/06(日) 22:26:420105デフォルトの名無しさん
2008/01/06(日) 22:45:440106デフォルトの名無しさん
2008/01/06(日) 22:50:100107デフォルトの名無しさん
2008/01/06(日) 22:56:140108デフォルトの名無しさん
2008/01/06(日) 23:00:51最初に買ったシャープのポケコンは8ビット。〜大昔なので忘れた。
それで、消費者金融の支払い管理ソフトをBASICで作成していたな。
0109デフォルトの名無しさん
2008/01/06(日) 23:04:34悪事に加担するのはさぞかし
気持ちが良かったでしょうな
0110デフォルトの名無しさん
2008/01/06(日) 23:14:04アパート含めて支払先17箇所の管理はやっぱコンピュータ使わないと。
ワープロ専用機全盛の時代。
当時としては、1つのプロジェクト仮に10名程度いたとすると、個人でPCを
持ち込んでいたのは1名程度、2〜3台のPCをオフラインで替わりばんこ
に使用orz
その頃はK&RのC、をよく使ったもんだ。
0111デフォルトの名無しさん
2008/01/06(日) 23:49:170112デフォルトの名無しさん
2008/01/07(月) 00:07:160113デフォルトの名無しさん
2008/01/07(月) 00:07:530114デフォルトの名無しさん
2008/01/07(月) 02:54:07体感的にはボーランドより早かった。
http://www.digitalmars.com/
0115デフォルトの名無しさん
2008/01/07(月) 18:21:08はやくしろクズ
0116デフォルトの名無しさん
2008/01/07(月) 22:14:22でもこの釣られ具合は奇妙。やっぱりC++に対するなんかはあるんだよな。
0117デフォルトの名無しさん
2008/01/07(月) 22:47:590118デフォルトの名無しさん
2008/01/07(月) 22:48:54Unix系はCで開発された。
C++が流行ったのは今から20年前。
今は、JavaとCが流行り。
0119デフォルトの名無しさん
2008/01/07(月) 22:52:46C>C++ >Java
ファームウェアはCに依る開発が主流。
0120デフォルトの名無しさん
2008/01/07(月) 23:12:43Java > C > C++
C++ は何で? っていうくらい時間が掛かる時があるね
0121デフォルトの名無しさん
2008/01/07(月) 23:12:48cはともかくjavaなんてとっくにブームは過ぎてるし
0122デフォルトの名無しさん
2008/01/07(月) 23:17:19そこで頑張っても意味無くね?
0123デフォルトの名無しさん
2008/01/07(月) 23:18:02初心者にやたらとC#とjavaばかり薦める奴はいるが
0124デフォルトの名無しさん
2008/01/07(月) 23:21:49現代を生きるボーイは投げ出すだけ
求人サイトで、JavaとかCとかVBとか言語で検索かけると、どこのサイトもたいがいJavaが一番ヒット件数多いぞ。
0126デフォルトの名無しさん
2008/01/07(月) 23:37:57CだJavaだVBだRubyだ
そんな話はもう
そんなことを話せば話すほど俺たちは浅ましく醜く這い回ってることになる
そんな仕組みを考えた馬鹿野郎がほくそえむ
悔しくねえのかよおおおおおおおお
0127デフォルトの名無しさん
2008/01/07(月) 23:40:04その次の流行りがC#とruby
今はなんだろhaskellとかschemeの関数型言語全般か
0128デフォルトの名無しさん
2008/01/08(火) 00:01:02業務なのか、趣味グラマの間でなのか。
0129デフォルトの名無しさん
2008/01/08(火) 00:01:56>その次の流行りがC#とruby
C# が流行ったなんて聴いた事が無い。Haskell や Scheme が
流行ったのはだいぶ前。Erlang が流行る前くらいでしょ。
Ruby の前には Python がかなり持ち上げられていた。
今は言語の流行り廃りと言う観点では無風状態だね。
0130デフォルトの名無しさん
2008/01/08(火) 00:03:55今は黙してれば良いのじゃ
0131デフォルトの名無しさん
2008/01/08(火) 00:05:560132デフォルトの名無しさん
2008/01/08(火) 00:09:32C#やJAVAとは違うユーザ層というかね
用途もC#やJAVAの方が幅広いんじゃないのかね
単純には比べられまい
0133デフォルトの名無しさん
2008/01/08(火) 00:10:23メディアに踊らされるのは勝手だが脳内で程ほどにな。
0134デフォルトの名無しさん
2008/01/08(火) 00:12:120135デフォルトの名無しさん
2008/01/08(火) 00:13:220136デフォルトの名無しさん
2008/01/08(火) 00:15:37で、その提灯記事を本気にしちゃう程度の奴が信者になって考えるのを止めるんだ
0137デフォルトの名無しさん
2008/01/08(火) 00:16:410138デフォルトの名無しさん
2008/01/08(火) 00:20:45オーダーメイドのビジネスアプリを
ハイスペックなPCやサーバでごりごり動かしてる分には
使い勝手がよろしかったと思うが
0139デフォルトの名無しさん
2008/01/08(火) 00:28:430140デフォルトの名無しさん
2008/01/08(火) 00:33:02加えた言語が出来たら C++ を捨てられる
0141デフォルトの名無しさん
2008/01/08(火) 00:46:41もちろん分野や用途によってさまざまな言語や技術の特化があっても良いが。
一番悪いのは「新しい技術で市場を独占してやろうぜ」みたいな営業根性で
糞技術を無理やり普及させようとする流れ。言語で言うとC#かな。
0142デフォルトの名無しさん
2008/01/08(火) 01:20:38プログラム書くと、入出力とか状態の処理とかで、気がつくとなんかのインタプリタを
書いているようなことってない?
そういうとき、処理に適した処理系が生であったらなぁと思うのは自然だと思うんだけど。
で、そういうのって結構通信とか、I/Oとかのアーキテクチャに左右されると思うので、
やっぱり時代時代で異なる言語が使われるのはある程度予想できるかなと思う。
0143デフォルトの名無しさん
2008/01/08(火) 01:26:28M$の今のVSでもwin32api直叩きでコード書いても
特に問題無い訳でM$の方針としては
ネイティブでないと書けない物はネイティブで
それ以外のGCにまかせても問題無いような
プログラムは.net化しようという方針であって
それでもunsafeも化としてるんだから
まぁ、その、要はwindows使う限り
M$様にしたがえって事だろ。
0144デフォルトの名無しさん
2008/01/08(火) 02:24:51119に対する皮肉かな? つか俺が119なんだがw
コンパイル速度を気にするような立場なのか?
俺は立場上、処理速度を重視し言語の選定もやってる訳だがw
最近の学卒の子は大概Javaは使える用に飼い慣らされて来ているが
Cの解析やらせると、関数へのポインタ辺りで分けワカメが多い。
0145デフォルトの名無しさん
2008/01/08(火) 02:27:260146デフォルトの名無しさん
2008/01/08(火) 02:33:49まあ、俺には良くわかるけどなしかし、・・・・・
0147デフォルトの名無しさん
2008/01/08(火) 02:44:38と干渉してPCが不安定になった。
全く、ツールに監視系の機能を持ち込むなよなw
0148デフォルトの名無しさん
2008/01/08(火) 06:14:410149デフォルトの名無しさん
2008/01/08(火) 08:40:450150デフォルトの名無しさん
2008/01/08(火) 08:42:170151デフォルトの名無しさん
2008/01/08(火) 08:42:570152デフォルトの名無しさん
2008/01/08(火) 08:55:130153デフォルトの名無しさん
2008/01/08(火) 09:23:00無駄な処理って例えば何かな?言えるかな?
c++とc++コンパイラは無駄な事なんて一切しないぞ。コードに明示してないことはやるが。
あとc++をcより速くすることは可能だ。これはファンクタがどうこうじゃなくてinlineの力だ。
0154デフォルトの名無しさん
2008/01/08(火) 12:26:06正社員に申し込んでくるなんて図々しいにも程がある。
0155デフォルトの名無しさん
2008/01/08(火) 14:00:37(C++) (C)
0156デフォルトの名無しさん
2008/01/08(火) 14:03:020157デフォルトの名無しさん
2008/01/08(火) 14:04:430158デフォルトの名無しさん
2008/01/08(火) 14:38:080159デフォルトの名無しさん
2008/01/08(火) 19:13:590160デフォルトの名無しさん
2008/01/08(火) 19:15:480161デフォルトの名無しさん
2008/01/08(火) 20:30:26Objective-Cですか
0162デフォルトの名無しさん
2008/01/08(火) 20:39:41inlining は C++ だけじゃなく C だって Lisp だって出来るよ
C++ で作ったアプリを C 並みに速く起動する事は無理だけどね
C 並みに小さいバイナリを生成するのも無理
>>161
仕方が無いけど ObjC は C++ より遅いからなあ...
0163デフォルトの名無しさん
2008/01/08(火) 20:43:31Cはさすがにコールバックをインライン化して展開するとか�_だからねぇ。
C++がCより起動が遅いというのは意味がわからん。
初期化オブジェクトが増えてるから、という話か?
0164デフォルトの名無しさん
2008/01/08(火) 21:13:52喘ぎ声に聞こえなくもない
0165デフォルトの名無しさん
2008/01/08(火) 21:27:20何でわからんの?
0166デフォルトの名無しさん
2008/01/08(火) 21:45:120167デフォルトの名無しさん
2008/01/08(火) 22:01:10C++=バイナリを小さく出来ない=起動が遅い
あとマングリングとかもキモイ
仕様もでかすぎ
コンパイル超遅い
ソースコードがキモイ
シンタックスが汚すぎ
仮想関数遅い
テンプレート変態過ぎ
0168デフォルトの名無しさん
2008/01/08(火) 22:01:570169デフォルトの名無しさん
2008/01/08(火) 22:06:370170デフォルトの名無しさん
2008/01/08(火) 22:07:570171デフォルトの名無しさん
2008/01/08(火) 22:09:180172デフォルトの名無しさん
2008/01/08(火) 22:10:240173デフォルトの名無しさん
2008/01/08(火) 22:26:13今日の『脱 C++ 化』が進んでくれて嬉しいよ。
おかしな勘違いをして美しい言語なんかを目指していたら
今頃 C を使う人間なんていなかっただろうと思うと、
本当に良かった。
0174デフォルトの名無しさん
2008/01/08(火) 22:29:371つ気になった。
仮想関数呼出をあれ以上速くできるの?
俺には、同じ仮想関数を複数回呼ぶときにはキャッシュすることくらいしか思い付かない……。
0175デフォルトの名無しさん
2008/01/08(火) 22:34:180176デフォルトの名無しさん
2008/01/08(火) 22:53:18俺的にはC#はそこそこ綺麗な言語だと思うが、.NET2.0は糞だ。
機能的にカバーしてる範囲が狭すぎて存在意義が感じられない。
0177デフォルトの名無しさん
2008/01/08(火) 23:00:26boost ってやつを使うとき限定だったかな?
0178デフォルトの名無しさん
2008/01/08(火) 23:28:000179デフォルトの名無しさん
2008/01/08(火) 23:32:360180デフォルトの名無しさん
2008/01/09(水) 00:22:30別にiostream使わないなら初期化はさぼれるでそ。
自分でスタートアップルーチン書けばいいんだから
0181デフォルトの名無しさん
2008/01/09(水) 00:22:58それ以前に、ちゃんと
「C++が仮想関数を使ってやることをCのやり方でやった時」と比べて「遅い」
と言ってるのかどうかが気になるところ。
0182デフォルトの名無しさん
2008/01/09(水) 04:10:42問題は仮想関数はインライン化できないことであって・・続きはEfficientC++で。
C++はCを含んでるんだから、仮想関数が遅い場面ではFunctor・インラインswitch-case
とかを選べばいいわけで、その辺のパフォーマンス調整の自由度の高さが魅力。
他の言語は普通仮想関数とかはそれなりに隠蔽されてて、いじれんからねぇ。
0183デフォルトの名無しさん
2008/01/09(水) 08:48:13最適化方法は他にも沢山あるんだから
0184デフォルトの名無しさん
2008/01/09(水) 14:02:150185デフォルトの名無しさん
2008/01/09(水) 14:05:070186デフォルトの名無しさん
2008/01/09(水) 14:05:570187デフォルトの名無しさん
2008/01/09(水) 14:06:52Windowsアプリでstdio弄ってるソース(←オプソ系が結構使ってる)はコンパイルリンクできないし。
0188デフォルトの名無しさん
2008/01/09(水) 14:07:440189デフォルトの名無しさん
2008/01/09(水) 14:18:260190デフォルトの名無しさん
2008/01/09(水) 16:39:54とかも出来るんだろうなぁ
stdioって以外と凄そう
0191デフォルトの名無しさん
2008/01/09(水) 17:38:39いや、Windowsならできない。
0192デフォルトの名無しさん
2008/01/09(水) 18:19:06できないわけないだろ。パイプ作ってCreateProcessの引数で渡すだけ。
0193デフォルトの名無しさん
2008/01/09(水) 19:26:440194デフォルトの名無しさん
2008/01/09(水) 19:43:13何か自虐的だね
そんな事をしても結局 C には追い付けないのに
0195デフォルトの名無しさん
2008/01/09(水) 19:47:29と、C++に挫折したC厨が悔し紛れに呟いております
0196デフォルトの名無しさん
2008/01/09(水) 20:05:10Comeauとかどうよ
0197デフォルトの名無しさん
2008/01/09(水) 20:06:53挫折ってのは、素晴らしい物に到達出来なかった時に使う単語だぜ。
0198デフォルトの名無しさん
2008/01/09(水) 20:12:17初期状態でコンソール開いてないだけで
Windowsかどうかは関係ないだろ
0199デフォルトの名無しさん
2008/01/09(水) 20:14:550200デフォルトの名無しさん
2008/01/09(水) 20:26:34Firefox
Thunderbird
OpenOffice.org
iTunes
Java VM
MS と Adobe は C++ が多そうだな
0201デフォルトの名無しさん
2008/01/09(水) 21:23:220202デフォルトの名無しさん
2008/01/09(水) 22:57:25g++ですか?
0203デフォルトの名無しさん
2008/01/09(水) 23:05:430204デフォルトの名無しさん
2008/01/09(水) 23:20:04かな入力ですか?
0205デフォルトの名無しさん
2008/01/09(水) 23:49:370206デフォルトの名無しさん
2008/01/10(木) 04:07:390207デフォルトの名無しさん
2008/01/10(木) 05:03:560208デフォルトの名無しさん
2008/01/10(木) 06:30:19ならんだろ。
Javaみたいにサンドボックスないとできないんだから。
それに、GB勝手に走られて困るケースも多い。
0209207
2008/01/10(木) 06:52:31State of C++ Evolution (Toronto 2007 Meeting)
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2336.html
Transparent Programmer-Directed Garbage Collection for C++
Hans-J. Boehm Michael Spertus
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2310.pdf
0210デフォルトの名無しさん
2008/01/10(木) 08:50:36その昔、delphiってのがあってだな。。。
0211デフォルトの名無しさん
2008/01/10(木) 08:59:190212デフォルトの名無しさん
2008/01/10(木) 09:00:520213デフォルトの名無しさん
2008/01/10(木) 09:21:36使われてるビットマップボタンとウィンドウの挙動で分かる。
0214デフォルトの名無しさん
2008/01/10(木) 17:07:05pascalなんてはやんねーよ。
0215デフォルトの名無しさん
2008/01/11(金) 14:39:28C的に考えると、メモリ管理は言語仕様でするべき事柄じゃない気もするが、
new演算子などというものを言語仕様に取り込んだC++は言語仕様の責任でメモリ管理するべきな気もする。
だとすると、ポインタを使うのはナンセンスなので参照にして。。。Javaじゃん
0216デフォルトの名無しさん
2008/01/11(金) 21:09:30現状、auto_ptr, tr1::shaed_ptr
0217デフォルトの名無しさん
2008/01/12(土) 00:26:190218デフォルトの名無しさん
2008/01/12(土) 15:44:13これって使ってる人多いの?
0219デフォルトの名無しさん
2008/01/12(土) 16:04:27慌てふためいたというよりも、Javaを皮肉ってJavaを超える言語に
したって感じだな。ISO/IECにも規定される位だからよく考えられている。
0220デフォルトの名無しさん
2008/01/12(土) 16:59:36M$社員乙
0221デフォルトの名無しさん
2008/01/12(土) 17:09:000222デフォルトの名無しさん
2008/01/12(土) 17:20:090223デフォルトの名無しさん
2008/01/12(土) 17:48:45その規格ってやつだが、普通のC/C++のように、
はじめに言語仕様ありきではないところに激しく違和感。
付属書として定義された「標準ライブラリ」はそのまんま.netだし、
System.Stringなしではエントリポイントさえ書けないし、
ようするに汎用言語じゃないんだぜ。
ソースファイルの文字コードとか、
コメントの書き方(付録として)までとやかく言うんだぜ。
未来を担う言語になるというのであれば、
各プラットフォーム用のCLIをMicrosoftが責任を持って作るべきです。
0224デフォルトの名無しさん
2008/01/12(土) 17:54:53Cの規格こそ、実装が先にありきだろ。
0226デフォルトの名無しさん
2008/01/12(土) 18:15:390227デフォルトの名無しさん
2008/01/12(土) 18:28:10Microsoft.String とかだったらわかるけど。
0228デフォルトの名無しさん
2008/01/12(土) 18:58:00逆に入ってた方が他OS用のクローンは作りやすかったんじゃないの?
0229デフォルトの名無しさん
2008/01/12(土) 19:21:15しかし移植性・生産性共に最悪
アセンブリでゲームとか作る廃人いたらおもしろそう
0230デフォルトの名無しさん
2008/01/12(土) 19:27:460231デフォルトの名無しさん
2008/01/12(土) 19:59:38CとASMが判るなら、C++も判ると思うのだが...
0232デフォルトの名無しさん
2008/01/12(土) 20:05:37別に難しくねーよ。慣れの問題。
0233デフォルトの名無しさん
2008/01/12(土) 20:43:06昔と違って、最近の技術の規格ってのは企業が自社技術を広める上で
「ハクを付ける」ために取得するのがほとんど。
広まって派生が増えてから「統一するため」に作るのが規格だと思ってるなら、
広まる前から「広めるため」に作る規格には違和感あるかもね。
>>225
で、「言語仕様ありき」ってのは、C/C++の規格は
「広まった物を規格化(統一)するための規格」ってことじゃないのかな。
>>223が言ってることの具体的な部分は、
ANSIでC/C++の規格が決まった時には、その規格に基づいて実装されたコンパイラは無かった。
C#の場合、自社で作った時の規格をそのままISOに持っていっただけだから
今のMSが出してるC#のコンパイラはISOの規格に基づいて実装されてる(と言えるかもしんない)
っつーことか?
0234デフォルトの名無しさん
2008/01/12(土) 20:50:50ControlクラスにはWndProcなんてメソッドがあるくらい、
物凄くWin32ベッタリだぞ。
0235デフォルトの名無しさん
2008/01/12(土) 21:03:530236デフォルトの名無しさん
2008/01/12(土) 21:11:520237デフォルトの名無しさん
2008/01/12(土) 22:15:460238デフォルトの名無しさん
2008/01/13(日) 01:32:27良くも悪くももう超実用だからねぇ
0239デフォルトの名無しさん
2008/01/13(日) 01:43:240240デフォルトの名無しさん
2008/01/13(日) 01:46:290241デフォルトの名無しさん
2008/01/13(日) 01:46:48キビキビ動くC++は重宝してんだろ
0242デフォルトの名無しさん
2008/01/13(日) 01:50:130243デフォルトの名無しさん
2008/01/13(日) 01:51:26どこまでのメッセージに対応するか次第だろうね。
IME関連とか単純にメッセージ投げるだけでは、あっても意味ないでしょ。
0244デフォルトの名無しさん
2008/01/13(日) 01:51:36BeOS の事か
0245デフォルトの名無しさん
2008/01/13(日) 01:53:26あ、C++に限らずって話でした。
俺OSっぽいやつならちらほら見かける>C++カーネル
0246デフォルトの名無しさん
2008/01/13(日) 02:16:28DLLのサイズとか見てるとそう思える
0247デフォルトの名無しさん
2008/01/13(日) 02:22:550248デフォルトの名無しさん
2008/01/13(日) 02:25:360249デフォルトの名無しさん
2008/01/13(日) 02:32:540250デフォルトの名無しさん
2008/01/13(日) 07:30:110251デフォルトの名無しさん
2008/01/13(日) 10:18:350252デフォルトの名無しさん
2008/01/13(日) 16:04:120253デフォルトの名無しさん
2008/01/13(日) 16:21:36RPGゲームのベースシステム以上のものは作った事が無い俺でした
0254デフォルトの名無しさん
2008/01/13(日) 16:25:580255デフォルトの名無しさん
2008/01/13(日) 16:28:250256デフォルトの名無しさん
2008/01/13(日) 16:42:36どんだけぐちゃぐちゃな重複コードだらけなんだろうな・・
0257デフォルトの名無しさん
2008/01/13(日) 16:47:12それによれば、かなりひどいことになってたらしい。
0258デフォルトの名無しさん
2008/01/13(日) 18:57:41Windows以外のOSにもWndProcという関数があったのか(笑)
もちろん同じメッセージIDが送られてくるんだよな?
0259デフォルトの名無しさん
2008/01/13(日) 19:43:390260デフォルトの名無しさん
2008/01/13(日) 23:36:34今まで読んだプログラム関係の専門書で一番面白かった。
0261デフォルトの名無しさん
2008/01/13(日) 23:44:18Amazonで検索したけど、そんな本ないよ。
0262デフォルトの名無しさん
2008/01/14(月) 00:09:07「最新ANSI C++オブジェクト指向プログラミング」だった。
0263デフォルトの名無しさん
2008/01/14(月) 00:13:330264デフォルトの名無しさん
2008/01/14(月) 00:19:37前から気になってたけど良さそうだから買ってみるわ。
0265デフォルトの名無しさん
2008/01/14(月) 00:34:55ぐげっ。
俺その本持ってるわ。
実際のプログラムが数多く載せてあるが、一通り試してみて
結構難しいと思った。
この本がきっかけでデザパタに興味を持ったんだけどね。
0266デフォルトの名無しさん
2008/01/14(月) 01:03:05なんで?同等になるんじゃないの?
0267デフォルトの名無しさん
2008/01/14(月) 01:10:11巨大な libstdc++ をロードしなきゃいけないし
例外機構とか余計な物が沢山入る
0268デフォルトの名無しさん
2008/01/14(月) 01:11:49一般のPCやWSではC++でもCと同等以上。
0269デフォルトの名無しさん
2008/01/14(月) 01:17:000270デフォルトの名無しさん
2008/01/14(月) 01:22:020271デフォルトの名無しさん
2008/01/14(月) 01:24:200272デフォルトの名無しさん
2008/01/14(月) 01:27:290273デフォルトの名無しさん
2008/01/14(月) 01:29:39他に言う事が無いなら C++ の話に戻ろうぜ。
0274デフォルトの名無しさん
2008/01/14(月) 03:02:14クラスもテンプレートも使わないでプログラムしろって、どんな罰ゲームですかみたいな
0275デフォルトの名無しさん
2008/01/14(月) 06:59:370276デフォルトの名無しさん
2008/01/14(月) 07:14:37・C++は変態のおもちゃだけど、自分は変態だから使うよ
・C++は最強のプログラミング言語だ! 他は糞
最近は一番下は絶滅したと思っていたけど…
0277デフォルトの名無しさん
2008/01/14(月) 10:01:21反論は認める。
0278デフォルトの名無しさん
2008/01/14(月) 10:10:42はやくmallocした構造体に関数ポインタを詰める作業に戻るんだ。
0279デフォルトの名無しさん
2008/01/14(月) 11:00:46全然オブジェクト指向プログラミングを理解してないんだね
かわいそうに
それじゃC++もtemplateもboostもSTLも理解できなかったでしょ
0280デフォルトの名無しさん
2008/01/14(月) 11:00:57C++が使えない環境に、C++のコードを移植したときは途方に暮れた。
テンプレートや仮想関数を手で展開したんだもんだ。2度とやりたくねえ。
0281デフォルトの名無しさん
2008/01/14(月) 11:05:28オブジェクト指向言語を使った後、再び関数型言語に触れてみて、クラスって必須だなと感じた。
0282デフォルトの名無しさん
2008/01/14(月) 11:27:40# メンバ関数に相当する関数(アクセッサなど)は一つのソースに閉じ込める感じ。
流石に、公開用と内部用に構造体の宣言を分けるところまではしていないが、Cしか知らない頃よりは見通しがよくなった。
0283デフォルトの名無しさん
2008/01/14(月) 11:31:380284デフォルトの名無しさん
2008/01/14(月) 11:38:58なんでそう思ったのかな?煽りじゃなくて、純粋に興味ある。聞かせてくれないか
0285デフォルトの名無しさん
2008/01/14(月) 11:39:29その他ではC/C++が殆どだなぁ
業務ではないけど、捨てツールは気分次第でC#になったりする
0286デフォルトの名無しさん
2008/01/14(月) 11:48:16そういうのは一人で書いている分にはいいんだけどねぇ。
チームだと言語仕様上強制力がないのでどうしても割れ窓発生→破綻となるのが俺んとこのパターン。
0287デフォルトの名無しさん
2008/01/14(月) 11:49:430288デフォルトの名無しさん
2008/01/14(月) 11:52:490289デフォルトの名無しさん
2008/01/14(月) 11:53:17お前みたいのがいるからJavaが格下に見られるんだろうなw
0290デフォルトの名無しさん
2008/01/14(月) 12:00:21お前それ、プログラムに関数が必須か? と言ってんの変わらんぞ
あまりにも低脳すぎるだろ
0291デフォルトの名無しさん
2008/01/14(月) 12:09:39文脈が読めない子?
>関数型言語に触れてみて
っていう前提があるんだけどw
0292デフォルトの名無しさん
2008/01/14(月) 12:45:070293デフォルトの名無しさん
2008/01/14(月) 12:51:030294デフォルトの名無しさん
2008/01/14(月) 12:53:23慣れの問題でしょうか?
0295デフォルトの名無しさん
2008/01/14(月) 12:54:17C++のないワンチップマイコンってあるんだよね。そんな時は泣きながらオブジェクト指向風Cコーディングをする。
0296デフォルトの名無しさん
2008/01/14(月) 13:11:080297デフォルトの名無しさん
2008/01/14(月) 13:13:56だから俺は古いlispが嫌い
0298デフォルトの名無しさん
2008/01/14(月) 13:20:55C++ から C へのトランスレータって今は無いの?
はじめの C++ コンパイラってそうだったんだよね。
0299デフォルトの名無しさん
2008/01/14(月) 13:25:050300デフォルトの名無しさん
2008/01/14(月) 13:50:430301デフォルトの名無しさん
2008/01/14(月) 14:09:10・・関数名の最初に名前空間を表す接頭子をくっ付ける作業はもういやだお
0302デフォルトの名無しさん
2008/01/14(月) 14:22:51C++を使っててもクラス名やファイル名に名前空間くっつけろって言われるだけだからおんなじだよ
0303デフォルトの名無しさん
2008/01/14(月) 16:24:58まあまあ落ち着け
君たちには他人の意見を受け入れる度量の大きさが必要だ
>それじゃC++もtemplateもboostもSTLも理解できなかったでしょ
それじゃ君の愛するステパノフの言葉に耳を傾けたまえ
http://www.stlport.org/resources/StepanovUSA.html
0304デフォルトの名無しさん
2008/01/14(月) 16:28:04昔のC++と今のC++はほとんど別物
0305デフォルトの名無しさん
2008/01/14(月) 16:48:36それが嫌な人間がそれなりに居るから CoreFoundation やら Glib やら
Objective-C やら Xlib が現存しているのでしょう
オブジェクト指向はしたいけど、悪には手を染めたくないみたいなね
転んでしまった方が楽な場合もあるけど
0306デフォルトの名無しさん
2008/01/14(月) 16:54:24R5RS も嫌い?
0307デフォルトの名無しさん
2008/01/14(月) 16:54:57Windows系とUNIX系ではWindowシステムが大きく異なるからね。
お仕事で強いられているのならば、やむおえないよねw
0308デフォルトの名無しさん
2008/01/14(月) 16:55:47話見えてないでしょ?
0309デフォルトの名無しさん
2008/01/14(月) 16:58:420310デフォルトの名無しさん
2008/01/14(月) 17:01:290311デフォルトの名無しさん
2008/01/14(月) 17:02:050312デフォルトの名無しさん
2008/01/14(月) 17:02:580313デフォルトの名無しさん
2008/01/14(月) 17:03:140314デフォルトの名無しさん
2008/01/14(月) 17:04:490315デフォルトの名無しさん
2008/01/14(月) 17:09:25全角にこだわるのは、なんか意味があるのでつか?
0316デフォルトの名無しさん
2008/01/14(月) 17:11:32情緒不安定としか思えない。
0317デフォルトの名無しさん
2008/01/14(月) 17:14:110318デフォルトの名無しさん
2008/01/14(月) 17:14:27スタラクトに関数のポインタ持たせて、オブジェクト化するみたいな事。
struct data {
int val;
char *str;
.
.
int (* init)();
int (* func)(int a,int b);
};
自分はこれよくやってたもんで、C++がすんなり馴染めてC++のが楽だな
と思った。
0319デフォルトの名無しさん
2008/01/14(月) 17:15:160320デフォルトの名無しさん
2008/01/14(月) 17:28:36あんまりオブジェクトオブジェクト言ってると勉強不足のアホが寄ってきてレベルが下がる
0321デフォルトの名無しさん
2008/01/14(月) 17:31:48JavaのIntegerはオブジェクトだが、Cの組み込みintはオブジェクトとは「普通」言わない。
0322デフォルトの名無しさん
2008/01/14(月) 17:36:59普通言わないけど、K&R 的にはオブジェクトって事でねーの
K&R じゃなかったかもしれんが
0323デフォルトの名無しさん
2008/01/14(月) 17:39:280324デフォルトの名無しさん
2008/01/14(月) 17:40:000325デフォルトの名無しさん
2008/01/14(月) 17:49:32Cのintやら配列やらは「普通に」オブジェクトと言うよ。
が、>>318は文脈から分かるし、320の国語力が低いだけだろ。
とネタにマジレスしてみる。
0326デフォルトの名無しさん
2008/01/14(月) 17:55:30全角にこだわらないのは、なんか意味があるのでつか?
0327デフォルトの名無しさん
2008/01/14(月) 17:57:42確かにそうだけど、よく見ると>>318も相当酷かった
このコードは誤解を招いても仕方が無い
0328デフォルトの名無しさん
2008/01/14(月) 18:27:14スコープぬけてもよばれないところだよなぁ。
だから関数の最後に
EXITFUNC:
if (ptr1 != NULL) {
free(ptr);
}
if (ptr2 != NULL) {
free(ptr2);
}
みたいなのがズラズラと・・・。
0329デフォルトの名無しさん
2008/01/14(月) 18:46:25え?スタック上にあるオブジェクトに対して free()/delete が必要なのですか?
デストラクタが別のことをするのなら(リンクの張りなおしとか)その処理は必要だとは思いますが。
0330デフォルトの名無しさん
2008/01/14(月) 18:50:40再度そのスタックが参照される時、現在の実スタックのアドレスと比較して大きいものを全てpopする。
このとき、対応するオブジェクトに属するデストラクタを呼べばハッピー。分かるかな?
0331デフォルトの名無しさん
2008/01/14(月) 18:51:260332デフォルトの名無しさん
2008/01/14(月) 19:04:500333デフォルトの名無しさん
2008/01/14(月) 19:35:00>>326
0334デフォルトの名無しさん
2008/01/14(月) 20:05:08国語やり直して来いよ。
0335デフォルトの名無しさん
2008/01/14(月) 20:09:45「国語やり直して来いよ」
この返し方はアホすぎるだろ。
0336デフォルトの名無しさん
2008/01/14(月) 20:25:30意味があるからこだわるわけであって、こだわる理由を聞くのはわかるが、
どうでも良いからこだわらないのであって、こだわらない理由を聞くのって
文脈が理解出来ないアホの子だろ。
ここまで言わんと分からんか。
0337デフォルトの名無しさん
2008/01/14(月) 20:46:05いやいやオブジェクト自体はスタック上に確保してても、オブジェクトの
メンバはヒープ上にあるかもしれないでしょ。もしメンバの解放をデストラクタ
でやってるなら、C++なら自動で解放される。
>>330
メンドクセーシ、わかりにくい。
0338デフォルトの名無しさん
2008/01/14(月) 20:56:49あとはDとか。
C#はusingがあるけど、あれはネストが深くなるから使いにくい。
0339デフォルトの名無しさん
2008/01/14(月) 21:03:38スコープ抜けてもデストラクタ呼ばなくて良いようにするってことは、
自前でGC実装する方が良いってことか?
0340デフォルトの名無しさん
2008/01/14(月) 21:05:350341デフォルトの名無しさん
2008/01/14(月) 21:44:37マ板に来てて全角と半角にこだわる理由がわからない人の方が
アホの子だと思います!
0342デフォルトの名無しさん
2008/01/14(月) 21:51:36http://www.aoky.net/articles/steve_yegge/tour_de_babel.htm
0343デフォルトの名無しさん
2008/01/14(月) 21:57:28途中までは全く理解できずにひたすら文法を勉強するのみ。
そのうち自分でいろいろ読み書きしていき、たどたどしいながらも
使えるようになってくる。
しかし、本当に理解の瞬間がやってくるのは突然だ−それはある日
全く何の予告も無しにやってくる。頭でやっていた作業が体に染み付いた
瞬間だ。
0344デフォルトの名無しさん
2008/01/14(月) 22:02:21>>315と>>326と>>333、みんなアホな子で良いじゃん。
大差ない。
0345デフォルトの名無しさん
2008/01/14(月) 22:34:140346デフォルトの名無しさん
2008/01/14(月) 22:39:360347デフォルトの名無しさん
2008/01/14(月) 23:51:18掲示板に書く部分で全角半角とかどうでもよくね?ソースコードにはやめてほしいが。
0348デフォルトの名無しさん
2008/01/15(火) 00:13:35>>313も入れてあげれば?
0349デフォルトの名無しさん
2008/01/15(火) 00:24:08ま、こんな糞議論してる時点で、人も機械も無駄なエネルギー使いまくりだけどw
0350デフォルトの名無しさん
2008/01/15(火) 01:25:24君はいつもあべこべ君やってくれてるね?
うんこしたあとに集ってくる銀蠅そのものだよw
0351デフォルトの名無しさん
2008/01/15(火) 01:27:10>>315が勝手に勘違いしてるだけ
0352デフォルトの名無しさん
2008/01/15(火) 01:28:26おまえ馬鹿か?
文屋の掲示板にでも池
0353デフォルトの名無しさん
2008/01/15(火) 01:36:12デストラクタの機能はC++が元祖。
Cには素からありませんぞw。
0354デフォルトの名無しさん
2008/01/15(火) 02:13:45絶対にCにはなかったけど。
0355デフォルトの名無しさん
2008/01/15(火) 02:30:570356デフォルトの名無しさん
2008/01/15(火) 04:04:070357デフォルトの名無しさん
2008/01/15(火) 04:08:090358デフォルトの名無しさん
2008/01/15(火) 04:45:01話題そのものを流せちゃえるから、逃げるのには便利だろうけど、
ここで現実的に求められているのは、「353が一人で勝手に言ってるわけではないというソース」だな。
0359デフォルトの名無しさん
2008/01/15(火) 04:59:040360デフォルトの名無しさん
2008/01/15(火) 06:28:51とりえずこの場にはそういう意見は無いぞ。
「C++が元祖だという意見」と、「本当にそうなのかどうか疑問だという意見」があるだけ。
0361デフォルトの名無しさん
2008/01/15(火) 06:29:25SimulaのGCとかnewが遅いからC++はスタックにしたらしいけど・・なんか
あんまし30年前から変わってない話題だなあ
0362デフォルトの名無しさん
2008/01/15(火) 06:54:36○ガベージコレクション
0363デフォルトの名無しさん
2008/01/15(火) 07:36:06ガーベージも結構ある。ガッベージとガッベジは少ない。
まぁ、俺も書くときはガベージだけどね。
0364デフォルトの名無しさん
2008/01/15(火) 08:09:550365デフォルトの名無しさん
2008/01/15(火) 08:16:440366デフォルトの名無しさん
2008/01/15(火) 08:22:520367デフォルトの名無しさん
2008/01/15(火) 11:38:410368デフォルトの名無しさん
2008/01/15(火) 13:31:51>いやC++登場以前から何らかの言語にデストラクタの機能があった事を示せばいいんだよ
自分で調べろよ、物臭な奴だなw
0369デフォルトの名無しさん
2008/01/15(火) 13:49:57メモリ管理が出来ている他の言語でデストラクタが必要なのか?
0370デフォルトの名無しさん
2008/01/15(火) 13:59:04コンストラクタとデストラクタがあれば便利。
ドトネトみたくメモリ開放のタイミング取れないものはカス。
0371デフォルトの名無しさん
2008/01/15(火) 14:12:35ahosugi
0372デフォルトの名無しさん
2008/01/15(火) 15:07:530373デフォルトの名無しさん
2008/01/15(火) 15:37:26デストラクタじゃなくて、実体宣言のじゃね?
0374デフォルトの名無しさん
2008/01/15(火) 22:39:26メモリ管理じゃない。リソース管理を行うために必要な機能。
0375デフォルトの名無しさん
2008/01/15(火) 23:54:050376デフォルトの名無しさん
2008/01/16(水) 00:40:170377デフォルトの名無しさん
2008/01/16(水) 16:26:560378デフォルトの名無しさん
2008/01/16(水) 17:50:360379デフォルトの名無しさん
2008/01/16(水) 17:54:02戻り値判定をヤメテ、throwに変えるべき。
上位はcatchすれば良いだけだから。
ただ、例外で躓くのは、クラスライブラリが独自例外クラス定義してたり、
組み込みコンパイラが文法対応してないことくらい。
0380デフォルトの名無しさん
2008/01/16(水) 17:59:360381デフォルトの名無しさん
2008/01/16(水) 18:03:020382デフォルトの名無しさん
2008/01/16(水) 18:03:50ちょ、それ逆。
例外は速い。
0383デフォルトの名無しさん
2008/01/16(水) 18:05:40まさか、戻り値と条件分岐?
0384デフォルトの名無しさん
2008/01/16(水) 18:17:04実験してみれ。
例外で戻るのとただの値を返す関数をそれぞれ10000000回ほどずつ
繰り返してみな。あまりの違いに歴然とするはず。
0385デフォルトの名無しさん
2008/01/16(水) 18:43:030386デフォルトの名無しさん
2008/01/16(水) 19:52:340387デフォルトの名無しさん
2008/01/16(水) 19:57:55デストラクタとかそういう細かいの無視するから?
アセンブラ見ろとか言わないでw
0388デフォルトの名無しさん
2008/01/16(水) 20:17:570389デフォルトの名無しさん
2008/01/16(水) 20:57:310390デフォルトの名無しさん
2008/01/16(水) 21:03:08More Effective C++ 項目15を読むか、次のプログラムを実行してみよう。
#include <iostream>
#include <ctime>
void func() {}
int main()
{
const int ITER = 1000000;
std::clock_t ct;
ct = std::clock();
for (int i = 0; i < ITER; i++)
func();
std::cout << "関数呼び出しのclock = " << (std::clock() - ct) << std::endl;
ct = std::clock();
for (int i = 0; i < ITER; i++) {
try {
throw 1;
}
catch (int) {}
}
std::cout << "例外処理のclock = " << (std::clock() - ct) << std::endl;
}
0391デフォルトの名無しさん
2008/01/16(水) 21:08:16More Effective C++を会社におきっぱだから明日呼んでくる。
そのコードを実行したところで早い理由は一切わからないと思うんだが・・・
0392デフォルトの名無しさん
2008/01/16(水) 21:24:04プログラミングの禁じ手Web版 - C++編 例外に関するパターン
0393デフォルトの名無しさん
2008/01/16(水) 21:59:05> コンストラクタ内で例外を起こす
>
>深刻度:★★★ - 重い深刻度
こんなウソの記事だすなよ
0394デフォルトの名無しさん
2008/01/16(水) 22:09:510395デフォルトの名無しさん
2008/01/17(木) 01:27:04やべえコンストラクタでメモリ確保できねぇw
つーかデストラクタでの例外と「同じ」深刻度かよ。
この記事書いた奴の頭が深刻な事になってんじゃないの。
0396デフォルトの名無しさん
2008/01/17(木) 05:52:250397デフォルトの名無しさん
2008/01/17(木) 06:10:33いいから例外が遅いって事はわかっただろう
0398デフォルトの名無しさん
2008/01/17(木) 07:30:11throwの部分をコメントアウトして測定すると一気に処理時間が短かくなることからわかるけど
int型をthrowする場合でもtryブロックの前後のトラップとは比べものにならんぐらいコストがかかる
だから例外があくまで例外であるという程度の頻度で発生するなら殆ど問題無い程度のコストになるんじゃないかな?
100万回回してきっちり100万回例外になるようなのなんてどうみてもロジックミスだし
0399デフォルトの名無しさん
2008/01/17(木) 07:34:14いやそれは初めからわかってる事
D&Eにも例外はコスト無しで実装できると書いてある
0400デフォルトの名無しさん
2008/01/17(木) 18:14:55雑誌という公文書よりトイレの落書き2chが正しいとでも?
0401デフォルトの名無しさん
2008/01/17(木) 18:40:00良くそういうことあるお。
M$のチョウチン記事よりかマシ。
0402デフォルトの名無しさん
2008/01/17(木) 18:56:410403デフォルトの名無しさん
2008/01/17(木) 21:56:23つまり正常系に利用しなければおk。
その他、リソースリークの問題があるからRAIIや例外中立など知識とノウハウが
結構求められるのが実情。うっかり使うと色々リークが起きて痛い目に合う。
けどそれらを乗り越えれば、コード省力化とエラーハンドリング周りの
余りあるメリットを享受できる。
0404デフォルトの名無しさん
2008/01/17(木) 21:58:49だからそれは初めからわかってるって。
俺が言っているのは例外を投げるとすごく遅いって事だけだから。
0405デフォルトの名無しさん
2008/01/17(木) 22:21:190406デフォルトの名無しさん
2008/01/17(木) 23:45:02コンストラクタから例外を送出してはならない
0407デフォルトの名無しさん
2008/01/17(木) 23:58:470408デフォルトの名無しさん
2008/01/18(金) 00:01:170409デフォルトの名無しさん
2008/01/18(金) 00:08:50はいよ、使っているよ。
0410デフォルトの名無しさん
2008/01/18(金) 00:17:21(これナニが便利なの?)、全部Cのライブラリで書く。
だれか、例外がホントウに便利だと感じられる具体例をオシエテクレ。
0411デフォルトの名無しさん
2008/01/18(金) 00:18:050412デフォルトの名無しさん
2008/01/18(金) 00:19:370413デフォルトの名無しさん
2008/01/18(金) 00:31:330414デフォルトの名無しさん
2008/01/18(金) 00:39:31毎度mallocの戻り値をNULLチェックする必要がなって、コードがすっきりする。
0415デフォルトの名無しさん
2008/01/18(金) 00:43:58ぜんぜん便利じゃない。Cのマクロですむはなしだし、
例外ハンドリングの記述と、マクロ処理の記述は大差ない。
0416デフォルトの名無しさん
2008/01/18(金) 01:41:03激しく楽になるってば。。
例外なしで戻り値タイプだと普通関数の中ってこんな感じになるでしょ?
int OrzFunc(){
if((ret = GetMonyomonyo()) != 0){
perror()
}
if((ret = GetFugafuga()) != 0){
perror()
}
・・・
return ret;
}
んで関数呼ぶたびにうだうだ戻り値チェックして・・ってだるいでしょ。
それが例外にするとこれだけで済むわけだ。
void OrzFunc(){
GetMonyomonyo();
・・・
GetFugafuga();
・・・
}
なにが楽ってtry-catchは「必要がない場面ではいらない」わけだよ。
コールスタック上ではだーってはっしょって書けて、いざ画面とかログに
出すとか例外中立にする場面とかで書けばいいだけ。
最悪mainにだけcatch書いてメッセージ出したっていいわけだ。
0417デフォルトの名無しさん
2008/01/18(金) 02:02:36例外によるオーバーヘッドなんか瑣末なもんじゃないの?
アホなI/Oやオブジェクト確保とかのがよっぽど癌。
0418デフォルトの名無しさん
2008/01/18(金) 02:09:35管理しきれる戻り値の伝播の手間と、管理しきれない例外の伝播の手間を
考えれば、俺は前者のほうが楽だと思うし、その例でなにか便利に
なったとは到底感じられません
0419デフォルトの名無しさん
2008/01/18(金) 02:11:54例外によるオーバヘッドは全然瑣末じゃない。
がしかし、あなたが作成するアプリケーションの領域によっては、
ユーザ(顧客)の満足度を勝ち取れるだけの十分な競争力を
うみだせれば、瑣末なこと。
これは例外だけじゃなくて、言語もそうだし、HWもそう。
0420デフォルトの名無しさん
2008/01/18(金) 02:17:15int OrzFunc(){
_Ex(GetMonyomonyo());
_Ex(GetFugafuga());
・・・
return ret;
}
これで。
0421デフォルトの名無しさん
2008/01/18(金) 02:58:05NULL返し、真理値返し、-1か正常値返し、GetLastError() (Win32), HRESULT (Win32), etc...
例外処理を持っている言語だと、みな例外処理へ収束する。
CのAPIを直接叩く機会の多いC++だと、あまりそうとは感じられないけれど。
0422デフォルトの名無しさん
2008/01/18(金) 03:25:40まあnew/operator/castとかの例外処理はまともに扱われてないのが実情。
0423デフォルトの名無しさん
2008/01/18(金) 03:50:40newとかmalloc失敗するときってexitしちゃだめですか?もちろんダメなケースはありますが。
みなさん成功しなければプログラムが機能しないというnewとかmallocに失敗したときはどうしてます?
0424デフォルトの名無しさん
2008/01/18(金) 07:47:120425デフォルトの名無しさん
2008/01/18(金) 08:39:36でそういうときは例外処理を使ってコンパクションを行なったりと選択範囲が広がりそう
0426デフォルトの名無しさん
2008/01/18(金) 08:43:37マクロだと関数が入れ子になったとき対応できないんじゃ…
sqrt(pow(asin(x), 2) - pow(acos(y), 2))
みたいなのとか、errnoの代わりに例外投げてくれたらなーとか思ったことない?
0427デフォルトの名無しさん
2008/01/18(金) 08:49:420428デフォルトの名無しさん
2008/01/18(金) 10:49:420429デフォルトの名無しさん
2008/01/18(金) 10:57:37template< class Func >
inline void _Ex2(Func const& f) { if (f() != 0) perror(); }
0430デフォルトの名無しさん
2008/01/18(金) 11:59:450431デフォルトの名無しさん
2008/01/18(金) 12:04:21そもそも、例外の来ないAPIなんか使うときは、前者で毎回戻り値チェックしてthrowするしかないだろ。
0432デフォルトの名無しさん
2008/01/18(金) 12:11:520433デフォルトの名無しさん
2008/01/18(金) 12:13:490434デフォルトの名無しさん
2008/01/18(金) 12:14:33戻り値という1作法。
関数の数だけあるのは、呼び出し順序ルール。
0435デフォルトの名無しさん
2008/01/18(金) 12:17:18Windows 2000/NT: In low memory situations,
EnterCriticalSection can raise an exception.
0436デフォルトの名無しさん
2008/01/18(金) 12:52:060437デフォルトの名無しさん
2008/01/18(金) 13:44:36クラスライブラリのエラーって全部例外投げてくるんだけど。。。
0438デフォルトの名無しさん
2008/01/18(金) 18:57:330439デフォルトの名無しさん
2008/01/18(金) 19:09:24最終的にピンチに陥った時に頼れる言語だと思う.
0440デフォルトの名無しさん
2008/01/18(金) 19:28:260441デフォルトの名無しさん
2008/01/18(金) 21:13:18そんなだからメモリ足りなくなったら落ちたり、オーバーフローでおかしく
なったりするんだよ
0442デフォルトの名無しさん
2008/01/18(金) 21:39:38昔の65kしかなかった頃は、malloc失敗することあったよね。
0443デフォルトの名無しさん
2008/01/18(金) 21:58:18メモリたりなくなっておちることはない。システムが許容可能な、最大負荷と
メモリ量を稼動前に計算するから。システムに搭載されているメモリで
受付可能に制約をかける。
メモリ不足例外が起こりうるシステム自体そもそも問題でしょ。
0444デフォルトの名無しさん
2008/01/18(金) 22:05:440445デフォルトの名無しさん
2008/01/18(金) 22:13:58メモリ不足例外というよ
0446デフォルトの名無しさん
2008/01/18(金) 22:34:30素晴らしいな。
例外処理なんて半分ぐらいフェイルセーフだろよ。
0447デフォルトの名無しさん
2008/01/18(金) 22:44:58フェイルセーフのためというのであれば、メモリ不足例外をいっしょくたにして
扱うのは全然フェイルセーフではない。オブジェクトごとに最大負荷において、
消費するオブジェクト数をあらかじめ評価しておいて、万が一足りない事態が
発生したら、そのオブジェクトに対して復帰する手段を仕掛ける必要がある。
これって、結局例外ハンドリングであろうが、Cの戻り値評価であろうが同じ
なのよね。だから、俺は例外がありがたいなんて思ったことはない。
0448デフォルトの名無しさん
2008/01/18(金) 22:57:310449デフォルトの名無しさん
2008/01/18(金) 23:14:56確かに例外処理のありがたみなんて感じないこともうなずける。
平均的なプログラマはろくにチェックなんてやらないということが、
例外処理のなかったC++での、newハンドラ導入の理由としてD&Eで挙げられている。
0450デフォルトの名無しさん
2008/01/18(金) 23:49:49それはそれで効率悪そう
0451デフォルトの名無しさん
2008/01/18(金) 23:53:41本来は、なんでもかんでもあちこちでチェックは必要なのだよ。
だから仕事用じゃなくて、自分限定とか知り合い限定のプログラムで
「例外おきた?ワリィワリィ、後で直すわ」ですむプログラムがなんと
心地よいことよ。しかもRubyで書いてたら最高。
0452デフォルトの名無しさん
2008/01/19(土) 08:45:10あほやねぇ。。ExceptionalC++読んでから一年くらい例外モデルで
コードを書きまくってみな。まったくありがたくもない概念がなぜ
近年の言語にはみな導入されているのかが見えてくるはず。
0453デフォルトの名無しさん
2008/01/19(土) 09:22:400454デフォルトの名無しさん
2008/01/19(土) 10:13:00ゼロ割とか。
0455デフォルトの名無しさん
2008/01/19(土) 10:30:16アセンブリにできないことはCPUにもできないわけで
0456デフォルトの名無しさん
2008/01/19(土) 12:18:510457デフォルトの名無しさん
2008/01/19(土) 12:31:400458デフォルトの名無しさん
2008/01/19(土) 13:09:15スマートポインタにオブジェクトの管理をさせておけば片付け処理は不要
ってMoreEffectiveC++に書いてあった
コンストラクタの例外なんて経験無いから書籍で補ったもんだけどな
0459デフォルトの名無しさん
2008/01/19(土) 13:11:08要らないぞ
メンバ変数も、またデストラクタに任せればいい。
class hoge
{
hoge() : p(new int), q(new int) {}
boost::scoped_ptr<int> p, q;
};
qの初期化で例外が投げられても、pはきちんと解放される。
0460デフォルトの名無しさん
2008/01/19(土) 13:22:140461デフォルトの名無しさん
2008/01/19(土) 13:25:030462デフォルトの名無しさん
2008/01/19(土) 13:31:570463デフォルトの名無しさん
2008/01/19(土) 13:41:04俺も、try とcatch はピンとこないよ。
0464デフォルトの名無しさん
2008/01/19(土) 13:54:190465デフォルトの名無しさん
2008/01/19(土) 13:56:360466デフォルトの名無しさん
2008/01/19(土) 14:02:290467デフォルトの名無しさん
2008/01/19(土) 14:05:55>割り込み処理
せめてコンピュータの常識くらい身につけようぜ
0468デフォルトの名無しさん
2008/01/19(土) 14:06:280469デフォルトの名無しさん
2008/01/19(土) 14:07:47お前偉そうなこと言っても無知じゃん >>467
0470デフォルトの名無しさん
2008/01/19(土) 14:08:460471デフォルトの名無しさん
2008/01/19(土) 14:11:290472デフォルトの名無しさん
2008/01/19(土) 14:16:55いや、割り込み処理とtry, catchを結び付けようとするのは、
非常識だといいたいのだけどなぁ
0473デフォルトの名無しさん
2008/01/19(土) 14:18:37存在そのものが矛盾しているから使わないだけ。
0474デフォルトの名無しさん
2008/01/19(土) 14:22:590475デフォルトの名無しさん
2008/01/19(土) 14:24:290476デフォルトの名無しさん
2008/01/19(土) 14:28:25何のドライバをかきましたか?
全部一人でかけましたか?
0477デフォルトの名無しさん
2008/01/19(土) 14:29:38APIはもう解ったし。
0478デフォルトの名無しさん
2008/01/19(土) 14:30:23(たくさんの)オーディオチップ、Etherコントローラ、Timer、UART、SDなどなど。。。
全部一人で書いたよ。
0479デフォルトの名無しさん
2008/01/19(土) 14:32:240480デフォルトの名無しさん
2008/01/19(土) 14:32:55してないってw
0481デフォルトの名無しさん
2008/01/19(土) 14:37:51全部一人なんてw
いったい何歳なんだ?w
今は平成だぞw
0482デフォルトの名無しさん
2008/01/19(土) 14:40:480483デフォルトの名無しさん
2008/01/19(土) 14:42:16何があり得ないんだ?
割と普通じゃないの
0484デフォルトの名無しさん
2008/01/19(土) 14:44:040485デフォルトの名無しさん
2008/01/19(土) 14:44:37LinuxとBSDのドライバしか見たことないんでよく知らないんだが。。
あとどうでもいいけどQt、wxともに例外は投げてこないよね確か。
0486デフォルトの名無しさん
2008/01/19(土) 14:45:48そういやC++のスレだったなw
Symbianとかそうなんじゃない?使ったことないけど。
0487デフォルトの名無しさん
2008/01/19(土) 14:46:050488デフォルトの名無しさん
2008/01/19(土) 14:46:15流用してんだろ?既存類似のプログラムから。
0489デフォルトの名無しさん
2008/01/19(土) 14:49:22(組込み用語の偽装なw)
0490デフォルトの名無しさん
2008/01/19(土) 14:49:32ドライバって、チップ依存だから、毎回チップの仕様書よみながら書く必要があるのよ。
チップの種類によってドライバの構造は似ているというのはあるけど。
0491デフォルトの名無しさん
2008/01/19(土) 14:50:00なるほど盲点ですた。確かにそうでなきゃおかしいなww
トン
0492デフォルトの名無しさん
2008/01/19(土) 14:52:000493デフォルトの名無しさん
2008/01/19(土) 14:52:36面白くない文章は、草を生やしても面白くならない
0494デフォルトの名無しさん
2008/01/19(土) 14:55:31こりゃまいったw
0495デフォルトの名無しさん
2008/01/19(土) 14:58:10面白いスレでも逝けば?
0496デフォルトの名無しさん
2008/01/19(土) 14:59:58Mac OS X の IOKit は Embedded C++
0497デフォルトの名無しさん
2008/01/19(土) 15:16:58調べたらそうみたいですね。スゲエ。
0498デフォルトの名無しさん
2008/01/19(土) 15:42:260499デフォルトの名無しさん
2008/01/19(土) 16:36:28Qtの中でbad_allocが起きたらそのままやってくる
0500デフォルトの名無しさん
2008/01/19(土) 16:40:30そりゃそうだが。。それはQtが投げてるとは言わないと思うんですがどうなんでしょう。
0501デフォルトの名無しさん
2008/01/19(土) 16:56:19感じで・・外から見たらQtのthrowかbad_allocかの違いはあんま関係ないかなと。
そうこと聞いてんじゃないんだっけ?
0502デフォルトの名無しさん
2008/01/19(土) 17:08:50最近のWindowsのユーザーモードドライバがC++で書ける。
IUnknownとか使うとってもCOMだし、見かけはただのDLLのようだ。
ドライバなんて1個も書いたことないけど。
0503デフォルトの名無しさん
2008/01/19(土) 17:46:38おおすいません。
例えば、MFCだとCMemoryExceptionとかCFileExceptionとかフレームワーク独自の例外投げてくる
じゃないすか、でユーザは当然それをキャッチすることが求められると。
Qt、wxとかはそういうライブラリ内部のエラー処理のための独自の例外は投げませんよね確か、って事を
言いたかっただけです。
みなさんQtとかwx使う時bad_allocはcatchしてます?僕は今まで完璧スルーですたお。。。スマソ
あとFirefoxも確か例外は使ってなかったような。。
>>502
ヘェーWindowsスゴイっすね。。
0504デフォルトの名無しさん
2008/01/19(土) 18:30:460505デフォルトの名無しさん
2008/01/19(土) 18:54:43感じだよね。
>あとFirefoxも確か例外は使ってなかったような。。
前見たmozillaのコーディング規約はすごかったなあ。あらゆるコンパイラで
動かそうとすると例外・テンプレートは禁止らしい。その他も色々あって
もうC++じゃないじゃんみたいな。。俺はVCとgccくらいで動けばいいや
0506デフォルトの名無しさん
2008/01/19(土) 20:09:00MSってこれだから嫌なんだよ
なんでもかんでもMSルールで染め上げようとするんだもの
0507デフォルトの名無しさん
2008/01/19(土) 20:54:08std::exceptionが確固としていたとも思えないけどな。
0508デフォルトの名無しさん
2008/01/19(土) 20:57:02C++の型システムがしょぼいから仕方ない気もすこしする
0509デフォルトの名無しさん
2008/01/19(土) 21:01:55どーせSTLにGUI支援なんか微塵もないんだし。
0510デフォルトの名無しさん
2008/01/19(土) 21:09:50/\ /|
/ /| \/ |(\ /)
/ / | \|( ゚ー゚) <全力でGCCを捨てVCに移行せよ
/ / | __〃`ヽ 〈_
/ γ´⌒´-−ヾvーヽ⌒ヽ
//⌒ ィ mfc `i´cli ); `ヽ
// ノ^ 、___¥__人 |
/ ! ,,,ノ爻\_ _人 ノr;^ > )
/ ( <_ \ヘ、,, __,+、__rノ/ /
ヽ_ \ )ゝ、__,+、_ア〃 /
ヽ、___ ヽ.=┬─┬〈 ソ、
〈J .〉、| |, |ヽ-´
/"" |ATL|: |
レ :|: | リ
/ ノ|__| |
↑ /| ,, ソ ヽ )
\_/ .,ゝ ) イ ヽ ノ
y `レl 〈´ リ
/ ノ | | .
l / l;; |
〉 〈 〉 |
/ ::| (_ヽ \、
(。mnノ `ヽnm
0511デフォルトの名無しさん
2008/01/19(土) 21:16:14まーMFCに採用する意味はないよねー
0512デフォルトの名無しさん
2008/01/19(土) 21:18:540513デフォルトの名無しさん
2008/01/19(土) 21:36:43関数のラップが薄いから、その気になれば
Win32API直書きの勉強もできるのが、MFCのメリットじゃないかと。
0514デフォルトの名無しさん
2008/01/19(土) 22:41:34CおよびC++の人気は変わらず
http://blog.japan.zdnet.com/dp/a/000419.html
ここ十年でいろんな言語が出てきたけど、やっぱC/C++がいいやという流れに
なりつつある
0515デフォルトの名無しさん
2008/01/19(土) 22:50:07インスタンス作った後にGetLastError呼べって…なにそれ
0516デフォルトの名無しさん
2008/01/19(土) 22:52:560517デフォルトの名無しさん
2008/01/19(土) 22:57:070518デフォルトの名無しさん
2008/01/20(日) 00:18:12まあシリコンバレーから見たら日本全体が奴らが作ったもの使って
仕事してる下請みたいなもんだからな
0519デフォルトの名無しさん
2008/01/21(月) 06:28:13みたいなもん,じゃなくてその通りなわけだが.
そして俺は孫請けなわけだが.
0520デフォルトの名無しさん
2008/01/21(月) 13:38:42日本全体がシリコンバレーって洒落かよw
確かに国内はシリコンが豊富だが‥‥‥
0521デフォルトの名無しさん
2008/01/21(月) 13:51:260522デフォルトの名無しさん
2008/01/21(月) 13:58:050523デフォルトの名無しさん
2008/01/21(月) 13:58:450524デフォルトの名無しさん
2008/01/21(月) 14:01:31今はそうでもない。
0525デフォルトの名無しさん
2008/01/21(月) 14:17:42日本語でおk
0526デフォルトの名無しさん
2008/01/21(月) 16:47:36その言葉は、519,518にも言いたい
0527デフォルトの名無しさん
2008/01/21(月) 17:36:280528デフォルトの名無しさん
2008/01/22(火) 05:09:490529デフォルトの名無しさん
2008/01/22(火) 07:27:23メモリーリークなんかよりはるか深刻な不具合だ。
0530デフォルトの名無しさん
2008/01/22(火) 08:27:37上司.ヅラ = true;
0531デフォルトの名無しさん
2008/01/22(火) 13:08:35会社.解雇(俺)
0532デフォルトの名無しさん
2008/01/22(火) 20:21:000533デフォルトの名無しさん
2008/01/23(水) 01:22:51会社.一生窓際(俺)
0534デフォルトの名無しさん
2008/01/23(水) 01:39:39羨ましい。
俺と変わってくれ。
0535デフォルトの名無しさん
2008/01/23(水) 01:42:490536デフォルトの名無しさん
2008/01/23(水) 11:57:360537デフォルトの名無しさん
2008/01/23(水) 12:09:280538デフォルトの名無しさん
2008/01/23(水) 13:15:51C++の例外が使い物にならないのだ。
0539デフォルトの名無しさん
2008/01/23(水) 13:53:33エラー コードを返したり、グローバル変数の設定したりすることと
同レベルだと思ってはいけません。例外は、それを取り巻くコードの
構造と意味を、根底から覆します。例外は、プログラムの実行時
セマンティックを一時的に繋ぎ変え、通常実行しているコードを迂回し、
こういう状況でなければ決して実行されないコードを動作させます。
例外は、エラー状態を認知させ、プログラムの死という罰則を用いて
その状態を改めようとします。
このように、例外には単純なエラー処理を超えた特性があります。
これらの特性を必要としない、理解しない、あるいは文書化したく
ないなら、例外をスローしてはいけません。
例外以外のエラー処理技法を探してください。
0540デフォルトの名無しさん
2008/01/23(水) 13:59:41catchして握り潰すだけじゃね?
0541デフォルトの名無しさん
2008/01/23(水) 14:07:330542デフォルトの名無しさん
2008/01/23(水) 14:26:04戻り値判定 無理して使えば、開発者の1人判定忘れで大騒ぎ。
0543デフォルトの名無しさん
2008/01/23(水) 14:48:150544デフォルトの名無しさん
2008/01/23(水) 14:49:040545デフォルトの名無しさん
2008/01/23(水) 15:55:500546デフォルトの名無しさん
2008/01/23(水) 15:56:580547デフォルトの名無しさん
2008/01/23(水) 15:58:300548デフォルトの名無しさん
2008/01/23(水) 16:27:260549デフォルトの名無しさん
2008/01/23(水) 16:34:40STLはどうかな
0550デフォルトの名無しさん
2008/01/23(水) 16:50:39そんな問答はナンセンス
明らかに有害なので使うべきではない
0551デフォルトの名無しさん
2008/01/23(水) 16:58:47STLにシェアは無くても良い。
とにかく、charでなくてstringを使うし、vectorも絶対使う。
0552デフォルトの名無しさん
2008/01/23(水) 17:01:420553デフォルトの名無しさん
2008/01/23(水) 17:04:38new char[size]
みたいにしてる?
それともvector使ってる?
0554デフォルトの名無しさん
2008/01/23(水) 17:05:59char *として参照するなら、string::c_ptr() があるし。
0555デフォルトの名無しさん
2008/01/23(水) 17:26:360556デフォルトの名無しさん
2008/01/23(水) 17:27:530557デフォルトの名無しさん
2008/01/23(水) 17:28:110558デフォルトの名無しさん
2008/01/23(水) 17:30:04vector
>>554
c_str()のことなら、返り値はconst char*だ。書き込みは保証されない。
0559デフォルトの名無しさん
2008/01/23(水) 17:30:080560デフォルトの名無しさん
2008/01/23(水) 17:31:060561デフォルトの名無しさん
2008/01/23(水) 17:32:490562デフォルトの名無しさん
2008/01/23(水) 17:54:59長さは別途保持しているから、別にどうもしない。
0563デフォルトの名無しさん
2008/01/23(水) 18:17:370564デフォルトの名無しさん
2008/01/23(水) 20:15:420565デフォルトの名無しさん
2008/01/23(水) 20:16:460566デフォルトの名無しさん
2008/01/23(水) 20:23:21stringwwwwwwwwwww
一回vectorと速度比較してみろって。
0567デフォルトの名無しさん
2008/01/23(水) 20:56:150568デフォルトの名無しさん
2008/01/23(水) 21:25:160569デフォルトの名無しさん
2008/01/23(水) 21:41:25STLのヘッダ類の前に
#define char wchar_t
0570デフォルトの名無しさん
2008/01/23(水) 21:52:380571デフォルトの名無しさん
2008/01/23(水) 23:48:150572デフォルトの名無しさん
2008/01/24(木) 00:11:550573デフォルトの名無しさん
2008/01/24(木) 00:22:41そもそも、MFCの前身が作られた時期には、STLは未だ承認されていない。
0574デフォルトの名無しさん
2008/01/24(木) 00:27:350575デフォルトの名無しさん
2008/01/24(木) 00:33:170576デフォルトの名無しさん
2008/01/24(木) 01:41:10美しさと効率は、必ずしもいっちしない
0577デフォルトの名無しさん
2008/01/24(木) 01:59:500578デフォルトの名無しさん
2008/01/24(木) 06:03:34アクセスするだけでも、ただの配列の2倍以上は遅い。
at()だとさらに遅い。
DEBUGビルドだとさらに10倍くらい遅い。
何でもかんでもvector使うのはさすがにアレだな
0579デフォルトの名無しさん
2008/01/24(木) 07:43:430580デフォルトの名無しさん
2008/01/24(木) 12:26:29んなぁーこたない。
0581デフォルトの名無しさん
2008/01/24(木) 13:39:31そうだとしてもSTL完成した時点で揃えりゃいいだろ?
0582デフォルトの名無しさん
2008/01/24(木) 15:36:44こんな感じで時間計ると、Debugビルド(最適化なし)で100倍くらい差が付く。
最適化ありのReleaseビルドでも3倍は差がつくんだが、何か俺が間違ってるのか?
std::vector<int> vec(2);
int ary[2];
DWORD time1, time2;
ary[0] = 1;
vec[0] = 1;
time1 = GetTickCount();
for(int i=0; i < 10000000; i++) {
ary[0] += 1;
ary[1] = ary[0];
}
time1 = GetTickCount() - time1;
time2 = GetTickCount();
for(int i=0; i < 10000000; i++) {
vec[0] += 1;
vec[1] = ary[0];
}
time2 = GetTickCount() - time2;
0583デフォルトの名無しさん
2008/01/24(木) 16:09:57何故MFC3.0以上にもなって互換性犠牲にして使われてもいないSTLに擦り寄る必要があるんだ?
0584デフォルトの名無しさん
2008/01/24(木) 16:10:51#include <iostream>
#include <vector>
using namespace std;
main(){
std::vector<int> vec(2);
int ary[2];
DWORD time1, time2;
ary[0] = 1;
vec[0] = 1;
time1 = GetTickCount();
for(int i=0; i < 10000000; i++) {
ary[0] += 1;
ary[1] = ary[0];
}
time1 = GetTickCount() - time1;
time2 = GetTickCount();
for(int i=0; i < 10000000; i++) {
vec[0] += 1;
vec[1] = ary[0];
}
time2 = GetTickCount() - time2;
cout<<time1<<" "<<time2;}
0585デフォルトの名無しさん
2008/01/24(木) 16:12:26おまいばかじゃね?
M$がMFCを亡き者にしてドトネトに逝こうしてるのに。
MFC終焉。
0586て
2008/01/24(木) 16:19:070587デフォルトの名無しさん
2008/01/24(木) 16:20:280588デフォルトの名無しさん
2008/01/24(木) 16:23:53劣化パチモン
0589デフォルトの名無しさん
2008/01/24(木) 18:54:17Visual C++か?
それならSTLの仕様ではなく、実装の問題。
セキュリティ対策で範囲チェックが入るから、素の配列に比べて遅くなる。
_SECURE_SCLを0に定義しておけば範囲チェックは無くなる。
また、&vec[0]でポインタを得て操作するという手もある。
俺もVC++ 9でそのコードをコンパイルしてみたが、
/O2や/Oxだと配列のループは消滅する。
ダミーの関数呼出を入れて、_SECURE_SCL 0定義してやれば/O2や/Oxで両者互角だった。
Cの関数と違って_sみたいな見た目の違いが出ないから見た目わからないけど、
C++ライブラリも安全対策へ注力しているのが近頃のVC++。
0590デフォルトの名無しさん
2008/01/24(木) 18:57:35なるほど、そういうことだったのね。
0591デフォルトの名無しさん
2008/01/24(木) 19:11:17なんでもかんでもMSルールで染め上げようとするんだもの
0592デフォルトの名無しさん
2008/01/24(木) 19:28:57やってもやらなくても叩かれるMS涙目w
0593デフォルトの名無しさん
2008/01/24(木) 21:37:050594デフォルトの名無しさん
2008/01/25(金) 01:00:08自分は直接試してないから強くは主張できないけどね。
でも、STLってかなりよくできてると聞いたけど最適化についてはわからない。
案外、ライブラリによってはIntel C++と相性が悪いかもしれないどろうけど
どうだろ?
少なくともValarrayよりはましだと思うけど。
0595デフォルトの名無しさん
2008/01/25(金) 01:02:110596デフォルトの名無しさん
2008/01/25(金) 01:37:520597デフォルトの名無しさん
2008/01/25(金) 08:35:55プロローグ?プロログ?どっちが正しいん?
0598デフォルトの名無しさん
2008/01/25(金) 08:42:48Vi$taはガカーリだたので、Win7頑張って。
0599デフォルトの名無しさん
2008/01/25(金) 23:28:520600デフォルトの名無しさん
2008/01/25(金) 23:52:230601デフォルトの名無しさん
2008/01/26(土) 01:49:08それだけプログラマが当てにされない現実。
0602デフォルトの名無しさん
2008/01/26(土) 02:12:16プロログ
0603デフォルトの名無しさん
2008/01/27(日) 13:07:15>>601
at()は範囲チェックで例外、operator[]はassertじゃなかったっけ。
0604デフォルトの名無しさん
2008/01/27(日) 13:46:58なるほどね。メモリ保護に任せると割当単位によってはSEGVにならないし、reserveして書くみたいな馬鹿コードも検出できるからまあ確実ではあるか>assert
0605デフォルトの名無しさん
2008/01/27(日) 23:57:36その手のテストは最適化効いてコード消されてて速くなってる場合もあるぞー。
実際俺のとこだとそのintの配列はReleaseだとアセンブリはごっそりなく
なっててループしてない。
vectorの方はoperatorとか通るからか、勝手な最適化は効かないでご丁寧に
ループしてる。
0606デフォルトの名無しさん
2008/01/28(月) 00:11:05並んでいることが保障されていることでしょ。
だから、普通はループ処理とかで、vec[0]=とかやらないって。
ポインタ取り出して操作するに決まってるじゃない。
0607デフォルトの名無しさん
2008/01/28(月) 01:17:39参照されないint配列のfor操作とかは最適化されて消える。
後ろで配列内の値を参照(sum取って表示とか)するようにすると同一になるはず。
というか試してみたがvectorとint配列の[]で速度に差は出ない。
0608デフォルトの名無しさん
2008/01/28(月) 09:11:37でしたっけ?
0609デフォルトの名無しさん
2008/01/28(月) 10:01:060610デフォルトの名無しさん
2008/01/28(月) 11:29:06いいえ。
0611デフォルトの名無しさん
2008/01/28(月) 14:43:240612デフォルトの名無しさん
2008/01/28(月) 22:23:34string 7813
vector 1594
char[] 1578
こんな感じだった
0613デフォルトの名無しさん
2008/01/28(月) 22:36:13stringの reference operator[](size_type _P0)
{if (_Len < _P0 || _Ptr == 0)
return ((reference)*_Nullstr());
_Freeze();
return (_Ptr[_P0]); }
vectorの[] reference operator[](size_type _P)
{return (*(begin() + _P)); }
0614デフォルトの名無しさん
2008/01/30(水) 01:52:50いっしょにいたいとねがうように
それはほんのいっしゅんで
ひかるほしにかわってゆく
だれよりもいちばんちかくで
えがおのゆくへをだきしめたい
めぐりあえたこのきせき
ずっとずっとゆめのなかからさめないように
0615デフォルトの名無しさん
2008/01/30(水) 02:02:010616デフォルトの名無しさん
2008/01/30(水) 03:05:170617デフォルトの名無しさん
2008/01/30(水) 04:04:140618デフォルトの名無しさん
2008/02/01(金) 18:58:090619デフォルトの名無しさん
2008/02/02(土) 18:52:300620デフォルトの名無しさん
2008/02/02(土) 21:46:17シンボル名単体か、フルパッケージ名をタイプするしか選択肢がない言語に戻ると
ちょっとキツい。
結果的に、同時に使いそうなクラスのこと考えて結構長いクラス名になりがちな気がするし。
0621デフォルトの名無しさん
2008/02/02(土) 23:50:040622デフォルトの名無しさん
2008/02/02(土) 23:55:40マクロ定義すれば、なんとかなるんじゃね。
0623デフォルトの名無しさん
2008/02/03(日) 02:44:54具体的にはネットワークプログラミングで受け取ったパケットの先頭8ビットを見て処理を分けるような場合。
CやC++だったら、構造体と、関数ポインタがあるから、例え分岐条件が1万あったとしても
for (int i = 0; i < sizeof(構造体A); i++) {
if (構造体A[i] == receiveData) {
構造体A[i].処理();
}
}
ってかなり短く表現できるじゃん?これって他の言語だとどうやるんだ?
スレ違いかもしれんが、前々から疑問だった。
0624623
2008/02/03(日) 02:46:52if分の比較は以下に修正。、
if (構造体A[i].data == receiveData) {
0625デフォルトの名無しさん
2008/02/03(日) 03:07:24Windowsメッセージのように数千あるメッセージをswitch/caseで処理するのだ。
これが最速。後は好みでその上にクラスでもかぶせりゃいい。
0626623
2008/02/03(日) 03:42:34返事ありがとう。私もJavaではif/elseもしくはswitch/caseで書いている。
でもその方法、最速なのはわかるけど、コード量増えるよね。
コピペミスとかもおきやすいし。
条件が増えてcaseの後にダラダラと条件がつくと理解しにくいと思う。
構造体で条件を一元管理すると、Excelからコピペで持ってこれるし、
ソースで見ても、きれいで見やすいし
条件が一個増えたとしてもすぐに対応可能だから、
なんで構造体使えないのかと思うわけですよ。
条件が一個増えた場合↓
if ((構造体A[i].data == receiveData) && (構造体A[i].state == state)){
100以上ある、switch/caseで条件の数がcaseごとに違うのとかって
バグっているんじゃないかと不安になる。
0627デフォルトの名無しさん
2008/02/03(日) 03:55:500628デフォルトの名無しさん
2008/02/03(日) 04:21:33for (int i = 0; i < クラスA.length; i++) {
if (クラスA[i].isEqual(receiveData)) {
クラスA[i].処理();
}
}
0629デフォルトの名無しさん
2008/02/03(日) 04:25:02コード量になるはずじゃないのか?
0630デフォルトの名無しさん
2008/02/03(日) 04:26:340631デフォルトの名無しさん
2008/02/03(日) 04:39:270632デフォルトの名無しさん
2008/02/03(日) 06:53:480633623
2008/02/03(日) 11:30:34クラスAの配列ってことは、receiveData と比較する、
クラスAのインスタンス変数dataに値を設定する箇所が必要だよね?
あと、呼ばれるメソッド名を、きれいにクラスに渡せる?
>629
struct test
{
int a[2];
void (*pf[])();
};
const struct test test1[] = {
{0x0001, funcPointer1},
{0x0002, funcPointer2},
{0x0003, funcPointer3}
};
分岐条件が増えたとしても
const struct test test1[] = {
{0x0001, 0x0003, true, false, funcPointer1},
{0x0002, 0x0003, true, false, funcPointer2},
{0x0003, 0x0003, true, false, funcPointer3}
};
どんどん増えていくけど、私には一覧で見えるのですごく見やすい。
0634デフォルトの名無しさん
2008/02/03(日) 12:07:380635デフォルトの名無しさん
2008/02/03(日) 12:22:050636デフォルトの名無しさん
2008/02/03(日) 12:25:23LL 拡張専用言語として使うなら C++ より C の方が効率的だし活用範囲が広い
0637デフォルトの名無しさん
2008/02/03(日) 12:25:510638デフォルトの名無しさん
2008/02/03(日) 12:35:40REPL が備わっていたら良いんだけどね。
0639デフォルトの名無しさん
2008/02/03(日) 13:57:55そもそも、スタティック領域を持つことが
許されているんだから、誰かがグローバル域に
オブジェクト参照持ち続けてたら、どんどんメモリーを
圧迫していく。
最悪なことにJavaはメモリー管理を意識しなくて良いような
嘘がまかり通って、知的障害者がぼこぼこオブジェクトを作っては
放置していく。
はっきり言ってC/C++の方がよっぽどまし。
素人を使ってWEBアプリとか作るって頭おかしいでしょ(w
0640デフォルトの名無しさん
2008/02/03(日) 14:01:23C/C++の関数ポインターってvirtualで表現できるだろ
根本的に抽象化してないオブジェクト設計がおかしい
0641デフォルトの名無しさん
2008/02/03(日) 14:32:150642デフォルトの名無しさん
2008/02/03(日) 14:33:530643デフォルトの名無しさん
2008/02/03(日) 14:46:48他の言語を貶しても誰も褒めてくれないよ。
不服なら、その言語スレで、解決方法を提案してみなされ。
0644デフォルトの名無しさん
2008/02/03(日) 15:20:55interface func {
public abstract void func();
}
class test {
public int data;
func func;
public test(int data, func func){
this.data = data;
this.func = func;
}
}
class func1 implements func {
public void func() {}
}
final class funcs {
static final test[] test1 = {
new test(0x001, new func1()),
new test(0x002, new func2()),
new test(0x003, new func3())
};
}
0645デフォルトの名無しさん
2008/02/03(日) 15:58:05中高生向け学習用言語で誰でも書けるhtml出力コードを安い労働単価で
書き続けていてください。
0646デフォルトの名無しさん
2008/02/03(日) 16:04:42中高生相手にムキになるなよ。
0647デフォルトの名無しさん
2008/02/03(日) 16:15:320648デフォルトの名無しさん
2008/02/03(日) 16:20:23http://dolittle.eplang.jp/index.php?Logo%BE%F0%CA%F3%BC%BC
>LOGOは過去の言語です。ロゴ坊もすでに開発を終えていますので、
>興味のある方は後継のプログラミング言語「ドリトル」など新しい言語をお使いください。
過去の言語になってるじゃねーかwww
0649デフォルトの名無しさん
2008/02/03(日) 16:22:48ドリトルを勧める評価者の評価ってどうなんだろう。
0650デフォルトの名無しさん
2008/02/03(日) 16:33:31しらねwww
0651デフォルトの名無しさん
2008/02/03(日) 16:38:13OSのあらゆる機能に容易にアクセスできるわけで。
実際ここ数十年は結局、オブジェクト指向とか関数型とか簡単とかを
売り文句にした一山いくらの言語がはやりすたりしただけで、どれも
C/C++の薄いラッパーに過ぎないね。
0652デフォルトの名無しさん
2008/02/03(日) 16:41:12ラッパーも要らんし。確かに C は OS 開発言語として不動の位置を占めているが、
C++ は C があるからいつ居なくなっても困らんな。
0653デフォルトの名無しさん
2008/02/03(日) 16:46:51変な意見も、無知が見れば結構まともっぽく見えちゃうから危険だよな。
0654デフォルトの名無しさん
2008/02/03(日) 16:47:27Lisp最強にするには、まずはLispマシンはやらせるとっからじゃね。
0655デフォルトの名無しさん
2008/02/03(日) 16:55:04だんだん「広く深く濃く」使われていくうちに、現実をちゃんと見なきゃいけなくなって
結局はどんどん複雑怪奇になっていってる。
「俺が世界の支配者ならこの世は理想郷に限りなく近いのに」と思ってた思春期のボーヤが、
働き始めて数年経ってようやく、自分がツバ吐きかけてたものがいかに「現実を切り抜ける」ために
有効だったか思い知り始めたという感じ。
0656デフォルトの名無しさん
2008/02/03(日) 16:59:46C/C++以外はどれもラッパーが必要になる。
ただまあ難しい事やらない限りは言語なんてどれでもできること同じだし、
なんつーか言語なんてOSとかアルゴリズムを利用するためのインターフェースに
過ぎないんだよね。
0657デフォルトの名無しさん
2008/02/03(日) 17:00:40そこで妥協したら負けかなと思ってる。
0658デフォルトの名無しさん
2008/02/03(日) 17:07:18それはそうだけどさ、デモ用の簡単なツールとか、自分が楽するための
ツール作成にはLLって限りなく便利。で、Perlはもともとそのための
言語じゃなかったのだろうか。
Javaが目指した理想は素晴らしいものだったけど。
0659デフォルトの名無しさん
2008/02/03(日) 17:11:43それでもC++よりは余計な機能が削ぎ落とされてていいと思う
0660デフォルトの名無しさん
2008/02/03(日) 17:18:08WindowsはPASCAL呼び出しじゃね。
0661デフォルトの名無しさん
2008/02/03(日) 17:40:56君の思うC++の余分な機能ってなによ?
0662デフォルトの名無しさん
2008/02/03(日) 17:46:52せいぜいC++とPerlくらいでいいよ。
0663デフォルトの名無しさん
2008/02/03(日) 17:52:35余計な機能は使わなければいい。C++はそれができる。
たとえば、パフォーマンスが理由で特定のメンバ関数を仮想関数にしたくないならそれが自由にできる。
文字列処理も、パフォーマンスを理由に固定長のバッファにしたいとか、好きなレベルの処理を自由に実装できる。
自由なんだ。
0664デフォルトの名無しさん
2008/02/03(日) 17:58:12Perlはなぁ・・・本当に自分しかソースさわらないもの限定ならいいけどさw
0665デフォルトの名無しさん
2008/02/03(日) 18:08:13C++というものの性格上しょうがないとはいえ、まずdelete
ようはガベージコレクションのありなしで、これを解決するには
ライブラリの知識を得る必要がある
そして、STLでも頻繁に使われる演算子オーバーロード
これも可読性を下げる
個別にあげつらうことは出来ないが、複雑怪奇な文法のせいで
IDEのエラー検出機能や補完機能が制限されるのもマイナス
0666デフォルトの名無しさん
2008/02/03(日) 18:09:47>これも可読性を下げる
バカまるだし
0667デフォルトの名無しさん
2008/02/03(日) 18:14:11typedef追っかけてくと最終的に__stdcallに辿り着くよ
0668デフォルトの名無しさん
2008/02/03(日) 18:16:09stdcall
引数のスタックの積み上げは右から左=C(cdecl)
スタックポインタの引き戻しはサブ側で行う=PASCAL∴可変長引数は×
0669デフォルトの名無しさん
2008/02/03(日) 18:17:16標準入出力の<<などは、意味を知ってるから便利に思えるものの、
初見で見たら多くの人は戸惑うのではないか?
演算子オーバーロードの乱用を誘発する悪しき例とも言える
演算子オーバーロードの乱用で可読性が下がるってのは良く言われてること
馬鹿だけが言ってるわけではない
0670デフォルトの名無しさん
2008/02/03(日) 18:17:39演算子のオーバーライドが可読性を下げるというのは、使い方間違ってないか?。
deleteもガベージコレクタが無いから、ライブラリが補ってるって事で、余計な機能ではない。ライブラリの選択で必要な機能だけを追加してるのだ。
0671デフォルトの名無しさん
2008/02/03(日) 18:19:31逆に言えば、ガーベッジコレクションがないということで、deleteや
ライブラリのポインタの機能など余計な機能をくっつけざるを
得なかったってことだろ
0672デフォルトの名無しさん
2008/02/03(日) 18:26:460673デフォルトの名無しさん
2008/02/03(日) 18:28:29実際不自由してないし
0674デフォルトの名無しさん
2008/02/03(日) 18:30:02GCがついてて遅すぎたの。実用性を重視してGCを外したの。で、一番使われる
ようになったの。
コンピュータ速くなってきたからJavaはうっかりGCで設計しちゃったの。
でも、また結局遅い遅いと叩かれちゃったの。
だからね、言語みたいな基本的なところは速くなくっちゃいけないの。
0675デフォルトの名無しさん
2008/02/03(日) 18:30:03ガベージコレクションってよしあしじゃない?プログラマが本当の意味で、
メモリを管理できない。スマートポインタで十分なように思う。
で、プログラマって本当にいわれるようにメモリが管理できないもの?
メモリリークで痛い目見た経験はあるけど。本当に数えるくらいしかない。
0676デフォルトの名無しさん
2008/02/03(日) 18:34:57そんな経緯はどうでもいい
C++が今現在余計な機能を持っていると思うことに変わりはない
>>675
例えば、スマートポインタも、auto_ptr、shared_ptr、weak_ptrといろいろあって
それぞれの特徴、使い方を覚えなくてはいけない
その時点でかなり「余計な機能」だと思う
正直言って、weak_ptrだけで十分
あと、良し悪しなのは当然で、余計かどうかは個人個人の主観でしかない
もともと好き嫌いを話してるだけなのだからこれは当たり前
0677デフォルトの名無しさん
2008/02/03(日) 18:34:59System.out.print("Hello");
より
cout << "Hello";
でおk
0678デフォルトの名無しさん
2008/02/03(日) 18:38:04まあ確かに<<は便利な点もあると思う
しかし、<<の意味がわかってる今だからいいだけで、
最初は戸惑うだろうし、真似して変な文脈で<<を
使い出す馬鹿が続出するという欠点もある
0679デフォルトの名無しさん
2008/02/03(日) 18:46:54二つを組み合わせたりするから意味わからん
0680デフォルトの名無しさん
2008/02/03(日) 18:54:51経緯を知らないからお前の知識が浅いんだと思う
0681デフォルトの名無しさん
2008/02/03(日) 18:58:35ちなみに、C++と設計と進化は読んでて、ガーベッジコレクションの
経緯は知っていたが
0682デフォルトの名無しさん
2008/02/03(日) 18:59:01それはGCとか余計な機能が無いって事ではないのか?
0683デフォルトの名無しさん
2008/02/03(日) 19:00:08どっちを余計と捉えるかという主観の問題だね
量的にも後者にまつわるルールの方が多いと感じるが
0684デフォルトの名無しさん
2008/02/03(日) 19:00:520685デフォルトの名無しさん
2008/02/03(日) 19:04:25新しい言語作るからどうしようって言うんならわかるが、C++はなしだし、
Javaはありだしって事実について言いあってなにを発見したいんだ?
0686デフォルトの名無しさん
2008/02/03(日) 19:29:25GC をプログラマの負担低減だけで捕らえるとそうなる
スループットの向上やフラグメンテーション対策と考えると
必要性が見える。なんで鯖向けに向いているかも
0687デフォルトの名無しさん
2008/02/03(日) 19:38:26今はauto_ptrしか無いぞ。
あと次の標準ではauto_ptrはdeprecatedになるから安心しろ。
0688デフォルトの名無しさん
2008/02/03(日) 19:42:170689デフォルトの名無しさん
2008/02/03(日) 20:04:030690デフォルトの名無しさん
2008/02/03(日) 20:07:18なるほど。オモシロイ。
http://edocs.beasys.co.jp/e-docs/jrockit/geninfo/diagnos/tuning_tradeoffs.html
0691デフォルトの名無しさん
2008/02/03(日) 20:10:03http://www.ibm.com/developerworks/jp/java/library/j-jtp01274/
0692デフォルトの名無しさん
2008/02/04(月) 09:12:170693デフォルトの名無しさん
2008/02/04(月) 10:54:06叫んでいたんですが,それってクロージャで代用
できたりしませんか?
C++の次の規格でにラムダ式とクロージャが使えるように
なったら,「C++最高」って叫んでもいいですか?
0694デフォルトの名無しさん
2008/02/04(月) 11:59:21できません。
0695デフォルトの名無しさん
2008/02/04(月) 22:03:030696デフォルトの名無しさん
2008/02/04(月) 22:15:230697デフォルトの名無しさん
2008/02/04(月) 23:28:25それだけでいいって言われたら、あなたは満足してそれだけで学ぶことをやめてしまう
だろうから、「それだけでは不十分」といってあげる。俺って、なんて優しいのだろう!
0698デフォルトの名無しさん
2008/02/04(月) 23:59:310699デフォルトの名無しさん
2008/02/05(火) 01:45:48C++ の代わりにその LL の実装言語 or 拡張言語をやっておくと良いよ
ま、大抵は C だけど
0700デフォルトの名無しさん
2008/02/05(火) 04:31:45それなりの経験があると、C++のノウハウが高いのでプロトタイプ作るのに
言語変える方がめんどくさいんだよな。
えーっとPerlでBase64はどうするんだったっけな・・CPANのなんかだっけ・・
より、OreBase64 b64(buf); b4.Decode();とか、えーっとRubyでソケットは
Socket.new(・・第一引数はSocket::AF_INETだっけ・・・あれ?selectとか
使えたんるんだっけRubyは?、えーっとよりOreSocket s; s.Connect("google");
とかになっちまうんだよな。
さらにプロトならGUIつけることも多いから困るんだよな。PerlでGUIか・・
VBの方がいいかな・・っつーとやっぱ、よいしょOreWindow w; w.Show();
ってやるんだよなあ。
昔、ノウハウとかライブラリが貧弱だったころはスクリプトよく使ってたん
だけど、最近はプロト作る用途でもほとんど必要なくなっちまったよ。
まあ俺みたいな10年選手のおっさんにはこういうやつ結構いるんだがさ。
0701デフォルトの名無しさん
2008/02/05(火) 05:21:58一つしかない。気がする。
0702デフォルトの名無しさん
2008/02/05(火) 05:32:160703デフォルトの名無しさん
2008/02/05(火) 06:33:13おっさんだから仕方ないとは思うけど。
察するにJavascriptの話だろ、693は。
0704デフォルトの名無しさん
2008/02/05(火) 06:45:310705デフォルトの名無しさん
2008/02/05(火) 06:52:420706デフォルトの名無しさん
2008/02/05(火) 07:01:580707デフォルトの名無しさん
2008/02/05(火) 09:39:31>>700のおっさんの言ってることは分かるなあ。
昔はよくC++と俺ライブラリで何でもやってた。
最近はC#と.NETで事足りてるから俺ライブラリ使わないけど、
.NET禁止環境に配布するときだけは引っ張りだすこともある。
0708デフォルトの名無しさん
2008/02/09(土) 19:55:14一般的な奴ってあるの?
0709デフォルトの名無しさん
2008/02/09(土) 20:44:19MFC
0710デフォルトの名無しさん
2008/02/09(土) 20:51:37mm版もあるようだが、わざわざmm版使うくらいならqtでいいような気もするけどw
0711デフォルトの名無しさん
2008/02/09(土) 21:45:510712デフォルトの名無しさん
2008/02/09(土) 22:22:130713デフォルトの名無しさん
2008/02/10(日) 09:30:18http://pc11.2ch.net/test/read.cgi/tech/1194158506/
0714デフォルトの名無しさん
2008/02/13(水) 01:03:27>>正直言って、weak_ptrだけで十分
shared_ptr使わないでweak_ptrだけ使うって・・・
boostのそれを指しているのならば意味が分からん。
誰か解説ヨロ。
0715デフォルトの名無しさん
2008/02/13(水) 02:22:39shared_ptrは悪くないだ、俺が悪いんだ、、、
0716デフォルトの名無しさん
2008/02/13(水) 11:04:51weak_ptrに汎用的な機能を持たせるって意味だろ
0717デフォルトの名無しさん
2008/02/13(水) 11:29:39自分で作ったの使ってるけど,標準的なのがあれば
そっち使おうと思って.
0718デフォルトの名無しさん
2008/02/13(水) 11:38:590719デフォルトの名無しさん
2008/02/13(水) 11:44:34良くネーよ、複雑になりすぎてまともに使える人間が居ない
挙句、オブジェクト指向がわかって無いからできないとか抜かすアホまで現れ始める始末だし。
そんな使い方したらC++はJava以下じゃねーかとか思いながら、そんなタコが現れるのも無理も無いと思うので
C#なりJavaなりにとっとと移行すべきだと思うのである。
>>717
どうやって作ったの?
代入演算子がアレなC++では無理があると思って諦めていた、ちょっと教えてくれ
0720デフォルトの名無しさん
2008/02/13(水) 11:53:10組み合わせて使う事を前提にした weak_ptr のみで一体何をしようというのだ、使い道つーか使い方ワカンネーよ
設定すら出来ないポインタに存在価値はあるのかwww
0721デフォルトの名無しさん
2008/02/13(水) 15:20:280722デフォルトの名無しさん
2008/02/13(水) 15:40:27悪い事は言わないからもっともっと使いこなしてみろ、使い方次第ではガベコレ方式より遥かに強力な shared_ptr/weak_ptr だ
その能力は、単なる生存管理にとどまらないという事を知るべきだ。
お前みたいなタコが増えてくるから、もうJavaでいいよなんて事になるんだよ。
0723デフォルトの名無しさん
2008/02/13(水) 17:38:310724デフォルトの名無しさん
2008/02/13(水) 18:02:220725デフォルトの名無しさん
2008/02/13(水) 18:03:290726デフォルトの名無しさん
2008/02/14(木) 00:02:19>>だから全部weak_ptrにして汎用的にするんだろ
意味がわからん。
weak_ptrはshared_ptrと対になって、尚且つ使い分ける事に
意味があるのに。もっと馬鹿にも分かるように説明してくれ。
0727デフォルトの名無しさん
2008/02/14(木) 00:13:42基本的にインスタンスは全部自動変数で、参照はweak_ptrで渡せば、
スコープで寿命が来ても参照が残らない。
0728デフォルトの名無しさん
2008/02/14(木) 00:14:59weak_ptrに統一されて、Javaが実装している参照のような
弱い参照を用いた実装になるってことじゃないかな
0729デフォルトの名無しさん
2008/02/14(木) 00:28:310730デフォルトの名無しさん
2008/02/14(木) 00:29:51特定のクラスのサブクラスしか格納できないboost::anyみたいなもの?
需要あると思うけど、ネーミングをするのが一番難しいと思う。
名前さえ決まれば、boostに追加されそうな気がしないでもない。
>>719
代入演算子じゃなくて、テンプレートコンストラクタでどうにか汁。
0731デフォルトの名無しさん
2008/02/14(木) 00:50:41「汎用的にする」の一例という解釈でOK?
「全部weak_ptrにして」のほうも解説よろ。
特に「全部」が何をさしているのか。
>728
Javaの弱参照は通常参照と区別して使用することに意義があるんじゃないの?
それが正しければshared_ptrと使い分けできない(統一された)weak_ptrに存在意義は
ないとおもわれ。
0732デフォルトの名無しさん
2008/02/14(木) 00:58:48C++の生ポインタが全部weak_ptrになっちゃって、あるweak_ptrをdeleteしたり、
参照してた自動変数がスコープアウトで消え去ったりした場合、
同じオブジェクトを参照してるweak_ptrがみんな0になるとちょい便利かも
みたいなはなしじゃないのかひょっとすると。
0733デフォルトの名無しさん
2008/02/14(木) 01:01:53正解
電波のスキルがうpしたねw
0734デフォルトの名無しさん
2008/02/14(木) 01:27:42どんだけランタイム情報が充実してんだよwww
0735デフォルトの名無しさん
2008/02/14(木) 01:46:35そのままでは無理では?捕捉される側のオブジェクトのデストラクタなりで
何らかの notification を行わないと
0736デフォルトの名無しさん
2008/02/14(木) 02:16:14そうだね。
被参照オブジェクトの側でweak_ptrのリストを持っていて、
デストラクタでweak_ptrに通知するしかないね。
0737デフォルトの名無しさん
2008/02/14(木) 02:34:000738デフォルトの名無しさん
2008/02/14(木) 02:40:18ぶっちゃけ俺言語にでも走った方が楽しいかなと思うときもある。
でもそういうのは仕事で使えないからなー。
0739デフォルトの名無しさん
2008/02/14(木) 09:43:48namespace pointer
{
class werk;
class share;
}
の様にアンダースコアで区切られ微妙な名前になるより、
長くても名前空間で区切られる方が有り難いと思うのは、俺だけ?
0740デフォルトの名無しさん
2008/02/14(木) 09:56:46uint8_tとかwchar_tとかと同じ類
0741デフォルトの名無しさん
2008/02/14(木) 10:05:56クラスと単純な型では違う気ガス。
基本的な型は、どこのスコープからでも見えた方がよいからね。
0742デフォルトの名無しさん
2008/02/14(木) 11:08:35作った人は、そういう基本的な型と同じカテゴリーだと考えていたのだろう。
好みの問題だから、どちらが正しいという論争に答えはないよ。
0743デフォルトの名無しさん
2008/02/14(木) 11:34:24脳みそばらして中身覗かせてくれよ
0744デフォルトの名無しさん
2008/02/14(木) 13:00:09違いを解説してくれ
0745デフォルトの名無しさん
2008/02/14(木) 14:15:23理解しているとはとても信じられないが、仮に理解しているとして、だ
まず、weakとsharedの意味を辞書で引いてどちらがふさわしいか考えてみろと
0746デフォルトの名無しさん
2008/02/14(木) 14:39:19ただのポインタ(char*など) + weak_ptrで循環参照が解決すると思ってたんだ
俺が間違ってたのか?
0747デフォルトの名無しさん
2008/02/14(木) 14:46:54少なくともboostのweak_ptrは、boost::shared_ptrに格納されているものにしか機能しない。
0748デフォルトの名無しさん
2008/02/14(木) 16:34:45それって便利か?
0749デフォルトの名無しさん
2008/02/14(木) 16:50:470750デフォルトの名無しさん
2008/02/14(木) 19:43:10使えなくなったオブジェクトを扱おうとすることを弾けるというだけだな。
デバッグ時には無条件に便利かも。
0751デフォルトの名無しさん
2008/02/14(木) 20:17:51ライブラリが標準名乗ってるのがそもそもの間違い。
0752デフォルトの名無しさん
2008/02/14(木) 20:25:570753デフォルトの名無しさん
2008/02/14(木) 20:46:22templateに対する理解が進んだのはSTLがでてからそこそこ経った後だから仕方なかろう。
ATLの時代ですら、不十分な理解のまま巨大ライブラリを作って、あの有様だし。
0754デフォルトの名無しさん
2008/02/14(木) 20:52:38破滅的になってきたC++が維持できるかどうかは別として
0755デフォルトの名無しさん
2008/02/14(木) 21:19:51そう言われると、あの時代にSTLが作られたということが奇跡的に思えてくる。
アロケータとかアレなところはあるけど。
0756デフォルトの名無しさん
2008/02/14(木) 21:44:58元々はオブジェクト指向ベースのクラスライブラリになる予定だった。
さらにSTLで納得できない人たちが集まって作ったのが boost
templateの驚愕の事実はLokiライブラリの作成と、そこでのメーリングリストのやり取りより始まる。
それにしても不思議、不思議だな、僅かな規則を決めたら、そこから知らない事実が次々とでてくるというのは。
言語やライブラリというものは、人間の作ったものだけけど、
このテンプレートと来たら、まるで元々そこにあって、自分たちはそれを掘り出しているような気分になる。
彫刻家が仏像を彫るときに、仏像は木の中にいる、自分はそれを掘り出しているだけだという
なんとなくその気持ちがわかる。
0757デフォルトの名無しさん
2008/02/14(木) 22:17:06STLはAdaから移植された物らしいね。
それはあまりに巨大な物だったのでC++の言語仕様に取り入れる
時にバッサリコンパクト化した。
0758デフォルトの名無しさん
2008/02/15(金) 17:05:26どっちも同一人物が作ってるし。
0759デフォルトの名無しさん
2008/02/15(金) 19:55:300760デフォルトの名無しさん
2008/02/15(金) 20:18:560761デフォルトの名無しさん
2008/02/15(金) 23:38:480762デフォルトの名無しさん
2008/02/16(土) 03:12:49一度メモリリークしているものも見たことがある。
指摘したら客からクレームはないとスルーされた。
0763デフォルトの名無しさん
2008/02/22(金) 16:28:210764デフォルトの名無しさん
2008/02/22(金) 17:36:32そりゃ終わるだろ。
0765デフォルトの名無しさん
2008/02/24(日) 22:54:18レベル2: vectorをポインタで受け渡しする
レベル3: vectorに関数ポインタを持たせる
レベル4: 確保したメモリ領域を管理し、使用量をデバッグできるようにする
レベル5: 安全に、全ての確保メモリを解放できる
レベル6: 様々なアルゴリズムに特化したvectorを作る
レベル7: あれ? もしかしてコレC++使えばよくね? と思い始める
0766デフォルトの名無しさん
2008/02/25(月) 01:10:33C++0xでまた互換性がある程度は復活するんじゃね?
0767デフォルトの名無しさん
2008/02/25(月) 02:07:160768デフォルトの名無しさん
2008/02/25(月) 08:23:490769デフォルトの名無しさん
2008/02/26(火) 10:22:11自力でアプリ組むのはできないと思います。
自分のようなC++素人から感じるのは、
-----------------
・危険度が高い
ハードに近い部分にアクセス可能なので、とんでもない惨事をもたらすコードが書けてしまう。
・規則に例外が多い
こうも書ける、ああも書ける。そしてこう書くと実はこういう動きをする。〜には実はこんな意味がある
とか規則がスッキリしていない。
シンプルな基本ルールから演繹してソースコードを書くというよりも、上記のような事例を沢山記憶して
いないとアプリが作れない。
-----------------
ってことなんですが、実際どうなんでしょうか。C#やJavaは上の2つについては不十分かも知れませんが
前進していると思います。一定のパフォーマンスや自由度が犠牲にしてますが。
0770デフォルトの名無しさん
2008/02/26(火) 12:31:53規則に例外が多いとは感じたことないな。vector<bool>くらいか
実装に依存する差異はJavaやC#に比べて多いとおもう
0771デフォルトの名無しさん
2008/02/26(火) 12:43:35変なことをしようとするとOSに止められる。
それはC#やJavaだとVMが担っている役割だな。
もちろんやろうと思えば危ないこともできるけど、
それはプログラマが意図的にそういうプログラムを書かないとやれるわけがない。
ウィルスとかワームとかがそう。
規則に例外が多いってのは、どの言語でもそうだと思う。
JavaやC#だとEqualsと==演算子とか最初何あれって思ったよ。
慣れればなんてことないんだけど。
0772769
2008/02/26(火) 13:28:42どうも自分は、統一感があるのがC#やJavaで、C++ってのは今までの経緯というか
文脈というか、言語の細かい「事情」に通じてないと使えないという印象を持ってました。
あとメモリ管理を意識するというのも大変そうだなぁと。ソースコードが何をやって
いるのか、ではなくて、マシンのメモリ上のどの部分をいじってるのか、ということを
意識するというのは、実際に工数が膨らんでしまう&大きな不具合が生じる可能性が
高まるんじゃないか、と思うのです。
0773デフォルトの名無しさん
2008/02/26(火) 13:41:53普通にやってるぶんにはマシン上のメモリ配置など意識する必要はない。
触りもせず杞憂もほどほどにしとけ。
0774デフォルトの名無しさん
2008/02/26(火) 13:56:290775デフォルトの名無しさん
2008/02/26(火) 13:56:40データ構造はSTLのコンテナを使えば済むし、オブジェクトは普通にローカル変数で済むからね。
0776デフォルトの名無しさん
2008/02/26(火) 14:22:13Javaでもローカル変数ぐらいはあるが、
C#でいうところの値型(struct)がないのが面倒ってこと?
0777デフォルトの名無しさん
2008/02/26(火) 15:10:360778デフォルトの名無しさん
2008/02/26(火) 15:24:06メモリ管理、スライシング、仮想関数テーブル、多重継承、Cスタイルとの混同、ヘッダの衝突etc...
STLも、さらにBoostも覚えて使えとか、うちではMFC使ってますとか、
組み合わせて使うときにはまた注意事項が増えて・・・。
Javaや.NETではほとんど意識しないことばかりだから、ストレスが溜まるよ。
0779デフォルトの名無しさん
2008/02/26(火) 15:49:07必要に応じて取捨選択すればいいだけ。
むしろ、俺はJAVAでGUIどうやって書けば良いのかわかんね。
EclipseにGUIエディタとか入れてるはずなのに出てこねーし。
まあ、作れてもJudeみたいに糞遅いプログラムじゃ悲しいけどね。
0780769
2008/02/26(火) 16:28:57つまり、分かりやすい、間違えにくいというのが最優先であって、実行効率やそのための
裏技的な知識は2次的なもの、という考えですね。
富豪的でも「難解」なコードはあり得るでしょう。アルゴリズムのようなものです。しかし、
C++が難解なのはそういう意味ではなくて、>>778に書いていただいたような、文脈を
色々知らないとコードが書けないってことなのです。
>>779
ちょっとお聞きしたいのですが、C++っていうと、WinのGUIアプリっていうつながりが
やはり定番なんでしょうか?逆にそれ以外の用途って、どんなものがありますでしょうか。
0781デフォルトの名無しさん
2008/02/26(火) 16:34:230782デフォルトの名無しさん
2008/02/26(火) 16:56:47普通にシミュレーション系のプログラムを書く分にはGUIなんて要らないし、
C++でも>780の言うところの富豪プログラミングができると思うけどねぇ。
0783デフォルトの名無しさん
2008/02/26(火) 16:57:02個人的にはいらない機能もあるけどね
0784デフォルトの名無しさん
2008/02/26(火) 17:09:30GUIなどは.NET、速度を要求するところだけC++のハイブリッドが望ましい。
部分的にアセンブラを使うような感覚で。
0785デフォルトの名無しさん
2008/02/26(火) 17:43:03Unix や Linux のプログラマは C (含 gcc 拡張) を使うケースが多いよね。
>>780のように言語自体が難しいのはアレだろという意見は昔からあるわけで、
C が使える環境でも Fortran だの COBOL だのを好んで使う人も昔からいた。
perl で短く書けるものを sh や awk で長く書く人とかも同類か。
0786デフォルトの名無しさん
2008/02/26(火) 17:56:51短く書けるからと言って、awkで読み易く書けるものをperlでわざわざ読み難く書くこともなかろう。
0787デフォルトの名無しさん
2008/02/26(火) 18:00:37awkで不足するようならC++に飛んじゃう。
0788779
2008/02/26(火) 18:02:21いんや、GUIなんて殆ど作りません。
JAVAやC#は覚えることが少いとか言う人がいるんで、
C++でやってきた人間にはJAVAも覚えることだらけだよと言いたかっただけです。
0789デフォルトの名無しさん
2008/02/26(火) 19:00:35Cだから簡単だとは一概には言えないよ
それと、全部やるなら覚えることが多いのは確かだけど
使わないでいいならクラスもテンプレートも覚える必要ないし
0790デフォルトの名無しさん
2008/02/26(火) 19:18:23自分にとっては慣れてないせいで結構細かい言語仕様、ライブラリを調べないと
何も書けないというのもある。
0791デフォルトの名無しさん
2008/02/26(火) 20:32:05結果は、そこに至るまでの道がかなり長い方になってしまった、と自分は思っている。
0792デフォルトの名無しさん
2008/02/26(火) 20:32:490793デフォルトの名無しさん
2008/02/26(火) 20:48:040794デフォルトの名無しさん
2008/02/26(火) 20:55:28安全性を理由にプログラマが実行可能なことを減らしてはならない
邪悪なハッキングだって時には必要な事だから禁止されてはいないのだ
0795デフォルトの名無しさん
2008/02/26(火) 21:08:19それに、IDEの補完機能の賢さやコンパイルの速さでは本当にC#やJavaが羨ましい。
0796デフォルトの名無しさん
2008/02/26(火) 21:32:11と俺は思っています。
0797デフォルトの名無しさん
2008/02/26(火) 21:39:45TR1では到底足りません。Boost全部入れたって足りるようなものではありません。
0798769
2008/02/26(火) 22:20:42そうですか。現状のC++の用途というとWinGUIアプリが中心なのかな、と思ってました。
あと、C++ができる人にとって、JavaやC#は楽勝であるというのは事実でしょ?自由度が
Java/C#よりも大きいのですから。
>>792
問題は、C++が知識量を必要とするということなんですね。ちょっと極端な例かも知れませんが、
Schemeのように実に単純な文法から森羅万象を生成するというのではなく、覚えておくべき
知識を要求してくるのがC++じゃあないかと。
JavaやC#はその辺Scheme程ではないですが、シンプルです。変数の扱い、スコープ、基本的な
構文、クラス関連の表記方法と意味が分かればよい。あとは、いかに無駄無く綺麗に書けるかに
なってくるわけで、これは知識とはちょっと違います。
0799デフォルトの名無しさん
2008/02/26(火) 22:40:01というか君は、CもC++もロクに使ったことが無いんだろう。
ちょっと触れたぐらいで多くを語るなw
0800デフォルトの名無しさん
2008/02/26(火) 22:40:02プログラミング覚えてからCやC++やったほうがいいと思うんだけど…
0801デフォルトの名無しさん
2008/02/26(火) 23:35:06あの大量のライブラリ、初めは適切なキーワードもわからずググれない。
それ以外の言語を始めるのと大してハードルは変わらなかったと思う。
一通り使えるようになった今だから言えることだけど。
楽勝だなんてC#にもC++にも失礼だ。
0802デフォルトの名無しさん
2008/02/26(火) 23:57:17.netはそれを統一してくれた。
0803デフォルトの名無しさん
2008/02/27(水) 00:00:05数人でプログラム作るんならCやJavaを使う。
0804デフォルトの名無しさん
2008/02/27(水) 01:35:56Java は Java で標準添付のクラスの量に初心者はびっくりするよ。
どれをどう組み合わせて使えば良いのか判らない。
そういう意味では情報量は必要だよ。
0805デフォルトの名無しさん
2008/02/27(水) 05:26:41そうか、きみの使っている言語は準標準レベルで
マルチスレッドと構文解析機とシリアライズと非同期通信とグラフ理論と行列計算
をサポートしているというのか。それはすごい。
0806デフォルトの名無しさん
2008/02/27(水) 06:07:350807デフォルトの名無しさん
2008/02/27(水) 07:29:410808デフォルトの名無しさん
2008/02/27(水) 09:27:46C++は十年以上かけて覚えたけど、どんどん仕様が変わっていったのがつらかった
0809769
2008/02/27(水) 10:38:58> ちょっと触れたぐらいで多くを語るなw
あはは。いや、お勉強ならしたことあるんですがが、C++の実際の実装ではそんなのあまり
役に立たないと感じたわけです。結局、低レベルの、OSだったりメモリ管理だったり
の知識が必要となるんじゃないですか。
>>802>>804>>808
ライブラリの学習って言いますが、あれは覚えるものではなくて辞書の引き方を知るだけで
よいのです。大きな本屋へ行って、目当ての本を探す際に書店の分類を参考にしてその書棚へ
向かうのと同じですよ。検索エンジン使うのとも似てます。
0810デフォルトの名無しさん
2008/02/27(水) 10:49:24> 結局、低レベルの、OSだったりメモリ管理だったり
> の知識が必要となるんじゃないですか。
なる場面もあるしならない場面もある。
デバドラ書くならOSの知識は必要だけど単純なファイル操作だけとかならほとんどいらない。
スクラッチでメモリ管理を書く必要があるなら知識は必要だけど、
アプリで使う程度のメモリ管理ならコンテナとスマートポインタで簡単にできる。
C++は両方の局面で使えるってことだね。
0811デフォルトの名無しさん
2008/02/27(水) 10:52:11>結局、低レベルの、OSだったりメモリ管理だったり
Win32APIとかそのへんの話か?
そこらへんだったら言語の問題とはベクトルが違うぞ。
言語と環境を一緒くたにするな。
0812デフォルトの名無しさん
2008/02/27(水) 11:11:32デバッガでマシン語眺めないと原因がわからないことが多いような。
.NETとかだと〜Exceptionの意味を調べれば終わりだけど。
0813デフォルトの名無しさん
2008/02/27(水) 11:36:380814デフォルトの名無しさん
2008/02/27(水) 14:29:23その辺りは考え方の違いで、
・C/C++ はメジャーなので多くのプラットフォームがネイティブでC/C++から呼べるAPIを
用意している。のでC/C++で何か書く場合には、それを使えるし使うことが多い。
・Java は OS 側からのサポートが超貧弱。代わりにライブラリを用意。
それで出来ないことについてはJNI 等に頼らざるを得ない。
という見方もできる。
いずれにせよ、ライブラリの問題なら言語仕様とは関係ないし、ライブラリを除外して考えるなら、
Java で簡単にできることはそのほとんどが C++ でも同様に簡単(かつ難解でなく)できると思う。
0815デフォルトの名無しさん
2008/02/27(水) 16:59:59趣味なら構わんが仕事なら役立たずPGの烙印押されるよ。
よくC++10年使ってましたというPGがMFCやATLが理解できなくて
テスターにしか使えないとかよくある。あるいは、
1時間でできるコーディングを調べながらやって1週間かけるPGとかいる。
コーディングスピードはできる人とできない人で100倍以上の差があるなんてのはよくある。
0816デフォルトの名無しさん
2008/02/27(水) 17:50:36Symbian だろうが Win32 だろうが C++ でコード書くくらい楽勝だよなぁ・・・
DI等のマイナーなくせにお約束だらけの世界も少ないし。
生産性において MATLAB と比べられたらさすがに分が悪いけど。
0817デフォルトの名無しさん
2008/02/27(水) 18:47:520818デフォルトの名無しさん
2008/02/27(水) 18:51:22JavaにOS側のサポートが多かったら、Javaの理念に合わないんじゃないのか?
>>815
C++を10年使っている事と、MFCやATLが判らない事は何の関係も無いと思うんだ
0819デフォルトの名無しさん
2008/02/27(水) 20:08:55いま現在知っているかどうかだけでなく、「今は知らないが必要ならすぐ使えるようになるレベル」
も含めた、広い枠組みでの有能・無能の話だと思うよ。
0820デフォルトの名無しさん
2008/02/27(水) 21:23:030821デフォルトの名無しさん
2008/02/27(水) 21:47:370822デフォルトの名無しさん
2008/02/27(水) 23:01:110823デフォルトの名無しさん
2008/02/27(水) 23:29:13フレームワークのお作法を理解するということで、理解するにはやはり時間がかかる。
特にMFCみたいにマクロだらけのものは。まぁ便利だけど。
0824デフォルトの名無しさん
2008/02/28(木) 01:17:53Javaは基本的に公式ドキュメントあれば事足りるから
調べ物にはあんまり困らないよ。
突っ込んだ仕様は調べる必要あるけど。
C++は何故か必要な情報になかなかたどり着けねえ…。
0825デフォルトの名無しさん
2008/02/28(木) 09:28:240826デフォルトの名無しさん
2008/02/28(木) 10:51:34どういう情報にたどりつけないのだ?
C++の仕様として読み込まれていることならC++の仕様を見るだけでわかるだろ。
MFCだったらC++の仕様じゃないんだから、MFCの仕様を探せば良いわけでな。
本来、OSや環境サイドで決めるものの仕様まで言語仕様に読みこんでるものはすかん。
0827デフォルトの名無しさん
2008/02/28(木) 12:48:39>Javaは基本的に公式ドキュメントあれば事足りるから
いくらなんでもこれはないだろう。
トイ・プログラム程度しか書いたことないんじゃ・・・
0828デフォルトの名無しさん
2008/02/28(木) 16:09:00どんな言語やライブラリ、処理系だってバグがないものなんてないから、嵌るときは嵌る。
0829デフォルトの名無しさん
2008/02/28(木) 20:26:10そしてトイレにこもり続け、 店員に注意された----
僕「店長を呼んでくれないか」
賭博主が何事かと、のこのこやってきた
僕はロープ、ベルトをもっている
僕「お前のせいで借金地獄だ 自殺しようと思う
暴力団に殺されるより楽にしにたい」
賭博主「え!? そんなことしたら、営業妨害で訴えますよ?」
僕「それがどうした これから死のうってのに
警察呼ぶか? 出てきたら店の真ん中で死ぬ」
賭博主「それは困るッ・・・どうすれば?」
僕「借金は1000・・・万近く・・・あるのだが」
死神「こんな場所が日本に1万以上あるのか うめ〜」
これを繰り返し、僕は神となった!(大富豪になった)
0830デフォルトの名無しさん
2008/02/29(金) 00:56:09かといってJavaはやりすぎだしC#はイっちゃってる。
結局戻る所はC++だわ。
でも洗練されてるC++って見てみたいなぁ。
言語仕様見て感動したい。
0831デフォルトの名無しさん
2008/02/29(金) 01:01:06弄ったことないからD使いの人宣伝してくれ
0832デフォルトの名無しさん
2008/03/01(土) 12:32:09先週からUMLとC++のコード書いてます。
UMLは好きになりましたが、まだあまりC++が好きになれません。
昨日は演算子のオーバーロードを考えた人を絞め殺したくなりました。
こんな俺をC++大好きっ子にするコメントお願いします。
0833デフォルトの名無しさん
2008/03/01(土) 12:59:23C++として使うから嫌いになるんじゃね。C+便利機能(クラスとか
STLとか)くらいで使えばきっと好きになると思う。
0834デフォルトの名無しさん
2008/03/01(土) 13:20:35思わずに、ベタベタにCでかいてもいいし、クラスとか必要な
とこだけC++の機能使えばいいんじゃないかなぁ。
0835デフォルトの名無しさん
2008/03/01(土) 14:56:28string jangdonggun = string("あなたのことが") + string("好きだから");
0836デフォルトの名無しさん
2008/03/01(土) 16:22:19> 昨日は演算子のオーバーロードを考えた人を絞め殺したくなりました。
誰か他の人が書いたトンデモ・オーバーロードに振り回されたのかな。
だとしたら、気持ちはわかるけど、それはその書いた奴が悪いw
まともな奴は心得た使い方をしているし、その範疇の中で語るなら、
演算子オーバーロードが無かったら逆に困るんだよね。色々と。
基本的にC++は、初心者(機能を知らない)を支えたり、身の程知らず(後先考えず機能を使いまくる)を
窘めたり、といった努力を一切放棄した言語。
「上手く扱える奴が得られる幅と力」重視で設計されていて、初心者とか、職場に身の程知らずが居るとか、
そういう人には厳しいと思う。
0837デフォルトの名無しさん
2008/03/01(土) 16:33:310838デフォルトの名無しさん
2008/03/01(土) 16:42:58プログラミング言語側でサポートされないと読みにくいコードになるしな。
0839デフォルトの名無しさん
2008/03/01(土) 23:51:36そもそも、演算子オーバーロードの代表格、iostreamの演算子なんて、考えようによってはひどすぐる。
cout << a;
なんて、代入系演算子でもないのにcoutを書き換えちゃうしな。
副作用のある処理は副作用があると明示的にわかる演算子を使うべきのような。
0840デフォルトの名無しさん
2008/03/01(土) 23:54:28クソスギデショ。
0841デフォルトの名無しさん
2008/03/02(日) 00:02:220842デフォルトの名無しさん
2008/03/02(日) 01:17:52数学世界では、破廉恥なオーバーロードがすでにまかり通っていますからね。
0843デフォルトの名無しさん
2008/03/02(日) 01:25:02STL誕生前のライブラリだけあって、他からひどく浮いてるしな。
0844デフォルトの名無しさん
2008/03/02(日) 18:58:48要するにC最高ってことだな?
0845839
2008/03/03(月) 15:04:32数学的な演算子って言うのはあくまで1つ以上の値や関数等を演算した結果を返すものだよね。
関与したオブジェクトそのものを変更したりはしないはず。
関数f(x)を積分したところで、それは積分した関数を返す演算であって、f(x)自体を変更するものではない。
Cは平気で++や=などの副作用のある演算子が出てくる。
C++に至っては、オーバーロードで+などの一見副作用のない演算子に副作用を込められる。
キショイ。
つーか、演算とはオブジェクトも値も関係無く適用されるべきものであるのに、副作用型演算子はオブジェクトにしか使えないし。
そもそも参照渡しが関数や演算子の定義を見ないと渡したオブジェクトが変更される可能性があるのかどうかわからん時点でキショイな。
こういうことを考えると関数型言語とやらに興味が出てくるのだろうか。
0846デフォルトの名無しさん
2008/03/03(月) 15:41:36さらにホワイトスペースのオーバーロードも出来ます
0847デフォルトの名無しさん
2008/03/03(月) 16:15:11精一杯虚勢を張っているようにしか見えない。
0848デフォルトの名無しさん
2008/03/03(月) 16:16:06殺さなきゃいいんだよ
0849デフォルトの名無しさん
2008/03/03(月) 16:20:44演算子オーバーロードってC++だけの機能じゃないしな。
Javaはできなかったっけ?
0850デフォルトの名無しさん
2008/03/03(月) 16:21:04これは、もしoperator =や[]などがクラスのメンバとしてしか
定義できないということであれば、0xから解消され、
非メンバとして定義できるようになる。
0851839
2008/03/03(月) 17:39:41すまんが、並列計算数値解析プログラムをCやC++で書いてるのだが。
C/C++の最適化効率の悪さが念頭にあって、副作用のある演算子もその大部分を占めてるなと思ったわけだが。
0852デフォルトの名無しさん
2008/03/03(月) 17:43:03だからね、その実績が>845で台無しになっているってことよ。
# 尤も、その実績のどこに「参照渡し」や「演算子オーバーロード」が関係しているのか判らないけれど。
0853デフォルトの名無しさん
2008/03/03(月) 17:43:470854839
2008/03/03(月) 17:54:09まあ、ふと立ち止まって考えたときに、「演算子」というもののありかたがどうなのかと。
Cは「高級」言語じゃないからしかたないが。
>>848のように殺せる道具を殺さないように使えば良いわけだし。
0855839
2008/03/03(月) 17:56:34コード以上の文脈を読みとるのはコンパイラにとって大変だろ。
同じ振舞いをするコードでも、プログラマの意図したことがわかればより最適化できるケース(エイリアス問題など)があるしね。
0856デフォルトの名無しさん
2008/03/03(月) 18:00:230858デフォルトの名無しさん
2008/03/03(月) 18:12:330859デフォルトの名無しさん
2008/03/03(月) 18:18:150860デフォルトの名無しさん
2008/03/03(月) 18:22:51C++標準とは別に、統一を図る場があってもいいとは思う。
0861デフォルトの名無しさん
2008/03/03(月) 18:29:29君は、きっと関数型言語もきしょいと思うようになるだろうから
演算子の存在しない言語を利用した方が良いと思うんだ
アセンブラでも演算子は出てくるから、ここは一つ、バイナリで直接プログラムを書く人になるんだ
まあ、CPUが変わると命令が変わるが、そんな細かいことは気にするな
きしょい演算子と永遠に縁を切れることを考えたら安い投資だ
0862デフォルトの名無しさん
2008/03/03(月) 18:40:57C++の仕様に問題があると、なにか問題があるの?
0863デフォルトの名無しさん
2008/03/03(月) 18:45:10それだと、
関数型言語でも代入はメチャクチャ使いまくるから結局キショいと思うと思うよ。
schemeのset-car!とかset-cdr!とか、call/ccで継続を変数に代入する所とか。
0864デフォルトの名無しさん
2008/03/03(月) 19:32:09代入が悪いのではなく、代入が演算子になっているのが悪いのでは?
func(a=b)とか出来る所とか。
0865デフォルトの名無しさん
2008/03/03(月) 21:49:350866デフォルトの名無しさん
2008/03/03(月) 21:58:110867デフォルトの名無しさん
2008/03/03(月) 23:04:07の = のところで何が起きるかここだけ見て分からないのはかなり嫌かも。
・GetHoge() が Hoge& を返していた場合
・Hoge に変換できる全く別の型を返していた場合
・Hoge のコンストラクタが受け取る全く別の型を返していた場合
・代入演算子がオーバーロードされていた場合
こうやって見てみると
auto hoge = GetHoge();
は型変換を伴うような変な副作用が無くていいのかな。
0868デフォルトの名無しさん
2008/03/03(月) 23:05:370869デフォルトの名無しさん
2008/03/04(火) 00:06:120870デフォルトの名無しさん
2008/03/04(火) 01:43:08君、Haskell がオイデオイデしてるよ。
>>863
let や再帰を駆使すりゃある程度は…。
0871デフォルトの名無しさん
2008/03/04(火) 10:02:10そういうレベルじゃなくて、理解した上でのそもそも論でしょ。
0872デフォルトの名無しさん
2008/03/04(火) 11:41:00多かれ少なかれどの言語にもあるかもなぁ。
そんな時、PG的には自分で俺言語を作るべきなんじゃないのかw
0873デフォルトの名無しさん
2008/03/04(火) 12:31:37そうすると、この話題は「物事に例外が存在するのはキショイ」というだけのもので、
ディテールにはまったく意味が無いと思う。論ですらないよ。
0874デフォルトの名無しさん
2008/03/04(火) 12:37:14このスレ的にはC++は良いって意見ばっかじゃないという意見が出たらダメということか。
0875デフォルトの名無しさん
2008/03/04(火) 12:39:49その害悪とは元来の意味とは異なるオーバーロードが可能ということと、
さらには元来副作用をもたらさない演算子に副作用を仕込めるという話になって、
そもそもCの演算子からして副作用を持つ演算子というのは数学的で言う演算子からかけはなれている、
という流れだろ。
おとなしく使えとかそういう話じゃないはずだがw
0876デフォルトの名無しさん
2008/03/04(火) 14:10:51どういう電波を受信すると、そうなるんだ?
相手が「馬鹿なことを言ってる」ことにしたくてたまらない
二十歳前後の自称論客みたいな話の運び方すんなよなw
0877デフォルトの名無しさん
2008/03/04(火) 21:28:530878デフォルトの名無しさん
2008/03/04(火) 23:35:10関数名だって自由にデタラメな名前つけれるし。
納品済みのコードでtest1()とかaaaa()とか見たことあるし。
0879デフォルトの名無しさん
2008/03/04(火) 23:45:33関数名は元々言語使用で勝手につけてよいと決まっているので、演算子の場合と一緒にすべきではないな。
0880デフォルトの名無しさん
2008/03/04(火) 23:46:47文字列の連結がoperator-だったり、行列の積がoperator[]だったりしたら発狂しそうだw
0881デフォルトの名無しさん
2008/03/04(火) 23:49:13やってみれば判るが、実は文字列の連結にoperator-()を使うのは意外に収まりがいい。
寧ろ、Basicを真似てoperator&()なんかにされたら泣ける。
0882デフォルトの名無しさん
2008/03/04(火) 23:51:07漏れが設計して漏れが実装してるクラスにおける「代入」や「大小関係の比較」の実装は
漏れができるようになってないと使い物にならないじゃん・・・
Java だって equals に「引数をファイルに出力する」とかいう実装を与えられるわけだし。
0883デフォルトの名無しさん
2008/03/04(火) 23:52:43Add()関数作って実際は引き算の処理されるのと
文字列の連結がoperator-するのと問題は同じと思うが。
0884デフォルトの名無しさん
2008/03/04(火) 23:53:240885デフォルトの名無しさん
2008/03/05(水) 00:35:460886デフォルトの名無しさん
2008/03/05(水) 00:37:39それなんてboost::archive
0887デフォルトの名無しさん
2008/03/05(水) 00:48:090888デフォルトの名無しさん
2008/03/05(水) 14:30:25"ABCDBC" - "BC"
この結果は、
"ADBC"だと納得行くが
"ABCDBCBC"なら、「なんでやねん!!!」と思うよ
0889デフォルトの名無しさん
2008/03/05(水) 14:39:040890デフォルトの名無しさん
2008/03/05(水) 15:00:030891デフォルトの名無しさん
2008/03/05(水) 21:24:420892デフォルトの名無しさん
2008/03/06(木) 13:16:10stringの仕事じゃないね
16進演算なんて普通に
int i = 0x0a - 0xf0;
で出来るんじゃね?
0893デフォルトの名無しさん
2008/03/06(木) 21:06:05ファイルから文字列として読み込んだときとかの話ねw
0894デフォルトの名無しさん
2008/03/06(木) 23:01:550895デフォルトの名無しさん
2008/03/07(金) 01:03:40assert(foo == "+");
0896デフォルトの名無しさん
2008/03/07(金) 21:29:28assert(foo == "田");
0897デフォルトの名無しさん
2008/03/09(日) 11:25:37STL的にはイテレータでどうにかすべき問題ではないの?
0898デフォルトの名無しさん
2008/03/19(水) 00:51:46int main()
{
printf("%d", 1);
}
c++だと
int main()
{
std::cout << 1;
}
で、最近のコンパイラは使ってない関数は出力ファイルに入らないように削除してくれるらしい。
これをリンク時ガベージコレクションって言うんだっけ?
それで、上記プログラムだとCの場合にprintf全体をリンクする(doubleを文字列化する処理も含まれる)が
c++だとstd::cout::operator << (int)をリンクするだけでOKだ。
後はc++のほうを例外処理無し、RTTI無しのオプションを付けてコンパイルすればCのプログラムより小さくなると思う。
気が向いたら実験してみる。
0899デフォルトの名無しさん
2008/03/20(木) 23:40:570900デフォルトの名無しさん
2008/03/20(木) 23:47:57ostreamの実装がprintfの実装より小さくなれる気がしないんだが…
とりあえず結果報告キボン
0901デフォルトの名無しさん
2008/03/21(金) 06:59:09フォーマット文字列の解析が要らないから小さくなるかもなぁ。
0902デフォルトの名無しさん
2008/03/21(金) 12:46:040903デフォルトの名無しさん
2008/03/21(金) 12:52:170904デフォルトの名無しさん
2008/03/21(金) 14:59:250905デフォルトの名無しさん
2008/03/22(土) 00:02:15の実験結果を発表します(ジャジャーン)
実験環境
OS:windowsVista
gcc ver3.4.4 @cygwin
cs.cとcs.cppの内容は>>898に#includeを追加したのと同じ内容です。
gcc cs.c
a.exeの大きさは8873byte
gcc -Os cs.c
8683
gcc -O cs.c
8873
gcc -O3 cs.c
8873
g++ cs.cpp
477682
g++ -Os cs.cpp
477014
g++ -O cs.cpp
477577
g++ -O3 cs.cpp
477014
0906デフォルトの名無しさん
2008/03/22(土) 00:06:22勝負になっていないように見えるが?
0907デフォルトの名無しさん
2008/03/22(土) 00:25:25cl cs.c
53,248
cl /Os cs.c
53,248
cl /Ot cs.c
53,248
cl /Ox cs.c
53,248
cl /Ox /Oi /Ob1 /GL /Oy cs.c
53,248
cl cs.cpp
135,168
cl /Os cs.cpp
131,072
cl /Ot cs.cpp
135,168
cl /Ox cs.cpp
131,072
cl /Ox /Oi /Ob1 /GL /Oy cs.cpp
131,072
0908デフォルトの名無しさん
2008/03/22(土) 00:31:26でも十分大きなプログラムではこの差はほぼ無視できるレベルになるのではないだろうか。
気が向いたら実験してみる。
0909デフォルトの名無しさん
2008/03/22(土) 00:41:220910デフォルトの名無しさん
2008/03/22(土) 00:51:21cs.c: 7,168
cs.cpp: 7,680
vc9 /Os /MT
cs.c: 53,248
cs.cpp: 129,024
gcc(4.1.2) -Os
cs.c: 8,330
cs.cpp: 8,827
gcc(4.1.2) -Os -static
cs.c: 615,580
cs.cpp: 1,306,095
-----
サイズの最適化しかやってないけどこんな感じだった
0911デフォルトの名無しさん
2008/03/22(土) 10:16:35class App {
static void Main() {
System.Console.WriteLine( "{0}" , 1 ) ;
}
}
csc cs.cs : 3,072
ildasm で調べたら Main() のコードサイズは17バイト
コンストラクター 7 バイト、あわせて 24 バイト
その他の容量は、動作しない環境で実行したときのエラーメッセージ用実行コードその他
サイズが気になるなら、マネージド系が圧倒的に有利です
0912デフォルトの名無しさん
2008/03/22(土) 11:16:340913デフォルトの名無しさん
2008/03/22(土) 11:48:09C だと、スタックフレームの構築だけであっさり17バイト突破するよ
0914デフォルトの名無しさん
2008/03/22(土) 19:09:340915デフォルトの名無しさん
2008/03/22(土) 20:58:55とっくに折り込み済みのことを突っ込みの手段に使うのって馬鹿丸出しだよ。
0916デフォルトの名無しさん
2008/03/22(土) 21:06:490917デフォルトの名無しさん
2008/03/22(土) 21:07:28マイクロソフトC++ V14.0でO1で最適化するとCでも14
0918デフォルトの名無しさん
2008/03/22(土) 21:13:01マイクロソフトC++ V14.00でO1で最適化するとCでもmainのコードサイズは17バイトだ
スタックフレームは必要ない
最適化なしのスタックフレーム付でも22バイトにしかならん
コードサイズだけ比較しても意味ないがね
0919デフォルトの名無しさん
2008/03/22(土) 21:15:500920デフォルトの名無しさん
2008/03/22(土) 22:10:24極めなくてもいいからやってればC++なりJAVAなりいくらでも替えがきく
0921デフォルトの名無しさん
2008/03/23(日) 05:42:49俺はあんまり勧められない。
0922デフォルトの名無しさん
2008/03/23(日) 07:58:35本格的な学習の前の基礎知識を学ぶという点では良いね。
でもCの前にASMをほんのちょっとで良いから勉強してみるのも良いかも。
0923デフォルトの名無しさん
2008/03/23(日) 09:19:23苦労も何もCにそんな機能はない。
0924デフォルトの名無しさん
2008/03/23(日) 09:23:16putchar('-');
0925デフォルトの名無しさん
2008/03/23(日) 09:24:240926デフォルトの名無しさん
2008/03/23(日) 09:25:130927デフォルトの名無しさん
2008/03/23(日) 09:42:410928デフォルトの名無しさん
2008/03/23(日) 09:57:280929デフォルトの名無しさん
2008/03/23(日) 09:59:040930デフォルトの名無しさん
2008/03/23(日) 10:13:340931デフォルトの名無しさん
2008/03/23(日) 11:53:030932デフォルトの名無しさん
2008/03/23(日) 11:57:040933デフォルトの名無しさん
2008/03/23(日) 12:00:260934デフォルトの名無しさん
2008/03/23(日) 12:02:200935デフォルトの名無しさん
2008/03/23(日) 12:16:09時点は xaml、ドキュメントとデザイナがもう少しまともになれば間違いなくコレかと。
0936デフォルトの名無しさん
2008/03/23(日) 13:53:030937デフォルトの名無しさん
2008/03/23(日) 13:54:580938デフォルトの名無しさん
2008/03/23(日) 14:02:490939デフォルトの名無しさん
2008/03/23(日) 17:26:500940デフォルトの名無しさん
2008/03/23(日) 19:03:190941オガちゃん萌え ◆tyvkWCNtzY
2008/03/23(日) 21:12:17ガキの頃、Quick Cを使ってグラフィックライブラリでビデオメモリに線を引いたりしてたんだが、
あの頃はCの標準ライブラリと非標準ライブラリの違いなんぞ知る由もなかった
PC98シリーズでいかに高速な描画をやるかって、インラインでアセンブリを書きまくるとか
アーキテクチャニュートラルなコーディングなんか微塵も考えてなかった
0942デフォルトの名無しさん
2008/03/23(日) 21:18:50しようとしたら、なんだろ。X-WindowとかMotifとかかな
0943デフォルトの名無しさん
2008/03/23(日) 21:19:32実際、非互換の方が高速な上にすばやく作れて、となれば互換性など考える理由は無かったかと。
正しいソフトウェアは時代次第でどんどん変化する訳だ。
0944オガちゃん萌え ◆tyvkWCNtzY
2008/03/23(日) 22:15:44それだ!
だいたい、当時のPCは性能が今と比較するととんでもなく低かったんだよな
intel系は640KBのメモリとEMSメモリ、ビデオメモリの余りやらを駆使してているソフトなんかがよくあった
互換性よりも動作速度のほうが重要だったのかも
いや、移植先なんてなかったんだ、当時のPC98のシェアは日本国内の90%を越えていたしw
それが今じゃなんだ、ランゲージニュートラルでアーキテクチャニュートラルでUML駆動モデルで
ロバストネス分析→設計モデル。リソースは無限であるという前提ときたもんだ
下回り(デバドラやハード制御)を知らないのも困りもんだが…
0945デフォルトの名無しさん
2008/03/24(月) 02:37:58カプセル化がどうの言うの奴とかいるのよ
始めにCとかC++やってればそのへん安心
0946デフォルトの名無しさん
2008/03/24(月) 04:07:26malloc() の返り値を呼び元でfree() してもらうのは、だめですか..........。
0947デフォルトの名無しさん
2008/03/24(月) 09:02:50後処理用の関数を用意してあげるのが親切かも
0948オガちゃん萌え ◆tyvkWCNtzY
2008/03/24(月) 18:51:57ハンパじゃなく分かりづらい言語になりそうだな
0949デフォルトの名無しさん
2008/03/24(月) 21:04:200950デフォルトの名無しさん
2008/03/24(月) 21:20:310951オガちゃん萌え ◆tyvkWCNtzY
2008/03/24(月) 23:12:15>>950の言うとおりなのだろうかと
だけど、C/C++を最初にやってると、そうでないよりはC/C++学習が楽かも
そんな俺はx86アセンブラ→Turbo Pascal→Quick Cだった
0952デフォルトの名無しさん
2008/03/24(月) 23:15:57そりゃまあ、昔はmakeとemacsだけでなんでもやってた気がするけどサ。
0953デフォルトの名無しさん
2008/03/24(月) 23:33:350954デフォルトの名無しさん
2008/03/24(月) 23:39:42いまでも仕事の大半は、makeとVimで済ませてるな。デバッガもよっぽどの
ことがないと使わない。ファンクショントレースとcoreファイル開いてバックトレース
すればバグの9割以上は1瞬で解決するし。1瞬で解決しない場合は、
2,3のprint文入れればそれで解決する。
システムテストやらででてくる再現性の低い不具合とか、ハード起因の
不具合とかでは、デバッガ重宝するけど。
IDEサポートって本当にそんなに重要か?インテリセンス(笑)なんてVimだって
備えてるぜ?Unitテストなんて、Rubyでは言語のライブラリとして豊富な機能が
提供されてるぜ?VSSよりSVNのほうが便利だぜ?メトリクスツールは、
もはやフリーでも転がってるぜ?
IDEのメリットって何だ?
0955デフォルトの名無しさん
2008/03/24(月) 23:49:090956デフォルトの名無しさん
2008/03/24(月) 23:53:01VisualStudioとかのC++BuilderのIDEは使うけど、ほかのIDEはエディタがいまいちなのが多くてmake作成用にしか使わない感じ。
0957デフォルトの名無しさん
2008/03/25(火) 00:00:08環境の構築の容易さにアドバンテージがあるとしても、IDEを習得するための
労力と時間、一社のIDEに依存してしまうリスク、汎用性の喪失、費用などを
考えると、俺にはIDEの方がいいなんて、現時点では到底思えないな。
Eclipseも数時間で捨てた。VisualEditorだけは使うけど。
VC++使う羽目になりそうだったので、Glade+Rubyで押し切ったわ。
0958デフォルトの名無しさん
2008/03/25(火) 00:04:07変人の普通が、普通の人の普通かって話だよなぁ...
0959デフォルトの名無しさん
2008/03/25(火) 00:07:15MFCやATL使わなきゃ環境依存なんて無いでしょ
0960デフォルトの名無しさん
2008/03/25(火) 00:11:32GUI作ることになった(といっても、社内ツールだが)。VC++使ってくださいと
言われたのだけど、そのツールLinuxでも使うことが想定されたから、
「今後他プラットフォームに移植することを想定するなら、最初からそれを
考慮したほうがいいですよ」といって、Ruby+Gladeで落ち着いた。
横から「Pythonは?Pythonでいきましょうよ!」っていうPython厨がいて
驚いたが、華麗に無視
0961デフォルトの名無しさん
2008/03/25(火) 06:41:13ソイツは大事にしとけw
0962デフォルトの名無しさん
2008/03/25(火) 09:17:050963デフォルトの名無しさん
2008/03/25(火) 09:22:370964デフォルトの名無しさん
2008/03/25(火) 10:09:59> 横から
> 華麗に無視
比較的まともであると言われるPython使いの「横から目線」に、
横柄・傲慢で知られるRuby使い特有の「上から目線」で対応したわけですね?
「結果」は現場の力関係に依存するからともかくとして、
Python使いとRuby使いが登場する「人物描写」としては、実にお約束だと思いました。
0965デフォルトの名無しさん
2008/03/25(火) 23:46:07やるならLLバトルロワイヤルでどうぞ。
0966デフォルトの名無しさん
2008/03/25(火) 23:57:43Python>VC++>Rubyだなぁ。
特に若い人がPython使いたいって言うなら、自分の趣味は切り捨てて
そっちを優先させるし、特にないならマルチプラットフォームでお手軽(?)なJava
選択するけど。
0967デフォルトの名無しさん
2008/03/30(日) 23:05:33何を言っとる。
最近のインテリセンスはコーディング中にプリプロセス走らせるぞ。
おかげでビルドターゲットの切り替えが重い重い…。切りたくても
切れないし。
0968デフォルトの名無しさん
2008/03/31(月) 01:53:51マイクロソフトからすれば、ハードウェアの進化に即した
ソフトウェアを提供しなければ、バージョンアップしてもらえ
なくなるかも、他OSに乗り換えられてしまうかも、という恐怖
が付きまとっているのだから仕方がない。
ソフトはユーザエクスペリエンスを無視して、「重い処理」を
作りこまなければ意味がない。デスクトップアプリ全盛は
それでもよかった。
Web全盛の時代、ユーザは「よりよいエクスペリエンス」が別の
ところにあると気づいてしまったのだな。そして「それで満足」
してしまいそうになっている。
まぁこれからはMSもおもてなしに移行せざるを得ないだろう。
0969デフォルトの名無しさん
2008/03/31(月) 01:56:15致命傷になるかもしれない。シルバーライトを声高に叫んだところで、
さんざんFUDで痛い目を見てきた開発者達はAIRを選択することは
目に見えている。
MS終焉の序章ですな。
0970デフォルトの名無しさん
2008/03/31(月) 01:57:43はてさてDRM頼みがいつまで持つことやら。
0971デフォルトの名無しさん
2008/03/31(月) 03:26:57「おもてなし」を使うということは中島さん?
0972デフォルトの名無しさん
2008/03/31(月) 08:19:02このスレで許されるMSの話題はVisual C++だけだ
0973デフォルトの名無しさん
2008/03/31(月) 08:56:020974デフォルトの名無しさん
2008/03/31(月) 22:41:51C# は確かに凄い。ここまで補完が優秀だと、片手でプログラミング出来る程だな。
仕事で VC++ 使ってると、C# が羨ましくてしょうがない。
「インテリセンスを更新しています・・・」が表示されて、激重な時は特に。
0975デフォルトの名無しさん
2008/04/03(木) 08:32:25C#楽なんだけどさ、propertyとかいう変なの使ってgetter/setterするのはどうも…
ついでに、インデクサって悪の枢軸じゃなかろうか?
ってか、.NET Frameworkそのものが業務アプリ作るには不十分な希ガス
.NETでGUI作って、処理部はネイティブ言語でAPIコールが生産コスト安そうだ
あとは、俺が古い考えなだけなんだが、ガーベージコレクションの恩恵を受けると、C++に戻った
ときに危うくdeleteするのを忘れそうなんだがw
0976デフォルトの名無しさん
2008/04/03(木) 08:47:22明示的にdeleteしているならC++を使えていないと言うことだ。
auto_ptrやsmart_ptrを使うか、さもなくばデストラクタでdeleteすればいいのだから。
0977デフォルトの名無しさん
2008/04/03(木) 11:05:180978デフォルトの名無しさん
2008/04/03(木) 17:03:15なんでVCだけタコなんだ
0979デフォルトの名無しさん
2008/04/03(木) 17:20:05ttp://journal.mycom.co.jp/articles/2007/05/16/java7/
0980デフォルトの名無しさん
2008/04/03(木) 22:29:100981デフォルトの名無しさん
2008/04/04(金) 17:41:51レス数が950を超えています。1000を超えると書き込みができなくなります。