C++相談室 part101at TECH
C++相談室 part101 - 暇つぶし2ch1:デフォルトの名無しさん
13/04/06 16:03:15.86
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレに
お願いします。

前スレ
C++相談室 part99(実質part100)
スレリンク(tech板)

このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.83【環境依存OK】
スレリンク(tech板)

■長いソースを貼るときはここへ。■
 URLリンク(codepad.org)
 URLリンク(ideone.com)

2:デフォルトの名無しさん
13/04/06 17:29:10.77
>>1
なんで誰もスレ立てなかったの?馬鹿なの?

3:デフォルトの名無しさん
13/04/06 18:37:00.54
立てようとしたら、
修行が足りなくてできんかった。

4:デフォルトの名無しさん
13/04/06 18:39:46.85
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。

                  京極大学霊長類研究所

5:デフォルトの名無しさん
13/04/06 18:40:08.98
立てようとすら思わなかったぜ

6:デフォルトの名無しさん
13/04/06 18:45:00.27
そういえばチンパンジーのアイって今年の10月で37歳だと。

7:デフォルトの名無しさん
13/04/06 18:58:02.46
なんと、俺より年上だったか

8:デフォルトの名無しさん
13/04/06 19:39:30.02
int a[] = { ... };
int b[] = { ... };

aとbの要素が完全に一致するSTLのアルゴリズム教えてください
配列の長さが異なる場合もあります

9:デフォルトの名無しさん
13/04/06 19:53:20.27
all_ofかなと一瞬思ったが違うか

10:デフォルトの名無しさん
13/04/06 19:58:55.58
end(a) - begin(a) == end(b) - begin(b) && equal(begin(a), end(a), begin(b))

11:デフォルトの名無しさん
13/04/06 20:09:50.73
STLつかうと一気に実行ファイルサイズが10倍に?!

環境によるだろ。
俺はBorland-C++5.6.2に -D_RTLDLL オプションを指定して、極力
ランタイムを使用するようにして使っているが、例えばstd::vectorを
使っても使わない時と比べ10Kほどしか増えない

すげえ。ダイナミックリンクしといてファイルサイズが増えないとかいってるよ。この人。

C1010: プリコンパイル済みヘッダーの検索中に予期しない EOF を検出しました。
とかいうエラーが出るんだけどこれってどうすればいいの?

#include <stdafx.h>
後死ね。

言葉が悪いな。それで教えているつもりか。
まぁヒントぐらいにはなったな。
うむごくろう。

12:デフォルトの名無しさん
13/04/06 20:11:55.35
>>8
std::equal()じゃだめなん

13:デフォルトの名無しさん
13/04/06 20:18:40.00
>>12
esualだと長さが一致してないとダメなのでそこを一気にやってくれる方法が知りたかったです

14:デフォルトの名無しさん
13/04/06 21:08:27.04
確かにこういう場合分けが必要だしなあ

int main()
{
int a[] = {1, 10, 3, 5, 6, 5, 2, 9};
int b[] = {1, 10, 3, 5, 6, 5, 2};

int len_a = sizeof(a) / sizeof(a[0]);
int len_b = sizeof(b) / sizeof(b[0]);

bool eqb = (len_a == len_b) ? std::equal(a, a + len_a, b) : false;

std::cout << "a[]とb[]は" << ((eqb) ? "等しい" : "等しくない") << std::endl;
}

15:デフォルトの名無しさん
13/04/06 21:44:23.12
>>13
コンテナだと要素数を事前に知れるけど、配列はそうは行かないじゃん
文字列のように'\0'終端文字列ならいいけど、そうでないなら自作するしか

16:デフォルトの名無しさん
13/04/06 21:47:09.27
>>14
同じ型に決まってるだろうから
要素数の確認は sizeof(a) == sizeof(b) で十分では。

17:デフォルトの名無しさん
13/04/06 22:03:49.61
>>16
それでもいいけどtemplateにしてstd::equalにガワかぶせようとしたんだ
コンテナも同じ型で同じコンテナならoperator==で比較出来るので便利なんだが

18:デフォルトの名無しさん
13/04/06 22:34:53.87
同じものがほしいだけなら優先する方のサイズ分だけコピーすればいいだけ何じゃ?
余った部分は0うめ?
最初の例が気になるところなんだけど、これ本物もsizeofしても平気なの?

19:デフォルトの名無しさん
13/04/06 22:48:11.19
コンテナはsizeofはC++11からdata()なら行けるんでは
ただしvectorだけだな

STLのようにアルゴリズムを汎用化したければIterator traitsによって
データの長さを取得する方法を場合分けするか、関数の多重定義をするか、
しかしどうして長さの違う物を比較しようと思ったの?絶対一致するはずがないのに

20:デフォルトの名無しさん
13/04/06 22:57:04.96
>>19
長さが一致する場合もあるからです

21:デフォルトの名無しさん
13/04/06 23:39:03.76
STLのstd::equalは比較対象のInputIteratorの長さが十分である事を確認して
呼び出さないと鼻から悪魔だからなあ

ラッパーを作るしかないね

22:デフォルトの名無しさん
13/04/07 00:22:42.67
長さとmemcmpにわけろ

23:デフォルトの名無しさん
13/04/07 00:24:56.76
こんな漢字。
(sizeof(a)==sizeof(b)) && (memcmp(a,b,sizeof(a))==0)

24:デフォルトの名無しさん
13/04/07 01:05:44.31
URLリンク(ideone.com)

要するにこういう事っしょ

25:デフォルトの名無しさん
13/04/07 03:42:14.16
>>24
関係ない所で気になったんだけど、
どうしてsize_tにstd::が付いてないのに
コンパイル通るの?

26:デフォルトの名無しさん
13/04/07 03:59:56.31
C++1yではイテレータ4つ取るバージョンのequalも入るとか何とか

27:デフォルトの名無しさん
13/04/07 10:15:18.34
>>25
Cのはstd::なくても通るよ

28:デフォルトの名無しさん
13/04/07 10:32:11.89
>>26
それって二項関数を取るバージョンでしょ?
それはC++03からある(正確にはC++98から)
今C++11の規格票を見たけど2つのbeginとendを取るバージョンはなかった

29:デフォルトの名無しさん
13/04/07 10:32:37.11
>>26
と思ったらC++1yか
まああってもなくてもいいや

30:デフォルトの名無しさん
13/04/07 10:44:59.12
>>27
マクロ以外はstd名前空間に入ると
思うのだが、ソースきぼん

31:デフォルトの名無しさん
13/04/07 10:56:50.37
name.h の形式だとグローバル名前空間にも定義される
cname の形式だとグローバル名前空間にも定義されるかもしれない

17.6.1.1 Library contents
All library entities except macros, operator new and operator delete are defined within the namespace std
or namespaces nested within namespace std. 172
172) The C standard library headers (Annex D.5) also define names within the global namespace,
while the C++ headers for C library facilities (17.6.1.2) may also define names within the global namespace.

32:デフォルトの名無しさん
13/04/07 11:00:44.23
C/C++できる男の人ってかっこいい。
JavaとかC#なんて軟弱者の言語だわ。

33:デフォルトの名無しさん
13/04/07 11:10:16.21
>>31
そもそもsize_tの為のヘッダがinclude
されてないし、cnameも使ってないから
コンパイル通るかは処理系依存だよね?

34:デフォルトの名無しさん
13/04/07 11:10:54.85
<iterator>のヘッダ初めて覗いてみたけど、組み込み型は全部テンプレートが特殊化
でズラズラ並べて定義されてるのね
少しワロタ

ところで構造体の配列とかはどういう扱いになるんだろう?

35:デフォルトの名無しさん
13/04/07 11:12:26.24
>>33
まーな

36:デフォルトの名無しさん
13/04/07 11:33:08.60
>>32
照れるじゃねーか

37:デフォルトの名無しさん
13/04/07 11:33:45.37
        ,,__,,
       /     `、
      /       ヽ
     / ●    ● |
    /l  ''''' し  '''''' |
   /  l   __.   |   
   l  /ヽ_ ` --' _ノ
   \       ̄  ヽ∩
    ⌒l        l三 |
      |        ヽ.__|

38:デフォルトの名無しさん
13/04/07 11:36:25.58
>>36
JAVA信者の煽りに反応するなよ
C++はな、マスターするためには
まず禿げなきゃいけないんだぜ

39:デフォルトの名無しさん
13/04/07 11:39:40.97
あ、だから照ってるのか、すまん

40:デフォルトの名無しさん
13/04/07 11:49:09.98
なにその一人ボケ突っ込み

41:デフォルトの名無しさん
13/04/07 12:00:24.31
>>38-39
おまい、おもろいなw

42:デフォルトの名無しさん
13/04/07 13:50:02.20
C++を学ぶのに一番おすすめのサイトはどこですか?

Cは分かるという前提で。オブジェクト指向はまったくわかりません。

43:デフォルトの名無しさん
13/04/07 13:51:32.82
C++をバリバリつかうお仕事って何がありますか
SEで入社したんですが組み込みでC使ってるらしいのは把握しました

44:デフォルトの名無しさん
13/04/07 13:56:35.59
C++よりCのほうが難易度が高い。
Cが使いこなせるなら特にC++をやる必要はない。
パフォーマンスもC++の方が落ちる。テンプレートなど使用しているせい。
大規模、大人数で開発するとき、パフォーマンスを犠牲にしても保守性を上げるためC++にすることはある。
シビアな速度、メモリ管理が必要ならCかアセンブラ。

45:デフォルトの名無しさん
13/04/07 13:58:12.34
どこを立て読み?

46:デフォルトの名無しさん
13/04/07 14:00:43.08
C++は子供のおもちゃ
Cは職人が命を預けられる道具

47:デフォルトの名無しさん
13/04/07 14:07:05.34
>>44
何かいろんな観点をごっちゃにしたデカイ釣り針だな

48:デフォルトの名無しさん
13/04/07 14:07:06.74
C++は老人のオナニー
Cは老人の残した糞

49:デフォルトの名無しさん
13/04/07 14:08:36.39
Dは新進気鋭の若手

50:デフォルトの名無しさん
13/04/07 14:11:28.69
パフォーマンスと言うのが、実行速度という意味なら、テンプレートでパフォーマンス悪化は起こらない

51:デフォルトの名無しさん
13/04/07 14:12:03.13
Dこそが至極
すべての言語は最終的にDに集約される

52:デフォルトの名無しさん
13/04/07 14:12:56.65
>>50
所詮マクロですもんね
バイナリサイズがでかくなるだけ

53:デフォルトの名無しさん
13/04/07 14:16:35.26
バイナリサイズがでかくなるということはキャッシュ効率が悪くなり遅くなるということ

54:デフォルトの名無しさん
13/04/07 14:17:10.30
C++では性能劣化しないというのが理念だが、それはコンパイラの実装次第であって
現実として、CをC++で完全に置き換える状況にはなっていない。

55:デフォルトの名無しさん
13/04/07 14:17:15.41
>>52
それもほとんどの場合は違うと思うよ。
コンパイル速度が悪化する程度だよ。

56:デフォルトの名無しさん
13/04/07 14:19:26.11
>>53
それは本質がわかってない
テンプレートでバイナリが肥大化するなら、C でも同程度に大きくなる

57:デフォルトの名無しさん
13/04/07 14:43:10.42
超上級者の書いたcが、サイズも小さく性能も高いという点なら同意するけど、
テンプレートというかメタプログラムのいいところは、コンパイルの時点である程度の処理が解決されているので
キャッシュヒットは悪くなったとしても、先読みの有効性が高くなる点なんじゃないだろうか。
限界性能とか意識したことないけど。。。

58:デフォルトの名無しさん
13/04/07 14:47:46.94
>>56
型毎に処理を作るという事を行わなければそうはならないが(qsortみたいに)、
今度は型毎に処理が最適化されないので遅くなるという罠
同じ事をしようと思った場合、Cは基本的にC++より遅いか同等

59:デフォルトの名無しさん
13/04/07 14:51:39.22
fftw(OCamlで生成されたCコードによる最速FFTライブラリ)等を見てると、
テンプレートで頑張ってメタプログラミングするより
コード生成に適した言語でCコードを生成したほうが筋が良さそう

60:デフォルトの名無しさん
13/04/07 14:54:04.28
そこまで速度にこだわるなら
Fortran使った方が

61:デフォルトの名無しさん
13/04/07 14:54:16.73
テンプレートから実体化した関数と、Cで作った関数に違いはないよ。
テンプレートは型パラメータ分の実体化を伴うから、バイナリが肥大化しやすいと言われてる。
でも、それはCでも変わらないよね。
型違いのコードクローンを作るか、マクロ関数化するしかないんだから。

62:デフォルトの名無しさん
13/04/07 14:56:24.17
キャッシュを考えないと遅くて動かないプログラムってどんなのがあるの?ゲームとか?

63:デフォルトの名無しさん
13/04/07 14:56:42.48
>>58
その通り。

64:デフォルトの名無しさん
13/04/07 14:56:57.58
普通コードのキャッシュよりデータのキャッシュの方が重要
コードサイズなんて大したもんじゃない

65:デフォルトの名無しさん
13/04/07 15:00:19.01
そりゃ完全にC with templateとして割り切ったら
Cと同等以上の速度になるんだけど、
実際は標準C++ライブラリを使うなら例外も使うし、
例外を使うならスマポ使いたいし……ってなって
結局はCより肥大化して遅くなってしまう

66:デフォルトの名無しさん
13/04/07 15:01:44.50
>>65
あほか
そんなのは選択したお前の勝手で、言語の優劣とは関係無い

67:デフォルトの名無しさん
13/04/07 15:02:07.72
最近の例外は正常フローだと逆に早くなるが

68:デフォルトの名無しさん
13/04/07 15:02:38.67
>>56
さすがにそれはないんじゃ?
テンプレートの生成するコードハンパないし。
顕著なのはiostreamか?includeしただけでひどいことに
コンテナ系も同じ型であったとしてもやっぱ別々になるし。。。
グローバルにtypedefしたら改善する?
それとも大量のincludeがいけないのだろうか。

69:デフォルトの名無しさん
13/04/07 15:03:00.12
>>65
いやいや
例外を使わない方がエラー処理が肥大化するんだぞ
スマポも全く肥大化しないどころか、
デストラクタのないCはエラー処理が冗長になりがち

70:デフォルトの名無しさん
13/04/07 15:03:28.88
ゴミみたいな機能でも
なんでも揃ってれば素晴らしいという観点でいえば
C++は素晴らしいね

71:デフォルトの名無しさん
13/04/07 15:06:28.05
CとC++のどちらか性能上かはコンパイラの実装次第となるが。
基本的には、徹底してソースコードを調整した場合、性能はアセンブラ > C言語 > C++の順だろ。

72:デフォルトの名無しさん
13/04/07 15:08:01.88
C++が遅いとか妄想で語ってるだけ
基本的にC++のが速い

73:デフォルトの名無しさん
13/04/07 15:08:49.03
と妄想で語るのでした。まる。

まあトイプログラムならC++の方が速いよwww

74:デフォルトの名無しさん
13/04/07 15:09:24.00
一年後出来上がったソフトを比較した結果
C++>C言語>アセンブラの順の速さで動くのだった

75:デフォルトの名無しさん
13/04/07 15:14:37.42
Cの方が速いとすると
それはどこかで安全性を犠牲にしてるだけ
場合によってはセキュリティホールを放置してたり

76:デフォルトの名無しさん
13/04/07 15:14:53.26
実行速度も消費メモリも(コードの行数すらも)C++の完敗ですね

URLリンク(benchmarksgame.alioth.debian.org)

77:デフォルトの名無しさん
13/04/07 15:15:38.86
CもC++もそのコンパイラは、アセンブラ(=機械語)に翻訳するわけで、チューニングされたアセンブラに敵うわけはない。

78:デフォルトの名無しさん
13/04/07 15:16:20.68
CとC++で速度差があるとかいってるやつは単なるアホ

79:デフォルトの名無しさん
13/04/07 15:18:52.91
>>68
じゃあさ、同じものをCで作ってごらんよ。
テンプレートだから大きいのではなくて、機能そのものが大きいんだよ。
つまり、それはCとC++の違いではなくて、関数レベルの機能差なだけ。

80:デフォルトの名無しさん
13/04/07 15:20:26.85
iostreamは擁護できない

81:デフォルトの名無しさん
13/04/07 15:21:56.06
速度差はあるのは当然。
いまのC++コンパイラは、Cへのトランスレータではなく、一気にアセンブラ・機械語まで持って行く。
性能はどの程度、コンパイラがチューニングされているかに依存するが、
STLの実装などを見れば汎用性維持のための無駄が多く、同様の処理を直にCで書いたほうが速くなるだろう事は想像がつく。

82:デフォルトの名無しさん
13/04/07 15:22:08.44
>>76
"完"敗?
n-bodyとかは遅い方が勝ってるってこと?

83:デフォルトの名無しさん
13/04/07 15:28:53.93
C++ to C

C++ → Cfront releases → Release 3.0.3
URLリンク(www.softwarepreservation.org)


Lightweight C++
Lightweight C++は C++に似たプログラミング言語であり、人間が読んで理解できる Cコードに直接変換します。
関数オーバーロード、メンバ関数、継承、ポリモルフィズム(仮想関数)、多重継承、仮想継承、純粋仮想関数、コンストラクタ/デストラクタ、new/delete、単純テンプレートをサポートしています。
URLリンク(sourceforge.jp)

84:デフォルトの名無しさん
13/04/07 15:30:40.95
必要もなくクラスやストリーム使ってるソースでCと比較とか
ベンチマークやってるのなんてこんなのばっかり

85:デフォルトの名無しさん
13/04/07 15:33:22.04
とりあえずI/Oを含んでるベンチマークは信用しない

86:デフォルトの名無しさん
13/04/07 15:33:29.86
必要なく使っているソースで差がでるのだったら必要があって使っているソースでも差があるのではなかろうか?

87:デフォルトの名無しさん
13/04/07 15:34:58.00
必要があればC側にも似たようなコードが増える

88:デフォルトの名無しさん
13/04/07 15:35:26.03
文句があるならコード改良して送りつければよろし

89:デフォルトの名無しさん
13/04/07 15:39:04.64
そんなめんどくさいことするヒマなんてないし

90:デフォルトの名無しさん
13/04/07 15:39:19.14
>>76
うわー、思った以上に差がある。
なーんだがっかり。

91:デフォルトの名無しさん
13/04/07 15:47:45.37
こうやってCに固執する奴が増えれば増えるほど俺の相対的な戦力が上がるんだからむしろ歓迎

92:デフォルトの名無しさん
13/04/07 15:51:08.33
C++使いがクソみたいな言語仕様やライブラリと格闘している間に、
C使いは適当な高級言語とFFIを駆使して
快適にプログラミングしていくのであった……

93:デフォルトの名無しさん
13/04/07 15:58:16.62
FFIって言ってみたかったんですね
わかります

94:デフォルトの名無しさん
13/04/07 16:04:25.63
・なんだかんだ言ってCもC++も高級言語なので、高度に最適化されたアセンブラには勝てない
・しかし、コンパイラの性能は年々向上してるし、第一人間の能力的にソフト丸ごとアセンブラで書くのはまず不可能
・Cに比べてC++の方がライブラリは充実しているので「書きやすい」が、その分複雑になっているので「難しい」とも言える
・「どちらが速いか」「どちらが小さいか」なんてのは条件によってバラバラなのでなんとも言えない
 (C++の方がライブラリを無駄に多くincludeしやすいが、その分Cよりは安全な処理ができる、等)

とりあえずこんなとこか

95: ◆QZaw55cn4c
13/04/07 16:10:12.89
>>94
ライブラリをinlucdeする??

96:デフォルトの名無しさん
13/04/07 16:21:47.66
>>95
/usr/includeの中身全部読んでから出直せ

97:デフォルトの名無しさん
13/04/07 16:22:13.83
boostも使った事ねーのか

98:デフォルトの名無しさん
13/04/07 16:26:43.66
これは恥ずかしい。

99:デフォルトの名無しさん
13/04/07 16:29:29.05
>>79
使ってないコードはリンカが取り除くから機能がでかいからといってincludeしてちょっと使うぐらいじゃコードサイズはでかくなっちゃいけない
でも現実にでかくなっているということは機能がでかいんじゃなくてテンプレートがクソだからだ

100:デフォルトの名無しさん
13/04/07 16:33:13.34
早いけど先に地鎮祭しとくのでテンプラよろしく

STLつかうと一気に実行ファイルサイズが10倍に?!

環境によるだろ。
俺はBorland-C++5.6.2に -D_RTLDLL オプションを指定して、極力
ランタイムを使用するようにして使っているが、例えばstd::vectorを
使っても使わない時と比べ10Kほどしか増えない

すげえ。ダイナミックリンクしといてファイルサイズが増えないとかいってるよ。この人。

C1010: プリコンパイル済みヘッダーの検索中に予期しない EOF を検出しました。
とかいうエラーが出るんだけどこれってどうすればいいの?

#include <stdafx.h>
後死ね。

言葉が悪いな。それで教えているつもりか。
まぁヒントぐらいにはなったな。
うむごくろう。

101:デフォルトの名無しさん
13/04/07 16:47:46.85
>>97
厳密にはboostにしても、「インクルードするだけのライブラリ」ではない、それを踏まえた上でのくだらない突っ込みでは?

>>96
リンカって知ってる?

102:デフォルトの名無しさん
13/04/07 16:49:07.73
「インクルードするだけのライブラリ」でないのはごく一部だけだろ
大部分は「インクルードするだけのライブラリ」

103:デフォルトの名無しさん
13/04/07 16:55:54.33
>>101
これは恥ずかしい。

104:デフォルトの名無しさん
13/04/07 17:09:53.68
>>83
何これ面白い
早速落として使ってみよう

105:デフォルトの名無しさん
13/04/07 17:10:24.57
また老害Qが湧いてるのか

106:デフォルトの名無しさん
13/04/07 17:12:26.13
JAVAでゲームが書かれる時代に何くだらん議論してんだよ

107:デフォルトの名無しさん
13/04/07 17:51:31.80
一番くだらないのが来ました

108:デフォルトの名無しさん
13/04/07 19:38:30.96
C++でガリガリと大きなプログラムを書けることに優越感を感じます。

109:デフォルトの名無しさん
13/04/07 19:42:23.64
言語を選べる職場なの?

110:デフォルトの名無しさん
13/04/07 19:48:16.97
アルゴリズム検証やプロトタイピングが主なので。

111:デフォルトの名無しさん
13/04/07 19:51:46.90
>>110
それ何て研究室?一般企業ではあり得ないよなあ

112:デフォルトの名無しさん
13/04/07 19:52:59.06
>>104
CfrontはC++処理系の元祖

113:110
13/04/07 19:53:09.24
>>111
あれ?そうスか?
普通の電機メーカーです。

114:デフォルトの名無しさん
13/04/07 19:55:58.24
すげえメーカーだなあ
組み込みにC++?

115:デフォルトの名無しさん
13/04/07 19:56:29.20
>>112
C++の表面に出て来ない裏方を見てみたい好奇心で

116:110
13/04/07 19:59:44.30
>>114
あ、いや、C/C++で検証したアルゴリズムをFPGAで実装。
めんどい。

117:デフォルトの名無しさん
13/04/07 20:00:14.26
言ってる事がどんどん変わってるなwww

118:デフォルトの名無しさん
13/04/07 20:00:26.55
底辺社畜さんには同情を禁じ得ないけど
それも自分が選んだ道だから
頑張って!

119:デフォルトの名無しさん
13/04/07 20:10:08.81
選びたくて選んだんじゃない
ほかにできる仕事がなかったんだ

120:デフォルトの名無しさん
13/04/07 20:12:24.16
えー、でもプログラムの仕事、楽しいじゃん。
これ以外は考えられないよ。

121:デフォルトの名無しさん
13/04/07 20:16:34.77
それはお前が若いからだ

122:デフォルトの名無しさん
13/04/07 20:16:55.05
コード書くのは好きだからいいんやけどね
書類作ったり営業したりがもう最悪
ニートになりたい

123:デフォルトの名無しさん
13/04/07 20:22:50.29
土方だとつまんないかもだね。
自分で自分の仕事を決められる立場にある人間が、自分で決めて遂行するなら、おもしろそうだな。

124:デフォルトの名無しさん
13/04/07 20:25:46.54
>>122
自分も書類書くの面倒!!
アジャイルプログラミングだ、と(心の中で)言い訳してコードばっかり書いてるw

125:デフォルトの名無しさん
13/04/07 20:26:08.41
大企業の社員さんには出来ない主張も、俺みたいな外部の業者には平気で出来て
それが結構通るから面白い
そんなわけで大概言語は自分で選べてる

126:デフォルトの名無しさん
13/04/07 20:26:38.35
>>123
こんなことできるよ!ってプログラム動かして上の人とか営業さんに見せると喜んでくれるから楽しいよ。

127:デフォルトの名無しさん
13/04/07 20:29:16.95
>>126
おおー、珍しく前向きな意見だね。

128:デフォルトの名無しさん
13/04/07 20:31:28.86
>>127
珍しくw

まー、多くの現場では押し付け的にあれやれこれやれ早くやれで大変だよね・・・。
それも大事だけど、もっとやる気出るようなリーダーシップというか人間性がない人が多いような気がするよ・・・。
悲しいことにね・・・。

129:デフォルトの名無しさん
13/04/07 20:32:03.97
実際は「こんなことーー(1時間経過)ーー出来るよ!」だからな
一瞬で出来ないと営業に出かけてしまう

130:デフォルトの名無しさん
13/04/07 20:33:04.86
>>129
ワロタw

131:デフォルトの名無しさん
13/04/07 20:59:10.83
なぜ客の前でデモすると突然バグるのか

132:デフォルトの名無しさん
13/04/07 20:59:40.09
>>131
法則みたいなもんだw

133:デフォルトの名無しさん
13/04/07 21:00:26.79
そりゃお前、同僚がバグしこんでんだよ。嫌われてんだろうな

134:デフォルトの名無しさん
13/04/07 21:48:02.03
>>131
どう考えてもマーフ(ryだな

135:デフォルトの名無しさん
13/04/07 21:57:10.42
[参考] ベンチマーク - FOR-NEXT10億回ループ ver1.04 page 1/2

(表1)ベンチマークテスト結果(数字が小さいほど速い)

                        MASM32 Visual  Visual  Visual  Java   Dark   AGK   Basic4GL 99BASIC
                              Basic  C++   C#   Script  BASIC
----------------------------------------------------------------------------------------------------
PC(CeleronD2.66GHz)[sec]       0.7828  2.445  2.821   3.973   7.772  20.853  65.423  285.703  1532.0
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MASM32を1とする相対倍率        1.0   3.123  3.604   5.076   9.928  26.638   83.575  364.975  1957.0
----------------------------------------------------------------------------------------------------
Nexus7(Tegra3)1.3GHz[sec].       -----   -----  -----  -----  36.480 -----   320.18   -----   -----
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MASM32を1とする相対倍率.       -----   -----  -----  -----  46.601 -----   409.01   -----   -----
----------------------------------------------------------------------------------------------------
iPhone4S(Cortex-A9)800MHz[sec]  -----   -----  -----  -----  36.521 -----   (※注)  -----   -----
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MASM32を1とする相対倍率        -----   -----  -----  -----  46.654 -----   (※注)  -----   -----
----------------------------------------------------------------------------------------------------
(※注)iPhone版AGKターゲットエミュレーターはビデオストリームのため除外。

136:デフォルトの名無しさん
13/04/07 21:57:49.08
[参考] ベンチマーク - FOR-NEXT10億回ループ ver1.04 page 2/E

(表2)ランキング表(数字が小さいほど速い)

                    開発環境     タイム  MASM32を1とする
                              [sec]      相対倍率
-----------------------------------------------------------------
PC(CeleronD2.66GHz).      MASM32.     0.7828         1.0
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PC(CeleronD2.66GHz).      Visual Basic.   2.445          3.123
PC(CeleronD2.66GHz).      Visual C++    2.821          3.604
PC(CeleronD2.66GHz).      Visual C#      3.973       5.076
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PC(CeleronD2.66GHz).      JavaScript    7.772         9.928
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PC(CeleronD2.66GHz).      DarkBASIC   20.853         26.638
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Nexus7(Tegra3)1.3GHz      JavaScript.   36.48         46.601
iPhone4S(Cortex-A9)800MHz JavaScript.   36.521         46.654
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PC(CeleronD2.66GHz).      AGK       65.423         83.575
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PC(CeleronD2.66GHz).      Basic4GL.   285.703       364.975
Nexus7(Tegra3)1.3GHz      AGK.      320.187       409.01
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PC(CeleronD2.66GHz).      99BASIC.   1532.0         1957.0
-----------------------------------------------------------------

137:デフォルトの名無しさん
13/04/07 22:21:37.70
>>135-136
これいつ測ったベンチなんだよ……比較対象がBASICって……
単なる空for文なら最適化で消されかねないから何か書いたんだろうけどそれは一体何……
そもそもソースが提示されていない時点で再テストすらできない……

138:デフォルトの名無しさん
13/04/07 22:43:42.73
典型的なベンチマーク厨

139:デフォルトの名無しさん
13/04/07 22:49:13.92
[参考] ベンチマーク - FOR-NEXT10億回ループ(CeleronD2.66GHz)

Visual C++ - 2.821秒(ループ回数を100倍にしてタイムを100で割った数字)

#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[]) {
 int j,k;
 printf("START\n");
 for(k=0; k<100; k++) { for(j=0; j<1000000000; j++) {} }
 printf("END\n");
 return 0;
}

140:デフォルトの名無しさん
13/04/07 22:55:16.07
あ、ソース等見つけた。ここが元ネタか……
スレリンク(pcnews板)

でもループだけって……せめて行列計算とかさせろよと

141:デフォルトの名無しさん
13/04/07 23:27:47.29
俺の環境では
 C++ 259ms
 C# 2748ms
 VB 3817ms

auto v = 0ULL;
auto st = std::chrono::system_clock::now();
for ( auto i = 0; i < N; i++ ) {
 for ( auto j = 0LL; j < 1000000000LL; j++ ) {
  v += j;
 }
}
auto et = std::chrono::system_clock::now();

142:デフォルトの名無しさん
13/04/07 23:29:31.35
>>141
やっぱC++はすげぇぜ・・・。
スーパーサイヤ人だな。

143:─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG
13/04/07 23:30:47.19
>>141
ベンチマークで余計な最適化やると意味ないよw

144:141
13/04/07 23:35:30.56
>>143
最適化外したら意味ないでしょ。
最初、debug=3秒、release=0秒になったから
仕方なくv+=jを加えてvの結果を出力
するようにしたらこうなった。
vの計算結果が表示されてるからループは
してる筈。

145:─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG
13/04/07 23:37:44.94
>>144
Nって何の数字だ?

適当に書いてもちゃんと見てるぞw

146:─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG
13/04/07 23:41:03.05
autoも怪しいなw

147:─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG
13/04/07 23:50:46.07
[参考] ベンチマーク - FOR-NEXT10億回ループ(CeleronD2.66GHz)

MASM32 - 0.7828秒(ループ回数を100倍にしてタイムを100で割った数字)

      fn     MsgboxI,hWin,"START",ustr$(eax),MB_OK,500
      MOV  EBX,100
SELF2: MOV  ECX,1000000000
SELF:   LOOP SELF
      DEC  EBX
      JNZ   SELF2
      fn     MsgboxI,hWin,"END",ustr$(eax),MB_OK,500
- - - - - - - - -

フツーにこれより速くなるコトはないからなw

ネタは挙がってんだぜ?w”

148:─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG
13/04/07 23:51:40.27
ALIGN 16ぐらい付けても変わらないとは思うけどなw

149:141
13/04/08 00:05:49.31
>>147 はいはい。Visual C++ 2012, Core-i7 3632QM 2.2GHz
#include <cstdio>
#include <chrono>
static const int N = 10;
int main() {
auto v = 0ULL;
auto st = std::chrono::system_clock::now();
for ( auto i = 0; i < N; i++ ) {
for ( auto j = 0LL; j < 1000000000LL; j++ ) {
v += j;
}
}
auto et = std::chrono::system_clock::now();

std::printf("%llu\n", v);
std::printf("%.1fms, %.1f ms\n",
std::chrono::duration_cast<std::chrono::milliseconds>(et - st).count() * 1.0,
std::chrono::duration_cast<std::chrono::milliseconds>(et - st).count() * 1.0 / N);
std::getchar();
}

Nが一桁間違えてたけど
平均取るための回数だから大目に見てね。
そちらより時間が短いのは実行環境の違いであって、
同一環境でアセンブラよりC++が速いなんて言わないよ。
ただベンチは64ビットでやろうよ。

150:─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG
13/04/08 00:11:19.33
>>149
Nが整数ってのは怪しいなw
floatで取れw

3632QMって…あ、聞いちゃ不味かったかw

151:デフォルトの名無しさん
13/04/08 00:13:45.65
ワッキーちゃん芝刈り機の出番

152:─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG
13/04/08 00:16:57.09
3632QMってPassMarkで7000、CeleronD2.66GHz(260)の27倍か。

つまり… C++ 259ms → *27 = 6.993秒w

PC(CeleronD2.66GHz).      Visual C++    2.821          3.604

…何やってんだかw

153:─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG
13/04/08 00:17:56.23
こういう時は計算の速い俺の方が有利だからなw

154:─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG
13/04/08 00:21:19.12
CPUメーター付けてないと内部動作見えてないかもな…。

155:デフォルトの名無しさん
13/04/08 00:42:34.85
>>152
あいやーだな

156:デフォルトの名無しさん
13/04/08 00:56:27.85
>計算の速い俺の方が有利だからなw
ワロタ
一定の条件下での言語比較なのに
俺の方が有利とか何だよw

157:デフォルトの名無しさん
13/04/08 01:34:21.28
>>147>>139と等価な処理じゃないから正しい比較になってないよ(>>147は減算して0との比較)
この流れは処理結果が同じなら異なるロジック・アルゴリズムで比較してもいいというものではないよね

158:デフォルトの名無しさん
13/04/08 01:51:31.09
今ホットなベンチ
・びす太で実行
・今時セレロンD
・まさかの空ループ ←ポイント
・最適化は無しで

159:95
13/04/08 03:21:41.12
普通なことを普通に書いても‥‥
とか、具体的に
行列計算で普通にfor() を使って書いても‥‥
とか何か目的、いやデモしたい、デモして皆に見せびらかしたい理由とかあるよね、普通。そこんとこはっきりさせてよ、なぜ言語別でデモするのかさぁ
CPUを新しいのがいいね最低でも砂橋とかネハでもいいけどさ

変なのつれて来てごめんね

160:─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG
13/04/08 05:21:52.56
>>155-158
まず1回でまとめて書く癖を付けようw
ムダだから(笑)

>(>>147は減算して0との比較)

よく気が付いた、感動したw

>今ホットなベンチ
>・びす太で実行
>・今時セレロンD
>・まさかの空ループ ←ポイント
>・最適化は無しで

誰かさんの安物3632QM(←まずありえないw)には負ける(アハ♪”

161:デフォルトの名無しさん
13/04/08 05:35:29.82
また痛いのが常駐してるな…

162:─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG
13/04/08 05:38:59.23
んー、DarkBASICよりVC++の方が速いと言う結果だから仕方ないな。

ここに常駐してVC++を学習してやろう(笑)

# 俺がちゃんと吟味してやる(ゲラゲラ

163:デフォルトの名無しさん
13/04/08 06:53:51.73
>>160 >>162
>>159

164:デフォルトの名無しさん
13/04/08 07:41:01.52
コンソーレのキチガイは巣に帰れよ

165:デフォルトの名無しさん
13/04/08 07:56:34.74
マをしてるとこういう精神状態になることもしばしばあるだろう

166:デフォルトの名無しさん
13/04/08 08:13:05.55
ねーよ
一緒にしてくれるな

167: ◆QZaw55cn4c
13/04/08 08:28:28.42
>>162
>ここに常駐してVC++を学習してやろう(笑)
君にC++を理解できるかな
成果を期待しているよ

168:デフォルトの名無しさん
13/04/08 18:01:40.60
> ライブラリをinlucdeする??
とか言ってるクソ野郎のいう事じゃないな。

169:デフォルトの名無しさん
13/04/09 00:06:56.08
CPUメーターがどうのとか言ってたり、別のベンチマークの結果を使って実行時間に掛け算してたりしてて、
なんじゃこりゃ、って思ってたんだが、単なる基地外か。まじめに考えて損した。

170:デフォルトの名無しさん
13/04/09 08:34:27.67
他人の作ったCプログラム(C++ではない)を適当なnamespaceに閉じ込める簡単な方法ないでしょうか

namespace foo
{
#include "foo.c"
}

だけで大丈夫なんでしょうか

171:デフォルトの名無しさん
13/04/09 11:51:53.45
>>170
それでコンパイルとリンクが通ればok
通らなければ諦める


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch