■過去ログ置き場に戻る■
1-
前250
次250
最新50
[memo]
"9999999999_00.html#R20"
という感じで、URLの最後に "#R
レスNo
" を追加すると幸せになれます。
C++相談室 part29
751
名前:
デフォルトの名無しさん
:04/05/07 13:39
環境: Win+もうひとつ
言語: C/C++/C#(.NET)
マトモにできているなら重宝するよ
752
名前:
デフォルトの名無しさん
:04/05/07 13:40
ドライバ書いたり、組み込み系やるなら何かひとつのCPUを勉強してアセンブラ書けないとだめ。
そうすりゃCでもC++でも見違えるぐらい効率的なコードが書けるようになる。
753
名前:
デフォルトの名無しさん
:04/05/07 13:42
というか、一言にアプリといってもフリー、シェアなどの個人ユーザーレベルから
業務で使うリッチクライアントやサーバー関係など多種多様にある。
それを一つの言語だけということはあり得ない。
>>750
言語がどうこうよりもプログラマーとしてのレベルが大事。
仕事の場合、どんな言語、環境が使われるかわからない。
C/C++でも環境依存なと事かあるし
APIなんてAPIプログラムというのが必要になって来るし。
変に固執するよりもしっかりと地力をつけるのが大事。
754
名前:
デフォルトの名無しさん
:04/05/07 13:44
>>752
今の時代は効率よりも保守性。
それぐらいは常識ですが?
まあ、高速性などが必要な場合は除く。
755
名前:
デフォルトの名無しさん
:04/05/07 13:45
>>752
8086マシン勉強して
アセンブリは一応読めるレベルだけど
書く気は起きないっすよ・・・
756
名前:
デフォルトの名無しさん
:04/05/07 13:47
C/C++できtりゃC#習得は簡単だが、
一行プログラムでもっと重宝できるのがawkあとperl。アプリ書くわけじゃないけど
C系だと面倒なファイルの読み書きや正規表現を手っ取り早くこなして
Post Programming作業が楽になる。
757
名前:
デフォルトの名無しさん
:04/05/07 13:50
>>752
じゃ!君にはC#がぴったりだな。このスレから出て行ってくれ。
758
名前:
デフォルトの名無しさん
:04/05/07 13:51
間違えた
>>752
じゃなくて
>>754
じゃ!君にはC#がぴったりだな。このスレから出て行ってくれ。
759
名前:
デフォルトの名無しさん
:04/05/07 13:54
>>しっかりと地力をつけるのが大事。
その地力とは何かを聞いてるんだよッ。
760
名前:
デフォルトの名無しさん
:04/05/07 13:54
プログラムの世界ではこれをやっとけば大丈夫っていうのがない。
様々な言語が生まれ消えていくから。
そしてそれを採用する企業がいる限り・・・
まあ、個人が趣味でやる分には何をやろうとかまわないけど。
Delphiも.netに移行しちゃったし。
速度を必要としなければVB,C#でもかまわない。
俺はGUI部をdelphiでつくって基幹部をC++でDLLとして作ってる。
761
名前:
デフォルトの名無しさん
:04/05/07 13:57
>>759
学生の俺がレスしてやろう
多分、逆汗してネイティブコードを見ることだろう
762
名前:
デフォルトの名無しさん
:04/05/07 13:57
>>759
プログラムに対する考え方とかそういうの。
結局プログラムはロジックの固まりだから論理思考とかね。
ようするに言語に依存しなく、かつ言語の基礎になるもの。
いろんな言語にふれるのもいい。
あとはどれかをとことんやり込む。
763
名前:
デフォルトの名無しさん
:04/05/07 14:01
>結局プログラムはロジックの固まりだから論理思考とかね。
じゃ詰め将棋でもいいっすか?
それか、徹底的に論理思考を鍛えてる
数学者は最高のプログラマということなんだな?
764
名前:
デフォルトの名無しさん
:04/05/07 14:07
>逆汗してネイティブコードを見ることだろう
それは相当アセンブラで書き込んでないと難しいぞ。
どんな言語でも人のコード読んで理解するには相当書き込んでないとだめ。
特にアセンブラはコードのつながりとか構造が理解しづらいよ。
765
名前:
デフォルトの名無しさん
:04/05/07 14:08
>>763
> 数学者は最高のプログラマということなんだな?
別に論理思考だけじゃないから。
他にもいろんなものが必要になってくる。
それぐらいもわからないお前は
最低のプログラマーであることは間違いないがな。
CPUは計算機ですよ?
766
名前:
デフォルトの名無しさん
:04/05/07 14:12
だな?
から。
くる。
がな。
ですよ?
767
名前:
デフォルトの名無しさん
:04/05/07 14:12
>それぐらいもわからないお前は
わからなから聞いてるんだよッ。
>最低のプログラマーであることは間違いないがな。
おちょくってたら思惑通り切れてやがんの。ギャハハハ。ばーか
>CPUは計算機ですよ?
それがどないした?
768
名前:
766
:04/05/07 14:12
一番上は引用か。
769
名前:
デフォルトの名無しさん
:04/05/07 14:14
しかし、今の言語の流れって小学校の学習指導要綱みたいだな。
昔はCとかだったのが今はゆとり教育でJAVAとC#とか。
ここで名言。
「楽をするのはかまわない。ただ、なぜ楽ができるかを知っていなければならない」
770
名前:
デフォルトの名無しさん
:04/05/07 14:16
名言だって・・・(笑)
771
名前:
デフォルトの名無しさん
:04/05/07 14:16
「楽をするのはかまわない。ただ、なぜ楽をしないといけないかを知っていなければならない」
自分のせりフを名言とかいうな。恥ずかしい。普通一句とかいいたいが句になってないしな。
772
名前:
デフォルトの名無しさん
:04/05/07 14:17
>769
デフォルトの名無しさん sage New! 04/05/07 14:14
773
名前:
769
:04/05/07 14:18
ごめんゆとり教育受けてきたんで言葉知らないんだよ。
774
名前:
デフォルトの名無しさん
:04/05/07 14:18
>>767
> >それぐらいもわからないお前は
> わからなから聞いてるんだよッ。
わからないから考えるんだよ。
考えることをやめたら人間終わり。
まあ、お前はすでに終わってるから関係ないか。
> >最低のプログラマーであることは間違いないがな。
> おちょくってたら思惑通り切れてやがんの。ギャハハハ。ばーか
普通の成り行きだろ。お前が「最高」といったから「最低」で返した。
思惑通りの反応でやんの。ギャハハハ。ばーか
> >CPUは計算機ですよ?
> それがどないした?
ない頭をふりしぼって意味考えろ。
って考える力がないんだったね、ごめん。
775
名前:
デフォルトの名無しさん
:04/05/07 14:19
>>774
また例のC厨か?
さっさとCスレに帰れ。
776
名前:
デフォルトの名無しさん
:04/05/07 14:20
>>771
いや、誰が言ったか忘れたが引用。
個人的に衝撃受けたもので。
777
名前:
デフォルトの名無しさん
:04/05/07 14:20
糞スレで777ゲット
778
名前:
デフォルトの名無しさん
:04/05/07 14:20
どこぞのPG募集広告見ても、C・C++(java)は必須つうか前提のように書かれているから
事実上、ゆとり教育は現場で通用しないというか、現場の入り口にさえ入れないという現実がある
779
名前:
デフォルトの名無しさん
:04/05/07 14:22
>>778
今の教育もそうだよな。小学校でなにをやろうと大学が変わってないから
結局苦労する・・・
780
名前:
デフォルトの名無しさん
:04/05/07 14:23
フォルダに保存したexeファイルから実行するとすぐに画面が消えてしまうんだけど、どうすればいいですか?
781
名前:
デフォルトの名無しさん
:04/05/07 14:25
>>780
system("PAUSE");
これでも使え
782
名前:
デフォルトの名無しさん
:04/05/07 14:26
>>781
だからC厨は(ry
783
名前:
デフォルトの名無しさん
:04/05/07 14:26
>>780
ウイスルかDOSプログラム。
DOSプログラムならDOSかあ起動すればいいし、ウイルスならなもうだめだな。
784
名前:
デフォルトの名無しさん
:04/05/07 14:27
バカにされてるのもわからずマジレス返してる時点で恥の上塗りだな。こいつ女じゃねぇか?
785
名前:
デフォルトの名無しさん
:04/05/07 14:34
>>774
茶化されてることに気づかず。まじめーにレス返してて、気づいた時点での激高振り。
まさに、厨中の厨。先のC厨はまじめなレスなんかはじめから返してなかったんじゃねぇの?
786
名前:
774
:04/05/07 14:37
いや、暇だから・・・
反論に反論で返したかったのよ。
ちなみに他にもいろいろ書いてるよ。
ID制じゃないからわからないだろうけど。
787
名前:
C厨晒しage!
:04/05/07 14:39
C厨晒しage!
788
名前:
デフォルトの名無しさん
:04/05/07 14:44
どうして君たちってこんなに頭が悪いんだろうね。
食生活のせいかなぁ・・・。
789
名前:
774
:04/05/07 14:46
>>788
教育のせい
790
名前:
デフォルトの名無しさん
:04/05/07 15:05
自己責任
なんでも親のせい、大人のせい、教育のせい、社会のせいに
してはいけない
791
名前:
デフォルトの名無しさん
:04/05/07 15:06
>>790
その自己は誰が育てると思う?
792
名前:
デフォルトの名無しさん
:04/05/07 15:11
人生の敗北者でしかないプログラマが人に敗北者への道を説いてどうすんの?
793
名前:
デフォルトの名無しさん
:04/05/07 15:11
>>791
自然淘汰圧と個体の環境適応戦略と順応能力
794
名前:
デフォルトの名無しさん
:04/05/07 15:16
黄金虫が湧いてるだけなのか?
それともGW終わって嫌々仕事してるPGの悲鳴?
795
名前:
デフォルトの名無しさん
:04/05/07 15:19
プログラミング初心者です。
じゃんけんのフローチャートってどうなりますか?
796
名前:
デフォルトの名無しさん
:04/05/07 15:20
D言語嫌われてるね。
C#やJava厨ならともかく
C++厨がD言語嫌う理由は何だ?
797
名前:
デフォルトの名無しさん
:04/05/07 15:26
>>796
> C++厨がD言語嫌う理由は何だ?
1. ここが C++ 相談室スレだから。
2. さすがに、まだ仕事には使えない状況なのだけど、その現状を無視して D, D やかましい
輩が数人いるから。
798
名前:
デフォルトの名無しさん
:04/05/07 15:28
>>796
そりゃまぁ、メーカーがね(ry
799
名前:
デフォルトの名無しさん
:04/05/07 15:31
>>795
[かけ声にあわせて、グー、チョキ、パーのいずれかを出す]
↓ ↑
<判定をする>→あいこなら↑
どちらかが勝てば
↓
(終了)
800
名前:
デフォルトの名無しさん
:04/05/07 15:35
3.ようやく、死に物狂いでC++覚えたのに、また新しい言語が出てきてしかも、
C++でできることはすべてできてしかも生産性が高そうなことに嫉妬して。
ま、C厨と同じく向上心のかけらも無い奴は死になさいって琴田
801
名前:
デフォルトの名無しさん
:04/05/07 15:53
>>800
D厨は氏ね。
802
名前:
デフォルトの名無しさん
:04/05/07 16:07
>>799
二人ならね。
3人以上の場合はまずあいこか調べそのあと
架空の相手(誰も出していない手)と対戦させ
そいつに負ければ勝ち、勝てば負けとなる。
803
名前:
デフォルトの名無しさん
:04/05/07 16:21
>796
Dが嫌われてるというより、D厨がC++スレ荒らしにきてるだけだろ
804
名前:
デフォルトの名無しさん
:04/05/07 16:29
>>800
あのさあ、D覚える方が、C++覚えるよりずっと簡単なんだけど。
嫉妬なんかしてないんだけど(仕事でC#使ってる)。
向上心というより、どう考えても幼稚化なんだよなあ、Dは。
未来のない会社の株は誰も買わないでしょ。それと同じなんだよ。
805
名前:
デフォルトの名無しさん
:04/05/07 16:36
Dってもともとお手軽なC++って感じで設計されたんじゃないの?
触ってる奴らでまともにC++の代替って考えてる奴なんかいるか?
806
名前:
デフォルトの名無しさん
:04/05/07 16:39
D使ってないから知らないがC,C++,JAVAのいいとこ取りで設計されてるんじゃないの?
807
名前:
デフォルトの名無しさん
:04/05/07 16:41
>>805
俺も全く同感なんだが、どうもD厨の中には甚だしく勘違いをして
いる香具師がいるらしく、「新しい物ほど偉い」と思っているらしい。
俺はそういう香具師に「C++に挫折したC厨が次に飛びつくのはDだ」
と揶揄したつもりだったんだが。ほとんどの人はDを遊び道具としか
考えてないはずなのに、
>>800
みたいなD狂信者がいて、しかもC++
スレを荒らしに来るので困っているのだ。
808
名前:
デフォルトの名無しさん
:04/05/07 16:42
なんかJAVAの時もこういう議論あったよな。
809
名前:
デフォルトの名無しさん
:04/05/07 16:42
>>806
本当に「いいとこ取り」なら互換性を捨てたりしないだろう。Dは一番
美味しい所を捨てているように思えるが。
810
名前:
デフォルトの名無しさん
:04/05/07 16:44
ttp://www.sun-inet.or.jp/~yaneurao/dlang/Chapter-02.html
811
名前:
デフォルトの名無しさん
:04/05/07 16:48
ttp://www.kmonos.net/alang/d/comparison.html
812
名前:
デフォルトの名無しさん
:04/05/07 16:51
>>804
あのさあ、ずっと簡単だからいいんだよ。
C#使っててなんでそれ使ってるかわかってないのか?
しかも、幼稚とは思わず使わされて日銭稼いでいる下働きプログラマなんだろが?
>未来のない会社の株は誰も買わないでしょ。それと同じなんだよ。
C++に未来があると思ってる時点でおめでたいことこの上ないな。
Windows以外では別に終わるわけじゃないが、汚前が日々糞coderやってる
WinではC++は終わりなんだよ。
813
名前:
デフォルトの名無しさん
:04/05/07 16:53
結局言語なんて適材適所。
完璧な言語なんてない。
814
名前:
デフォルトの名無しさん
:04/05/07 16:58
>結局言語なんて適材適所。完璧な言語なんてない。
激しく同意。所詮ハードウェアの手順なんだからな。
815
名前:
デフォルトの名無しさん
:04/05/07 17:00
難しいことが美徳と思ってる奴はその都度ロジック回路組め。
816
名前:
デフォルトの名無しさん
:04/05/07 17:05
>本当に「いいとこ取り」なら互換性を捨てたりしないだろう。Dは一番美味しい所を捨てているように思えるが。
一番おいしい部分のどこを捨ててしまったのか教えてください。
817
名前:
デフォルトの名無しさん
:04/05/07 17:09
>>816
まあまあ。
味覚なんて人それぞれ違うんだから。
818
名前:
デフォルトの名無しさん
:04/05/07 17:10
Cだと一筆画きできるがDを一筆書きすると0なのかOなのかわかりにくくなるところ。
819
名前:
デフォルトの名無しさん
:04/05/07 17:10
>>816
俺も思った。
>>811
の比較見る限り。
820
名前:
デフォルトの名無しさん
:04/05/07 17:20
>>816
>>809
は多重継承が何がなんでも必要なんだよ。
言語仕様知らずにこっぱずかしコメント書き込んでるわけじゃないだろうし。
821
名前:
809
:04/05/07 17:22
待て!今はじめて仕様見て必死になってあら捜ししてるところだ。
よーし。ガベコレけなしたろー。
822
名前:
デフォルトの名無しさん
:04/05/07 17:23
どーでもいいけど、ここでやらないでくれよ。
823
名前:
809
:04/05/07 17:34
#ifdef が書けないのが幼稚だ。
824
名前:
デフォルトの名無しさん
:04/05/07 17:42
>>811
腐るほど読んだよそのページは。
>>812
でもD言語も始まるわけじゃないね。
>>813
まあそうだな。
825
名前:
デフォルトの名無しさん
:04/05/07 17:53
所詮C++はつぎはぎのキタネー言語だから、
そこにしがみついてる奴の擁護も当然メチャクチャになる。
826
名前:
デフォルトの名無しさん
:04/05/07 17:55
>>825
C++の最大の失敗はCを引き継いだところ。いいところ悪いところ両方。
827
名前:
デフォルトの名無しさん
:04/05/07 17:58
一番おいしいとこ=CやC++との互換性って意味だろ。
828
名前:
デフォルトの名無しさん
:04/05/07 17:59
確かに、C++は、つぎはぎだらけのキタネー言語だけど、
D言語だって良いとこどりのつもりでごちゃごちゃいろんな機能を
取り入れようとしてつぎはぎだらけになってるけどな。w
829
名前:
デフォルトの名無しさん
:04/05/07 18:01
お前ら、比較叩き煽り何でもありなスレでも立ててそっちでやれよ
ここで下らん叩き合いをするな
830
名前:
デフォルトの名無しさん
:04/05/07 18:02
>>826
言語として失敗だろうがなんだろうが、これだけたくさん使われている以上、
まだC++の時代は終わらん。
俺はVC++よりマトモなコンパイラが出てこない限り、C++をやめる気はない。
831
名前:
デフォルトの名無しさん
:04/05/07 18:02
所詮、C++にもC#にもDにもJavaにもSmalltalkやSchemeのような
スマートさがない。
どれも50歩百歩。
それに、実用性は言語の良し悪しじゃ決まらん。
どれだけCに似てるかと、開発環境の性能で実用性が決まる。
よってC++かC#が一番実用的だ。w
832
名前:
デフォルトの名無しさん
:04/05/07 18:03
C#は一番おいしいとこ捨ててWinのデファクト開発言語となりまつた。
833
名前:
デフォルトの名無しさん
:04/05/07 18:03
おまえらGWは終わりましたよ。
834
名前:
デフォルトの名無しさん
:04/05/07 18:04
>>832
デファクト開発言語の割りには、有名なあのフリーソフトも
あのシェアウェアも全部C#じゃないね。w
835
名前:
デフォルトの名無しさん
:04/05/07 18:06
Win上の開発では未だに圧倒的にC++が優勢だな。
836
名前:
デフォルトの名無しさん
:04/05/07 18:07
longhornが来たらVB,C#ともに大幅な修正が加わる予感。
837
名前:
デフォルトの名無しさん
:04/05/07 18:10
>>834
学生ちゃん。
838
名前:
デフォルトの名無しさん
:04/05/07 18:10
PS、XBOX、DirectXといったゲームプログラムは
C++しか選択肢が無いしな
Win以外の分野ではC#なぞかけらも見ない
839
名前:
デフォルトの名無しさん
:04/05/07 18:12
>>836
あれだけ環境依存だと
言語仕様そのものに大幅な修正が要るな
今時そんな薄氷のような言語イラネ
840
名前:
デフォルトの名無しさん
:04/05/07 18:12
ここまで連鎖あぼ〜んで(ry
841
名前:
デフォルトの名無しさん
:04/05/07 18:13
>DirectXといったゲームプログラムは
>C++しか選択肢が無いし。
さらしあげ。首つって市ね。あほ!
842
名前:
デフォルトの名無しさん
:04/05/07 18:17
windowsプログラマ戦々恐々だね。あさましい。
843
名前:
デフォルトの名無しさん
:04/05/07 18:25
新しく普及しそうな言語がでたらそれをえるように対応するだけなのに
C++厨はなんでこんなに他をけなしてしがみついてるの?C厨以下だな。
844
名前:
デフォルトの名無しさん
:04/05/07 18:29
MSの手のひらの上で仕事させてもらってうれしいか?
845
名前:
デフォルトの名無しさん
:04/05/07 18:33
>>838
XBoxとDirectXはC#だよ
PSはアセンブラ
846
名前:
デフォルトの名無しさん
:04/05/07 18:34
>>843
> 新しく普及しそうな言語がでたらそれをえるように対応するだけなのに
いや、大半の人間は「普及したら」で間に合う。とりあえず Visual D 出るまで
待ちでしょ。
847
名前:
デフォルトの名無しさん
:04/05/07 18:36
>>845
PSはアセも使うがC/C++も使えるぞ。
コードウォーリアーとかあるし。
ミドルウェアも多いし。
848
名前:
デフォルトの名無しさん
:04/05/07 18:37
>>846
俺もそう思う。VDとか出たら考える。
JAVAだって結局Serverサイドかゲームぐらいしか使われなくなってるし。
849
名前:
デフォルトの名無しさん
:04/05/07 18:38
>843
よそのスレで他の言語叩いてるC++信者に言ってくれ・・・
ここはC++のスレだからさ・・・
850
名前:
デフォルトの名無しさん
:04/05/07 18:41
directX・箱はC++でコード書くのがメイン
PS2のエンジン(ライブラリ)はC++で書いて、微調整でアセンブリだろ
851
名前:
デフォルトの名無しさん
:04/05/07 18:41
>>Visual D 出るまで待ち
反吐が出るね。M$プログラマのレベルなんてこんなもん。お前はM$の下請けか?
852
名前:
デフォルトの名無しさん
:04/05/07 18:47
>>850
> PS2のエンジン(ライブラリ)はC++で書いて、微調整でアセンブリだろ
VU1 で走らせるマイクロコード (シェーダー) は、専用のアセンブラ言語。
メイン CPU 側で走るコードは大半が C++, コンパイラがサポートしていない
SIMD 命令 (R5900 マルチメディア命令と VU0 マクロモード)、あとは同期
処理などで使うハードに極めて近い命令だけインラインアセンブラで書く、
っつー感じ。
いずれにせよアセンブラは数学関数や描画系などの中で使うのがメインで、
ゲームっぽいコードのほうにはめったに顔を出さない。
853
名前:
デフォルトの名無しさん
:04/05/07 18:49
>>851
勝手に反吐だしてれば?糞が。
M$は嫌いだが、コンパイラとマウスは出来がいい。
854
名前:
デフォルトの名無しさん
:04/05/07 19:03
VCも.NETで対応CPU増えたし、コンパイラだけなら配布しだしたしなぁ。
コンパイラはIntel、GCC、VC、Borlandぐらいか?
855
名前:
デフォルトの名無しさん
:04/05/07 19:14
>>854
ほかにも CodeWarrior とか。
組み込み用途だと CPU ベンダ純正のコンパイラとか、リアルタイム OS 屋
が出してるコンパイラ (Wind River Diab C/C++) とか色々あるよん。
856
名前:
デフォルトの名無しさん
:04/05/07 19:27
趣味のプログラムならともかく、業務的には
ソフトウェア開発で職業プログラマが同じ処理を書くとき
少なくともC++より高水準なC#を使う場面なんてあるか?
ゲームプログラムだって
より低水準な言語でローレベルな調整したいのが人情
少なくともゲームプログラムではC・C++をメインに
専用アセンブリで痒いところを微調整というのが通常
857
名前:
デフォルトの名無しさん
:04/05/07 19:45
そんな君はC++なんか使わずピュアC & 汗使えばいいだろ?というか使え。
C++みたいにコンパイル結果が見通しにくい言語使っちゃ、人間が介入するの大変だろうが。
858
名前:
デフォルトの名無しさん
:04/05/07 20:03
>>855
違う。メジャーどころって意味で。
マイナー含めたらそれこそ山のようにある。
859
名前:
デフォルトの名無しさん
:04/05/07 20:07
>>856
業務ってもパッケージソフトウェアとシステム開発で全く違うだろ、
ってかC#が台頭してるのはVB使ってたような場所。
860
名前:
デフォルトの名無しさん
:04/05/07 20:15
>>858
> 違う。メジャーどころって意味で。
組み込み用途は、むしろメジャーだと思うぞ。開発人口も少なくないし。
861
名前:
デフォルトの名無しさん
:04/05/07 20:18
>>857
C から C++ になって見通しが悪くなったのは、コードの配置ぐらいだと思うが。
あれは inline やら template やらあるから C と違って調整が難しい (命令
キャッシュのヒット率を上げるのが難しい) けど、他はそれほど。
最適化をかけると元のコードとかけ離れたコードをはくのは C も C++ も
大差ないよ。レジスタリネーミングを使うと、かなり追えん。
862
名前:
デフォルトの名無しさん
:04/05/07 21:29
C#がデファクトとか言ってる人は何を根拠に?
とても信じ難いんだけど。
どういう世界でデファクトなの?
863
名前:
デフォルトの名無しさん
:04/05/07 21:34
さっきからデファクトといってるがデファクトスタンダードとしないとも間違ってるぞ。
デファクトは「事実上の」って意味だけだ。
864
名前:
デフォルトの名無しさん
:04/05/07 21:36
>>862
Web がらみの三階層アプリケーションだと、わりと流行ってる感じ。
これまで VBScript, JScript 使って ASP 書いてたところが、C#.net に
乗り換えてる。
でも、そっちも JSP とか ColdFusion なんかもあるし、まだデファクト
スタンダードっつ〜ほどじゃないと思うが。
865
名前:
デフォルトの名無しさん
:04/05/07 21:41
>>864
C#はJSP,ASPに置き換わるものとして作られたんだろ。
クライアント用にはVBがあるわけだし。
866
名前:
デフォルトの名無しさん
:04/05/07 21:42
JSPの代わりもVB.netでいいじゃん。
867
名前:
デフォルトの名無しさん
:04/05/07 22:47
JSP? Japan Stuttering Project のことか?
どもりで困ってるのか?
868
名前:
デフォルトの名無しさん
:04/05/07 23:09
>>864
M$がらみはデファクトスタンダードはない。
M$がスタンダードを決めてお前らが従うだけ。嫌なら書かなくていーよ。
アプリ書きたい奴はいっぱいいるから。
言語どころか開発環境さえ選択の自由なんかあるかよ。
869
名前:
デフォルトの名無しさん
:04/05/07 23:21
>>864
それはVBScriptが取って代わってるだけでC++と
取って代わってるわけじゃないだろ。
870
名前:
デフォルトの名無しさん
:04/05/07 23:24
>>868
> M$がらみはデファクトスタンダードはない。
三階層アプリだと Oracle + JSP や SQL Server + ASP (C#.net) など、
選択肢はいくつかあるよ。クライアントサイドだと Win32 でほぼ決まり
だから、選択の余地は狭いが。
871
名前:
864
:04/05/07 23:26
>>869
その通り。
っつか、俺は C++ と C# は有効に活用できる対象が明確に違うと思ってる。
ただ今後は Win32 クライアントも C# で書く機会が増えそうだし、これまで
C++ が受け持っていた領域にも少し C# が食い込んでくるかなぁ、とは
考えてるけど。
872
名前:
デフォルトの名無しさん
:04/05/07 23:32
新しい領域は新しい言語がいいんでない?
C++は従来Cでやってたことを、一歩進めるのに使う。
873
名前:
デフォルトの名無しさん
:04/05/07 23:50
教えてください。
クラステンプレートにて例えば
template<typename mytype> class test{
test(const mytype &); //コンストラクタ
…
};
としたとして、コンストラクタなんですが、上記とちょっと変えて
test<mytype>(const mytype &);
とするやり方があると本で読んだのですが、いまいちどう違うのか
わかりません。何でもmytypeにそれぞれ固有のコンストラクタが
コンパイラによって生成されるとかなんだそうですが、最初のやり方
でもそんな感じがします。
どう違うのでしょうか?
874
名前:
デフォルトの名無しさん
:04/05/08 00:01
>>873
違いなんてありません。
875
名前:
デフォルトの名無しさん
:04/05/08 00:15
そ、そうなんすか?
ということは
test<mytype>というコンストラクタの書き方は意味をなさないと?
876
名前:
デフォルトの名無しさん
:04/05/08 01:19
http://www.geocities.com/one_mad_alien/perftest.html
こりゃもう乗り換えるしかないだろ。
877
名前:
デフォルトの名無しさん
:04/05/08 01:23
>>876
まだ言ってるのか・・・。言語論に速度はほとんど関係ないよ。
878
名前:
デフォルトの名無しさん
:04/05/08 01:30
>>877
技術ばかりに目が行ってると、その辺が理解できなくなる。視野の狭い人間に
何言っても無駄だから、放置しとけ。
俺は Visual D はともかく、プログラミング言語 D と Effective D が出たら
考えるよ。
879
名前:
877
:04/05/08 01:36
因みに俺はPrologが最高の言語だと思ってる。
880
名前:
デフォルトの名無しさん
:04/05/08 01:41
>>879
わざわざC++スレでそんな毒にも薬にもならない自己主張などしなくてよい。
881
名前:
デフォルトの名無しさん
:04/05/08 02:04
C++でCと同程度の速度で巨大ファイルを読み込む方法ってありますか。
ここによると、
ttp://www.gamedev.net/community/forums/topic.asp?topic_id=121193
std::iftream ifs( "filename" );
ifs.rdbuf()->sgetn( (char*)data, size ); // low-level
とするのがいいといってるんですが、
50MBほどのファイル読み込みをCと比較すると3倍ほど遅いです。
882
名前:
デフォルトの名無しさん
:04/05/08 02:07
なんかC厨を釣るためのネタ質問に見えるなぁ
883
名前:
デフォルトの名無しさん
:04/05/08 02:13
>>881
比較用のソース晒せ。
884
名前:
デフォルトの名無しさん
:04/05/08 02:14
perlより速いんだろ?
885
名前:
デフォルトの名無しさん
:04/05/08 02:15
>>881
その後のデータの使い方による。stream の機能をフルに使いたいなら
そこで示された方法を使うことになるし、単にメモリ上にマップすれば良い
のなら mmap() とか MemoryMappedFile() といった OS の仮想記憶
システムに近い低レベル API を使うことになる。
886
名前:
デフォルトの名無しさん
:04/05/08 02:43
881です。
>> 883
だいたいこんな感じです。
const int BUFSIZE = 4096;
// C 用
setvbuf(fp, NULL, _IOFBF, BUFSIZE);
clock_t start = clock();
while (fread(buf, 1, BUFSIZE, fp)) ;
clock_t end = clock
---
// C++ 用
ifs.rdbuf()->pubsetbuf(buf, BUFSIZE);
clock_t start = clock();
while (ifs.read(buf, BUFSIZE)) ;
clock_t end = clock、
>>885
Cのfopenとfgesで十分な使い方です。
ただなんでこんなに速度差があるのか疑問だったので。
887
名前:
デフォルトの名無しさん
:04/05/08 02:50
881です。
まちがえました。
ifs.read(buf, BUFSIZE));
↓
ifs.rdbuf()->sgetn(buf, BUFSIZE);
888
名前:
デフォルトの名無しさん
:04/05/08 03:22
>>886
なんで部分的に貼るんだよ。テストしにくいだろ。
889
名前:
デフォルトの名無しさん
:04/05/08 03:53
>886
デバッグビルドしてませんか。
890
名前:
デフォルトの名無しさん
:04/05/08 09:27
bool aという変数があって、
aがtrueの時はfalseに、falseの時はtrueにするような(反転するような)
代入をしたいのですが、
a=~a;
だと、コンパイラが受け付けてくれません。
どうやったらいいでしょうか。
891
名前:
デフォルトの名無しさん
:04/05/08 09:32
>>890
a = !a;
892
名前:
デフォルトの名無しさん
:04/05/08 10:14
C++の仕様を決めるとき、なんで配列のdeleteには[]が必要にしたんだろ?
配列も普通にdeleteだけで開放できても問題ないような。
[]を付け忘れて間違えるデメリットはあっても、付ける事によるメリットって
なんかある?
893
名前:
デフォルトの名無しさん
:04/05/08 10:38
>>892
ある。
配列を開放する場合、デストラクタを呼び出すために、その配列に格納
されている要素数をどこかに記録しておく必要がある。delete, delete[] を
共通にしてしまうと、常にこの要素数を記録せにゃならんので、その分だけ
メモリが無駄になる。
894
名前:
デフォルトの名無しさん
:04/05/08 11:42
>>893
でも正直、貧乏臭いよね。
895
名前:
デフォルトの名無しさん
:04/05/08 11:51
数バイトのメモリケチってdelete/delete[]を誤るほうが怖いな
下手すると豪快にリークしてくれるて本末転倒
896
名前:
デフォルトの名無しさん
:04/05/08 11:53
>>893
それ本当?
もともとメモリ開放するためには、newで確保したメモリサイズが
なにかしらの管理領域に保持されているはずだよね。
そしたら要素数なんて別に持たなくても、要素数は算出できるはずじゃね?
897
名前:
デフォルトの名無しさん
:04/05/08 11:58
デストラクタ呼び出しのためじゃないの?
898
名前:
デフォルトの名無しさん
:04/05/08 12:00
>895
WindowsなどのPC環境でしか開発をしたことがないと
そういう言葉が出てくる
899
名前:
デフォルトの名無しさん
:04/05/08 12:11
>>897
[ ]あってもなくてもデストラクタは呼ばれる。
900
名前:
デフォルトの名無しさん
:04/05/08 12:13
>>898
確かにメモリがシビアな状態ではね。
でも、newした時点ですでに保持されてるんじゃないの?
901
名前:
デフォルトの名無しさん
:04/05/08 12:16
>>896
そのオブジェクトのサイズはね。
だけどポインタが指してる先が一個のオブジェクトか、配列の先頭かは
プログラマにしか分からんよ。
902
名前:
デフォルトの名無しさん
:04/05/08 12:20
>>901
OSも知ってる。もちろんOSにも寄るけど。
903
名前:
デフォルトの名無しさん
:04/05/08 12:21
>>896
ttp://www.tietew.jp/cppll/archive/10666
ここを読みんしゃい。
あと、
>>896
が言うように計算可能であるかもしれないけど
コストがかかる処理になるかもしれないし
メモリアロケータを設計する上での足枷となりうる。
904
名前:
デフォルトの名無しさん
:04/05/08 12:30
>>900
メモリアロケータはユーザが override 可能だから、それを仮定することはできない。
905
名前:
デフォルトの名無しさん
:04/05/08 12:32
>>899
>>899
え?
906
名前:
デフォルトの名無しさん
:04/05/08 12:33
>>903
うーん、そんなにコストかかるか?
newで確保したメモリ内に管理用領域が付随していて、
それが激しくサイズ不定でとかならわかるが、
普通は引き算がせいぜい数回と、割り算1回発で済むんじゃないの?
>メモリアロケータを設計する上での足枷となりうる。
というのも足かせが思いつかん。
907
名前:
デフォルトの名無しさん
:04/05/08 12:41
>>906
メモリアロケータは要求されたメモリサイズをそのまま確保するのではなく、
8, 16 バイト単位に切り上げた上でメモリを確保・呼び出し側に渡したり、
一定サイズまではライブラリ内部でプールしておいて、閾値を越えたら OS
のアロケータに丸投げしたりといった細かい工夫が施されてたりする。
確保したメモリサイズ・要素数を生のまま埋め込むことを前提とすると既存の
メモリアロケータを全部捨てて書き直す必要がるし、かといってアロケータが
まったく別の領域で「メモリアドレス先頭」と「要素数」の対応表を管理すること
にすると、そっちのメンテナンス・検索コストが結構かかる。
908
名前:
デフォルトの名無しさん
:04/05/08 12:46
静的メンバ関数を使うメリットってなんですか?
909
名前:
デフォルトの名無しさん
:04/05/08 12:47
>>908
何と比較して?
910
名前:
デフォルトの名無しさん
:04/05/08 12:49
>>899
[]なしだと呼ばれるのは先頭要素だけだよな
911
名前:
908
:04/05/08 12:55
>>909
普通に関数宣言するのと比べて(クラスのメンバにしないで)
912
名前:
デフォルトの名無しさん
:04/05/08 12:57
クラスの静的メンバにアクセスできる
913
名前:
908
:04/05/08 13:01
>>912
即レスありがとうございます。
今のところコールバック関数をメンバにしたいときにしかつかったことないんでどういうときに使うといいのか〜ってのがいまいちわかってないみたいです。
もっと勉強したほうがいいですね。
914
名前:
デフォルトの名無しさん
:04/05/08 13:12
静的メンバ関数はインスタンスが無くても使えるのが便利。
915
名前:
デフォルトの名無しさん
:04/05/08 13:18
全てのオブジェクトからアクセスできる。
クラスのオブジェクト生成のカウンタとか、共通で扱うデータなどは静的メンバ変数にする。
916
名前:
908
:04/05/08 13:18
グローバル変数みたいなものってわりきっちゃっていいかな?
917
名前:
デフォルトの名無しさん
:04/05/08 13:22
むしろ外部からのstatic変数へのアクセス関数に相当だろ。
918
名前:
デフォルトの名無しさん
:04/05/08 13:23
>>906
>というのも足かせが思いつかん。
古臭い仕様上の制約というやつだ。合理性を求めても仕方が無い。
919
名前:
デフォルトの名無しさん
:04/05/08 13:32
win32apiのWINAPIとかCALLBACKみたいに
C++の言語仕様に
関数名に付加する修飾子みたいなのってありますか?
920
名前:
デフォルトの名無しさん
:04/05/08 14:06
>>919
WINAPIが何で定義されてるかお前は知っているのか?
921
名前:
デフォルトの名無しさん
:04/05/08 15:26
>割り算1回発で済むんじゃないの?
ヲーヲー!もっともクロック数が必要な命令じゃないか。
922
名前:
デフォルトの名無しさん
:04/05/08 15:37
>>920
__stdなんたらとかいう記号定数だろ
windows.hで定義されてるやつ
仮にC++のソースに関数名と型の間にひとつトークンを置いたとき
こういうのを関数名を修飾するトークンというふうに
認識してくれるのかなとか、なんとなく思ったので質問した
923
名前:
デフォルトの名無しさん
:04/05/08 15:58
>>922
> __stdなんたらとかいう記号定数だろ
「記号定数」ってなんだ?
C++の文法と、使っているコンパイラのマニュアルを確認しる。
924
名前:
デフォルトの名無しさん
:04/05/08 16:12
>>922
お前がそのWINAPIを使うときに使ってる言語は何だと思う?
その言語は「修飾するトークンというふうに認識」してるらしいが、
その言語はなんだと思う?w
925
名前:
デフォルトの名無しさん
:04/05/08 16:13
春だなぁ・・・
926
名前:
デフォルトの名無しさん
:04/05/08 16:38
春ですねぇ…
927
名前:
デフォルトの名無しさん
:04/05/08 16:42
春ではなくただの日曜日だが。
>>919
関数名に付加する修飾子は在るが、呼び出し規約を指定するものはない。
928
名前:
デフォルトの名無しさん
:04/05/08 16:43
呼び出し規約を指定するものしかないの間違いだろ?
929
名前:
デフォルトの名無しさん
:04/05/08 16:46
> C++の言語仕様に
930
名前:
デフォルトの名無しさん
:04/05/08 16:47
>>927
土曜日ですよ。
931
名前:
デフォルトの名無しさん
:04/05/08 16:48
>>928
inline, virtual, explicit, staticなんだが、これを呼び出し規約と言うのか?
932
名前:
デフォルトの名無しさん
:04/05/08 16:51
stdcall、cdecl、fastcall
933
名前:
デフォルトの名無しさん
:04/05/08 16:52
>>930
そうだったか…
934
名前:
デフォルトの名無しさん
:04/05/08 16:58
呼び出し規約は __stdcall __thiscall __fastcall __cdecl だな。Windows環境だと。
ちなみに先頭にアンダーバーがついてるので処理系依存だな。
935
名前:
デフォルトの名無しさん
:04/05/08 17:01
呼び出し規約ってDLL作成の時にしか気にしてないが
他になんか必要な場合ある?
936
名前:
デフォルトの名無しさん
:04/05/08 17:03
食い違ってるとスタティックリンクすらできん。
937
名前:
デフォルトの名無しさん
:04/05/08 17:05
>>934
__thiscallと書きたい気分はわからんでもないが、とりあえず手元のVC7にそんなキーワードはなさげだったぞ。
あとアンダーバー二つはM$拡張みたいだが、詳しいことは漏れもよくわからん。
938
名前:
デフォルトの名無しさん
:04/05/08 17:06
>>924
D言語
939
名前:
デフォルトの名無しさん
:04/05/08 17:11
thiscall
C++メンバ関数用
基本的には__cdeclと同じだが、最後にthisをpushする。
940
名前:
デフォルトの名無しさん
:04/05/08 17:12
thiscall はキーワードではないので、プログラムで明示的に指定できません。
941
名前:
デフォルトの名無しさん
:04/05/08 17:18
より詳しくは、それぞれのコンパイラスレでどうぞ。
942
名前:
デフォルトの名無しさん
:04/05/08 17:18
>>935
APIのコールバック関数。
943
名前:
デフォルトの名無しさん
:04/05/08 17:21
>>939
わかりやすい誤訳だな。
944
名前:
デフォルトの名無しさん
:04/05/08 17:24
>>943
はぁ?
ttp://www.microsoft.com/japan/developer/library/vccore/_core_thiscall.htm
でも見てろ。
945
名前:
デフォルトの名無しさん
:04/05/08 17:24
API絡みぐらいじゃないとやっぱ使わないか。
946
名前:
デフォルトの名無しさん
:04/05/08 17:28
>>943
じゃあ分かり難い誤訳でもご覧になって落ち着いてください。
http://support.microsoft.com/default.aspx?scid=kb;JA;74586
947
名前:
デフォルトの名無しさん
:04/05/08 17:33
>>943
ttp://www.microsoft.com/italy/survey/surveycom_jp.aspx
948
名前:
943
:04/05/08 17:34
thisをスタックに積むのは「vararg 関数」の時だけ。
それ以外の場合はecxレジスタで渡す。
↓原文。この時点でたしかに誤解を招きやすい。
http://msdn.microsoft.com/library/en-us/vccore98/html/_core_thiscall.asp
↓新しく書き直されたのがこっち。だいぶ読みやすくなってる。
http://msdn.microsoft.com/library/en-us/vclang/html/_core_thiscall.asp
949
名前:
デフォルトの名無しさん
:04/05/08 17:36
Whidbeyがいつの間にかVisualStudio2005に名前決まったんだな。
950
名前:
919
:04/05/08 18:09
蒸し返すけど要はホスト環境とコンパイラ依存ということですかね
関数の呼び出し規約の修飾子は。
つまり、WINAPI向けにコンパイラの機能を拡張しただけだと
951
名前:
デフォルトの名無しさん
:04/05/08 18:18
x86以外の大抵のCPUには呼び出し規約は一つしかない。
x86に呼び出し規約がたくさんあるのも、WINAPI向けってわけじゃぁない。
↓ここの"The history of calling conventions"シリーズがかなり詳しい(まだ全部読めてないけど)。
http://weblogs.asp.net/oldnewthing/archive/2004/01.aspx
952
名前:
デフォルトの名無しさん
:04/05/08 19:21
NULL character を含む文字列 ("aaa\0bbb\0ccc\0\0" みたいなの) を std::string で
扱いたいんだけど、どうやって代入すればいいですか?
string s = "aaa\0bbb\0ccc\0\0";
だと、"aaa" までしか代入できません。
953
名前:
デフォルトの名無しさん
:04/05/08 19:25
basic_string(const E *s, size_type n, const A& al = A());
basic_string(const_iterator first, const_iterator last, const A& al = A());
954
名前:
デフォルトの名無しさん
:04/05/08 19:33
\x00は?
955
名前:
デフォルトの名無しさん
:04/05/08 19:44
>>952
> string s = "aaa\0bbb\0ccc\0\0";
そりゃ初期化だ。初期化なら
>>953
の挙げてるコンストラクタ使え。
代入なら同じ引数のassign使え。
リテラルのサイズを取得するのに、templateを使うと幸せになれるかもしれない。
template< std::size_t N > inline std::string& assign_literal( std::string& target , char const ( &literal )[ N ] ){ return target.assign( literal , N - 1 ); }
956
名前:
デフォルトの名無しさん
:04/05/08 20:22
>>953
,955
うわっ、レス早っ!
こんな感じでいいのかな?
char *p = "aaa\0bbb\0ccc\0\0";
string s(p, 13);
string t;
cout << s << endl;
cout << s.size() << endl;
t.assign(p, 13);
cout << t << endl;
cout << t.size() << endl;
どうもでした。
957
名前:
デフォルトの名無しさん
:04/05/08 20:28
こまかい突っ込みですまんが。
× char *p = "aaa\0bbb\0ccc\0\0";
○ char const *p = "aaa\0bbb\0ccc\0\0";
958
名前:
デフォルトの名無しさん
:04/05/08 20:34
>>956
>>955
の書いたテンプレート関数なら
std::string s;
assign_literal(s, "aaa\0bbb\0ccc\0\0");
で済みますな。長さを別途与えなくてもいい
959
名前:
デフォルトの名無しさん
:04/05/08 21:38
>× char *p = "aaa\0bbb\0ccc\0\0";
ほんと糞下らんこと言う奴いるな。
いったん初期化したあとで別のアドレス指すのかもしれんだろうが。
960
名前:
デフォルトの名無しさん
:04/05/08 21:44
>>959
961
名前:
デフォルトの名無しさん
:04/05/08 21:46
>>957
お前の意図したコードは↓じゃないか?
char const * const p = "aaa\0bbb\0ccc\0\0";
962
名前:
デフォルトの名無しさん
:04/05/08 22:07
>>959
http://www.kuzbass.ru/docs/isocpp/future.html#depr.string
963
名前:
デフォルトの名無しさん
:04/05/08 22:07
char const ってあったっけ?
const char *const p = ...
ならあると思うが
964
名前:
デフォルトの名無しさん
:04/05/08 22:18
chsr constは const char と同意。間違いない。それぐらい調べてからコメントしろ。
というより const が直後を修飾すると考えると
char const の方がbetter だと思う。特にpointerのアドレスか内容かをconst指定する際
char const *p;
はわかりやすいと思う
965
名前:
デフォルトの名無しさん
:04/05/08 22:20
>>964
> char const の方がbetter だと思う。
そうか、読みにくいから俺はいつも const char だ。
966
名前:
デフォルトの名無しさん
:04/05/08 22:23
>>964
> const が直後を修飾すると考えると
漏れの場合その道理でいくとconstが*にかかって
ポインタを移動できなくなるんじゃないかと誤解するなぁ。
967
名前:
デフォルトの名無しさん
:04/05/08 22:27
次スレ?
http://pc5.2ch.net/test/read.cgi/tech/1078193971/
968
名前:
デフォルトの名無しさん
:04/05/08 22:35
>>constが*にかかって
char *p;
で*pをポインタと考えてるからだろうが!違うぞ pがポインタで*pはその内容を意味する。
だから
char const *p
は p の指す内容を不変とすること。
char * const p;
は p の指すアドレスそのものを不変とすること。
969
名前:
デフォルトの名無しさん
:04/05/08 22:43
型を修飾すると考えるほうがわかりやすいような希ガス。
970
名前:
デフォルトの名無しさん
:04/05/08 22:48
>>964
constが直後を修飾するという考えなら
const charでいいだろ。あくまでchar型のインスタンすを定数と
考えるんだからな。
long だってlong int ってするようにな。
971
名前:
966
:04/05/08 22:58
>>968
> で*pをポインタと考えてるからだろうが!
いや、宣言時には*がポインタを表す装飾だと思って(思い込んで)いるから。
漏れの場合*とpは離して書いてるが、それも宣言専用の装飾だと思っているから。
ちょっと無理のある表現だが
const char pointer p;
みたいな感じかな。
> pがポインタで*pはその内容を意味する。
だとすると、
char *p="null po";
はおかしな表現に思えてしまう。
あくまで宣言のみの表現で*pが内容を意味しないと解釈すると
上のようにpointerに置き換えられるので納得しやすい。
あとは定数の表現をchar constではなくconst charと覚えているから
const charのポインタということでconst char *にしているというのもある。
972
名前:
デフォルトの名無しさん
:04/05/08 23:03
というか、char constって書き方ができるってのはいいが、
そういう表現を積極的に採用してる書籍ってあるのか?
ストラウストラップだってconst charだろ?
char型の・・・ただのchar型でなくて、定数のchar型・・・
というような順の修飾と考えたほうが自然だと思うけどなぁ。
char constという表現を知らんやつがいても仕方ないぐらい、
特殊な書き方だと思うよ。
973
名前:
デフォルトの名無しさん
:04/05/08 23:06
アスタリスクを通る縦線を引いて、分類せよ。って書いてあったじゃん。
974
名前:
デフォルトの名無しさん
:04/05/08 23:07
>char *p="null po";
>はおかしな表現に思えてしまう。
これは、本来は文法的にはあまりよろしくない書き方だ。
初期化が面倒だから、K&Rにもこういう書式を許しているし、コンパイラもOKだが
本来は
char *p;
p="おまえはバカ";
であるからな。厳密に考えるとCにはおかしな書式がいくつかある。
975
名前:
デフォルトの名無しさん
:04/05/08 23:08
>>974
( ゚д゚)ポカーン
976
名前:
デフォルトの名無しさん
:04/05/08 23:09
>>972
それはお前がバカだから、
Effective C++
読んでから言え。もっとも積極的に勧めてるわけじゃなく、
両方読める必要があると言っている。
お前はそれを知らなかったんだから、知る必要があったわけだ。
無知をひけらかして恥さらすな。
977
名前:
デフォルトの名無しさん
:04/05/08 23:13
宣言したインスタンスに対し初期化するという意味なら別におかしいとは
思わんよ。
どんな修飾がついてたって、インスタンスはpであってその内容を代入してる
わけだから。修飾子とインスタンスを切り離して考えれば自然ではある。
char *p = "おまえがバカ";
でいいと思う。
978
名前:
966
:04/05/08 23:13
>>972
const char *で宣言してもコンパイラのエラー出力ではchar const *になってたりするけどな。
話はちょっと反れて関数のポインタが&をつけなくても
取得できるのがおかしいというのをたまに聞くが、
あれも関数名はポインタそのもので()がポインタを解決する(実際には実行するんだが)為の
operatorと考えていて何も疑問を感じていない。
むしろ関数名に&を付けて関数のポインタを得られることが不思議だったりする。
メンバ関数に対するconstでもないしそろそろCスレ行きか。
979
名前:
デフォルトの名無しさん
:04/05/08 23:15
ルールを単純にしたいがため、「constは左の型を修辞する」というルール一本にした。
他所から拾ってきたソースや過去の自分のソースで const char とか書いてあるのを見たときに少し考えてしまう。
> そういう表現を積極的に採用してる書籍ってあるのか?
David Abrahamsによるboostのソースはそうなっている。
上記のルールの一本化も彼のコーディングガイドラインによるもの。
少し前のgccの出力がそうなっていたが、最近はconstが右につくようになった。
980
名前:
デフォルトの名無しさん
:04/05/08 23:16
>long だってlong int ってするようにな。
話にならんな。
この場合 long は int を修飾するだけ
int long x;
とやって long が xを修飾する必要がどこにあるんだ。
char const *p;
の const がポインタ内容を修飾する必要のある場合とは全く意味が違う。
例を持ち出すならもっと的確な事例を挙げてろ
981
名前:
デフォルトの名無しさん
:04/05/08 23:17
>>978
関数名は関数型を持ち、関数型は関数へのポインタへ暗黙の変換が効く。
関数への参照という型も存在する。
この認識がないと、templateで関数型を扱うものが理解できない。
982
名前:
デフォルトの名無しさん
:04/05/08 23:20
>>974
> 本来は
> char *p;
> p="おまえはバカ";
と言われても、
char const * const p;
p = "NULLPO";
と書くと警告でちゃうぞ。
>>976
何熱くなってんだ ?
誰も const char と char const のどちらかしか読めないなんて書いてないぞ。
983
名前:
デフォルトの名無しさん
:04/05/08 23:21
>>976
バカはおまえだ。俺は両方の表現知ってたし、あくまで
const char より char const の方を押してる書籍の話を
言ってんだ。それが積極的ってことだろ。Effe C++だって
char constを押してるわけじゃない。知る必要とかじゃなくて
どっちが一般的かって話してんだよ。それからお前はEffe C++
がすべてか。バ・カ・タ・レ。
984
名前:
デフォルトの名無しさん
:04/05/08 23:22
>話はちょっと反れて関数のポインタが&をつけなくても
関数のポインタってなんだ?関数へのポインタのことか?
985
名前:
デフォルトの名無しさん
:04/05/08 23:22
これ以上constの位置について話すのならコチラへどうぞ→
http://pc5.2ch.net/test/read.cgi/tech/1078193971/
986
名前:
デフォルトの名無しさん
:04/05/08 23:25
なにあつくなってんだクズども
class Class { ... } typedef C;
987
名前:
デフォルトの名無しさん
:04/05/08 23:26
>>986
お前のことだ(w
988
名前:
デフォルトの名無しさん
:04/05/08 23:28
>>983
お前が何にも知らんことは文面から用意に察することができたのでバカでも知ってる教科書名を挙げてやったのよ。
一通りよんでりゃ、const の前置、後置ぐらいでスレ汚すバカは居ないだろうからな。勉強になったことを感謝しろ。
日 本 海 溝 よ り 教 育 レ ベ ル の 低 い 糞 ガ キ よ 。
989
名前:
デフォルトの名無しさん
:04/05/08 23:28
>>984
それぐらい理解しろよ。
人と話したことないのか ?
990
名前:
966
:04/05/08 23:29
>>977
>>971
と同じ意見だよな。ありがとう。
が、あくまでソースから受ける印象の話であって何が正しいという話はしていないことに注意。
>>984
すまん。関数へのポインタ。
>>981
恥ずかしながら関数型という言葉を知らないんだが具体例をきぼん。
ということでC++の話題へ。
991
名前:
デフォルトの名無しさん
:04/05/08 23:29
とりあえず落ち着け。
>>988
海溝は深いと言うべきだな。
992
名前:
デフォルトの名無しさん
:04/05/08 23:30
>>988
しまいにゃ言えることはその程度かw。死ね。
993
名前:
デフォルトの名無しさん
:04/05/08 23:30
>>952
最後に'\0'を2回付けたいのなら"〜\0"で十分では?
994
名前:
デフォルトの名無しさん
:04/05/08 23:33
議論は構わないがそう熱くなるな。
端から見てると単なるケンカにしか見えないから。
995
名前:
デフォルトの名無しさん
:04/05/08 23:34
まず日本語の読解力を身につけろよ。
996
名前:
デフォルトの名無しさん
:04/05/08 23:36
>と言われても、
>char const * const p;
>p = "NULLPO";
>と書くと警告でちゃうぞ。
それはね、内容もアドレスも不変と宣言してるのに、宣言した時点より跡で代入してるから。
997
名前:
デフォルトの名無しさん
:04/05/08 23:36
すいません熱いところ申し訳ないんですが次スレはドコですか
998
名前:
デフォルトの名無しさん
:04/05/08 23:43
>>984
>それぐらい理解しろよ。
>人と話したことないのか ?
君ポインタの扱いが十分わかってないね。
関数のポインタなんて表現はありえない。
つまり、わかってる奴は絶対こういう表現はしない。
999
名前:
デフォルトの名無しさん
:04/05/08 23:45
>バカはおまえだ。俺は両方の表現知ってたし、
バーカ。こんなこと知ってるぐらいのことを何宣言してんだ。アホの活造りかおまえ。
1000
名前:
デフォルトの名無しさん
:04/05/08 23:46
1000! って言うか次スレ…
■過去ログ置き場に戻る■
1-
前250
次250
最新50
DAT2HTML
0.33f Converted.