1read 100read
2013年17プログラム1: C++相談室 part104 (889) TOP カテ一覧 スレ一覧 2ch元 削除依頼
ネットワークプログラミング相談室 Port29 (372)
C言語なら俺たちに聞け パート0001 (338)
【GPGPU】くだすれCUDAスレ part6【NVIDIA】 (480)
monazilla Part 6 (722)
Pythonのお勉強 Part48 (644)
Pythonのお勉強 Part48 (644)

C++相談室 part104


1 :2013/08/17 〜 最終レス :2013/09/25
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレに
お願いします。
前スレ
C++相談室 part103
http://toro.2ch.net/test/read.cgi/tech/1371305675/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.85【環境依存OK】
http://toro.2ch.net/test/read.cgi/tech/1372676667/
■長いソースを貼るときはここへ。■
 http://codepad.org/
 http://ideone.com/

2 :
2

3 :
Hogeは禁止しませんよ

4 :
NG推奨
QZaw55cn4c

5 :
STLつかうと一気に実行ファイルサイズが10倍に?!
環境によるだろ。
俺はBorland-C++5.6.2に -D_RTLDLL オプションを指定して、極力
ランタイムを使用するようにして使っているが、例えばstd::vectorを
使っても使わない時と比べ10Kほどしか増えない
すげえ。ダイナミックリンクしといてファイルサイズが増えないとかいってるよ。この人。
C1010: プリコンパイル済みヘッダーの検索中に予期しない EOF を検出しました。
とかいうエラーが出るんだけどこれってどうすればいいの?
#include <stdafx.h>
後R。
言葉が悪いな。それで教えているつもりか。
まぁヒントぐらいにはなったな。
うむごくろう。

6 :
いろいろなレベルの人間がいるプロジェクトでは全員がgotoを適切に扱えるとは限らないため、
リスクやレビュー工数軽減のためにgotoを一律禁止にしています。
ところが何度説明しても"自分は適切に扱える。出来ないやつは辞めさせるべき。"と独断で動く人がいて困っています。
どう説明すれば理解してもらえるのでしょうか。

7 :
おまえが悪い
そいつが正論

8 :
hoge禁止

9 :
>>7
どこが悪いのでしょうか
具体的に

10 :
hoge使う奴よりはマシ

11 :
>>9
goto を一律に禁止というところ
おまえの論理では throw や longjmp までが禁止なはず
標準ライブラリを全否定し、組み込みでの代替手段まで奪う暴挙は
反乱されて当然

12 :
>>11
longjumpはもちろん禁止です。
throwは原則禁止ですが、C++をまともに使える人間がいないのでそもそもthrowは使用されていません。
longjumpは存在を知っている人間がいないはずです。

13 :
ビルトイン論理演算子のショートカットを否定したり、
EOF 判定でも二度読みを強制する「ボス」には俺でも袂を分かつ
頭悪すぎ、一緒に沈没はごめんだ

14 :
>>12
了解、アスタラビスタ

15 :
そんな状況なのでレビュー工数がかさむため、
gotoは一律禁止にしたのですが、天狗がいまして…。

16 :
天狗なのはどっち?

17 :
実際に今日その人にgtotoを使わせて見たところ関数がやたら長くなりました。
それでも正しく使えていると豪語するので同説得競ればよいか質問させていただいたのですが、
流石掃き溜めというべきかプロジェクトの管理をなさる方はいないようですねここは。

18 :
そりゃあ、まずプログラム晒してなんぼだからな
本当にアドバイス欲しかったらまずそいつのプログラム晒してみろよ
ここの奴らは叩くことに関しては一流だぜ

19 :
そもそも throw を誰も使えないという時点で
叩こうにも言葉が通じるかどうか・・・

20 :
そもそもC++をまともに使える人間がいないのに何故C++使うのかと
gotoもthrowも頑なに使わないようにしてわけの分からないフラグばかりになってる糞コードなら
何度も見たことあるけど
そんなにバカなgotoの使い方してる奴は見たことないなあ
そんな奴が居るならそれこそ辞めさせるべき
バカ探知機になってかえっていいじゃん

21 :
>>17
>流石掃き溜め
なんだ、結局それが言いたかっただけの人格障害者か

22 :
自分しかC++がわからないチームで無理にC++を使わせてオレオレルールを
適用して失敗したらC++がわからない人のせいになるのですね。

23 :
3流ソフト会社のプロマネとかに>>17みたいなキチガイがやたら多いのは知ってる

24 :
このスレだけレス数の伸びがいいから開いてみたら釣られすぎ吹いたwww
夏休みすげえわw

25 :
goto使わないとネストの山になって理解しにくいコードになるのはわかっているのかな。

26 :
今日土曜なんですが、普段から曜日感覚がないのかな?あっ・・・

27 :
7拍子じゃない人にとって曜日は迷惑なだけ

28 :
休日があるプログラマーは2流

29 :
少し誤解がありますね。
レベルの揃わない人員でプロジェクトを進める上で必要な決め事と感じています。
実際正しく使えると豪語した人もgotoに頼り長い関数をこしらえましたので。
私個人としてはgotoは絶対禁止という思いはないです。

30 :
社畜盆に帰らず

31 :
>>6
マジレスすると、プロジェクトから外すしかない。
ので、プロマネに相談しなよ。
ただ個人的には goto は関数内に閉じるから...
1. ブロック内への goto
2. 上方向への goto
を禁止すれば、目の敵にしなくてもいいように思う。

32 :
gotoを一律禁止にしています。
gotoは絶対禁止という思いはないです。
いるよなこんなPG

33 :
ムじゃなくて、マな質問だよな
お前が書けるかどうかじゃない、これは統制だってことをわかってもらうべき
使えるプログラマは、goto無し縛り、極端な話、C++無し縛りだってできる
(後者はC++なしで軽量OOPしろってことな)

34 :
>>31
ありがとうございます。
前方へのジャンプだけなら変なフローにはなりにくいので良いですね、
うちの場合は正当に使用されているかのレビューチェックに掛かるコストをカット出来るので禁止としていました。
使用しなければキーワードで検索できますので。

35 :
>>33
ご意見ありがとうございます。
確かに板違いでした。
今日のgotoの件で頭に血が上っていたようです。

36 :
使えるプログラマはgoto無し縛りだってできる
といってifネストの山を量産させるのですね。

37 :
>>29
長い関数が問題ならそれを説明して分割させろよ。
それができれば goto 禁止なんてする必要ないし、
goto 禁止したって何の解決にもならないよ。

38 :
長い関数書くなよ!って命令しても書いちゃうよ
長い関数なんて誰も好きで書いてるわけじゃないんだから。勝手に長くなってるんだから

39 :
だからちゃんとしたレビューと訓練が必要なんだろ。
goto 禁止したからといって何になるというのさ?

40 :
なぜ関数が長くなっているかが分からないと何とも言えないけれど。

41 :
まあ糞PG使わされる身ならそういう極論に走るのも無理は無い

42 :
コードの再利用性を高める目的などでコードが多くなることならある。

43 :
CプログラマがC風に書く
C++erがダメ出し「STL使って簡潔に書け」
ビルドする
バイナリはCのほうが簡潔

44 :
バイナリはCのほうが簡潔wwwwwwwwwwwwww

45 :
そのバイナリの簡素さが要求されているのでなければ簡素なソースが優先だよね。ね。

46 :
OO、RAII、例外安全を使いこなせるPGなら
関数は自然と短くなるはず。

47 :
バイナリの軽さを軽視するやつは C++ 界から消えてなくなれ
そういうやつの声がでかいだけで迷惑千万だ

48 :
そんなのが要求されるプロジェクトなんて稀ですし
要求される場合はゴリゴリ軽くするよ
「バイナリを軽くしか出来ない人」の方が迷惑

49 :
ソースの読みやすさを軽視するやつは C++ 界から消えてなくなれ
そういうやつの声がでかいだけで迷惑千万だ

50 :
意味わかんね
処理を削れば軽くなるが、それしか出来ない人ってどういうことだ?
てけとーに攻撃的な言葉をならべて遊んでるだけだろどーせ

51 :
可読性と簡潔さは両立させるものだし

52 :
>>47,49
両立しろよてめーらwww
いやマジレスすると、C++ってのは、それを両立して極めろって後輩に仕込んでくれ
C/C++は他言語を、OSを統べる言語。別格なんだよ、わかるだろ

53 :
冗長に書けば可読性が増すと思ってる馬鹿だろ。
たまにいる。

54 :
なんかさー、最適化もただ頼るだけみたいに非科学的なやつ多すぎるんだよね
どう書いたらどう最適化されそうかくらいは考えろってさー

55 :
実測して問題なきゃそれでいいんだよ

56 :
バイナリアンが客先に紛れ込んでるってことも、頭のどっかには入れておくべき
CC CC CC ... ってpadされてるバイナリを渡したらどう思われるか、とかね

57 :
ハッシュも「実測して問題なければ」いいとかね
等値比較する必要があるかどうかさえ、
とにかく把握する気がないやつは底なし

58 :
-底なし
+見境いなし

59 :
能なし

60 :
節操なし

61 :
玉なし

62 :
>>57
お手軽ハッシュでいいのない?

63 :
>>62=ろくでなし

64 :
>>54
悔しいが同意せざろうえない

65 :
ゆとり言語になったC++で最適化ってなんかへんな気がする

66 :
と、無能のつぶやき頂きました

67 :
いくら進んでも先が見えない難解言語がゆとりと言うなら
世の中ゆとり言語しか無い

68 :
Chaos++

69 :
ゆとり化しすぎてChaos++になってしまったよ
ってことですね

70 :
カオスなのかゆとりなのかどっちなのか

71 :
注意一秒バグ一生
切れ味強すぎて危険

72 :
クラスについて勉強してるんだけど
さっぱりわからん
これが無いとどういったときに不便になるの?
無くても困らないケースはある?

73 :
クラスにまとめておけば関数名を覚えてなくてもインテリジェンスで選べる

74 :
カプセル化が必要ない小さなプログラムなら必要ない
多分最初は不思議に聞こえるが、クラスは外からのアクセス方法を制限することによって
その保守性とか目的を明瞭にしてるというか
誰かエロイ人もっと上手く頼む

75 :
整理整頓して区別する時に便利なもの。
無くてもそれができる人なら困らないけど、
そんな人は少ない。

76 :
あー大体分かってきた
お前らありがとう
正直門前払いされるんじゃないかとビクビクしてたが質問してよかった

77 :
あ、重要な事が抜けてた。
区別できてるか判断するのは、自分じゃなくてソースを読む大多数の他人だから。
これを理解してないと、意味が全然違う。

78 :
>>72 がうらやましい‥‥

79 :
アクセス方法を制限

80 :
今北
クラスがなぜ必要かと言ったら、クラスで記述するおいしいライブラリがあるからさ
クラスの良さに気付ければ、めくるめくC++の奥深さを楽しめるようになる

81 :
vector<int>* pvVal = ・・・;
int Val = ( *pvVal )[ 3 ];

このように記述したとき、
( *pvVal )のところで一時オブジェクトが生成される心配はないでしょうか?
もしそうだとすると、巨大なvectorではとてつもないコストになってしまいます。
VisualStudio2012でステップ実行して確認したところ、
vectorのコンストラクタには行かず、
operator[]に行ったので大丈夫と思っていいでしょうか?

82 :
別に*操作はオブジェクト生成してるわけじゃないよ
と思ったが確信はないな・・・

83 :
ナマポの実体化は「決して」一時オブジェクトを生成しない

84 :
>>82-83
ありがとうございました!!
安心しました!!

85 :
>>72
デストラクタでリソースを解放することを覚えるとCには戻れなくなる

86 :
なんでJAVAとかC#にはデストロイヤーがないの

87 :
>>86
//I believe gc :)

88 :
GCってVRAMのメモリも自動で開放してくれんの?

89 :
GC で勝手にやってくれるから
空間制御は楽になったが、時間制御が難しくなったと言う

90 :
RAIIを徹底すればGCなんて全然要らない
時間軸の細かい制御も容易にできる

91 :
そういう部分だけJNIとかを使えばいいんです。

92 :
お、おう。。
ってそういうことじゃなくて、だからC++はイイ!って話だろw >>72,85

93 :
あ、IDisposable (小声)

94 :
>>89
初心者にGCで解放されるものとされないものの区別を教えるのが難しい。

95 :
強参照、弱参照、ファントム参照と言っても初心者は分からない

96 :
>>95
ファントム参照って何ですか?

97 :
>>95
そのあたりは初心者どころか中級者でも
各VMの実装の詳細まで把握してる奴は少ない

98 :
下記は関数内の静的変数と自動変数の値が保持されるか、というテストコードなのですが、実行結果を見ると両方とも値が保持されています。
自動変数は宣言された関数内で死ぬと思うんですが、なぜこの結果になるのかわからずにいます。よろしくお願いします。
環境:win32, gcc version 4.7.2 (GCC)
#include <iostream>
static void test(int*& pa, int*& pb) {
 static int a = 10;
 int b = 5;
 pa = &a;
 pb = &b;
}
int main(void) {
 int *pa, *pb;
 test( pa, pb );
 std::cout << "*pa = " << *pa << "\n" << "*pb = " << *pb << std::endl;
 return 0;
}
結果:
*pa = 10
*pb = 5

99 :
pbはtestから戻った後は参照してはならないポインター。
なのでたまたまプログラムが動いた様に見えるだけ。

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼
Java低速GUI Swing & JavaFX 10 (828)
CoffeeScript (266)
【実験台】 Python 3.0 のお勉強 Part 1 【非互換】 (571)
GARMIN社のGPSのプログラム (659)
Python の宿題ここで答えます Part 2 (366)
【魔法】リリカル☆Lisp【言語】 (218)
--log9.info------------------
銀次郎です。このたびの事件に関して。 (270)
【手品道具】【交換&売買】 (183)
片岡太末の弟子、片岡太一がキタんよ (137)
【ハイハイ!】あるある探検隊【ハイハイハイ!】 (173)
【中国】リンキング・リング【金属輪】 (116)
高卒がマジックかよwよく恥ずかしくね〜な。 (286)
美人マジシャン三姉妹お前ら魔女かよSP!! (862)
☆☆☆ FISM2009 北京大会 ☆☆☆ (167)
誰かこのマジックの種明かしして!ワカラン! (151)
ミスターマジシャンの商品レビュー (408)
テレビでマジックをやってはいけない (110)
† 自分のレパートリーをリストしていくスレ † (150)
ひたち国際大道芸にいったことある人の数 (100)
ジョジョの奇妙な手品 (121)
若者がレクチャーノートを販売 (451)
セロのネタがサクラだったら密告されて終わりだろw (224)
--log55.com------------------
ゴジラ キング・オブ・モンスターズ 12
押井守 118
ラ・ヨローナ 〜泣く女〜
HUNTER KILLER/ハンターキラー 潜航せよ Part2
ゴジラ キング・オブ・モンスターズ 13
アウトレイジ 最終章 OUTRAGE CODA 107本目
ゴジラ映画総合 GODZILLA 145
ユニバース化の流れをどう思う?