[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 05/10 01:13 / Filesize : 241 KB / Number-of Response : 948
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C++は難しすぎ 難易度:2



1 名前:前々スレ985 mailto:sage [03/12/18 06:52]
理解できないわけないだろ!
デザパタも知らずにC++使いの質を下げるC厨には げんあり

前スレ達
難易度:1 pc2.2ch.net/tech/kako/1058/10586/1058675178.html
難易度:2 1pc2.2ch.net/test/read.cgi/tech/1063323615/

113 名前:デフォルトの名無しさん mailto:sage [04/02/15 22:15]
>>107
あるよ。まんまえに。いってみ

114 名前:デフォルトの名無しさん mailto:sage [04/02/22 21:06]
テムプレートってどういうときに使うんでつか?
難しすぎて頭がおかしくなります。
たとえば1から100まで足すプログラムに使いませんよね?

115 名前:デフォルトの名無しさん mailto:sage [04/02/22 21:14]
使えますが

116 名前:デフォルトの名無しさん [04/02/22 21:18]
#include <iostream>
template <int n> struct Sum {
enum { X = Sum<n-1>::X + n };
};

template<> struct Sum<1> {
enum { X = 1 };
};

int main()
{
std::cout << Sum<100>::X;
return 0;
}


117 名前:デフォルトの名無しさん mailto:sage [04/02/22 21:19]
>>2
15歳ですべて悟った俺は変人でしょうか

118 名前:デフォルトの名無しさん mailto:sage [04/02/22 21:47]
テンプレートを使いこなしたかったら Modern C++ Design を読むべし、そうしなければ全く始まらない。
テンプレートはOOその他従来のパラダイムのように、プログラムを書くための物ではない(もちろん使えるが、そういうやり方は古いやり方)
Modernなテンプレートプログラムとは、プログラムを生成するプログラムを書くのだ。
例えばデザインパターンのパターンを見て、そのパターンを実装するのが従来のやり方。
テンプレートを使う場合は、そのパターンを生成するプログラムを書くのだ。
一つ上のステージからプログラムを見下ろす様にプログラムをするんだ。


119 名前:名無し募集中。。。 mailto:sage [04/02/22 22:01]
>>115-116
それは1から100まで足すプログラムというより、
1から100まで足してある数値を取り出すプログラムでは?


120 名前:デフォルトの名無しさん mailto:sage [04/02/22 22:17]
実行時に足すかコンパイル時に足すかの違いでしかない。

121 名前:デフォルトの名無しさん mailto:sage [04/02/22 22:30]
コンパイラに足させるプログラム



122 名前:デフォルトの名無しさん mailto:sage [04/02/22 22:37]
template<int i> class sum
{
public:
int operator() {
return i + sum<i - 1>()();
}
};

template<> class sum<1>
{
public:
int operator() {
return 1;
}
};

じゃあこうすれば良いのか

123 名前:デフォルトの名無しさん mailto:sage [04/02/22 22:55]
>>122
オプティマイズがかかったらやっぱりコンパイル時に足していそうだな(藁

124 名前:デフォルトの名無しさん mailto:sage [04/02/22 23:22]
オプティマイズは考えなくていいんじゃないか?
設定やコンパイラによっても違うし。

コンパイル時に計算させるか、実行時に計算させるかの意図がコードに現れてればいいんじゃないかな。

125 名前:デフォルトの名無しさん mailto:sage [04/02/22 23:31]
どうしてもというのなら

template<int i> class sum
{
volatile int v;
public:
sum() : v(i) { }
int operator() {
return v + sum<v - 1>()();
}
};


126 名前:デフォルトの名無しさん mailto:sage [04/02/22 23:32]
sum<i - 1>()();

こうじゃなきゃだめだな

127 名前:デフォルトの名無しさん mailto:sage [04/02/22 23:35]
おまいら >>114 の質問に答えてないよ。

「使いませんよね?」と聞いているのに、「使える」という答えはおかしい。
いつもそうゆうコードを書くかどうかを聞いているので、可能不可能を聞いているのではない。

漏れの答えは、そんなことには多分使わない。

128 名前:デフォルトの名無しさん mailto:sage [04/02/23 00:28]
どうでもいいけど、
int operator() {
の宣言は、
int operator()() {
でないとコンパイル通らなくないか?

勘違いだったらスマソ

129 名前:デフォルトの名無しさん mailto:sage [04/02/23 00:34]
yes

130 名前:デフォルトの名無しさん mailto:sage [04/02/23 00:40]
>>127
どう使うかって事にもよるね、例えばその計算結果から型を選択するとかいった処理なら
テンプレートを使うしかないし・・・
最近はJavaやC#の場合、リフレクションとかもあるので無茶な事をすれば実行時にもできるかもしれんが、余りやりたくは無いねぇ。

131 名前:デフォルトの名無しさん mailto:sage [04/02/23 00:45]
リフレクションいいよね。

C++で実現したいんだけど、どっかに参考になるコードないかなぁ。



132 名前:デフォルトの名無しさん mailto:sage [04/02/23 08:37]
むかーしリフレクションっぽいコードをC++で書いた。
お前のコードじゃねえだろどこで派食ったといわれて結構へこんだ。
まああれだ、スマートに書くか効率良く書くかの二者択一になるからやめとけ。

133 名前:デフォルトの名無しさん mailto:sage [04/03/01 13:32]
C++厨のレベルの低さが垣間見えるスレですね

134 名前:デフォルトの名無しさん [04/03/03 18:26]
これからなんだよ、まだこれからこのスレはすんげぇ面白くなるんだよきっと。
きっと1さんがこのスレを優良スレにしてくれるんだよ。
1さんがこのスレを名スレにしてくれるんだよ。
1さんが素晴らしいネタを提供してくれるんだよ。
だからみんな、これからの1さんの書き込みを楽しみにしようよ。
これからこれからこれからこれからまだまだまだまだ…

135 名前:デフォルトの名無しさん [04/03/04 18:37]
1さんって俺じゃねーか。おまえらまだスレの連番付け間違えた事チマチマ恨んでるのか?
でもせっかくだから盛り上げていくか?

>>133
а≧○иξ⊃XγΘ△Φ?

136 名前:デフォルトの名無しさん [04/03/04 19:09]
>>135
a=$д゜【@()πr2+3.14

137 名前:デフォルトの名無しさん [04/03/05 23:13]
>>136
Пкδ\Δν⊃∃ю!

138 名前:デフォルトの名無しさん [04/03/06 02:10]
>>114
『Effective C++』の41項参照。

例えばWin32の各種ハンドル型をデストラクタでクローズするラッパクラスを作るときに使った。
型は違う(HANDLE・HINTERNET・SC_HANDLEなど)。でも処理は同じ(最後にクローズする)。

『Modern C++ Design』の書き方を許してくれる職場は少ないと思う。
理解できる人間がいなくてメンテナンス性が下がるため。(理解さえできていれば本当は上がってるんだけどね。)
そういうときは仕方ないので宣言マクロ/実装マクロにする。それなら理解できる人も多い。

あとは標準ライブラリのコレクションを使えないときに(車輪を再発明するために)使った。
このときはメモリの動的確保をしないという制限があった。
(Allocatorを書く方法もあるが、上と同じ理由でそれが許されることは少ないと思う。)

139 名前:デフォルトの名無しさん mailto:sage [04/03/07 20:04]
>Allocatorを書く方法もあるが、上と同じ理由でそれが許されることは少ない
随分厳しいですな

もうちょっと分りやすい構造になればいいんですがね > template
漏れはもう boost から戻れない体になってしまいました。

140 名前:デフォルトの名無しさん [04/03/15 11:12]
三大悪の枢軸国の紹介
 C++帝國(北朝鮮) ← C++厨代表の正体は、何と! 金正日だった!
 VB帝國(イラン) ← VB厨代表はイランに潜伏していいた!
 Perl帝國(イラク) ← Perl厨代表フセインがついに逮捕された!

141 名前:デフォルトの名無しさん mailto:sage [04/03/15 13:59]
>>140
C++が分らなくて火病でも起こしたか?




142 名前:デフォルトの名無しさん mailto:sage [04/03/18 16:38]
Java帝国(オウム) ← Java厨代表は何と!地図夫(趣味:ソフマップ通い)だった!


143 名前:デフォルトの名無しさん [04/03/29 19:49]
鯖削除は難しすぎ

144 名前:デフォルトの名無しさん [04/04/02 08:21]
Modern C++ Designって簡単なことしか書いてないのにね。
それを難しいというのはよほどの馬鹿なんだろうね。
そんな馬鹿がソフトウェア開発にたずさわるのは社会的な悪だね。
医者だと無免許医は摘発されるのに
自動車だと無免許運転は摘発されるのに
プログラマーだけ低能でもやっていけるというのが諸悪の根源。

C++難しいとかいう脳障害の低能は
そもそもプログラミングに向いてないんだから
とっとと転職しろっつーの。

145 名前:デフォルトの名無しさん mailto:sage [04/04/02 09:01]
>プログラマーだけ低能でもやっていけるというのが諸悪の根源。
大工よりまし。

146 名前:デフォルトの名無しさん mailto:sage [04/04/02 09:32]
>>144
> 医者だと無免許医は摘発されるのに
> 自動車だと無免許運転は摘発されるのに
ま、低能が免許持ちまくりなんだけどな、どっちも。

147 名前:デフォルトの名無しさん [04/04/02 10:18]
確かに免許制にして一定水準以上の者でないと開発に関われないとしてもいいかな。

その方が学ぶ側も採用する側も分かりやすくていいと思う。

148 名前:デフォルトの名無しさん mailto:sage [04/04/02 11:27]
>>146
なんなら私が手術してあげましょうか?

149 名前:デフォルトの名無しさん mailto:sage [04/04/02 21:40]
C++は難しくないけどC++厨はオナニーしすぎ


150 名前:デフォルトの名無しさん mailto:sage [04/04/02 22:37]
またわけのわかんないレスが来たな

151 名前:デフォルトの名無しさん mailto:sage [04/04/03 15:52]
難しいかどうかなんて問題じゃないんだ。
問題は出来るか出来ないかだろ?
ま、簡単だと言ってる奴ほど実は何も出来ない
というのはよくあるけどな。



152 名前:デフォルトの名無しさん mailto:sage [04/04/04 08:53]
ペーパードライバーならぬペーパープログラマーだな

153 名前:ラインプリンタ mailto:sage [04/04/04 09:23]
呼んだ?

154 名前:デフォルトの名無しさん [04/04/21 05:09]
普通、電気系のエンジニアはソフト"も"書けるがソフト屋はソフト"しか"書けないんだろ?
ちゃんちゃらおかしいね。それでもエンジニアか?あぁ?
ソフトぐらい文系あがりのねぇちゃんでも書くぜ。
人生の敗北者が下る職業
タクシー運転手,塾の講師,ソフト屋
だろ?


155 名前:デフォルトの名無しさん [04/04/21 05:31]
↓アビバ資格者

156 名前:デフォルトの名無しさん mailto:sage [04/04/21 09:59]
>>154 は、あまり難しいコードを見たことがないそうです。

157 名前:デフォルトの名無しさん mailto:sage [04/04/21 20:12]
ここで俺の登場!!!

158 名前:デフォルトの名無しさん mailto:sage [04/04/22 11:48]
と言われても…どちら様?

159 名前:デフォルトの名無しさん mailto:sage [04/04/22 16:38]
そのおかたをどなたとこころえる!?

160 名前:デフォルトの名無しさん mailto:sage [04/04/23 20:30]
1ですね。

161 名前:デフォルトの名無しさん [04/04/28 22:53]
page4.auctions.yahoo.co.jp/jp/auction/d47227135



162 名前:デフォルトの名無しさん mailto:sage [04/04/28 23:06]
OL50人

163 名前:デフォルトの名無しさん mailto:sage [04/04/28 23:10]
難しいプログラムならバカでも書ける。
いかにサボり、楽をするために間単に書くかが私の人生のスタンスと一致していてすばらしい。

164 名前:デフォルトの名無しさん mailto:sage [04/04/29 23:48]
>>147
学生さん?
現場じゃそんな子と逝ってられませんよ?

165 名前:デフォルトの名無しさん mailto:sage [04/04/30 14:35]
C++はメモリ管理機構がないからムズカシイとかよく言われるけど、
言語側が暗黙のうちにGC用意してくれるよりもライブラリとして用意されるべきなんじゃないかな
と最近思うんだけどどうなんだろ。
影でこそこそ処理されると気持ち悪い。

166 名前:デフォルトの名無しさん mailto:sage [04/04/30 15:05]
ライブラリとして、だと
「わざわざ使わないといけない」だから
面倒な人間は何をしてくれるか予想がつかない。

167 名前:デフォルトの名無しさん mailto:sage [04/04/30 18:00]
つかjava使ってて思ったのが

_| ̄|○ < 頼むから、俺にメモリ解放処理をさせてくれ

だった。

168 名前:デフォルトの名無しさん mailto:sage [04/05/01 02:28]
これからコンパイル後がどうなるかなんて何も考えずに、やらせたい処理だけ
便利なAPI使って記述すればいいって時代が到来するんだろうな。
低レベルな処理なんて組み込みだけ・・なんてことになるのかなぁ。
C++でハァハァする奴にとってはツマラナイ世界かも。

169 名前:デフォルトの名無しさん mailto:sage [04/05/01 10:41]
メモリ管理を自分でしないと気持ち悪いって人はあれかな、
実生活でもマメに掃除とかする香具師?

俺みたいに部屋は散らかし放題で
極限まで汚れたら渋々掃除するタイプはダメだ。
取ったメモリの解放まで面倒見てらんねえ。

170 名前:デフォルトの名無しさん mailto:sage [04/05/01 10:58]
>>169
漏れの場合,部屋は散らかりまくりだがヒープは絶対片付ける.

171 名前:デフォルトの名無しさん mailto:sage [04/05/01 11:27]
俺は後々片付けるのが嫌で
物理的な参考書とか資料とか極力本棚から持ち出さない人。



172 名前:デフォルトの名無しさん mailto:sage [04/05/01 16:38]
散らかっているかどうかよりもむしろ、物の位置や処遇が
「自分の手の内に入って」いないと気が済まないかどうか、に近い気が。

173 名前:デフォルトの名無しさん [04/05/01 20:15]
>>165
>影でこそこそ処理されると気持ち悪い。
高級言語は、多かれ少なかれどこか影でこそこそやってます。
本当にそれが嫌なら、アセンブラで組めw


174 名前:デフォルトの名無しさん mailto:sage [04/05/01 21:20]
>>173
そうとも限らないだろ。

175 名前:デフォルトの名無しさん mailto:sage [04/05/01 22:03]
>>174
どういうところが限らないんですか?
内容無しの反論なら誰でも出来ます。

176 名前:デフォルトの名無しさん mailto:sage [04/05/01 23:49]
>>175
>高級言語は、多かれ少なかれどこか影でこそこそやってます。
証明できないからじゃない?

177 名前:デフォルトの名無しさん mailto:sage [04/05/02 00:51]
>>175
「高級言語では」何が「影でこそこそ」に当たるの?

たとえばa = b + c * d; が
tmp = c * d;
a = b + tmp;
とかに分解される事?

マクロアセンブラでも、
ラベルがアドレスに展開されたりする事は
影でこそこそに当たらないの?

たとえば、Cでは何が影でこそこそしてる?Pascalでは?
どっちも高級言語じゃないのか、スマンな。

178 名前:デフォルトの名無しさん [04/05/02 01:04]
>>177
GCの話じゃねーのか?

179 名前:デフォルトの名無しさん mailto:sage [04/05/02 02:50]
言語が高級になればなるほど、コンピュータがやってくれることが増えるってだけだろ。
コンピュータは元から人間の手間を省く道具。だからそれは自然なこと。
それが嫌いならアセンブラ(よりも機械語のほうがいいか?)を使えってことだろ。

180 名前:デフォルトの名無しさん mailto:sage [04/05/02 05:06]
>>178-179
影でこそこそが気持ち悪いって言う人間に
考えもなしにアセンブラで組めなんていう煽りを何のするなということだ。
177で正論ぶってるから、更に気になっただけだ。


181 名前:デフォルトの名無しさん mailto:sage [04/05/02 05:07]
×考えもなしにアセンブラで組めなんていう煽りを何のするなということだ。
○何の考えもなしにアセンブラで組めなんていう煽りをするなということだ。

編集ミスった。



182 名前:デフォルトの名無しさん mailto:sage [04/05/02 05:07]
×177
○175

、、、orz

183 名前:デフォルトの名無しさん mailto:sage [04/05/02 11:50]
アセンブラは全く知らないんだけどメモリ解放はどうするの?
やはりプログラマによる手動解放?

184 名前:デフォルトの名無しさん mailto:sage [04/05/02 12:51]
>>183
mallocに相当するコード自分で買い解け

185 名前:デフォルトの名無しさん mailto:sage [04/05/02 14:25]
brkとかHeapAllocとかOS提供のAPIを呼ぶ
あとは、cのライブラリをリンクするとか。

186 名前:デフォルトの名無しさん [04/05/03 23:09]
C++を覚えるっつーか、使いこなすレベルになるころには
管理職をやらされるのが日本のコンピューター業界。
そして新人は今日もまたメモリリークしまくりのコードを量産する。


187 名前:デフォルトの名無しさん [04/05/03 23:15]
>>186
年取ると新しい考え方を受け入れられくなったり、徹夜の仕事
がとても続けられなくなるからそれでいいのよ。

188 名前:デフォルトの名無しさん mailto:sage [04/05/04 09:42]
>>187
若い頃から徹夜仕事しなかったし、この歳になっても睡眠時間3時間ですが何か。
あーでも、役職はついてるし部下もいるなぁ。

189 名前:デフォルトの名無しさん mailto:sage [04/05/04 11:47]
>>188
過労死すんなよw

190 名前:デフォルトの名無しさん [04/06/12 19:50]
過労死しそうな人が出るほど C++は難しすぎ

191 名前:デフォルトの名無しさん [04/06/15 06:24]
>>190
激しく同意



192 名前:デフォルトの名無しさん mailto:sage [04/06/18 14:54]
c++の何が難しいのかがわからない。
難しいこともできるって話じゃないのか?

俺的にはVBの方が難しい(めんどい)ような
あと、パールとかはキャストがきもい。

193 名前:デフォルトの名無しさん mailto:sage [04/06/18 15:26]
Perlのキャスト?

194 名前:デフォルトの名無しさん mailto:sage [04/06/18 18:52]
俺も、Javaや、VBのほうが、よっぽど難しい。

195 名前:192 [04/06/18 21:30]
>>193
いや、だいぶ前にちょろっとやっただけだからうろ覚えだが、
c++なら明示的にキャストして、キャストできないようならコンパイル時にエラーでるしょ?
パールって何でもかんでも、暗黙的に型変換してるイメージあって、怖い。

196 名前:デフォルトの名無しさん [04/06/18 21:37]
perlがCGIの筆頭であり続けるのは、そのきもいキャストのおかげなのだが。

197 名前:デフォルトの名無しさん mailto:sage [04/06/18 21:39]
perlに型はありませんよ

198 名前:デフォルトの名無しさん mailto:sage [04/06/18 21:43]
コード中に型宣言が無いだけで実行時にはどの言語には型判断されてるでしょ
バリアント型ってそういうもんだと思われ

199 名前:デフォルトの名無しさん mailto:sage [04/06/18 21:45]
×言語には
○言語でも


200 名前:デフォルトの名無しさん mailto:sage [04/06/18 21:49]
なぜそこでVB?

201 名前:デフォルトの名無しさん mailto:sage [04/06/18 21:50]
バリアント型ってVBだけか?jsとかのvarもそれだろ?



202 名前:192 mailto:sage [04/06/18 22:10]
いや、そのキモイキャストがいやだってだけ・・・。筆頭であろうが気にしない。

実行時判断っていうのが怖いわけで、例外とかめんどくさ。

俺が個人的にVB嫌いなのは、ポインタ取得とかめんどくさいから。
あと、まぁ、なんか色々めんどくさい。とc++になれてるとそう思う。


203 名前:デフォルトの名無しさん mailto:sage [04/06/18 22:11]
>>201
その気になればC++だってValiantクラスとか作れるだろう
class Valiant
{
public
 operator (int)();
 operator (char)();
 operator (short)();
 operator (long)();
 operator (long long)();
 operator (float)();
 operator (double)();
 operator (long double)();
 operator (char *)();
 operator (wchar_t *)();
・・・

204 名前:192 mailto:sage [04/06/18 22:17]
>>203
boost::anyとかあるけどね。
ATL系とかでも。

でもboost::anyの場合、
代入するときはともかく、値を取得するときは明示的にキャストして
失敗したら例外送出だからなぁ。
なんつか、この明示的にって段階踏まないといやなわけでして。


205 名前:デフォルトの名無しさん mailto:sage [04/06/18 23:59]
boost::variant

206 名前:192 mailto:sage [04/06/19 00:10]
>>205
そういや、それもあったなぁ。
いまだ使ったこと無いが。
なんに使うと効率てきなのかいまいちわからん。
ビジターパターンに使えるっていうが、ビジターパターン自体まだ使ったこと無いや。

207 名前:デフォルトの名無しさん [04/06/19 00:15]
C++が難しくないなんて言えるなんてすごいな。
今までVB,C,C++,Dehphi,Java,PHPなどで業務アプリを作って来たけど、
一番生産性が低いと感じたのはC++だった。
もちろん、それなりに習熟すれば生産性はあがるのだろが、
習熟するまでの時間がかかりすぎる感がある。
今の職場では多分俺が一番C++に詳しいけど、C++をマスターしたなんてとても言えないし、
積極的にC++を採用したいか?と聞かれれば可能な限り他言語を選択したい。
C++マンセーになる理由が俺には解らん。。。


208 名前:デフォルトの名無しさん mailto:sage [04/06/19 00:27]
>>207
WindowsのServiceアプリ組むときなんかはC系の言語が一番便利なわけで
人によってはCでそのまま組むよりもC++の方が開発時効率が上がる
少なくとも私はそう
CよりもC++の方が一度に考えなければいけない要素が少なくて済む

209 名前:デフォルトの名無しさん mailto:sage [04/06/19 01:10]
>>207
C++以前にCに十分習熟していないせいだと思うよ

210 名前:デフォルトの名無しさん mailto:sage [04/06/19 01:26]
生産性の低い言語=習熟しにくいだからな
熟練者が生産性高いよって言ってもサンプルにはならへんのが実情
個人的にはDに一番期待している

211 名前:デフォルトの名無しさん mailto:sage [04/06/19 01:31]
つーか、業務系なんてどの言語で書いたって同じだろ。
C++のメリットが活きるのは寧ろ制御系だからな。



212 名前:デフォルトの名無しさん mailto:sage [04/06/19 01:36]
てか、俺的イメージだが、
c++からcを省いたようなもんがJAVAって感じだが・・・。
VBで生産性あがるっていっても、簡単なもんだけでしょ?めんどいことになるとできなそうだし。
デルファイはいじったことないなぁ、簡単らしいって話はきくが。
PHPもまだないなぁ。

俺はc++2年ほどやったが、
後は、
アセンブラ、
ロケール、
メモリアロケータ、
modern c++ design 読んで、
デザパタ極めて、
マルチスレッドも極めるくらいかねぇ。
って先なげぇ。
まぁ、一部c++以外にもつかえるが・・・。

213 名前:デフォルトの名無しさん mailto:sage [04/06/19 20:53]
ISO C++の規格策定にかかわっている人にとっても、C++は難しいらしい。
現行の規格に内在するバグというか不都合な点がバラバラ出てきている。
www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html
www.open-std.org/jtc1/sc22/wg21/docs/lwg-active.html






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<241KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef