【初心者歓迎】C/C++室 Ver.84【環境依存OK】

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
エスケープシーケンスやWin32APIなどの環境依存なものでもOK。
ただしその場合、質問者は必ず環境を書きましょう。
※sage禁止です(と代々スレに書いてありますが自己判断で)。

【前スレ】
【初心者歓迎】C/C++室 Ver.83【環境依存OK】
http://toro.2ch.net/test/read.cgi/tech/1363154865/
◆ソースのインデントについて
半角空白やTABでのインデントはスレに貼ると無くなります。
そのため、アップローダーに上げるのも手ですが直接貼る場合は、
全角空白か に置換すると見栄えだけはよくなります。

【アップローダー】(質問が長い時はココ使うと便利)
http://codepad.org/ (コンパイルもできるし出力結果も得られる[]privateをチェック)
http://ideone.com/ (時間帯によってはcodepadが重い事があるのでここも利用)
2デフォルトの名無しさん:2013/04/28(日) 18:02:07.74
NG推奨:半角にして登録してくだい
◆QZaw55cn4c
◆0lBZNi.Q7evd
/tech/1313183984/
3デフォルトの名無しさん:2013/04/28(日) 19:30:08.32
>>2に追加

NG必須:半角にして登録してくだい
hoge
片山
4デフォルトの名無しさん:2013/04/28(日) 20:25:38.66
hogeは日本の美しい表記です。それを否定するのは非国民
5デフォルトの名無しさん:2013/04/28(日) 21:29:44.13
HOGEってのはキモいウニユーザーの
イメージがあるな。
奴らは一般人と会話するときにもHOGEを
使うから困ったものだ。
6デフォルトの名無しさん:2013/04/28(日) 21:39:25.63
大昔、日常会話の中で「ピー syntax error!」と叫ぶ人がいた。
今は絶滅してると思う、たぶん。
7デフォルトの名無しさん:2013/04/28(日) 21:43:49.40
キュンキュンキュン! キュンキュンキュン!
私のハードディスクに記録しているのでありますっ☆
8デフォルトの名無しさん:2013/04/29(月) 14:10:33.57
コンパイラ:gcc version 2.95.3

int
poll(struct pollfd *p, nfds_t nfds, int timout)
{
fd_set read, write, except;
struct timeval tv;
nfds_t i;
int highfd, rval;
...
と言うプログラムをコンパイルしたところ、
poll.c: In function `poll':
poll.c:41: warning: declaration of `read' shadows global declaration
poll.c:41: warning: declaration of `write' shadows global declaration
という警告が出たのですが、
これってどういうときに出るのでしょうか?
また、無視してよい物なのでしょうか?
9デフォルトの名無しさん:2013/04/29(月) 14:15:44.74
>>8
もともとどこかでreadが宣言されてたけど
オマエがreadを宣言しちゃったから
オマエの方が優先されるけどいいんだな
という警告と思われる
10デフォルトの名無しさん:2013/04/29(月) 17:11:14.32
ゆとり世代のわがままっぷりが良く分かる
11デフォルトの名無しさん:2013/04/29(月) 17:13:48.53
>>10
なぜそれを「ゆとり世代」とか「わがまま」と感じたのか興味あるね

単なる初心者の陥りやすい間違いという可能性は考えなかったのか?
12デフォルトの名無しさん:2013/04/29(月) 17:35:24.41
>>11
幼稚園のお遊戯で白雪姫の役ができるのは「白雪姫の役をやりたい」と言った人全員
という世代なんだよ
13デフォルトの名無しさん:2013/04/29(月) 17:37:39.23
>>8
お前、二歳くらいのとき
児童館で他人の玩具を奪い取ったことあるだろ?
14デフォルトの名無しさん:2013/04/29(月) 17:48:27.02
>>12
皮肉も理解出来ないアスペか
お前自身に「ゆとり世代」や「わがまま」の要素が強いから反応したんだよ
「投影」という現象だ
15デフォルトの名無しさん:2013/04/29(月) 17:51:01.78
man read
man write

read, write って stdio.h 経由で宣言されちゃうのかしら?
16デフォルトの名無しさん:2013/04/29(月) 18:05:57.74
>>14
いったい何を興奮してらっしゃる?
17デフォルトの名無しさん:2013/04/29(月) 19:03:42.00
hoge厨が来たわけでもないんだから落ち着けお前ら
18デフォルトの名無しさん:2013/04/29(月) 20:05:09.32
ゆとり世代より凄いのが新人類だよな
話を聞くとゆとり世代も完敗するぐらいゆとりだったみたい
19デフォルトの名無しさん:2013/04/29(月) 21:41:37.65
新人類って、長州力のアレか
20デフォルトの名無しさん:2013/04/29(月) 22:02:34.18
バカが見〜る〜♪ ブタのケ〜ツ♪
21デフォルトの名無しさん:2013/05/01(水) 01:45:31.29
hoge厨歓喜
22デフォルトの名無しさん:2013/05/01(水) 01:50:51.85
hoge厨とfoobar厨って、どっちがつおいの?
23デフォルトの名無しさん:2013/05/01(水) 03:26:24.54
>>22
さぁ、まともな神経してるのはfoobar厨だと思うけど、
まともな神経してれば強いというわけでもない
馬鹿は無敵だしな
基準を何にするかにもよるし

とりあえず情報収集能力や判断力を基準にすればfoobar厨のほうが圧倒的に強い
キチっぷりを基準にすればhoge厨のほうが圧倒的に強い
24デフォルトの名無しさん:2013/05/01(水) 20:49:45.04
とりあえずホゲユーザーは一般人と話すときに
ホゲホゲのと言うのはやめた方がいい。
一般人に対しては「なになにの」と言うべき。
25デフォルトの名無しさん:2013/05/02(木) 02:26:00.26
hoge厨よりhogeアンチ厨のがキモい
26デフォルトの名無しさん:2013/05/02(木) 03:28:29.13
>>25=キモいhoge厨
27デフォルトの名無しさん:2013/05/02(木) 03:49:07.58
アンチhogeを最も効率よく怒らせた人が勝ちです
さあ始め
28デフォルトの名無しさん:2013/05/02(木) 18:51:21.19
いつもこいつが荒らしてんのか
29デフォルトの名無しさん:2013/05/03(金) 22:46:23.63
C++はシンタックスエラーがなかなか取り除けないな
C++に遊ばれている
30デフォルトの名無しさん:2013/05/03(金) 22:58:53.76
>>29
「basicなんちゃらクラスがうんたら」「インスタンシエートしました」「候補はこれじゃない?」とか参照絡みテンプレート絡みはほとんどわからない‥‥
31デフォルトの名無しさん:2013/05/03(金) 23:36:23.53
>>29
まあ腐っても言語だからね。
「C++はシンタックスエラーがなかなか取り除けないな C++に遊ばれている」
>>29が英訳した文をアメリカンに添削させたら
壮大な校正が入るだろう。
並大抵でないのは当然。
32デフォルトの名無しさん:2013/05/04(土) 00:00:07.94
「象は鼻が長い」
33デフォルトの名無しさん:2013/05/04(土) 00:11:22.23
アンサイクロペディアでC++ページ見たことがある?
あれ面白いから見てみたほうがいいよ
34デフォルトの名無しさん:2013/05/04(土) 00:28:33.46
テンプレートとオーバーロードそれぞれはまぁ納得できる仕様なのだが、
組み合わせるとエラーの原因がさっぱりわからんものに。
35デフォルトの名無しさん:2013/05/04(土) 00:41:17.75
36デフォルトの名無しさん:2013/05/04(土) 14:39:45.42
[Mac/NUC] AGK / DarkBASIC / Basic4GL / 99BASIC 2013 Part.1
http://jbbs.livedoor.jp/bbs/read.cgi/computer/43761/1367197701/l100
37デフォルトの名無しさん:2013/05/04(土) 22:22:34.27
NG推奨ワード: BASIC (半角で)
38デフォルトの名無しさん:2013/05/04(土) 22:45:24.09
ほら悔しいw
39デフォルトの名無しさん:2013/05/04(土) 22:58:34.96
プログラム板で言語名をNGせざるを得ないという悲しみ
40デフォルトの名無しさん:2013/05/04(土) 23:01:08.37
B
A
S
I
C
41デフォルトの名無しさん:2013/05/05(日) 02:37:09.67
>>39
リンク先のクソコテだけガードしておけばいいよ
42デフォルトの名無しさん:2013/05/05(日) 05:04:14.85
>>41
顔が引き攣ってるよw
43デフォルトの名無しさん:2013/05/06(月) 02:16:13.16
【初心者姦ゲイ】C/C++室 Ver.84【姦狂依存OK】
44デフォルトの名無しさん:2013/05/06(月) 02:20:18.67
>>36
俺もBASICにしようっと
45デフォルトの名無しさん:2013/05/06(月) 13:39:34.42
C++のinline関数と通常の関数の違いを教えてください。
46デフォルトの名無しさん:2013/05/06(月) 13:41:06.60
インライン関数は複数のソースに現れても
一つになります。以上
47デフォルトの名無しさん:2013/05/06(月) 13:41:55.59
>>45
複数翻訳単位で繰り返し定義された場合、 inline でかつ内容がまったく同じであれば、それが許される。
48デフォルトの名無しさん:2013/05/06(月) 13:50:15.71
inline関数の最大の特徴はインライン展開されること
複数のソースに現れるのが許されるのは二義的なこと
49デフォルトの名無しさん:2013/05/06(月) 13:51:22.53
>>48
釣りとしてはイマイチだな
50デフォルトの名無しさん:2013/05/06(月) 13:54:55.92
ヘッダに定義をかけることだろう
絶対に展開されるとは限らんし
51デフォルトの名無しさん:2013/05/06(月) 13:59:04.90
インライン展開がわかりません。
展開とは、そこにコーディングしたのと同じ、ということでしょうか?
52デフォルトの名無しさん:2013/05/06(月) 14:00:59.61
釣り呼ばわりとか(笑)
inlineは本来的にはインライン展開を指示するものだろ
実際にインライン展開されるかどうかはコンパイラの最適化の問題であって本質的なものではない
53デフォルトの名無しさん:2013/05/06(月) 14:02:36.80
釣りって言われたらそのまま受け取る奴って何なんだろうな
ウザいから消えろってはっきり言われないと分からないのかな
54デフォルトの名無しさん:2013/05/06(月) 14:04:01.91
・関数の中身を展開し高速を図ろうぜ
・その性質上定義がヘッダーに書かれる必用があるな
・よし内部リンケージにしよう
・いや、それだといろいろまずい
・よし、ODRだ。複数ファイルでも実体は一つ ←1998年頃
・もともと展開される保証は無いし、
 展開判断はコンパイラに任せた方がよくね?
・じゃあ「インライン」の意味はおまけで
 実際はODR対象の為のキーワードだな←今ココ
55デフォルトの名無しさん:2013/05/06(月) 14:05:21.36
>>51
例外はあるけどそういう事

static変数の定義だけは例外で、
インライン展開されても変数は全ての箇所で共有される
56デフォルトの名無しさん:2013/05/06(月) 14:06:07.50
>>52
inlineキーワードとinline関数は別物だぞ
57デフォルトの名無しさん:2013/05/06(月) 14:08:36.45
>>53
お前が消えろよクズ
58デフォルトの名無しさん:2013/05/06(月) 14:09:07.11
展開とは、inline関数で記述したことをそこにじか書きするのと
同じと考えていいでしょうか?
59デフォルトの名無しさん:2013/05/06(月) 14:11:30.71
>>58
基本的にはそれで良いよ
ただ本当にインライン展開されるかはコンパイラの判断によるということ
>>56
inline関数の話をしてるのは明白だろ
60デフォルトの名無しさん:2013/05/06(月) 14:14:18.23
>>59
いえ、inline関数の話をしているのに
どうしてinlineキーワードの話にすり替えるのですか?
61デフォルトの名無しさん:2013/05/06(月) 14:16:15.39
元の質問者はトリップつけてくれよ
62デフォルトの名無しさん:2013/05/06(月) 14:24:37.55
>>59さん
サンクスです。
63デフォルトの名無しさん:2013/05/06(月) 14:55:44.93
>>57,>>61
キチガイは早く他所に行ってね
スレが荒れる原因になって迷惑です
64デフォルトの名無しさん:2013/05/06(月) 15:15:29.74
> ウザいから消えろってはっきり言われないと分からないのかな ⇒ >>63
65デフォルトの名無しさん:2013/05/06(月) 15:24:47.05
とりあえず>>48の回答は不適切。
釣りかどうかはわかないが
66デフォルトの名無しさん:2013/05/06(月) 15:33:08.41
君が不適切と思うならそうなんだろうな。

君の中では。
67デフォルトの名無しさん:2013/05/06(月) 17:46:04.74
>>66=精神異常
68デフォルトの名無しさん:2013/05/06(月) 18:11:39.19
winsockでudpサーバを作ろうとしていますが、クライアントが何らかの信号を出さないと、サーバは誰が接続中でデータを配信しているか
分からないのでしょうか、acceptで接続するときの情報をとろうと実験したのですが、
それだとブロードキャストらしきものを拾って使えませんでした
69デフォルトの名無しさん:2013/05/06(月) 18:21:06.43
udpで接続中とかは意味がわからないが、サーバがデータを受信したときに
送信元のIPアドレスは分かるだろう
70デフォルトの名無しさん:2013/05/06(月) 18:34:03.68
具体的にいうと動画データをudpで配信するサーバを作りたいのですが、配信してるクライアントの情報の取り方が分からないです
71デフォルトの名無しさん:2013/05/06(月) 18:35:22.06
クライアントの情報とやらがなにを意味してるのか説明しないと
72デフォルトの名無しさん:2013/05/06(月) 18:42:22.49
スレ違い
73デフォルトの名無しさん:2013/05/06(月) 18:43:30.43
クライアントはipが取れればと思います
74デフォルトの名無しさん:2013/05/06(月) 18:45:30.66
マルチキャストなら無理
ユニキャストならお前が知らないはずはない
75デフォルトの名無しさん:2013/05/06(月) 18:50:26.38
うーん、それがudpという感じなんですね
76デフォルトの名無しさん:2013/05/06(月) 18:54:46.67
>>75
消えろゴミ
77デフォルトの名無しさん:2013/05/06(月) 18:58:48.33
とりあえず、ありがとうございました
78デフォルトの名無しさん:2013/05/06(月) 19:56:44.10
>消えろゴミ
→ ありがとうございました

マゾにもほどがある
79デフォルトの名無しさん:2013/05/06(月) 20:56:21.61
>>67
君の中ではそうなんだろうな (w
80デフォルトの名無しさん:2013/05/07(火) 00:00:14.38
inlineの仕様は「通常の関数呼び出しするより
中身を展開する方が望ましい(prefer to)」
だからなあ。
ODRが主目的でないのは異論が無いと思うけど
インライン展開されると言い切られるとちょっと違う。
81デフォルトの名無しさん:2013/05/07(火) 00:30:46.24
ほんとに展開されるかどうかはわからんもんね
82デフォルトの名無しさん:2013/05/08(水) 04:33:36.98
多重継承は正義だったのでしょうか?
83デフォルトの名無しさん:2013/05/09(木) 13:04:34.68
DMC8.56で、_beginthreadexの呼び出しで死ぬんだがどうすれば良い?
以下コード
#define _MT
#include <windows.h>
#include <process.h>

unsigned __stdcall f(void* a)
{
_endthreadex(0);
return 0;
}

int main()
{
HANDLE hth=(HANDLE)_beginthreadex(NULL,0,f,NULL,0,NULL);
return 0;
}
84デフォルトの名無しさん:2013/05/09(木) 13:26:24.36
最後の引数が間違ってるからじゃね?
85デフォルトの名無しさん:2013/05/09(木) 14:55:06.54
VCだとNULLで通るんだがなぁ

unsigned tid=GetCurrentThreadId();
HANDLE hth=(HANDLE)_beginthreadex(NULL,0,f,NULL,0,&tid);

これで通った
ありがとう
86デフォルトの名無しさん:2013/05/09(木) 15:33:44.54
MSDNによると最後の引数はNULLでも良いはずなんだがな???
あと、そのGetCurrentThreadId()呼び出しは要らない筈
87デフォルトの名無しさん:2013/05/09(木) 16:27:58.44
?
88デフォルトの名無しさん:2013/05/09(木) 16:49:53.27
ああ、最後の引数は関数の返値か。
GetCurrentThreadId()なくても通った。

実装時期が分からないけど、VC6のだとNULLでいいとは書いてないんだな。
平気でNULLにしてたけど。

まあ、DMCだから。
89デフォルトの名無しさん:2013/05/09(木) 17:44:56.19
昔はVisual C++でもダメだったので
ダミーで用意した変数のアドレス渡してた。
ソースは俺
90デフォルトの名無しさん:2013/05/09(木) 19:56:20.98
少なくともリファレンス上は
2003までNULL不可、2005から許容
91デフォルトの名無しさん:2013/05/09(木) 21:17:46.00
APIじゃなくてランタイムライブラリなら仕様が変わってもおかしくない
だがDMCは10年くらい前で止まってるんじゃないか
今さらDMCを使うくらいなら DMDの方がいいw
92デフォルトの名無しさん:2013/05/09(木) 21:21:23.38
Digital Mars何ソレうまいの?
93デフォルトの名無しさん:2013/05/09(木) 23:36:30.87
俺はDMMを利用してる
94デフォルトの名無しさん:2013/05/10(金) 11:04:50.50
今のdmc遊べるよ?
tgmath.h以外のC99で追加されたヘッダファイルあるし
関数も大体揃ってる
windows依存部分は10年放置だけどw
95デフォルトの名無しさん:2013/05/11(土) 10:30:02.96
>>94
>tgmath.h以外の
何なのその中途半端。
Win32 API使わないならclangでも挿れた方がマシ
96デフォルトの名無しさん:2013/05/11(土) 18:16:13.62
いやいや、C99 ってオイ
C++03かと思って納得しかけたじゃないかw
97デフォルトの名無しさん:2013/05/11(土) 19:19:20.18
あのさ、VS2012ですらC99に対応してないんだから、C99を中心に語るのはやめてくんない?
gcc(完全準拠じゃない)とIntel C++(これも完全準拠じゃない)は対応してるけどさ
98デフォルトの名無しさん:2013/05/11(土) 19:42:38.93
>>97
14年前の規格すら対応していない
KUSOコンパイラを君が使っていると
いう理由で
他人に変なこと要求しないでくれ。
Cだって2011年に改訂されてるんだから
2世代前の23年前の仕様で物を語られても困る。
99デフォルトの名無しさん:2013/05/11(土) 19:47:33.89
>>98
VS2012を捨ててgccを使えと?仕事で使ってるので無理です
100デフォルトの名無しさん:2013/05/11(土) 19:52:49.13
>>99
ここはVisual C++スレではないので、Visual C++前提で
話をするのは止めて下さい
101デフォルトの名無しさん:2013/05/11(土) 19:55:04.24
>>100
じゃあこのスレは何のコンパイラを使ってる人のスレなの?そこをはっきりさせてよ
>>1にも書いてないじゃん
102デフォルトの名無しさん:2013/05/11(土) 19:56:03.55
環境依存おkなんだからどんなコンパイラだろうがいいだろ
103デフォルトの名無しさん:2013/05/11(土) 19:57:30.47
>>102
そうかわかった

まあgccはEclipse CDT入れてるからいいけどさ
104デフォルトの名無しさん:2013/05/11(土) 20:00:35.28
>>101
環境を述べた上であれば環境固有の話をしてもいいスレです。
Visual C++と説明した上でC90の話をすることは構いませんが
話の前提をVisual C++の低スペックに合わせる不自由を
他人に要求しないでください
105デフォルトの名無しさん:2013/05/11(土) 20:03:23.82
VS2012が低スペックだと・・・?
106デフォルトの名無しさん:2013/05/11(土) 20:03:48.04
もろちん
107デフォルトの名無しさん:2013/05/11(土) 20:13:39.14
>>105
1990年仕様のままで
1999,2011の2回の改訂に
全く追従してないからな。
Cについては化石だろ?
108デフォルトの名無しさん:2013/05/11(土) 20:19:31.69
msとしてはC++使えってスタンスだからな
しゃあない
109デフォルトの名無しさん:2013/05/11(土) 20:20:21.64
gccとかclangの方がマシとは
110デフォルトの名無しさん:2013/05/11(土) 20:38:59.38
ウンコVCにはハーブサッター氏も困っている
http://herbsutter.com/2012/05/03/reader-qa-what-about-vc-and-c99/
111デフォルトの名無しさん:2013/05/11(土) 20:44:37.15
でもMSってClangに興味を持って秘かに取り入れようとしてるんでしょ?SP2位で入れて来たりして
112デフォルトの名無しさん:2013/05/11(土) 20:47:47.88
>>111
4月に出たうぷだて2には入っていませんでしたよ
113デフォルトの名無しさん:2013/05/11(土) 20:53:30.93
>>111
半年の短期採用でどうにかなるもんじゃないだろ
114デフォルトの名無しさん:2013/05/11(土) 20:56:43.58
という事は次期バージョンか、それとも有償プラグインかよ
115デフォルトの名無しさん:2013/05/11(土) 21:04:25.96
>>99
いまやVC使っている奴よりGCCが圧倒的に多いだろ
VC捨ててGCCにする
116デフォルトの名無しさん:2013/05/11(土) 21:06:19.35
>>115
winの仕事でgccって、オマエばかなの?
117デフォルトの名無しさん:2013/05/11(土) 21:12:17.68
バカなんだろう
118デフォルトの名無しさん:2013/05/11(土) 21:24:24.62
GPLで仕事か
羨ましい(笑)
119デフォルトの名無しさん:2013/05/11(土) 21:31:12.46
でも、Visual C++ってC++11のサポートすら中途半端な低スペックだからな
低スペックな奴は低スペックなのが良いのかもな
120デフォルトの名無しさん:2013/05/11(土) 21:46:58.52
企業が開発する有償のコンパイラが
2011年9月の規格を2012年に完全に
盛り込むのは難しいだろう。
VC6の時は規格制定から約3ヶ月後の
出荷だったし、不幸なコンパイラだな。
121デフォルトの名無しさん:2013/05/11(土) 21:50:54.04
VC++は「みんな使ってるから安心」が最大のメリットなんだよ。
最新規格を追い求める向きはそういう製品をどうぞ。
122デフォルトの名無しさん:2013/05/11(土) 21:57:47.19
>>120
細かいことだが前後が逆だぜ
 Visual C++ 6.0: 1998年6月
 C++第一版: 1998年9月

---おまけ
 1999年 C改訂
 2002年 Visual C++ .NETでスルー
 2003年 Visual C++ .NET 2003もスルー
 2005年 Visual C++ 2005もスルー
 2008年 Visual C++ 2008もスルー
 2010年 Visual C++ 2010もスルー
 2011年 C改訂
 2012年 Visual C++ 2012またもやスルー
123デフォルトの名無しさん:2013/05/11(土) 22:01:04.11
vc糞過ぎる
124デフォルトの名無しさん:2013/05/11(土) 22:23:51.36
みんなって言うか、少数民族がじゃない
125デフォルトの名無しさん:2013/05/11(土) 22:27:03.20
>>124
仕事の話を趣味の話にすり替えないでください
126デフォルトの名無しさん:2013/05/11(土) 23:43:30.87
趣味ならともかく仕事の話ってなると小数派になるんじゃない?
組み込み屋もC/C++使っているんだから
で、MSはいまやあんまりVCに力入れてないように感じるんだけど
127デフォルトの名無しさん:2013/05/11(土) 23:45:28.77
まるで職業プログラマが全て組み込み屋みたいな言い方だね。
128デフォルトの名無しさん:2013/05/12(日) 00:07:31.06
>>126
なんか明後日の方向には力入れてる。
C++/CLIとかC++/CXとかなんかもう訳分からんw
129デフォルトの名無しさん:2013/05/12(日) 00:28:04.87
>>126
.NETの時代でしょー
SQL Server + .NETは超楽じゃん
130デフォルトの名無しさん:2013/05/12(日) 00:56:56.72
仕様策定者がレファレンス実装を出さないのが悪い
131デフォルトの名無しさん:2013/05/12(日) 01:01:02.49
>>128
C++の進化が亀過ぎで、自社で拡張しないといけないんだろう
MS的にはC++にしがみつくのは止めてねって感じかな
Win職業プログラマはMSの導きに従わないと、だんだん食いぱっくれるかも
132デフォルトの名無しさん:2013/05/12(日) 09:41:38.56
>>130
参照実装と言えば、
C99のジェネリックって_Genericも無しに
どうやって実現すんだ?と思ってヘッダーを覗いたら
ウンコな実装で拍子抜けしたでござる
133デフォルトの名無しさん:2013/05/12(日) 10:46:52.82
インターフェースがしっかりしててそれなりに動けばいいの
コンパイラ屋のモチベは下がるかも知れんけどw
134デフォルトの名無しさん:2013/05/12(日) 11:31:36.35
C99の似非ジェネリックなんていらねーよ
C#のジェネリックの方がよほど使える
というかさすがにスレ違いか
135デフォルトの名無しさん:2013/05/12(日) 11:37:31.51
そこでどうしてC++とかC11でなく
C#になったのた不思議。
第一、Cのジェネリックに対応するC#の仕様は
ジェネリクスでなくオーバーロード。
136デフォルトの名無しさん:2013/05/12(日) 11:44:39.61
C#のジェネリックはC++のテンプレートとは全然違うんだぜという話をしようとしたが、
これはするとしたらC#スレで話するわ
137デフォルトの名無しさん:2013/05/13(月) 21:28:49.53
むしろどう違うととらえてていたのか気になる
・C#では(クラス型は)物理的なインスタンスが一つ。
 つまりオーバーロードの解決はコンパイル時
・そのためTが満たすべき条件をC#では基本クラスで指定
 一方C++はコンセプトLite検討中?
・そのためC#は特殊化が原則無い
・でも倫理的なインスタンスの型情報(Tが何型か)は持っている
・C++は型以外の値そのものをパラメーターに指定可

使い勝手はあんまり変わらないような。
仕組み的にはC#は基本クラスの型を使って
実行時解決できるレベルの汎用化だけど
C++はコンパイル時に全てが決まるメタプログラミング
って点かな。。
138デフォルトの名無しさん:2013/05/13(月) 22:44:27.60
今から勉強しようと思いますが
CよりC++を学んだ方が良いのでしょうか?
一通り使いこなせるようになるまで
それぞれどの程度かかりますか?
139デフォルトの名無しさん:2013/05/13(月) 22:55:17.03
Javaでクラスとインタフェースを学んで
Cでどれほど危険なプログラムが組めるかを学んで
C++を学ぶのがいいと思うよ。
140デフォルトの名無しさん:2013/05/13(月) 23:00:19.79
Javaを先にやると、Cのありがたみが
わからずに
「なんで何のチェックも無しに落ちるんだ」
「コンパイルエラーメッセージが意味不明」
「おまじない大杉」
などとクソ認定される恐れが大。
141デフォルトの名無しさん:2013/05/13(月) 23:02:35.68
初学者は色々と不便な環境を経験しておいた方が
色々と気をつけるようになるのではないかと思う事はある
142デフォルトの名無しさん:2013/05/13(月) 23:28:19.74
むしろ特定分野を狙うわけでもないのに
CやC++を勉強するのが無駄。
「ワシらは紙に穴をあけて…」と史実を
語られるレベル
143デフォルトの名無しさん:2013/05/13(月) 23:41:26.11
ディップスイッチパチパチの人も
時々は思い出してあげて
144デフォルトの名無しさん:2013/05/13(月) 23:53:03.96
よしじゃあCの前にまずPL/Iだな
145デフォルトの名無しさん:2013/05/14(火) 07:55:35.04
PL/Mとどう違うの?
146デフォルトの名無しさん:2013/05/14(火) 08:53:40.29
PL/Mは整数しか扱えんぞ
147デフォルトの名無しさん:2013/05/14(火) 09:30:49.06
唐突なんだが、ヘッダファイルの拡張子はテンプレートクラスを含む時が.hppで、それ以外が.hだと
思ってたんだけど、先日C++のヘッダファイルは全部.hppにするのが業界標準だよって言われた。

業界が何を指してるのかイマイチよく分からなかったんだが(てか、サッパリ分からなかったんだがw)
実際どうなんですか?
148デフォルトの名無しさん:2013/05/14(火) 12:02:03.60
Boost信者はhppを好む。
業界標準化と言われると微妙だな。
149デフォルトの名無しさん:2013/05/14(火) 12:22:51.02
何処の業界かは知らないけど拡張子なんて飾りだよ
150デフォルトの名無しさん:2013/05/14(火) 12:29:56.11
業界標準かどうかは知らないけど
Cコンパイラでコンパイルすることを(実際にできるできないにかかわらず)全く考慮してないならhppにする
また拡張子だけ見て強調や補間のモードを変更するエディタとかあるからhppにしといたほうが便利なときもある
151デフォルトの名無しさん:2013/05/14(火) 19:44:39.78
.hppでも.hでもいいから混在はやめてほしい。
業界標準だよと言われたら「お前の中ではな」
と思っておけばいい。
152デフォルトの名無しさん:2013/05/15(水) 12:29:19.47
派生クラスを複数生成したら
基底クラスも複数生成されるの?
基底クラスは1つ?
153デフォルトの名無しさん:2013/05/15(水) 12:37:12.77
はい
154デフォルトの名無しさん:2013/05/15(水) 12:59:43.87
いやどっちだよw
155デフォルトの名無しさん:2013/05/15(水) 13:09:10.74
もう少し明確にしてくれ。クラスの定義の話かインスタンスの話か?
156デフォルトの名無しさん:2013/05/15(水) 15:56:34.22
クラスの定義が複数生成されるとか嫌過ぎるわ…構文上の規約の問題とメモリの割り当ての理解がごっちゃになってる
hppってヘッダーにcppのコード突っ込んでリンカ解決やら楽しようぜ

h+cpp だから hpp だカッコいいだろう!!
みたいなイメージだ
157デフォルトの名無しさん:2013/05/15(水) 17:58:27.63
>>152
クラスのインスタンスを人間にたとえると
基底クラスの顔と派生クラスの顔
つまり2つの顔を持つ人間が1人生まれる
158デフォルトの名無しさん:2013/05/15(水) 17:58:48.01
「クラスを生成」はたいていの場合、
発言者は「クラスのインスタンスを
生成」のつもりであることが多い。なので

派生クラスのインスタンスを複数生成したら
それぞれに基底クラスのインスタンスが含まれる
159デフォルトの名無しさん:2013/05/15(水) 18:04:20.08
自己顕示欲マンセー
160デフォルトの名無しさん:2013/05/15(水) 18:17:38.64
複数の翻訳単位で派生クラス(テンプレートクラス)がインスタンスされた場合、
それぞれの翻訳単位で基底クラスが暗黙にインスタンス化される。
だがODRで一つと見なされるのでインスタンスの数を意識する必要はない。
コンパイル時間を短縮したいならexternでインスタンス化を抑制する
161デフォルトの名無しさん:2013/05/15(水) 18:44:10.49
基底クラスだけテンプレートを
インスタンス化できる?
派生クラスのインスタンス化に
必要不可欠のような
162デフォルトの名無しさん:2013/05/15(水) 19:49:38.87
基本クラスだけ?
逆?
163デフォルトの名無しさん:2013/05/15(水) 20:00:26.86
最近hoge厨が静かになって
平穏がおとずれたようだ
164デフォルトの名無しさん:2013/05/15(水) 20:03:42.01
自治スレか宿題スレに篭っているんでしょう平和が続くといいですね
165デフォルトの名無しさん:2013/05/15(水) 20:10:12.64
hoge使いはUnixerに多い。
つまりUnixerは底辺。
msは底辺以下、
coolなguyはMacを選ぶね
166デフォルトの名無しさん:2013/05/15(水) 20:28:03.36
Macは負け組
167デフォルトの名無しさん:2013/05/15(水) 20:30:00.84
foo bar は?
168デフォルトの名無しさん:2013/05/15(水) 20:33:57.17
Linux:キチガイ、変人が使う
MS:馬鹿が使う
林檎:自称かっこいい奴が使う
林檎は芸術家jobsの芸術作品だからな
169デフォルトの名無しさん:2013/05/15(水) 20:35:44.05
どちらかというとマカーに基地外が多い
何でかわからないけどマカーの基地外率は異常
170デフォルトの名無しさん:2013/05/15(水) 20:42:27.85
継承関係が A -> AA -> AAA の時にAAAのインスタンスを
生成するとAAとAのインスタンスも(見えないけど)生成される。
じゃないとスーパークラスのメソッドを呼び出せない。
171デフォルトの名無しさん:2013/05/15(水) 20:42:53.09
>>169
馬鹿が自称かっこいい奴を見てキチガイいって思うのは
馬鹿だからしょうがない
172デフォルトの名無しさん:2013/05/15(水) 20:47:16.94
>>152は多重継承の話をしてるんじゃないの?
173デフォルトの名無しさん:2013/05/15(水) 20:55:25.05
Aを継承したB
Aを継承したC
BとCを継承したD

Dのインスタンス中に居るAのインスタンスは単一なのか
 BにまつわるAのインスタンスと
 CにまつわるAのインスタンスとの都合2つに分かれるのか

こういう話?
174デフォルトの名無しさん:2013/05/15(水) 20:56:46.04
152の味噌汁
175152:2013/05/15(水) 21:19:55.15
インスタンスを生成でお願いします
176デフォルトの名無しさん:2013/05/15(水) 22:54:57.47
>>175
派生クラスのインスタンスの数に応じて基底クラスのインスタンスも複数生成される

struct X { int a; };
struct Y : X {};
Y y1;
Y y2;

のとき y1.a と y2.a は別物
177デフォルトの名無しさん:2013/05/15(水) 23:02:17.63
つまんねっ
178152:2013/05/15(水) 23:52:15.81
すいません書き直します

基底クラスAがあり、そのAの派生クラスBがあり
Bのインスタンスを何度も生成した場合
B1とB2の基底クラスインスタンスAは
A単体なのかA1、A2と増えていくのかどちらですか?
179片山博文MZパンク ◆0lBZNi.Q7evd :2013/05/16(木) 00:00:10.27
>>178 後者
180デフォルトの名無しさん:2013/05/16(木) 00:17:06.64
B1とB2はいったいどこから出てきたんだ
基底クラスインスタンスなんてわけわからん語を作るな
コードを書いて説明しろ
181デフォルトの名無しさん:2013/05/16(木) 00:18:53.86
こういうのが説明力がないっていうんだよな
会社で煙たがられる存在
182デフォルトの名無しさん:2013/05/16(木) 00:20:36.18
基底クラスインスタンスのメンバ変数を書き換えるようなメソッドを用意して実験したらいいんじゃないかな(エスパー)
183デフォルトの名無しさん:2013/05/16(木) 01:01:07.62
インスタンスの数=newした数(Java風)
だから顔の数じゃなくてボディの数で数えろと
184デフォルトの名無しさん:2013/05/16(木) 01:46:42.40
>>180
何度も生成するから
1、2、3、4、5…
と増えていくんだよ
185デフォルトの名無しさん:2013/05/16(木) 07:19:43.02
単体なのか増えていくのか、
質問するより、自分でコード書いた方が早いだろ
186デフォルトの名無しさん:2013/05/16(木) 09:52:49.32
こういうのは入門書でよくやる理解しやすいたとえ話でやるより
コード貼ってどうこうしたほうが…そもそも自作自演っぽく思えてきたけど
187デフォルトの名無しさん:2013/05/16(木) 11:35:44.57
たしかにQZはC++の知識がないから
QZの自演ってことはありうる
188デフォルトの名無しさん:2013/05/16(木) 12:25:09.68
>>178
結局何を聞きたいのかさっぱりだ
189デフォルトの名無しさん:2013/05/16(木) 12:34:47.33
派生を生成するために
基底のインスタンスも増えていったらメモリの無駄じゃないの?
190デフォルトの名無しさん:2013/05/16(木) 12:38:06.02
>>189
だったら派生せずに新しくクラスを作ればいいじゃん
191デフォルトの名無しさん:2013/05/16(木) 12:38:42.93
>>189
派生のインスタンスの中に基底のインスタンスに相当する部分が含まれているのでは?
192デフォルトの名無しさん:2013/05/16(木) 12:40:31.09
継承を一体何だと思ってんだか
193デフォルトの名無しさん:2013/05/16(木) 12:46:03.41
派生を複数生成しても
基底は1つになる方法はない?
194デフォルトの名無しさん:2013/05/16(木) 12:48:54.89
なんか意味を正しく理解してないのがいそうだからこの流れでは『インスタンス』禁止にしとけ
クラスTのインスタンス -> T型の変数 と言い換えとけ
195デフォルトの名無しさん:2013/05/16(木) 13:19:11.46
>>193
継承を使わずに基底にあたる型をshared_ptrとかでメンバに持つクラスにしろ
196デフォルトの名無しさん:2013/05/16(木) 13:25:38.02
>>193
virtual継承
197デフォルトの名無しさん:2013/05/16(木) 13:38:48.28
>>193
is-aとhas-aの違いはわかる?
198デフォルトの名無しさん:2013/05/16(木) 15:53:31.31
学生は人である
学生を増やしても人のインスタンスが一つになっている状況とは如何に
あれか、学生数の水増しかw
199デフォルトの名無しさん:2013/05/16(木) 16:17:39.82
>>193の中では継承はどういうイメージになってるんだ?
200デフォルトの名無しさん:2013/05/16(木) 17:01:59.23
>>193
派生を使わない。
基本クラスに持たせようとしていた情報は
グローバル変数で持つ。
派生クラスに持たせようとしていた情報は単独の
クラスにして
みんなでグローバル変数をみる
201デフォルトの名無しさん:2013/05/16(木) 17:04:43.82
>>193
コンポジションを使うとか
どうしても継承が必要なのか、継承を使わなくてもいいのかはよく検討すべき
202デフォルトの名無しさん:2013/05/16(木) 18:30:51.59
もうAとBとB1とB2を全部
グローバル変数にしようぜ
203デフォルトの名無しさん:2013/05/17(金) 01:01:04.77
1.const char* a //*aがconst
2.char* const b //bがconst
3.char const* c //1.と同じ?2.と同じ?

4.const char& d //dがconst?
5.char& const e //どこがconst?
6.char const& f //ドカーン!

constが分からんとですorz
204デフォルトの名無しさん:2013/05/17(金) 01:02:41.45
>>203
何故自分で試そうとしないのですか?
205デフォルトの名無しさん:2013/05/17(金) 01:11:23.80
>>203
これ見てわからなかったらもう来るなよミジンコ
http://ideone.com/ViHQJy
206デフォルトの名無しさん:2013/05/17(金) 01:41:05.07
くぎゅうぅぅ
207デフォルトの名無しさん:2013/05/17(金) 01:47:27.57
>>203
とりあえずconstは(変数ではなく)型に付くと覚えましょう

1.const char* a //const char型へのポインタ(型)(の変数)a
2.char* const b //char型へのconstポインタ(型)(の変数)b
3.char const* c //1.と同じ

4.const char& d //const char型への参照(型)(の変数)d (※)
 (※この形を『const参照』と呼びますがconst型への参照(型)の意味であって、型へのconst参照(型)の意味ではありません)
5.char& const e //エラー
6.char const& f //4.と同じ
208デフォルトの名無しさん:2013/05/17(金) 02:03:39.74
constは左隣につく、左側がない場合のみ、例外として右側につく、と覚えてる
209KUSO KOTE:2013/05/17(金) 02:15:00.69
昔「エキスパートCプログラミング 知られざるCの深層」
というおUNKOな本があって、
型宣言の説明だけは素晴らしかった。

その読解法によると
const char* a
 a is a pointer to "const char"
char* const b
 b is a const pointer to char
char const* c
 c is a pointer to const char (=a)
const char& d
 d is a reference to "const char"
char& const e
 e is a const reference to char→エラー
char const& f
 f is a reference to const char
210デフォルトの名無しさん:2013/05/17(金) 07:20:10.83
>>203
1, 4 は例外的だし意味もあいまいだから「使わない」
211デフォルトの名無しさん:2013/05/17(金) 07:40:06.86
>>210
それぞれ3と6を使うってこと? それならむしろ自分は逆だなあ。
212デフォルトの名無しさん:2013/05/17(金) 08:52:28.92
char const* a は const *a だから、*a がコンスト
char* const a は const a だから、a がコンスト
って考えると、3, 6は確かに自然な気がする

でも、char const& a は const &a だから、&aがコンストかっていうと
何それイミフw
って考えると、全然自然じゃない気もする。
213デフォルトの名無しさん:2013/05/17(金) 09:12:40.30
constは
・左側で一番近い
・型に付いて
修飾するというのが基本ルール
>>203の1,4はその基本ルールでは解釈できず>>208,210のいうように例外的に解釈しなければならないから不自然

>>212はconstが右側の、型ではない*aやaや&aに付いてる、という解釈の時点で最初から二重に間違ってる
214デフォルトの名無しさん:2013/05/17(金) 10:15:43.42
なるほどなー。

自分は1,4を使う派だけど、constをどちらの目的で使うかによって、
型名とconstの位置が逆になるので、パッと見て分かりやすいかなー?と思っている。
215デフォルトの名無しさん:2013/05/17(金) 10:49:49.41
>>213
なるほど、てことは const の左側に「が」を補って
char const* は char が const
char* const は char* が const
char const& は char が const
char& const は char& が constはイミフだからエラー
って考えると自然?
216デフォルトの名無しさん:2013/05/17(金) 12:03:02.39
そんなかんじでいいんじゃない
217デフォルトの名無しさん:2013/05/17(金) 12:43:38.38
左側にconstは記憶域指定子(static,extern,...)付きの宣言とぱっと見同じ読み方で解釈できて
const初見の人でも受け入れやすい形だから便宜的に導入された記法なのかな

int a; // int
static int a; // なにかついてるけどint
extern int a; // なにかついてるけどint
const int a; // なにかついてるけどint
int const a; // なにかついてるけどconst、・・・?
218デフォルトの名無しさん:2013/05/17(金) 12:46:15.89
>・左側で一番近い
規格の該当個所はよ
219KUSO KOTE:2013/05/17(金) 15:03:07.06
>>217
記憶域指定子は別に左でなくても良いのだけれど
http://ideone.com/k9Lxqm
220KUSO KOTE:2013/05/17(金) 15:12:14.57
URL間違えたoops
http://ideone.com/PAlXVV
221デフォルトの名無しさん:2013/05/17(金) 15:19:59.33
http://msdn.microsoft.com/ja-jp/library/1b4az623.aspx
stringを取得する関数ってこれみたいに参照渡ししてることが多いけど、stringをreturnで返したら駄目なの?
222KUSO KOTE:2013/05/17(金) 15:31:43.27
>>221
昔は右辺値参照が無かったから
コピーのオーバーヘッドを避けるために
参照にしていたと思われる。
223デフォルトの名無しさん:2013/05/17(金) 15:47:36.06
やはりマイクロソフトの設計思想かな
マイクロソフトは昔から関数を
inに対してoutを与えるものでなく
「正否のステータスを返せるサブルーチン」
ととらえているところがある。
だから戻り値は参照渡しで受け取る
224デフォルトの名無しさん:2013/05/17(金) 15:50:21.95
>>221
C++の.NET拡張はスレ違い
225デフォルトの名無しさん:2013/05/17(金) 16:13:49.70
>>224
221はただの例示で本題はstd::stringだからな?
226デフォルトの名無しさん:2013/05/17(金) 16:22:45.99
C++の文字列はJavaみたいはimmutable
じゃないからねえ。
わざわざインスタンスを生成するより
使い回す方が自然。
227デフォルトの名無しさん:2013/05/17(金) 19:52:53.57
今回のconstもだけど、テンプレートやポインタ等の型を
コンパイラはどのように構文解析して型を決めるんだ?
228デフォルトの名無しさん:2013/05/17(金) 22:10:02.07
その状況で構文規則的にありえる構文候補を列挙してソースとマッチするものに絞り込んでいくんだがそういう話でなく?
229デフォルトの名無しさん:2013/05/17(金) 22:14:50.72
*で区切られると覚えれば
別に左とか右とかそんなのどうでもいいんだよ
230KUSO KOTE:2013/05/17(金) 22:20:16.28
>>227
1.明らかにシンボル名と思われる所を見つける
2-1.すぐ右に()があれば関数
2-2.すぐ右に[]があれば配列
2-3.すぐ左に&があれば参照
2-4.すぐ左に*または*constがあればポインターまたはconstなポインター
2-5.すぐ左に「型」または「型 const」または「const 型」があれば終わり
3.その 関数の戻り値/配列の要素/参照先/ポインターの差すものは…
→2-1に戻って解析を続ける

ただし途中に記憶指定子とか入るので適当にがんばる
231デフォルトの名無しさん:2013/05/17(金) 22:29:30.64
くそみそ
232デフォルトの名無しさん:2013/05/17(金) 22:58:32.42
"const"は型の前と後のどちらに置いたほうがよいですか
http://www.libjingu.jp/trans/bs_faq2-j.html#constplacement
233デフォルトの名無しさん:2013/05/17(金) 23:02:15.59
日本語でも英語でも修飾子や形容詞は名詞の前にあったほうが読みやすいってことか
234デフォルトの名無しさん:2013/05/18(土) 00:27:47.88
欧米人には>>209のC/C++表記だとすぐにそのように解釈できるのかな
同様にC/C++の型表記も自然な表記って感じるのか
俺的には、配列は int arr[10]じゃなく int[10] arrがいいだろって
初めのころは思っていたからな。
235デフォルトの名無しさん:2013/05/18(土) 00:38:49.32
Cの文法がint[] a でなくint a[]なのは
使う時の書き方に似せるという
方針だったはず。
だがC++で参照&が登場した際に一貫性を失った。
ハゲは臭いものにフタをするタイプだから
整合性を考えなくて困る。
236KUSO KOTE:2013/05/18(土) 01:15:59.31
>>235
宣言と使用の記述の統一ついては
ISO/IEC 9899:1990の時点で既に
 宣言 void (*pf)() = f;
 使用1 pf();
 使用2 (********pf)();
とか怪しかったような。
237デフォルトの名無しさん:2013/05/18(土) 01:31:31.65
そんなことよりC#でやろうぜ
文法キモイ言語はポイしなさいポイ
238デフォルトの名無しさん:2013/05/18(土) 08:04:30.10
規格の何番の何ページという話は
規格オタ隔離スレでも作ってそこでやれ
初心者スレなんだよここは
239デフォルトの名無しさん:2013/05/18(土) 09:20:03.56
>>238
いやそのりくつはおかしい
240デフォルトの名無しさん:2013/05/18(土) 10:14:01.38
有識者が初心者に正しい使用を教える
ってよりは、
俺こんなに規格読み込んでるゼーっていう、
自己顕示欲旺盛な人たち同士の会話で、
初心者置いてけぼりなふいんきが
感じられる。
241デフォルトの名無しさん:2013/05/18(土) 15:22:32.62
>>237
C#で済むプログラムしか作らないなら黙ってC#使えばいいんだよ
お前がこのスレに居ることが全くの無駄
242デフォルトの名無しさん:2013/05/18(土) 15:32:38.93
>C#で済む
この言い回しが勘違いも甚だしい。
「CはC#よりすごいんだ!」的な
自分の中で自分の価値を高めようと
必死なのがよくわかる。
243デフォルトの名無しさん:2013/05/19(日) 00:45:26.82
Cのが速いんだから当たり前
244デフォルトの名無しさん:2013/05/19(日) 00:52:59.09
.NET FrameworkのJITコンパイラの質がどんどん向上してスピードが上がってるんだが
セキュリティの更新だけだと思ってるのか?
245デフォルトの名無しさん:2013/05/19(日) 00:59:54.36
より低級な部分の処理には(ryですね、分かります
246デフォルトの名無しさん:2013/05/19(日) 01:14:04.19
そのうちアセンブラを追い越す性能になるかもなw
247デフォルトの名無しさん:2013/05/19(日) 01:17:53.99
>>246
アセンブラ直接弄ると、小数の丸め処理まで制御できるからな……
コンパイラがどこまで解釈できるかの勝負
248デフォルトの名無しさん:2013/05/19(日) 01:41:00.42
>>244
それでもC/C++に比べりゃゴミみたいなもんだよ
249デフォルトの名無しさん:2013/05/19(日) 02:06:25.95
書き手の技量次第でFAではあるが、平均的なプログラマを前提にすると
手書きアセンブラと今時のC/C++コンパイラってどっちが速いか微妙じゃね?
250デフォルトの名無しさん:2013/05/19(日) 02:11:20.47
アセンブラにしたって速度が要求されるコアな部分だけ使うのが
本来の使い方だからね。
251デフォルトの名無しさん:2013/05/19(日) 02:17:33.53
ぷっ
252デフォルトの名無しさん:2013/05/19(日) 05:05:15.33
速度って言うけどさあ
細かい動的メモリ確保が
壊滅的におそいじゃんC/C++は。
そういうのを自前でメモリ管理すると
圧倒的に速くはなるんだが
VM系のnewの代替としては限界がある。
253デフォルトの名無しさん:2013/05/19(日) 06:49:35.08
え?malloc freeやら new deleteがめちゃくちゃ遅いってこと?
そんな話聞いたことがないが
254デフォルトの名無しさん:2013/05/19(日) 06:49:49.29
>>252
そういうのは自分でなんとかするものだ
255デフォルトの名無しさん:2013/05/19(日) 07:39:02.23
>>253
mallocは明らかに遅いだろう
256デフォルトの名無しさん:2013/05/19(日) 07:44:57.58
なにと比べて?
257デフォルトの名無しさん:2013/05/19(日) 07:50:20.62
いや、普通の関数呼び出しとか
浮動小数点数演算とか
ポインターアクセスとか
自動変数のメモリ確保と比べて
258デフォルトの名無しさん:2013/05/19(日) 07:51:08.31
中でリニアサーチを始めてると聞いた
259デフォルトの名無しさん:2013/05/19(日) 07:52:19.07
当たり前だろう
ヒープを利用するのはそれだけのコストを払っても便利だからなのでは?
260デフォルトの名無しさん:2013/05/19(日) 07:53:22.13
>>258
二分木にして適切にサーチする実装くらいあるだろう
261デフォルトの名無しさん:2013/05/19(日) 07:53:54.40
>>259
多言語との比較の話を
Cのメモリ確保方法の話に
すり替えないでください
262デフォルトの名無しさん:2013/05/19(日) 07:55:33.29
他の言語だと早いのか?
263デフォルトの名無しさん:2013/05/19(日) 07:56:16.70
1秒間に100万回ループする所では
mallocの使用はためらわれるけど
Javaならまあ大きな問題はなかろう
264KUSO KOTE:2013/05/19(日) 08:03:58.39
さすがに100満開はかなり厳しいぞよ。
でも体感でJava/C#のnewはC++のnewより100倍は高速かな。
後でまとめて別スレッドでGCするんだから
解放時間入れてもスループットは高いだろう。
スループットだけは。
265デフォルトの名無しさん:2013/05/19(日) 08:06:31.49
でもOSのカーネルじゃ使い物にならないよね(プゲラ
266デフォルトの名無しさん:2013/05/19(日) 08:09:02.71
コンテキストスイッチしようとしたら
ゴミがゴミ整理しようとして
5000マイクロ秒 待たされちゃいました。てへ
267デフォルトの名無しさん:2013/05/19(日) 08:20:33.29
>>262
ガベコレ系の言語は
C/C++の自動変数の代わりに
newする設計なのでそれなりに速いよ

ただ適材適所というか、やっぱり
CPU演算メインな処理は
C系じゃなきゃね
268デフォルトの名無しさん:2013/05/19(日) 08:39:56.90
たしかに、すべての変数がnewで確保されるのだから
Cのように100ナノ秒ちかくかかっていたら使いものに
なってないっていう
269デフォルトの名無しさん:2013/05/19(日) 09:03:42.10
でもJava/C# は C/C++ に比べて何を省略したからスピードアップを図ることができたの?
GC があろうとなかろうとアロケーションという点では同じだとおもうんだけれど
270デフォルトの名無しさん:2013/05/19(日) 09:11:39.60
コンパイル時になんでもかんでもしようとしないからじゃね
271デフォルトの名無しさん:2013/05/19(日) 09:21:52.31
>>269
マイクロソフトのドキュメントには
「ガベコレ用スタックポインターをずらすだけなので高速です」
と書いてあったような。
つまり確保する領域の中に
「後でそれだけでガベコレできる情報」
を埋め込んでいることになる。詳細は不明
272デフォルトの名無しさん:2013/05/19(日) 09:26:03.10
273デフォルトの名無しさん:2013/05/19(日) 09:40:50.19
>new Byte[1024]
Cが速いという結果を得るための設定ですね?
しかもJava1.5って、Sunが.NETを参考に
GCを改良する前のやつ?
274デフォルトの名無しさん:2013/05/19(日) 09:54:40.89
>>252
.NET のメモリ確保は0埋めするから壊滅的に重いじゃねーか
275KUSO KOTE:2013/05/19(日) 10:16:56.51
>>274
実測して比較しようじゃないか
http://ideone.com/s6pjNN
276KUSO KOTE:2013/05/19(日) 10:23:30.46
すまん間違えた
microseconds→milliseconds
C#あんま速くなかったわ
277デフォルトの名無しさん:2013/05/19(日) 10:26:43.12
C#は配列確保がクソ重いからメモリプールしてるわ
278KUSO KOTE:2013/05/19(日) 10:28:11.15
ちなみに俺の環境では
 C++:150マイクロ秒
 C#:0.15マイクロ秒
279デフォルトの名無しさん:2013/05/19(日) 10:43:14.88
>>278
それ、 >>276 の間違いは直して出してるの?
280デフォルトの名無しさん:2013/05/19(日) 10:50:21.93
コンパイラによっては内部実装がdlmallocになって、
昔よりかは高速になったって聞いたけど
281KUSO KOTE:2013/05/19(日) 11:03:34.06
>>279
直してるつもりなんだけど
あんまりVC++2012が遅いので不安になってきた。。
できれば誰か他の人、試して ↓修正版
http://ideone.com/r56YkM
282デフォルトの名無しさん:2013/05/19(日) 11:06:57.53
そりゃそんな細かいメモリ確保したら遅いのは当たり前だわ
流石にそういうのは .NET に分があるのは間違いない
283デフォルトの名無しさん:2013/05/19(日) 11:15:58.40
つまりC++の細かいメモリ確保は
Java/C#より千倍遅いとふむふむ
284デフォルトの名無しさん:2013/05/19(日) 11:25:34.32
C++とC#でNが違うだろ>>281のソース
285デフォルトの名無しさん:2013/05/19(日) 11:26:54.20
C++でもアロケータ自作で乗り切れるが
そもそもそんな細かいnewを何度も行うケースは稀だから
意味の無い比較だな
286デフォルトの名無しさん:2013/05/19(日) 11:28:49.49
boost::poolをいろいろ使ってみるとか
種類があるから
287デフォルトの名無しさん:2013/05/19(日) 11:30:52.81
最適化はやってるんだよね?
確かVCはデバッグ用だといろんな情報を埋め込んでて遅くなったと思うけど
288デフォルトの名無しさん:2013/05/19(日) 11:33:49.10
>>284
平均する時に割ってるからいいじゃん
むしろ速すぎて100倍しないと
測れなかったんだろ(プ

>>287
最適化してなかったら死刑だなw
289デフォルトの名無しさん:2013/05/19(日) 11:40:00.45
ideoneは最適化しなかったような
290デフォルトの名無しさん:2013/05/19(日) 11:41:23.84
エクスプローラへのD&Dを試してみてるんだけど、何故か遅い
一回のドロップ操作完了までに、2〜3秒位掛かるんだけどこれ遅すぎだよな?
291デフォルトの名無しさん:2013/05/19(日) 11:41:59.66
>>282
このプログラムのような細かいメモリ確保に対してC++では不可能で.NETが可能な最適化とは?
292デフォルトの名無しさん:2013/05/19(日) 11:42:57.93
標準でミリ秒測定できるとはいい時代になったなー
GetTickCount()とか
gettimeofday()を使っていた頃が懐かしい

>>290
エロアニメの見すぎだろ
293デフォルトの名無しさん:2013/05/19(日) 11:43:19.23
>>291
最適化の問題ではなく、
そもそもデバッグ用のメモリアロケータは
バッファオーバーフロー検知や初期化漏れ検知のために
色々と小細工してる
294デフォルトの名無しさん:2013/05/19(日) 11:48:09.15
>>293
それがC++と.NETの違いだとは思わんのだが。
295デフォルトの名無しさん:2013/05/19(日) 11:49:37.20
>>293
じゃあ君のパソコンで比較して
結果貼りつけてみなよ
俺はメンドイからやらん

そもそもメモリ管理の仕組みが
根本から違うんだっての
最適化の問題じゃない
C++使いがガベコレにnewで勝てると
思ってたなんて新発見だわ
296デフォルトの名無しさん:2013/05/19(日) 11:49:50.38
>>294
小細工ってのは、特定の値で初期化することで、
初期化のコストが発生する
297デフォルトの名無しさん:2013/05/19(日) 11:51:54.14
>>269
フリーリストを手繰る処理を省略して、その分の処理をGC時にやってるようなもんだろう。
総計算量はイコールとは限らんが。
298デフォルトの名無しさん:2013/05/19(日) 11:53:20.57
>>295
勝ち負けで言ったら予測不能な
中断を受ける可能性が入るC#は
処理時間にシビアな世界では負けだな
役に立たない
299デフォルトの名無しさん:2013/05/19(日) 11:55:21.04
C/C++を使う理由は速度とかじゃない気がする。
.NETは十分速いもん

体感的には.NETが遅いので、C/C++を使うじゃないかとー
300デフォルトの名無しさん:2013/05/19(日) 11:55:29.30
C++のほうは個別のdelete終了ごとにアロケータの内部整合性を保たないといけないけど、
GCなら一括でいろいろできるね。
301デフォルトの名無しさん:2013/05/19(日) 11:56:19.37
>>299 .NETはPC上でしか動かないからな。組み込み.NETランタイムとか開発されれば別だが。
302デフォルトの名無しさん:2013/05/19(日) 11:58:53.09
速度だよ
似たようなアルゴリズムを .NET で実行と明らかに遅い
303デフォルトの名無しさん:2013/05/19(日) 12:04:51.96
標準、dlmalloc、tlsf、固定プールとか
いろいろ比較してみたいけど、なんか環境用意するのが面倒だな…
304デフォルトの名無しさん:2013/05/19(日) 12:08:21.19
>>302
比較コードはよ
305デフォルトの名無しさん:2013/05/19(日) 13:00:24.45
あいかわらず無意味な比較してるなあ
.NETのコア部分はC++で書かれてるのに
306デフォルトの名無しさん:2013/05/19(日) 13:06:32.79
何かが成功するかタイムアウトするまでループって処理で
for (int i = 0; i < 5000; i += s){
 nanika = suru();
 if (nanika == seikou) break;
 sleep(s);
}
みたいのが繰り返し出てくるんだけど、何か上手い書き方ないですか?

optional r = seikou_or_timeout(5000, [](){ return optional(...); });
こんな感じで書けたら素敵なんですが・・・・・・
307デフォルトの名無しさん:2013/05/19(日) 13:08:47.13
WaitForSingleObjectで別スレッドで動かすとか
308デフォルトの名無しさん:2013/05/19(日) 13:09:50.63
そこまで書けるのなら書けば良いじゃん
309デフォルトの名無しさん:2013/05/19(日) 13:10:13.45
>>305
>>253の疑問を晴らすには
そんなにおかしな比較とは思えんが、
いつかの空ループベンチよりはマシだ

>.NETのコア部分はC++で書かれてるのに
惨めwww
310269 ◆QZaw55cn4c :2013/05/19(日) 13:12:31.15
>>297
>総計算量
アロケーションからリリース(GC込みこみ)までトータルでみてどっちのほうが速いかというのが気になります。
C/C++ の場合は cmalloc() させるとしても、それでも C/C++ の方が速いと、どーしても思うのですが
311デフォルトの名無しさん:2013/05/19(日) 13:14:51.55
>>306
win32api ならイベントオブジェクトを好んでいるんですけれども‥‥posix 系はどうしているのだろう?
312デフォルトの名無しさん:2013/05/19(日) 13:22:24.52
>>308
ラムダ式が何を返すにしろとにかくoptional的な何かに突っ込んで返すってとこがどう書けばいいのか
よく分からないのと、もしかしたらループ以外に何か上手い方法か、そういうライブラリが既にあったり
するのかな?という期待も込めて・・・・・・
313デフォルトの名無しさん:2013/05/19(日) 13:23:08.79
>>307 >>311
イベント、ちょっと調べてきます。
314290:2013/05/19(日) 13:37:52.62
OLE D&D動作の確認だから、ドロップしたファイルのサイズは1kb程度
これだけで、2〜3秒はやっぱり遅い(Windows XP)。

んで、他のOSで(Windows7)確認してみたら一瞬、OS依存か
315デフォルトの名無しさん:2013/05/19(日) 14:06:21.42
>>311
POSIXには条件変数というクソな同期の仕組みがある。
そのクソ仕様はそのままC++11に取り込まれたけどな。
316デフォルトの名無しさん:2013/05/19(日) 14:37:12.62
>>310
>>281のC#はGCを含んでるだろ
317規制外板にてレス代行依頼中:2013/05/19(日) 15:13:13.94
すいません。
dup2の動きについて教えてください。
dup2(oldfd,newfd);
でoldfdとnewfdが同じ値の場合、dup2() は何もせず、newfd を返す。
というのが正しい処理だと思います。
そこで質問なのですが、昔の環境だと、
この処理はどのようになっていたのでしょうか?
http://www.freebsd.org/doc/ja/books/design-44bsd/book.html
に、(もし、指定された番号の記述子が使用中の場合、 dup2 は、まずその記述子を閉じたのち、 再割り当てします)。
とありますが、
昔の環境だと、dup2(oldfd,newfd)で同じファイルディスクリプタを
指定した場合、どのように動作していたのでしょうか?
318デフォルトの名無しさん:2013/05/19(日) 15:38:02.15
>同じ値の場合、dup2() は何もせず、newfd を返す。
>というのが正しい処理だと思います

その根拠は?
319規制外板にてレス代行依頼中:2013/05/19(日) 15:51:35.67
>>318
manに書いてあったためです。
http://linuxjm.sourceforge.jp/html/LDP_man-pages/man2/dup.2.html
http://www.jp.freebsd.org/cgi/mroff.cgi?sect=2&subdir=man&lc=1&cmd=&dir=jpman-7.3.2/man&man=dup2
では逆に教えてください。
oldfdが有効である。
dup2の引数のoldfdとnewfdが同じ値である。
この場合に、dup2の戻り値がoldfdと違う場合は、どのような条件が
考えられるのでしょうか?
320デフォルトの名無しさん:2013/05/19(日) 16:01:03.13
>>319
そのLinuxの方はエラーが無い限りoldを
返すと書いてあるので、エラーが起きたかバグがあるか
BSDの方はエラーがある場合は同様だけれど
エラーが無い場合について言及されていないので
何が返っても文句は言えない

それ以上のことはリンク先のISO/IEC 9945-1:1990
とやらを読まないとなんとも
321デフォルトの名無しさん:2013/05/19(日) 18:17:05.12
>>306
C++11ならasyncとfuture::wait_for使うところかな
322デフォルトの名無しさん:2013/05/19(日) 18:30:11.24
中断が必要なものにfutureねぇ。
メイン側に待つ以外のやることもないし。
ループ構造なんだから、ループ開始前に
取得した
時刻からの経過時間に閾値を設けて
タイムアウトさせる所じゃないの?
323デフォルトの名無しさん:2013/05/19(日) 23:10:03.14
>>315
条件変数ってcondition variableのこと?
それならwin apiにもあったような
324デフォルトの名無しさん:2013/05/19(日) 23:32:23.75
for ( auto i = 0; i < 3; i++ )

const int N = 10 * 1000;
for ( auto i = 0; i < N; i++ )
これらの場合の、iの型の推論はどう行われるの
上のiは0以上3未満だからunsigned
下のiはconst int Nとの比較するからint
って感じ?
325デフォルトの名無しさん:2013/05/19(日) 23:36:31.46
0はintなのでintです
終了
326デフォルトの名無しさん:2013/05/20(月) 03:08:47.68
autoで宣言する意味はないぞ。
327デフォルトの名無しさん:2013/05/20(月) 03:20:55.82
ゼロオーバーヘッドさん現る
328デフォルトの名無しさん:2013/05/20(月) 07:21:26.05
数値リテラルは型が分かりにくいのでautoにしない方がいい
329デフォルトの名無しさん:2013/05/20(月) 11:08:50.04
イテレータはautoが有効活用される場面の1つだし、
>324くらいならautoでもいいんじゃね? と思ったりする
330デフォルトの名無しさん:2013/05/20(月) 11:15:54.75
http://www32.ocn.ne.jp/~ons/text/CPP0xFAQ.html.ja#auto

こういう例はautoで書いた方がいいだろう
331デフォルトの名無しさん:2013/05/20(月) 18:39:16.79
サイズを指定するような定数や
ループインデックスに厳密な型の
意識が必要か?
むしろautoでお茶を濁したいところ。
実数だけ区別ついてれば構わん。
332デフォルトの名無しさん:2013/05/20(月) 18:49:03.43
>>324のNがintじゃなかったら型の不一致でバグのもとだ
autoよりもdecltype(N)のほうがいいだろう
333デフォルトの名無しさん:2013/05/21(火) 01:09:20.63
autoなんてゆとり機能使うの止めて
334デフォルトの名無しさん:2013/05/21(火) 01:26:57.88
>>333
じゃあ>>330みたいなのをautoなしで書いてみてよ
335デフォルトの名無しさん:2013/05/21(火) 01:38:22.92
プログラムなんてゆとり機能を使わずに
紙と鉛筆で何でも処理すべきだな
336デフォルトの名無しさん:2013/05/21(火) 06:38:06.80
IT屋はみんなしねばいい
お前らがシステム構築して作業効率あげるから
ノルマが増えたり仕事を追われる人がたくさん出てくる
社会を破壊してるクズという自覚をもて
337デフォルトの名無しさん:2013/05/21(火) 07:25:52.21
出たよ逆恨み
338デフォルトの名無しさん:2013/05/21(火) 07:29:31.14
事実だな
うちも馬鹿が自慢のツール()作るのが生きがいにしてて
仕事を自動化するからノルマが増えてクソだるい
一度やるとツール使えない現場でも同じ仕事量もとめられんだよカスが
339デフォルトの名無しさん:2013/05/21(火) 07:44:34.90
ざまあ
340デフォルトの名無しさん:2013/05/21(火) 15:07:06.00
事実だな
馬鹿どもが平日毎日会社いくから俺まd

まあ誰も何もしないで他の会社や国だけ効率あがってったら
最終的に全員仕事追われるとは思うがな
341デフォルトの名無しさん:2013/05/21(火) 21:12:51.25
visualc++ 2010 express でSendMessage使いたいんだけど
spy++がないからどういうメッセージか調べられないけど
どうすればいいかな?
342片山博文MZパンク ◆0lBZNi.Q7evd :2013/05/21(火) 21:14:51.06
>>341
winspector spy
spyguru
343デフォルトの名無しさん:2013/05/21(火) 21:18:12.48
>>341
>spy++がないからどういうメッセージか調べられないけど

まず、何をしたいのかよくわからない
344デフォルトの名無しさん:2013/05/21(火) 21:37:54.75
>>341
Professional版買うのがいいと思うよ
無償版のC++でGUIアプリとか無理ゲー
345デフォルトの名無しさん:2013/05/21(火) 21:40:02.19
インターフェイスなんか♯でいいだろ
346デフォルトの名無しさん:2013/05/21(火) 22:40:29.69
VS2010でC++は確かプラットフォームSDK入れないと
ネイティブコンパイルできないんじゃなかったっけ。
347デフォルトの名無しさん:2013/05/21(火) 22:41:39.68
ちなみにVSでProが必要なのは仕事でチーム開発する人とか
だけだと思うよ。基本機能はExpressで全部そろってる。
SDKとか追加で入れる手間はあるけど無料だし。
348デフォルトの名無しさん:2013/05/21(火) 23:00:36.68
>>342-344 VC6ではWM_〜をそのままコピペで使えたけど実力不足で
2010でSendMessageは難しそうです。レスありがとうございました。
349デフォルトの名無しさん:2013/05/21(火) 23:42:22.88
>>347
仕事でもVSS使ってるとこなんてごく少数だろ。
それよりもMFC/ATLが必要でPro買ってるのがほとんどじゃねーか?
350デフォルトの名無しさん:2013/05/22(水) 00:06:53.16
TFSは2012でExpressが出たでー
351デフォルトの名無しさん:2013/05/22(水) 00:22:58.84
visualassistがないとコーディング時のストレスがやばいからpro買ってる
352デフォルトの名無しさん:2013/05/22(水) 00:47:20.01
>>349
Proの評価版を入れてspy++を使えば良いんじゃ
評価版のspy++をexpressにコピペすればspy++が使えるんじゃないのか
評価期間終了したらコピペspy++を消せば良い
353デフォルトの名無しさん:2013/05/22(水) 01:11:36.21
...アンカー間違えてる,orz
>>352>>341
354デフォルトの名無しさん:2013/05/22(水) 03:12:57.95
そもそもSendMessageするのに
なんでSpy++ツールが必要なのかふしぎ
355KUSO KOTE:2013/05/22(水) 03:26:33.98
>>346
Visual C++ 2010 ExpressでSDKが必要になるのは
64ビットコンパイルする時。
356デフォルトの名無しさん:2013/05/23(木) 18:56:02.07
  / | | |     |i :ili、   l  |  |      ヽ ヽ!          /  ;イ
. /  | }|   ヽ\,__ili_i、   l   |  l     ハ    ┼   | ̄|  /   //
_,. イ! |  |      「 il|ヘ  |   |        !   |二|  | ̄|  レ/ / /
; i|l|i|リ        ,;iii yz ,z, |  |   l |     |  .|_|  | ̄|  レ  /
≠y、li|li|i      ″ '´ rぅxヾ寸、 ll   ! l      |   ┼ ノ  」     ./
气 `  ゙r;    ;  、、 ゝ‐′リii小从  |「`ヽ ヘ.{   _ク_  ヽ/    /
:ツ / 〃    {   \`‐=彡'″{^Yl}   | '.     `  |__|__| 二|二   /
=彡 ''"     丶         「゙弋ー、l  i      .|__|__| _|_  /  /
                     | 、 \ 、 |     / | | ヽ  |    /  ィ
         n  r        !|l  l ;;l :!        人    /イ//
           _,           | ||  l | | |       /  \    /
.     , /⌒ー'⌒ヽ.〈       ! l{  ' Vl |      ノ     \  /イ
    / /「「「「「「「「「「「い     jll{   Yj|      __|_ ヽヽ   ./ ,.イ
\ ll /!i|i|i|i|i|i|i|i|i|i|i|i|} |i     /ノ   ,;i }`  、      | ー     /,、-'´/
  `ヽ{ レ'´  `く  ヽl| |i   /     ″′   ヽ     .| ヽー      /
     ヽ         ノ ′,;ii/        /            |       /
     ト- ==== ''" ,,;iill/       /       }       |      /
.      ノ        /iilil{        /       {      |      ``‐-、._
≧== 彡l||llx _ イ ∧         /     ,勿 ヽ     .|      _,、-‐'"
   ̄`xl|i彡'´    / ハ      〈    彡'´  ノ    | | | |    \
                                | | | |      \
357デフォルトの名無しさん:2013/05/23(木) 22:22:51.29
>>352
お巡りさんこいつです。
358デフォルトの名無しさん:2013/05/27(月) 14:32:46.37
iniファイル作成時にコメントアウト文を挿入したいのですがどの関数を使えばいいですか?
WritePrivateProfileStringで代用しようとしましたがうまくいきません.
359デフォルトの名無しさん:2013/05/27(月) 18:44:56.35
>>358
fprintf
360デフォルトの名無しさん:2013/05/27(月) 19:12:16.65
APIの範囲じゃ無理
361デフォルトの名無しさん:2013/05/27(月) 19:41:25.25
内部設計書って本当に必要なのか?
インターフェイスや要件を文書できっちり決めなきゃならんのはわかるんだが
メソッドの中の処理を逐一日本語で書かされるのが納得いかない
こんな手間かけるならコード直接書いたほうが早いし見やすいじゃん
362デフォルトの名無しさん:2013/05/27(月) 20:08:13.26
>>361
まず君の会社の「ナイーヴ設計書」とやらが
他の会社の内部設計書と同じだと思わない方がいい。
一般には利用者から見えないプログラム内部構造や
使用するフレームワークを指す。

フローチャート相当の記述はアルゴリズムが
クリティカルなプログラムだけに限定したい
ってことには同意。
363デフォルトの名無しさん:2013/05/27(月) 20:12:33.99
>>361
それはドカタに作業させるのに必要なことだから
ドカタは対人間インターフェースを有する人型機械
その機械は逐一指示を受けて作業する作られている
364デフォルトの名無しさん:2013/05/27(月) 20:38:23.40
1.boost::bind(GetWindow, NULL, GW_PARENT); //コンパイルエラー
2.boost::bind<HWND>(GetWindow, NULL, GW_PARENT); //問題なし

<HWND>が必要な時とナシでいい時があるんだけど、その違いが全然分からない。
なんとなくstdcallな関数の時は<HWND>が必要で、普通の関数の時は要らない
っぽいって漠然とおぼろげに気がしたりしなかったりしてるんだけど・・・・・・・・・・
365KUSO KOTE:2013/05/27(月) 20:45:02.75
>>364
テンプレートにVisual C++の__stdcallは鬼門。
void (*__stdcall)(....) と
void (*)(....) は互換性がないから原則無理。
ラムダで囲っておけばたぶんok。
366KUSO KOTE:2013/05/27(月) 21:06:37.16
細かいところで間違い訂正。
 誤 result_type (* __stdcall pf)(....)
 正 result_type (__stdcall * pf)(....)
型は__stdcall pointer to functionじゃなくて
pointer to __stdcall functionだからね。
367デフォルトの名無しさん:2013/05/27(月) 21:17:53.46
>>365
>ラムダで囲っておけばたぶんok
って具体的にどうするの?

>>366
__stdcall pointer to functionってあるの?
368デフォルトの名無しさん:2013/05/27(月) 21:25:55.11
ラムダ式やboost::bindで作った関数オブジェクト?を引数で受けたい時ってどうやるんだろ?
boost::bindとかboost::_bi::bind_t<クソ長い文字列がズラズラと>になるんだが、一体どうしたらorz
369デフォルトの名無しさん:2013/05/27(月) 21:27:43.42
>>367
[](HWND hWnd, UINT uCmd){return GetWindow(hWnd, uCmd);}
こんな感じ?
違ってたらごめん
370デフォルトの名無しさん:2013/05/27(月) 21:39:54.69
>>368
template<typename T> R func(T fun)
で何か不満?
371デフォルトの名無しさん:2013/05/27(月) 21:42:43.99
>>370
OH!まったく思いつかなかったZ!
372デフォルトの名無しさん:2013/05/27(月) 21:56:33.98
Tが全角は不満だな
いくら規格で許されるとしても

template<typename KUSO長い文字列>
void test(KUSO長い文字列 fun){}

コンパイル通った…
373デフォルトの名無しさん:2013/05/27(月) 22:01:24.55
UTF-8は便利だよな
MS932にしないとエラーが出る環境もあるけど
374デフォルトの名無しさん:2013/05/27(月) 23:16:36.31
Windowsで他のアプリの通信状況をみたいと思っています。
winpcapを使うのが簡単かと思うのですが、心の隅に、Windowsの
標準機能でパケットをモニタできる機能があったような記憶が
あります。ご存知の方いませんでしょうか?
375デフォルトの名無しさん:2013/05/28(火) 15:47:25.37
>>374
Microsoft謹製のパケットキャプチャもあるけど、WireSharkに慣れた方がいいと思う
376デフォルトの名無しさん:2013/05/28(火) 20:45:08.48
Wiresharkは結局WinPcapを使ってるに過ぎないし、プログラムするにしても
C/C++じゃなくてLuaしか使えんが?
Windowsの標準機能だけでやるならRawSocketをPromiscuousモードで使えばいい。
377デフォルトの名無しさん:2013/05/28(火) 20:48:05.65
>>374
>アプリの通信状況をみたい
だけだろ?
頭おかしいの?
378デフォルトの名無しさん:2013/05/28(火) 21:04:31.64
>>377
つまり、C/C++とは関係なく、Windowsで他のアプリの通信状況を見れる良いアプリない?って尋ねているってことか!
それをC/C++で作りたいけど、どうすれば良いですかって聞いているのではないのか?
379デフォルトの名無しさん:2013/05/28(火) 21:07:02.07
「通信状況をみたい」というのが単に人が目で見れればいいって意味なら
そもそもスレチなわけだが。
だいたい、だとしたらwinpcap使ってどうやって見るんだよw
380デフォルトの名無しさん:2013/05/28(火) 22:49:21.68
>>378>>379
なるほどそうなのか
381デフォルトの名無しさん:2013/05/29(水) 08:41:23.23
C使いはアスペが多いな
382デフォルトの名無しさん:2013/05/29(水) 18:26:22.70
>>359-360
混ぜるのも面倒なので書き込み時はファイルポインタ使うことにします
ありがとうございました
383デフォルトの名無しさん:2013/05/29(水) 18:33:35.73
>>381
君がC使いのいうことが理解できず、君のいうことをC使いが理解できない
というのならば、C使いという集団がアスペでコミュ障の集団と考えるより、
君単体が無能でコミュ障だと考えたほうが合理的ではないだろうか。
384デフォルトの名無しさん:2013/05/29(水) 19:06:28.03
>>383
アンチC使いはそうやって
アスペのフリをするんですね
385デフォルトの名無しさん:2013/05/29(水) 19:10:42.52
このスレに張り付いてC/C++のネガキャンやってるキチガイには何を言っても無駄
386デフォルトの名無しさん:2013/05/30(木) 01:54:12.79
これだけアスペが多いと、顧客要件をヒアリングして
システムを提案することなど最早不可能に近い。
387デフォルトの名無しさん:2013/05/30(木) 06:02:47.04
そういう面倒な仕事は上司をこき使ってやらせるから
楽しいプログラミングだけやればよい
388デフォルトの名無しさん:2013/05/30(木) 11:27:53.03
                      クルッ
.                     ハ,,ハ    ミ  _ ドスッ
.                    ( ゚ω゚ )彡―─┴┴─―
    *  *  *  \       /   つ  お断りし /      ハ,,ハ
  *          *   \   〜′ /´ └―─┬/       ( ゚ω゚ ) お断りします
 *    ハ,,ハ     *   \   ∪ ∪      /        /    \
 *   ( ゚ω゚ )    *     .\         /       ((⊂  )   ノ\つ))
 * お断りします  *     . \∧∧∧∧/             (_⌒ヽ
  *           *       <      お >            ヽ ヘ }
    *  *  *        < の し 断 >       ε≡Ξ ノノ `J
────────────< 予 ま わ >────────────
.        オコトワリ      < 感 す り >
  ハ,,ハ    ハ,,ハ     .ハ,,ハ  <. !!      >     ハ,,ハ
. .( ゚ω゚ ) . ( ゚ω゚ )  ( ゚ω゚ )  /∨∨∨∨\   ( ゚ω゚ )<お断り    .ハ,,ハ
   │      │      │   /          .\         します>( ゚ω゚ )
,(\│/)(\│/)(\│ /.              \
               /   ♪お断りします♪  \
              / ハ,,ハ   ハ,,ハ   .ハ,,ハ   ハ,,ハ\
.              ( ゚ω゚ ) ( ゚ω゚ ) ( ゚ω゚ ) ( ゚ω゚ )
389デフォルトの名無しさん:2013/05/30(木) 12:28:21.36
上司がまるでタレントのマネージャのように
甲斐甲斐しくいろんな雑用するんだよ
それなのに上司のほうが給料安いんだよ
390デフォルトの名無しさん:2013/05/30(木) 12:45:07.29
         ∧,,∧
         <ヽ`∀´>  < 生粋の日本人ですか?
         /   ヽ
        | |   | |
        | |   | |
        ||   ||
        し|  i |J=二フ
          .|  ||    ;
         | ノ ノ    ・
         .| .| (     ;
         / |\.\
391デフォルトの名無しさん:2013/05/30(木) 14:46:20.07
>>389
ふかたちをかためるかめのどりょくをしろ
392デフォルトの名無しさん:2013/05/30(木) 20:52:25.66
>>389
管理職は社畜だからな。
無給でも働け。
393デフォルトの名無しさん:2013/05/30(木) 22:52:26.79
画面とファイルに同じ内容を出力したいとき、
ofs << cout << 123;
みたいなことは出来るんでしょうか?
394デフォルトの名無しさん:2013/05/30(木) 23:04:51.42
無理
395デフォルトの名無しさん:2013/05/30(木) 23:05:42.77
いやできる
396デフォルトの名無しさん:2013/05/30(木) 23:05:56.00
>>393
ofs.copyfmt(std::cout);
std::cout.rdbuf(ofs.rdbuf()); とすれば

coutに書き込んだ内容がofsに出力される(リダイレクト)

ただしtieのような2箇所に出力を分岐する方法はないので自分で関数を
書くしかない
397デフォルトの名無しさん:2013/05/30(木) 23:07:44.80
stream_dispatcher ofs2;
ofs2 << ofs;
ofs2 << cout;

ofs2 << 123;
398デフォルトの名無しさん:2013/05/30(木) 23:16:41.12
.>>397
あのさぁ、入門書読んだくらいでいい気になって糞コード書くのやめない?
399デフォルトの名無しさん:2013/05/30(木) 23:20:30.54
そんなクソコードか?
>>393に対するすげーまっとうな回答だと思うけど
どちらかというとiostream自体がハゲの壮大な糞
400デフォルトの名無しさん:2013/05/31(金) 00:19:04.71
>>399=アホ
401デフォルトの名無しさん:2013/05/31(金) 00:22:39.94
入門書すらちゃんと読んでないと>>396のような
糞質問が飛び出す
402デフォルトの名無しさん:2013/05/31(金) 00:32:01.57
>>396の質問って何なんだ?
403デフォルトの名無しさん:2013/05/31(金) 00:34:35.76
>>401
>>396はC++標準ライブラリの§13.10.3、P612に書いてある内容だぞ
そういう内容を糞呼ばわりするのか
404デフォルトの名無しさん:2013/05/31(金) 00:37:43.68
ここは初心者歓迎ですが、初心者質問禁止スレです

>>403
C++が糞って言いたいんじゃない
405デフォルトの名無しさん:2013/05/31(金) 00:40:30.85
tieじゃなくてteeの間違いのような・・・

それはともかく複数のデバイスに一度に出力する場面って組み合わせが爆発的に
増大してしまうから、普通に並べて書けばいいような気がする
406デフォルトの名無しさん:2013/05/31(金) 00:43:53.18
ふんふんなるほど・・
でっていうwwww
407デフォルトの名無しさん:2013/05/31(金) 00:55:17.71
>C++標準ライブラリの§13.10.3、P612
初犯、二版、三版を確認した。全く違うページだった。
何を見て言ってんの?
408デフォルトの名無しさん:2013/05/31(金) 01:00:50.45
初心者は初心スレ行けよバカチョン
409デフォルトの名無しさん:2013/05/31(金) 01:01:22.80
>>407
ISBN4-7561-3715-6だ
410デフォルトの名無しさん:2013/05/31(金) 01:04:53.61
>>409
アスキー「C++標準ライブラリチュートリアル&リファレンス」
シラネ。
お前が買った本を世界のみんなが読んでる
前提で話をされても。
411デフォルトの名無しさん:2013/05/31(金) 01:11:14.30
>>410
お前が読んでる本もシラネ
こういう話になるんだけど
お互い様
412デフォルトの名無しさん:2013/05/31(金) 01:29:03.71
>>411
標準ライブラリと言われたからISO/IEC 14882:1998と
2003(2nd Edition)と2011(3rd Edition)を見たんだけど、
仕様書読まないの?

仕様書以外の文書を、本のタイトルも無くページ番号語るお前が
コミュ力皆無であることに変わりはないけどな。
413デフォルトの名無しさん:2013/05/31(金) 01:29:58.21
ほら初心者が馬鹿にされて荒らしてるよーwww
414デフォルトの名無しさん:2013/05/31(金) 01:31:50.99
>>412
規格票の時はちゃんと規格票って書くさ
逆切れすんなよみっともないww
415デフォルトの名無しさん:2013/05/31(金) 01:55:58.85
>規格票の時はちゃんと規格票って書くさ
規格以外の時にも出典を書かないと意味ないのに
416デフォルトの名無しさん:2013/05/31(金) 02:00:01.31
>規格以外の時にも出典を書かないと意味ないのに

C++標準ライブラリの§13.10.3、P612と書いただろうが
それをお前が勝手に他の本と間違えただけ
417デフォルトの名無しさん:2013/05/31(金) 02:03:13.10
初心者は去れ!
418デフォルトの名無しさん:2013/05/31(金) 02:04:30.83
クックック・・・
419デフォルトの名無しさん:2013/05/31(金) 02:05:40.54
ウェーッハッハ!
420デフォルトの名無しさん:2013/05/31(金) 02:20:55.81
>>398
素人は黙ってな
とりあえず文句は代わりのコードを書いてから言え
421デフォルトの名無しさん:2013/05/31(金) 02:36:09.90
>>416
こいつ馬鹿?
422デフォルトの名無しさん:2013/05/31(金) 02:45:03.28
複数のbasic_ostreamを管理するbasic_ostreamを作ればいいじゃん。
と思ったけどリソース管理が汚くなりそうだ。
カスタムデリータの情報を消せる
type erasure版unique_ptrって無いですか?
423デフォルトの名無しさん:2013/05/31(金) 03:21:26.15
実体不明のstreamと実体不明のデリータでどうやって解放すんだよ
デリータをコンポジションしたリソースクラスでも作れば?
class resource_with_deleter_base{
 仮想デストラクタ
}
424デフォルトの名無しさん:2013/05/31(金) 03:23:16.91
>>421
馬鹿だから放置で
425デフォルトの名無しさん:2013/05/31(金) 03:30:52.44
「規格票」という用語を用いる人はたいてい労害JIS信者
ところで何で「票」なんだ?
426デフォルトの名無しさん:2013/05/31(金) 03:58:30.43
栗じゃおかしいだろ
427デフォルトの名無しさん:2013/05/31(金) 05:01:33.24
伝票とかの票だろうね
428デフォルトの名無しさん:2013/05/31(金) 08:12:06.93
>>422
shared_ptrをラップ(継承?)してコピーをdeleteすればいいんじゃね?
429デフォルトの名無しさん:2013/05/31(金) 08:53:08.87
>>428
shared_ptrのデストラクタってvirtualだっけ?
430デフォルトの名無しさん:2013/05/31(金) 08:59:00.42
お前はスマポをさらにポインタで運用するのか?
431デフォルトの名無しさん:2013/05/31(金) 09:01:08.49
>>429
たぶんそうじゃないから、それが嫌なら継承せずにラップするか、その他の
小細工を加える(operator new/deleteをprivateにする)とか好きにしたらいい。
432デフォルトの名無しさん:2013/05/31(金) 09:02:08.63
あ、operator new/deleteもdeleteでいいや。(privateにするのはC++03までのやりかた)
433デフォルトの名無しさん:2013/05/31(金) 10:32:17.64
>>432
馬鹿は帰れ
434デフォルトの名無しさん:2013/06/01(土) 07:23:12.82
Unique_ptr<int> tmp(new int);
Unique_ptr<X> x(new X(tmp.get()));
tmp.release();

Xこコンストラクタがnothrowな時
このコードは安全ですか?
435デフォルトの名無しさん:2013/06/01(土) 08:07:30.73
new X(tmp.release())にすべきじゃね
436デフォルトの名無しさん:2013/06/01(土) 08:30:13.25
>>435
それはまずくね?
5.3.4p16
It is unspecified whether expressions in the new-initializer are evaluated if
the allocation function returns the null pointer or exits using an exceptio
437デフォルトの名無しさん:2013/06/01(土) 08:59:35.19
>>434
安全かな
438デフォルトの名無しさん:2013/06/01(土) 09:44:50.81
そのソースだけではXがなにしてるかわからないので潜在的には危険と言わざるをえない
439デフォルトの名無しさん:2013/06/01(土) 12:14:22.90
>>438
寝言はうるさい
440デフォルトの名無しさん:2013/06/01(土) 13:37:39.49
new X(tmp.release())
これマジでだめなの?
こんなコードはそこらじゅうで
使われてると思うんだけど
441デフォルトの名無しさん:2013/06/01(土) 14:11:34.76
new X(tmp.release())
これマジでだめなの?
こんなコードはそこらじゅうで
使われてると思うんだけど
442デフォルトの名無しさん:2013/06/01(土) 14:12:16.59
>>440
Xの定義によるとしか言えないかな
bad_allocでリークするかどうかとかそういう事なら気にしなくていい
メモリ足りなければ即落すのが作法だからリークとか関係ない
443デフォルトの名無しさん:2013/06/01(土) 14:19:02.09
newがbad_alloc投げたら確実にリークする
メモリ足りない場合に落とすべきかどうかはケースバイケースなので
大丈夫だとは言いたくない
444デフォルトの名無しさん:2013/06/01(土) 14:23:05.06
世間ではナマポは勝ち組。
C++でナマポを一瞬でも使ったら
例外安全地獄で負け。
ただしオナーニのネタとしては最適。
445デフォルトの名無しさん:2013/06/01(土) 14:47:49.74
つまりC++でオナニーすること自体が負け組と言えよう
446デフォルトの名無しさん:2013/06/01(土) 15:36:48.24
コンストラクターが例外を出す場合はどうなる?
struct X {
 unique_ptr<int> mem;
 X(int *p) : mem(p) { ここで例外の可能性アリ }
};

operator newがコケた時はコンストラクター前の可能性があるから
呼び出し側で解放する必要がある。
しかしコンストラクターがコケたときは
memのデストラクターが解放してしまう。
つまりスマポでないと危険ってこと?

struct X {
 unique_ptr<int> mem;
 X(unique_ptr<int> p) : mem( move(p) ) { ここで例外 }
};
unique_ptr<int> tmp(new int);
new X( move(tmp) );
447デフォルトの名無しさん:2013/06/01(土) 16:20:16.35
catch して mem.release(); すればいいだけ
448デフォルトの名無しさん:2013/06/01(土) 16:45:52.78
スマポは逃げ
>X(int *p) : mem(p)
これがそもそもおかしい
コンストラクションが完了していないのに所有権を移すのは
「失敗したときは元通り」というマナーに反するからね

X(int* p) { 例外あるかも; mem.reset(p); }
これが漢のトランザクションメソッド
449デフォルトの名無しさん:2013/06/01(土) 16:55:11.66
>>447
複数のメンバーがあってどれかひとつが
例外をスローする可能性は無視ですか?
450デフォルトの名無しさん:2013/06/01(土) 18:02:16.64
>>449
よく見ろ
> X(int *p) : mem(p) { ここで例外の可能性アリ }
メンバ初期化子での例外の可能性はこの例では存在しない
451デフォルトの名無しさん:2013/06/01(土) 18:44:23.33
C/C++はホントにアスペが多いな
452デフォルトの名無しさん:2013/06/01(土) 18:59:55.14
スマポに頼り過ぎだからこんなバカな議論が始まる
入り組んだ処理が必要でスマポが信頼出来ないなら自前のライーオブジェクトを作れば良い
453デフォルトの名無しさん:2013/06/01(土) 19:58:00.68
C++はゆとり用言語
454デフォルトの名無しさん:2013/06/01(土) 20:00:37.01
>>452
正解
455デフォルトの名無しさん:2013/06/01(土) 20:00:49.32
何がライーだよ ラダブルアイだろ いやアブラカダブラだっけ
456デフォルトの名無しさん:2013/06/01(土) 20:02:22.68
ライーオブジェクトってなんだよ
457デフォルトの名無しさん:2013/06/01(土) 20:08:15.72
template<T>X* newx(int * p,T && onbadall ) {
try {
return new X(p);
} catch(bad_alloc){
return onbadall(p);}
}
458デフォルトの名無しさん:2013/06/01(土) 20:22:12.30
>>452
全てスマポにておけば余計なこと考えなくていいのに
途中で引数にナマポを使おうとするからこうなってんだろ
>>434-450が理解できないとはかわいそうな奴
459デフォルトの名無しさん:2013/06/01(土) 20:26:28.35
スマポ使いには驚くほどカスが多い
簡単なメモリ管理も出来ないからいたるところでミスをおかすチームのお荷物になる
ツールやライブラリが充実してない環境での仕事を任せられない
460デフォルトの名無しさん:2013/06/01(土) 20:32:53.85
と老害が申しております
例外安全とか知らなさそう
461デフォルトの名無しさん:2013/06/01(土) 20:33:30.56
例外禁止ルールでも作ってんじゃねーの
Googleみたいに
462デフォルトの名無しさん:2013/06/01(土) 20:34:05.43
スマポ嫌いには驚くほどカスが多い
簡単なライブラリも使えないからいたるところ低信頼コードの手書きを繰り返すチームのお荷物になる
ツールやライブラリが充実している環境なのに仕事を任せられない
463デフォルトの名無しさん:2013/06/01(土) 20:35:57.55
と老害が申しております
例外安全とか知らなさそう
464デフォルトの名無しさん:2013/06/01(土) 20:38:16.65
exception禁止令があることを理由に
googleを無能集団呼ばわりする人がいますが
どう思います?
465デフォルトの名無しさん:2013/06/01(土) 20:42:27.92
頭がおかしいからスマポを使わないと生きていけないんだろうな
466デフォルトの名無しさん:2013/06/01(土) 20:56:45.21
いやスマホを使うと頭がおかしくなる、だな
マイクロ波は細胞を砕くから、脳に悪影響を及ぼすという警告は携帯の時代からあった
にもかかわらず、企業が売ったから安全だし買った、みたいな宗教観を持っているのがスマホ利用者
467デフォルトの名無しさん:2013/06/01(土) 20:58:00.25
ガラケも大差ない
世界から電話を破壊すべきだ
そうすれば無駄な呼び出しもなくなり平和になる
468デフォルトの名無しさん:2013/06/01(土) 21:00:06.37
俺はずっとPHS
スマホのような事はタブレットで十分
469デフォルトの名無しさん:2013/06/01(土) 21:27:38.26
結局、new X(動的確保リソース) のエラー処理は以下の理解でFA?
○スマポで渡す場合:
 エラー時は所有権が移動した場合に限りコンストラクタで解放される。その場合 副作用があることが注意点
○ナマポで渡す場合:
 エラー時にコンストラクタで解放せず呼び出し側で解放する。メンバがスマポの場合、メンバイニシャライザで渡してはならない。new X(tmp.release())はauto
470デフォルトの名無しさん:2013/06/01(土) 21:59:41.02
function-try-blockの使いどころがわかりません
どういうときに使うの?
471デフォルトの名無しさん:2013/06/01(土) 22:02:25.93
あれは全く使わないから要らないですよ
472デフォルトの名無しさん:2013/06/01(土) 22:22:33.24
豆知識を披露したい場合に使う
473デフォルトの名無しさん:2013/06/01(土) 22:23:55.72
コンストラクタで使うとメンバ初期化子内で例外出た時にcatchできるけど
どこまで初期化できたか分からないので対処のしようがなくあんま意味が無い
474デフォルトの名無しさん:2013/06/01(土) 22:26:44.44
コンストラクタの場合、メンバの破棄も終わってるしログを出すくらい?
普通の関数の場合、自動変数のデストラクタの例外を握りつぶしたいとき??
デストラクタの場合、何となく文法で許可してみた???

結論、要らない。
だいたいメンバにアクセスできるけどしたらundefinedって何だよ
475デフォルトの名無しさん:2013/06/02(日) 00:45:49.03
>>470
一般的な C++ プログラムは int main(int argc, char* argv[]) try { ... と始まります。
476デフォルトの名無しさん:2013/06/02(日) 00:51:05.57
int main() {
 try {
  ...
 } catch (...) {
  ...
 }
}



int main()
try {
 ...
} catch (...) {
 ...
}

って何か変わるの?
477デフォルトの名無しさん:2013/06/02(日) 01:02:11.93
>>476
インデントが一個得する
478KUSO KOTE:2013/06/02(日) 01:37:25.00
>>476
前者はreturnが無くてもOK。
後者はcatchの中にreturnが無いとundefined behavior。
本当にそれ以外の違いが思いつかない。。
479デフォルトの名無しさん:2013/06/02(日) 18:01:07.23
サンプルプログラムでutf16を扱うには
L"ほげ"
とありますが、Lとは何をincludeすれば使えますか?あとこれを表示するには
printf("%lc",L"ほげ");
であってますか?
480デフォルトの名無しさん:2013/06/02(日) 18:10:58.15
ほげとか言ってる時点で無理
481デフォルトの名無しさん:2013/06/02(日) 18:14:44.20
ざわ…ざわ…
482デフォルトの名無しさん:2013/06/02(日) 18:17:14.28
だめでした
utf16文字列がascii文字コードで扱える文字ばかり扱っているものと仮定して
(つまりアルファベットのみ使っている)
変換する方法はありますか?
483デフォルトの名無しさん:2013/06/02(日) 18:26:49.90
>>479
>utf16を扱うにはL"ほげ"
いいえ。それはVisual C++固有の仕様です。
UTF-16は u"糞文字列" と掻きます。
LもUも文字列リテラルというトークンを構成する
ものなので、特にインクルードはありません。
<clocale>と<cwchar>をインクルードして
std::setlocale("", LC_CTYPE);
std::wprintf(L"%s\n",L"死ね");
とするのが良いでしょう。
484483:2013/06/02(日) 18:30:08.18
setlocaleの引数間違えました。逆です。
485デフォルトの名無しさん:2013/06/02(日) 18:41:54.42
ありがとうございます
ですが::OutputDebugStringへの出し方がわからなかったので、結局
for(unsigned int i = 0 ; i < size_in_byte ; i++)
{
486デフォルトの名無しさん:2013/06/02(日) 18:43:07.93
::OutputDebugString("%c",((char*)utf16)[i]);
}
として強引に出力しました
本格的に必要になったらまた考えます
487デフォルトの名無しさん:2013/06/02(日) 18:50:02.53
解決したようで よかったな
もう二度と来るなよオマエ
488デフォルトの名無しさん:2013/06/02(日) 19:56:02.85
これはひどい
やはりホゲ脳にはちょっと難しかったかな…
489デフォルトの名無しさん:2013/06/02(日) 20:47:24.45
あまり知られてないマニアックな
文法を知りたいです
こんなのコンパイル通るのかよ
って例を教えてください
490デフォルトの名無しさん:2013/06/02(日) 21:26:27.92
operator()をオーバーロードして、test(0)(1)(2)(3)(4)(5)(6)(7)(8)(9);とか?
最初見た時なんじゃこりゃ?と思った
491デフォルトの名無しさん:2013/06/02(日) 21:30:58.08
1[a] = 100;
492デフォルトの名無しさん:2013/06/02(日) 21:43:06.06
>>489
IOCCCの投稿作品でも読めばいいんじゃね?
493デフォルトの名無しさん:2013/06/02(日) 21:54:15.92
C/C++でこの手のウンココードを競うとキリがない。
APLにはかなわないけど。
http://ideone.com/rEbxA0
494デフォルトの名無しさん:2013/06/02(日) 22:01:55.15
>test(0)(1)(2)(3)(4)(5)(6)(7)(8)(9)
SUGEEEE!
495デフォルトの名無しさん:2013/06/02(日) 22:34:13.50
姉妹スレより。なんかJavaみたい

703 デフォルトの名無しさん sage 2013/05/03(金) 17:43:18.34
8.4.1p1-2ではvirt-specifierはtrailing-return-typeの後。
なので順番はこんな感じの筈。
[[noreturn]] inline virtual auto test() const volatile && throw() [[noreturn]] -> decltype((void)0) final override try
{
std::exit(0);
}
catch(...)
{
}
496デフォルトの名無しさん:2013/06/02(日) 22:36:15.20
>>489
こういうのでいいのかな
http://ideone.com/rw1hGJ
497デフォルトの名無しさん:2013/06/02(日) 22:48:09.91
あ、無駄に継承してしまってた
継承いらないや
498デフォルトの名無しさん:2013/06/02(日) 22:48:55.79
何でこうなるんだ、と思って調べたら
a->b が (a.operator->())->b になるのね。
勉強になった。
499デフォルトの名無しさん:2013/06/02(日) 22:48:56.62
500デフォルトの名無しさん:2013/06/02(日) 22:49:41.98
ポインタに行き当たるまで operator-> を実行し続けるという仕様
意外とマイナーな仕様だと思う
501デフォルトの名無しさん:2013/06/02(日) 22:49:46.49
>>490,494
やりかたがわからん‥‥
502デフォルトの名無しさん:2013/06/02(日) 22:51:03.29
operator-> でスマポを返しても機能するのはこの仕様のおかげだから
スマポを使ってる人には常識
503デフォルトの名無しさん:2013/06/02(日) 22:51:45.11
>>501
別に
std::cout << a << b << c << d;
と同じ事やで
504デフォルトの名無しさん:2013/06/02(日) 22:52:16.17
>>501
自分自身の参照を返すんだよ
505デフォルトの名無しさん:2013/06/02(日) 23:02:24.96
>>499
せっかくだからヌルポで…
http://ideone.com/42b10V
506デフォルトの名無しさん:2013/06/02(日) 23:03:28.15
>>503
えうれか!http://codepad.org/QZZAUWC9
お題thx
507デフォルトの名無しさん:2013/06/02(日) 23:05:16.69
>>505
ガッ

NULLを使ったメンバ呼び出しって規格上どうなんだっけ
508デフォルトの名無しさん:2013/06/02(日) 23:17:36.53
>>507
たぶんNGだろうね
offsetofマクロが許されてこれがNGなのは
釈然としないけど
509デフォルトの名無しさん:2013/06/02(日) 23:55:14.76
sizeofは「式を評価しない」からOK
510デフォルトの名無しさん:2013/06/02(日) 23:56:48.77
Java使いが演算子オーバーロードが汚い
という理由がよくわかったわ
511デフォルトの名無しさん:2013/06/03(月) 00:38:25.96
get/setが汚いのに比べれば
512デフォルトの名無しさん:2013/06/03(月) 06:43:53.14
シーシャープが至高って事はわかった
513デフォルトの名無しさん:2013/06/03(月) 13:26:52.93
c#のプロパティ機能は、確かにちょっと欲しい。
演算子のオバロでどこまで行けるか…?
514デフォルトの名無しさん:2013/06/05(水) 16:38:43.19
auto atama = [](){ return 1; };
auto mune = [](int i){ return "tekitou"; };
auto ude = [](moji s){ return true; };
auto asi = [](bool b){ return robo; };
auto robo = gattai() + atama + mune + ude + asi;
auto daimajin = robo();
って書けるようにしたいんだけど、テンプレートを黒魔術的に駆使してなんとかならないですか?

要は、a(b(c(d(e()))))っていう数珠繋ぎな呼び出しを、abcde = a + b + c + d + eって感じ
で事前に用意しておいて、abcde()で呼び出したいってことなんだけど・・・・・・・・・
515デフォルトの名無しさん:2013/06/05(水) 19:30:50.50
式テンプレート使えば?
516デフォルトの名無しさん:2013/06/05(水) 19:40:16.39
黒魔術でもなんでもなく普通に各パーツと中間の合体状態をクラスとして定義してoperator+をオーバーロードするだけじゃんか
517デフォルトの名無しさん:2013/06/05(水) 19:57:25.94
ラムダだとダメな気が。
518デフォルトの名無しさん:2013/06/05(水) 20:27:28.09
>>516 コードはよ
519デフォルトの名無しさん:2013/06/05(水) 21:14:08.93
いちいちautoと書くのは何か意味があるの?
autoなんてもう20年以上前からオブソリートなキーワードだと
思ってたけど。
520デフォルトの名無しさん:2013/06/05(水) 21:15:01.18
ぷらーん
釣りとしてイマイチ
521デフォルトの名無しさん:2013/06/05(水) 21:57:07.07
>>520
ぷらーんて、食い付いたんじゃないのかよw
522デフォルトの名無しさん:2013/06/05(水) 22:56:11.80
一瞬だけ出来そうな気がしたけど、よく考えたらこれ無理だろ?
a + bの時、aからbの型を知る術がない。引数に取れねーよ('A`)

combineみたいな関数作って、combine<P, C, R>(func1<P(C)>, func2<R(C)>) -> func12<P(R)>
みたいに繋いで妥協するしかないだろう。
523デフォルトの名無しさん:2013/06/05(水) 23:43:07.02
>>514
まずテンプレート抜きでの基本から理解しないとはじまらないぞ
ttp://ideone.com/nhzkwq
テンプレートは魔法の道具じゃなく基本の延長にある普通の機能なんだから
524デフォルトの名無しさん:2013/06/06(木) 01:50:32.33
http://ideone.com/agSW9t
もっと一般化するならtupleとか使うことになるだろうけどなんかいやだな
525デフォルトの名無しさん:2013/06/06(木) 04:04:37.15
C++がそんな関数型なわけがないと言って出て行った友人が
5分後scalaかぶれになって帰ってきた。死にたいorz
526デフォルトの名無しさん:2013/06/06(木) 08:55:17.66
scalaってなーに
527デフォルトの名無しさん:2013/06/06(木) 10:01:03.61
砂糖を入れすぎたJava
528デフォルトの名無しさん:2013/06/06(木) 10:17:16.20
>>524
読みこなせなくて何がどうなってるのか分からない。オレサマダメスギワロエナイ
529デフォルトの名無しさん:2013/06/06(木) 13:44:01.05
他スレから誘導されてきました。

http://www.freeml.com/directshow/2432
↑を参考に↓を書いてみました。
http://codepad.org/b2ingmwV

実行してもコーデックの数がゼロと出てしまい、進みませんでした。
どこが悪いのでしょうか?
530デフォルトの名無しさん:2013/06/06(木) 13:45:36.90
>>529
オマエの頭が悪い
531デフォルトの名無しさん:2013/06/06(木) 14:03:52.86
>>530
私の頭がどう悪いのかkwsk解説お願いします。
532デフォルトの名無しさん:2013/06/06(木) 14:21:39.31
プログラムの説明が一切無く「コーデックの数がゼロと出てしまい」とだけ書くのは低脳。
まずこのプログラムが何をするものでどういう結果を期待したのか書け。
533デフォルトの名無しさん:2013/06/06(木) 14:29:43.11
>>532
それでは解説します。
>>529のプログラムは、真っ黒な動画ファイル(wmv)を10秒間分出力するテスト用プログラムのつもりで作りました。
複数の仕様を選択すれば少なくとも1つ以上のコーデックが検出されることを期待しましたが、
その期待に反してコーデックが1つも検出されず、結果として出力ファイルのサイズは0となりました。
どこが悪かったのかよろしくお願いします。
534デフォルトの名無しさん:2013/06/06(木) 14:31:34.71
>>532
ど素人かお前。
コーデックのこととか一切しらん俺がざっと見ても、

> pCI->GetCodecInfoCount(WMMEDIATYPE_Video, &nCodecs);
でコーデックの数を取得できるはずで、

実行したら
> printf("nCodecs=%d\n", nCodecs);
で0と表示されて、

> for (int i=0; i<nCodecs; i++) {
の内容が実行されなかったんだが、どこか悪いのかという質問だとわかるが。

まあ、俺は答えは持ってないわけだが。
535デフォルトの名無しさん:2013/06/06(木) 14:59:21.64
そうすると
GetCodecInfoCount() の戻り値を捨てているのはナゼ?
という当然の疑問が出てくるわけだ
536デフォルトの名無しさん:2013/06/06(木) 15:03:26.73
>>535
なぜも何も、エラーチェックするという習慣がないからでしょ。

まずは各APIの戻り値を調べて、正常終了しているかどうかを確認するというのが最初のアドバイスか。
537デフォルトの名無しさん:2013/06/06(木) 15:10:55.45
もしかして上で wmvファイル を指定してるけどその中身で結果が変わる処理か
自作のデータでほーまっと不正とかいうオチか
538デフォルトの名無しさん:2013/06/07(金) 00:54:13.92
>>530
笑った。でもそれが最大の悪い点だろうな。
539デフォルトの名無しさん:2013/06/07(金) 01:16:45.85
>>535-536
原因究明の糸口さえ見つけられないレベルの脳ってことなのか
適性が無いとこんな感じになるのかな
540デフォルトの名無しさん:2013/06/07(金) 02:50:49.36
>>536
エラーチェックしても無駄でした。

>>539
ハードや開発環境に欠陥があれば対策の施しようがない
541デフォルトの名無しさん:2013/06/07(金) 03:16:54.63
てめえの脳みそで環境のせいにするのは100年早い
542デフォルトの名無しさん:2013/06/07(金) 03:18:51.80
頭に欠陥があれば対策の施しようがない
COMの初期化を忘れているだけ
543デフォルトの名無しさん:2013/06/07(金) 03:32:44.63
>>541
とりあえず100年我慢します。

>>542
激しくdです!!
544デフォルトの名無しさん:2013/06/07(金) 06:02:40.68
c++で書いたコードをjavaから再利用する方法を教えてください
545デフォルトの名無しさん:2013/06/07(金) 06:33:06.95
>>544
プログラムによるけど、文法もコーディングスタイルも違うから再利用は現実的じゃない。
多重継承とかjavaではサポートしていないし。
C++→Javaをやりたいなら自力で翻訳するか最悪再設計という流れになる。
546デフォルトの名無しさん:2013/06/07(金) 06:43:01.19
>>545
ネイティブのロードモジュールをjavaから利用的なことはできないのですか?
547デフォルトの名無しさん:2013/06/07(金) 07:04:49.74
>>546
それ、コードの再利用って言わないと思うが...
548デフォルトの名無しさん:2013/06/07(金) 07:28:05.61
まあいいじゃん
そんな細かい事は
俺はそうしたいんだろうなと思ったよ

java c++ 呼び出し でググれ
549デフォルトの名無しさん:2013/06/07(金) 08:17:32.99
すんませーん質問さして下さい。
まずうちのコンパイラはVS2005です。
で、久々C++でコード書こうとおもってある程度のクラス作ったりして
std::wstringを使って文字列入れたんです。
で表示させようと思ってstd::wcoutを使っても表示されないので
ローケル設定してないせいか?と思ったんですが。
そのローケルの設定方法を忘れてしまいました。
C言語の方のローケルの設定方法はわかるんですが、C++の方の設定方法って
どうしたらよいか、どなたかご教示ください。
550デフォルトの名無しさん:2013/06/07(金) 08:25:05.74
>>544
javaでもnative修飾子はあるけど
それは、javaのプログラミング知識が結構豊富で
かつC++で書いたそのコードもよっぽり良いコード書で利用価値
があるなら良いけど、まぁ、そこまでの知識や技量があるなら
逆にこんなところで質問なんかしてるわけは無いな
551デフォルトの名無しさん:2013/06/07(金) 08:32:31.84
>>549
VC++2005のはいろいろバグがあった記憶があるな
以下、昔のメモだからあってるかどうか知らんけど

全体の設定はデフォルトのまま"C"にしておく。2005のバグ。
std::locale::global(std::locale("C"))

個々にロケールを設定する。
std::wcout.imbue(std::locale(""))
std::wcin.imbue(std::locale(""))
552デフォルトの名無しさん:2013/06/07(金) 12:46:12.01
質問させてください。CRTPで基底側で継承側の定数をstaticとして使うことはできないのでしょうか?
template<class T>
struct A{
public:
int get(){return T::value; }// ok
double moge[T::value];// error
};
struct B : public A<B>{
enum{value = 99,};
};
なんとなく出来ても良さそうなのですが…
Aに共通処理を書いて、Bを問題ごとに書き換えたいとき、
Bの定数をAでstaticとして扱いたいのですが…
553デフォルトの名無しさん:2013/06/07(金) 13:05:27.20
>>552
あなたの要求は論理的に破綻してます
554デフォルトの名無しさん:2013/06/07(金) 13:31:44.50
>>552
template<class T>
struct A{
public:
int get(){return T::value; }// ok
};
struct B : public A<B>{
enum{value = 99,};
double moge[value];
};
555デフォルトの名無しさん:2013/06/07(金) 14:02:06.70
こんぱいらさんの気持ちになってかんがえたらわかるかもしれません
556デフォルトの名無しさん:2013/06/07(金) 14:29:27.05
>554
この方法で解決はできるのですが、
mogeをAが提供する処理の中で使いたいのです…結局
struct B : public A<B,99>
とすることで自己解決しましたが、勉強になりました。
(普通じゃないかもしれませんが)
ありがとうございました。
557デフォルトの名無しさん:2013/06/07(金) 14:56:42.42
static_cast<T*>(this)->moge();
じゃダメなのか?
558デフォルトの名無しさん:2013/06/07(金) 15:41:51.43
>557
そういう方法もあるんですね??勉強になります。
出来るだけBの中身をすっきりしたいという希望もあり、
できればAに含めたかったのです。
virtual経由で、というのも考えたんですが、
数値計算用のコードで、計算時間クリティカルな場所だったので避けました。
そうじゃないならそもそもarrayでなく可変長使うんですが…
初心者なのでいまいちわかってないのですが
どのみち要素数がAに伝えられないと
Aで計算できないのでダメなのかと…
559デフォルトの名無しさん:2013/06/07(金) 15:44:06.58
>558
自己レス、可変長でも計算時間変わんないですね。
あほな事言いました。引数で渡せばいいだけか…
なんとなくarrayのように配列数を型情報に押し込めたかっただけです。
ありがとうございました。
560デフォルトの名無しさん:2013/06/07(金) 22:36:11.95
>>476
後者みたいな事出来たのか・・・・
561デフォルトの名無しさん:2013/06/07(金) 22:59:48.98
>>560
知らなくていいです
むしろ曲芸的コードは知らない方がいい
562デフォルトの名無しさん:2013/06/07(金) 23:53:15.65
他人が読めないコードに不可解な優越感を持つプログラマは意外と多いから困る
563デフォルトの名無しさん:2013/06/08(土) 00:03:24.28
>>562
学校ならいいんだけど、仕事でこれやられると引いてしまう
564デフォルトの名無しさん:2013/06/08(土) 00:57:07.71
漠然とした質問ですまんが
メモリ破壊バグってなんでこう全然別の場所、タイミングで発症するんだろうねえ
565デフォルトの名無しさん:2013/06/08(土) 01:03:09.48
メモリ破壊だから
としか言いようがない
566デフォルトの名無しさん:2013/06/08(土) 01:05:24.88
うんまあそうですよね
メモリ破壊的なコーディングしてたとして、C++的にはそれが意図的なものか判別できないよね
567デフォルトの名無しさん:2013/06/08(土) 01:14:41.45
>>562
何か合理的な理由がある(わずかでも速いとか)場合でも、同義の分かりやすいコードをコメントで付記すべきだよね
568デフォルトの名無しさん:2013/06/08(土) 01:18:59.35
>>564
監視係を適切な所に配置するのもぷろぐらまの仕事

ヤバそうなところを嗅ぎ分けられければCなんぞやるべきではない
569デフォルトの名無しさん:2013/06/08(土) 03:49:26.20
別板での質問を取り下げてここに来ました。

Windows Media Format SDK (wmsdk) を使ってwmvファイルを書き出したいのですが、どうしてもうまくいきません。
Visual C++ 2010 を使っています。
とりあえず10秒間無音で真っ黒な画面を書き出したいのですが、どうすればよろしいでしょうか?
いくら検索してもちゃんとした解説が見つかりませんでした。
よろしくお願いします。
570デフォルトの名無しさん:2013/06/08(土) 04:50:29.41
CG板で質問してた人か
もし目的がそれだけなら普通プログラマはSDKとか使わずに
10秒間無音で真っ黒なwmvファイルを用意してコピーすると思うよ
571デフォルトの名無しさん:2013/06/08(土) 05:11:34.94
>>570
最終的には自作CGを動かすのが目標です。
572デフォルトの名無しさん:2013/06/08(土) 05:13:58.26
DTM板で散々煽られたのでここに来ました。

自作シンセにADSRつけてうpしました。
http://soft186.e-whs.jp/cgi-bin/up2/img/54.zip

どうか駄目だしをお願いします。
573デフォルトの名無しさん:2013/06/08(土) 06:12:29.31
574デフォルトの名無しさん:2013/06/08(土) 06:14:58.27
>>572
http://anago.2ch.net/test/read.cgi/dtm/1366030538/
具体的にどんなこと訊きたいのかと思ったら元スレはここか
使い勝手とか機能とかのことは他所で訊いたほうがいいと思うぞ
とりあえずは意図したとおりの動作を実現できてるみたいだし
こんなクソコード書くなとかそういうの期待してるわけじゃないんだろ?
575デフォルトの名無しさん:2013/06/08(土) 06:23:18.28
>>573
激しくdです!

>>574
そのスレで何故かボロクソに叩かれました。
自己顕示欲云々とか。
かといって他に妥当なスレがなくて悩んでます。
576デフォルトの名無しさん:2013/06/08(土) 07:26:47.98
こうやって無意識にスレを私物化するあたりが
自己顕示欲云々言われる所以では。
577デフォルトの名無しさん:2013/06/08(土) 08:40:56.01
駄目出ししてくれなんて無茶ぶりにも応えてくれる良スレ
578デフォルトの名無しさん:2013/06/08(土) 11:38:59.44
自己顕示欲さんちーす
579デフォルトの名無しさん:2013/06/08(土) 12:16:30.53
>>569みたいに何でも無料でできると思ってるゴミは何なの?
検索したから何?
本の1冊も調べられないゴミはプログラミングには不向き。
580デフォルトの名無しさん:2013/06/08(土) 12:28:37.86
>>579
人の事をゴミゴミ言うお前よりマシ
581デフォルトの名無しさん:2013/06/08(土) 12:29:04.51
>>580
こいつ馬鹿じゃねーの
582デフォルトの名無しさん:2013/06/08(土) 12:30:09.77
でもこの業界はそういう奴が多い
優秀な人ほどアスペ気味で他人を攻撃する
583デフォルトの名無しさん:2013/06/08(土) 12:37:26.30
現実世界と区別がつかないんですね
馬鹿でしょお前
584デフォルトの名無しさん:2013/06/08(土) 12:41:41.78
↑とアスペが申しております
585デフォルトの名無しさん:2013/06/08(土) 16:33:23.24
>>584
ウザいよお前
自覚ある?
586デフォルトの名無しさん:2013/06/08(土) 20:29:22.64
>>585
ウザいよお前も
自覚ある?
587デフォルトの名無しさん:2013/06/08(土) 20:50:55.54
レスコピペつまんないからやめろ
588デフォルトの名無しさん:2013/06/08(土) 21:06:24.10
ウザいよお前
自覚ある?
589デフォルトの名無しさん:2013/06/08(土) 21:18:22.09
コピペなら馬鹿でも猿でもできる
590デフォルトの名無しさん:2013/06/08(土) 21:55:12.89
馬鹿でもチョンでもできる

バカチョンコピペ
591デフォルトの名無しさん:2013/06/08(土) 22:09:20.67
ようこそ、バカチョンスレへ
592デフォルトの名無しさん:2013/06/08(土) 22:40:02.25
病名を罵倒に使うのは、病身舞のメンタリティー。
593デフォルトの名無しさん:2013/06/09(日) 01:08:31.43
質問なのですが、C++の構造体ってコンストラクタやデストラクタが無くても初期化やdeleteされるのですか?
594デフォルトの名無しさん:2013/06/09(日) 01:32:34.20
デフォがpublicのclassだと思ってください
595デフォルトの名無しさん:2013/06/09(日) 01:37:00.35
基本的にはコンストラクタやデストラクタが無ければなにもしないのが自動で定義される
596デフォルトの名無しさん:2013/06/09(日) 05:41:44.67
クラスと同じ
597デフォルトの名無しさん:2013/06/09(日) 08:10:03.38
>>593
構造体って何ですか?
598デフォルトの名無しさん:2013/06/09(日) 08:28:23.68
>>594
何がデフォルトでpublicなのですか?
599デフォルトの名無しさん:2013/06/09(日) 08:34:45.82
奴は生き様がpublicなのさ
600デフォルトの名無しさん:2013/06/09(日) 08:38:35.53
>>595
規格の該当個所はよ
601デフォルトの名無しさん:2013/06/09(日) 08:51:53.27
Cと違ってC++にstructureなるものは無いね
一カ所だけ説明無く出てくるけど、誤記だろうきっと

>>598
struct UNK : ここと base {
ここ
 :
};
602デフォルトの名無しさん:2013/06/09(日) 09:08:32.25
12.1-6
The implicitly-defined default constructor performs the set of
initializations of the class
that would be performed
by a user-written default constructor for that class with
no ctor-initializer(12.6.2) and
an empty compound-statement
603デフォルトの名無しさん:2013/06/09(日) 09:11:27.23
頭皮がパブリック
604デフォルトの名無しさん:2013/06/09(日) 09:55:58.13
>582
>優秀な人ほどアスペ気味で他人を攻撃する
誰だよそれは
リーナスか?
ジョブズか?
ゴスリンか?
ハゲか?
日下部か?
605デフォルトの名無しさん:2013/06/09(日) 10:06:29.36
ストールマンが抜けてるぞ。

排他的で攻撃的なのとアスペなのは違うな。
純粋にアスペで競ったら日本のkusokabeが圧勝。
606デフォルトの名無しさん:2013/06/09(日) 10:18:54.41
>>593のいう構造体が何をさすものなのか
本気でわからなかった俺はアスペに相違ない
607デフォルトの名無しさん:2013/06/09(日) 11:02:34.05
struct kuso { float x; };
new kuso; //(1)
new kuso(); //(2)
new kuso{}; //(3)
kuso().~kuso();

コンパイルは通るぞ。
ただ(1)はxが不定値。
608デフォルトの名無しさん:2013/06/09(日) 13:58:38.76
ただのアホの日下部をそこに並べるなよ
そういうことするから勘違いするんだよ
609デフォルトの名無しさん:2013/06/09(日) 14:14:38.20
本人と直接話してみると、意外に紳士だぞ
610デフォルトの名無しさん:2013/06/09(日) 14:22:26.23
日下部をアホ呼ばわりするのは「私は馬鹿です」と告白しているようなもの
611デフォルトの名無しさん:2013/06/09(日) 14:41:23.10
日下部は技術は別として人間的におかしい人だから。
612デフォルトの名無しさん:2013/06/09(日) 14:44:21.88
「おかしい人」に対して「おかしい人」のように振舞っているだけなように見える
日下部を気に入らない人種ってだいたい類型があるよね、そうだな、お偉いさんタイプとかね、実力よりもメンツを大事にする人とか
613デフォルトの名無しさん:2013/06/09(日) 14:46:04.50
日下部って誰?
614デフォルトの名無しさん:2013/06/09(日) 14:55:15.83
日本政府お抱えのスーパーハッカーで米軍も恐れる腕前の持ち主
趣味は携帯でコーディング・コンパイルしたプログラムを使ったインスタントハッキング
615デフォルトの名無しさん:2013/06/09(日) 15:00:21.10
BPSかよ
616デフォルトの名無しさん:2013/06/09(日) 15:17:30.97
>>613
世間に2chが広まる以前、ネットニースという
掲示板に近いメディアに出没し、
独特の人間性で注目された人物。Cが得意。
ウサゲと呼ばれる特にアスペが集まる場所で
猛威をふるった。歴史上の貢献は皆無。
617デフォルトの名無しさん:2013/06/09(日) 15:25:36.60
半角カナを使うと

>>〓〓〓〓〓
>文字化けしてますよ

と律儀に返してくれる人とは別だっけ?
618デフォルトの名無しさん:2013/06/09(日) 15:29:01.52
>>613
http://www.ne.jp/asahi/hot/space/hemineko/index.html

>>616
>歴史上の貢献は皆無。
fj.binary になにか投稿していたようですよ cat だったかと
619デフォルトの名無しさん:2013/06/09(日) 15:57:19.57
簡単に言うと、C/C++スレに出没する
コテハンを全て足したぐらいの
戦闘力を備えた 過去の人物
620デフォルトの名無しさん:2013/06/09(日) 16:59:57.65
>歴史上の貢献は皆無。
有名な「はなししって?」のツッコミは彼が元祖かと
621デフォルトの名無しさん:2013/06/09(日) 17:08:45.69
それを貢献というならそうなんだろうな...
622デフォルトの名無しさん:2013/06/09(日) 17:13:07.12
アスペがかっこいい、許される、
という観念を日本に浸透させた
623デフォルトの名無しさん:2013/06/09(日) 17:13:56.54
当時FEPの開発に関与したことがあって、日本語表記にこだわりがあったんじゃない?、
624デフォルトの名無しさん:2013/06/09(日) 17:24:38.58
流石C++スレ、おっさんばっかりやw
625デフォルトの名無しさん:2013/06/09(日) 17:27:15.93
今時若者がC++を学ぶ必要なんか無い
平均年齢45以上でok
626デフォルトの名無しさん:2013/06/09(日) 17:29:27.28
俺は若者だがC++は学ぶ価値あると思うよ
実務で使わなくてもノウハウがあらゆる言語に応用出来る
627デフォルトの名無しさん:2013/06/09(日) 17:37:21.95
でも、オサーンになるほど、何故か転用能力が低くなるんだよな。
まんまコピペしかできないと言うか。
応用して欲しいのに、何故か無理やり同じものを使おうとするから、C 系は嫌われるんだよなー。
628 ◆ZSCoFl63NY :2013/06/09(日) 18:01:28.91
ループオセロを作りました。exeファイルなどはトラブル防止のため、あえて添付していません。
動作環境はWindowsです。Cコンパイラがない方は、同梱のreadme.txtを参照してください。
コンパイル方法はreadme.txtに全て記述してあります。
↓にうpしてあります。
http://soft186.e-whs.jp/cgi-bin/up2/img/55.zip

コメントアウトがない云々と馬鹿にされたのですが、どこに問題があるのでしょうか?
629デフォルトの名無しさん:2013/06/09(日) 18:02:07.98
>>623
日本語表記、マイクロソフトに翻弄される程度の底の浅いものだしね
630デフォルトの名無しさん:2013/06/09(日) 18:09:40.26
>>628
自分の思った通り動いて、自分が満足している (=問題点がわからない) なら、何の問題もないと思うが?
631デフォルトの名無しさん:2013/06/09(日) 18:12:34.36
働いたら負け
632デフォルトの名無しさん:2013/06/09(日) 18:51:06.70
>>628
30秒ほど眺めた。KUSOコード
特有の臭さは見られず比較的素直なコード

だがやりたいことを実現するために
プログラムがどのような作りをしているのかの
説明が皆無なのはshine
もう二度と来んな

あと __ で始まる名前を使うな
633デフォルトの名無しさん:2013/06/09(日) 19:08:53.95
>コメントアウトがない云々と馬鹿にされたのですが、どこに問題があるのでしょうか?
コメントがないんだろ
別に斬新なゲームでもないし
634デフォルトの名無しさん:2013/06/09(日) 19:10:55.75
>>628
コメントが無いこと自体は問題ではない。
コメントが無いと作った本人以外には意図が不明な部分が多くある(それなのにコメントが無い)ことが問題。
635デフォルトの名無しさん:2013/06/09(日) 19:56:47.10
>>632
30秒ほど眺めた。
KUSOコードなのか素直なコードなのか
どうとでもとれる
説明が皆無なのはshine
もう二度と来んな

あと無駄な改行はさむな
636デフォルトの名無しさん:2013/06/09(日) 20:28:46.96
KUSOは全角でお願いします
637 ◆ZSCoFl63NY :2013/06/09(日) 20:31:35.64
>>632-635
駄目なんですか。。。。。orzorzorz
638デフォルトの名無しさん:2013/06/09(日) 20:44:59.19
「コメント無いなどと文句言われましたが
 どこが悪いの?
→「コメント無いshine
→「ダメなんですか。。
問題の多くが説明の欠落とわかったわけだが、
そこまでして説明を省きたいのだろうか?
639デフォルトの名無しさん:2013/06/09(日) 20:47:58.04
アスペなんだろ
640 ◆ZSCoFl63NY :2013/06/09(日) 20:54:17.34
>>638
じゃ、コメントを適度に入れればおkということでFAですね(`・ω・´)
641デフォルトの名無しさん:2013/06/09(日) 20:55:15.29
説明つうか一文字変数名の乱舞するコードを人に見せてどうするつもりなのかと
642デフォルトの名無しさん:2013/06/09(日) 21:19:26.13
>>637
まあ、そのなんだ、あれだ
誰しもが通る道だから、気にするな
成長すれば良いんだ!

…俺見てないけどな
643デフォルトの名無しさん:2013/06/09(日) 21:21:09.80
>>628って、前に俺が「素人を殺せるレベルのオセロでも作ってみろよ」と言って
誰かが作ったのに酷似しているんだが……と思ったらああ、同じ奴か
http://anago.2ch.net/test/read.cgi/software/1348064199/488
644デフォルトの名無しさん:2013/06/09(日) 21:33:43.38
コテハンとトリップ付きは基地外が多いな
645デフォルトの名無しさん:2013/06/09(日) 21:35:48.17
>>641
Cの文法はわかるのですが、コーディングの流儀が今ひとつわかっていません。
いろんなコードを見るしかないんでしょうか。。。

>>642
・・・・。

>>643
一応そうですが、それが何か
646デフォルトの名無しさん:2013/06/09(日) 21:53:28.29
>>640
コードについて聞くなら
コメントをある程度入れないと関数が何をするのか、プログラムの流れが分らんからな
とにかく、ぱっとみて何をしているのかさっぱり分からん。
で、作品についてならプログラム板じゃなくゲーム好き板で聞け
647デフォルトの名無しさん:2013/06/09(日) 21:59:43.13
>>646
今度からコメント入れるようにします。
ゲーム関連の板で作品としてどうか訊いてみました。
648デフォルトの名無しさん:2013/06/09(日) 23:40:24.19
スレ違いかもしれませんが教えていただけるとありがたいです。
C#でゲームプログラミングのまねごとをしてるんですが
GCの発生で処理が止まってしまうことがあります。
C++であればこのような現象がなくなるのでしょうか?
それともメモリの解放は同様に時間が掛かるけど
いつ解放するかを制御できるということになるのでしょうか?
649デフォルトの名無しさん:2013/06/09(日) 23:43:28.80
yes
650デフォルトの名無しさん:2013/06/09(日) 23:54:57.10
>>649
ありがとうございます。
そうするとC#でも工夫すればなんとかできそうです。
ちょっと小細工がんばります。
651デフォルトの名無しさん:2013/06/09(日) 23:55:11.48
いいこと思いついた。
C++で要らなくなったら別スレッドで
解放すりゃいいんじゃね?
コンパクションの処理時間を省略できる
652デフォルトの名無しさん:2013/06/10(月) 00:01:32.47
C++だと別スレッドで解放すれば処理が止まらないんでしょうか?
C#だとGCが動くと全スレッドが停止してしまいますorz
653デフォルトの名無しさん:2013/06/10(月) 00:06:30.93
>>646
ドキュメント読めよ
仕様書とコードに二回説明を書くのは時間の無駄だろ
654デフォルトの名無しさん:2013/06/10(月) 00:16:15.17
>>648
C#→GCがある
C++→GCがない
∴C++においてメモリ解放は手動
655デフォルトの名無しさん:2013/06/10(月) 00:20:30.31
仕様書に書くのは、SEの建て前
コードに書くのは、プログラマの言い訳
656デフォルトの名無しさん:2013/06/10(月) 00:33:12.69
>>655
虹とスニーカーの頃かと思った
657デフォルトの名無しさん:2013/06/10(月) 00:44:48.15
>別スレッドで解放すれば処理が止まらないんでしょうか?
止まらないだろう。
使用メモリをマーキングしたり
コンパクションしたりしないんだから
658デフォルトの名無しさん:2013/06/10(月) 00:45:04.76
>>640
ちょっと見てみたけど、ループ内で変数宣言は気持ち悪い。
例えば rv_main.cpp 240行目
 > for (int i=1; i<8; i++) {
 >   int t = 20 + 70 * i;
じゃなくて
 > int t;
 > for (int i=1; i<8; i++) {
 >   t = 20 + 70 * i;
とした方が気持ちいい。
個人的に。

パフォーマンスにはそんなに影響しないんだろうけど。
659デフォルトの名無しさん:2013/06/10(月) 00:46:44.19
>>654
メモリ解放とGCは別の話だろう
660デフォルトの名無しさん:2013/06/10(月) 00:47:27.81
いや外で宣言のがはるかに気持ち悪いよ
スコープ無駄に長い変数とか許せないだろ
661デフォルトの名無しさん:2013/06/10(月) 01:00:14.68
>>658は老害ジジィなので
スルーして下さい
662デフォルトの名無しさん:2013/06/10(月) 01:03:21.05
effective C++かmoreにそんな感じの議論があったな
で、下のほうが良い場合も当然ありうるが(コンストラクタでコストが掛かるような場合)
大抵の場合、上のものを使うほうが良い、って結論だったと思う
ちゃんとは覚えていないが、最適化も効きそうだし
663デフォルトの名無しさん:2013/06/10(月) 01:08:46.20
性能は問題になってから考えろ。
意味を無視して変数を使い回したり
スコープを広げる奴は島流しの刑。
664デフォルトの名無しさん:2013/06/10(月) 01:14:17.88
>>663
> 意味を無視して変数を使い回し
これと
> スコープを広げる
これを
ゴッチャゴチャにして持論を語った気になっている奴が
一番ヤバい
665デフォルトの名無しさん:2013/06/10(月) 01:28:30.79
へー、どこにいるんだ?
そんなヤバいやつ
666デフォルトの名無しさん:2013/06/10(月) 01:30:23.50
グローバルに定義されたplacement newがサイズのみ引数にとる場合、
すべてのリンクされるnewがこれで置き換わるってホント?
667デフォルトの名無しさん:2013/06/10(月) 01:34:28.87
>>666
仕様はともかく君の環境では
どうだったのよ?
668デフォルトの名無しさん:2013/06/10(月) 07:09:50.22
>>657
なるほど。
やはりC++で作りなおしたほうおが良さそうです。
が、C++を勉強しなければいけません。でもやったほうがよさそうですね。
669デフォルトの名無しさん:2013/06/10(月) 07:31:49.57
こうしてまたバカがひとり
670デフォルトの名無しさん:2013/06/10(月) 07:55:22.13
>>658
は下の方がいいだろう
上だとtの寿命が紛らわしい
671デフォルトの名無しさん:2013/06/10(月) 08:17:21.72
書き間違えたら訂正しろよ
下はオーバー50のジジイの固執
上が人の良心
672デフォルトの名無しさん:2013/06/10(月) 08:29:49.58
>>670
> 上だとtの寿命が紛らわしい

どう紛らわしいか、詳しく
673デフォルトの名無しさん:2013/06/10(月) 12:03:09.25
コンストラクタにコストがかかる場合は、つい面倒で

{
  Foo foo;

  for(...)
  {
    foo = …
  }
}

ってやってしまう。
関数に切り分けるのが一番スマートなのは分かってるつもりなんだけども。
674デフォルトの名無しさん:2013/06/10(月) 13:23:35.75
>関数に切り分けるのが一番スマートなのは分かってるつもり
意味を考えずに、機能でなく処理で関数を
切り出すのは初心者までですよ
675673:2013/06/10(月) 15:47:01.13
>>674
そりゃまあ、そうだw
676デフォルトの名無しさん:2013/06/10(月) 21:18:01.12
>>673
 for(...)
 {
  Foo foo = …
 }

って書いても
コンストラクタはループに入る時の 1度のみ
デンストラクタはループを抜けたあとの 1度のみ
しか呼ばれないのではないだろうか。
677676:2013/06/10(月) 21:23:15.88
>>676
間違った。
ループのたびに両方呼ばれる
678デフォルトの名無しさん:2013/06/10(月) 22:02:22.43
>>677 それがどうかしたのか?
679デフォルトの名無しさん:2013/06/10(月) 22:23:39.91
>>671
どっちかっつーとジジイの方が変数宣言をブロック先頭に置くことに
拘るんじゃないかと思うが。
680デフォルトの名無しさん:2013/06/10(月) 22:30:05.27
20世紀から脳ミソが進化してないジジイは
ブロックでなく関数の先頭で変数を宣言します
681デフォルトの名無しさん:2013/06/10(月) 22:58:04.50
そりゃジジイというよりドカタだろ
682デフォルトの名無しさん:2013/06/10(月) 23:03:13.14
>>666
多分 placement new とグローバルの new のオーバーライドを混同していると思うが、、、
サイズだけを取るグローバル new のオーバーライドは規格で認められている合法行為
683デフォルトの名無しさん:2013/06/10(月) 23:06:06.43
>>682
ん?
微妙にポイントがずれてるかな?
まあいいや
684デフォルトの名無しさん:2013/06/10(月) 23:12:43.52
>>682
そうなのか
とあるapiで通常のmalloc,newは使うべからず、apiの提供するアロケータを使え
newを使いたかったら、あるクラスでnewをapiのアロケータを使いオーバーライドし、
すべてのクラスはそのクラスを基底クラスにせよってあったんだが
実はnewのオーバーライドだけでおk?
685デフォルトの名無しさん:2013/06/10(月) 23:19:04.86
>placement newがサイズのみ引数にとる
そりは不正なプログラムなのでは?
686デフォルトの名無しさん:2013/06/10(月) 23:24:15.71
あいむ そりー(´・ω・`)
687デフォルトの名無しさん:2013/06/10(月) 23:24:51.45
んなこたーない
688デフォルトの名無しさん:2013/06/10(月) 23:42:17.43
>>684
それはどうだろうか?
それは環境問題だから、一概にどうとか言えないと思う
個人的には、グローバル operator new のオーバーライドはお勧めできないな
689デフォルトの名無しさん:2013/06/10(月) 23:45:34.12
ジジイの見分け方
 規格票
 合法
 最近の仕様では
690デフォルトの名無しさん:2013/06/10(月) 23:54:16.64
>>688
ふむ
確かにglobalでnewのオーバーライドは副作用が大きそうであるな
そこさえ気にしなければシステム上問題は無さそうか
まあそこ気にしろって話になるが
691デフォルトの名無しさん:2013/06/11(火) 00:00:05.88
>>674
そういや「1関数 数十行まで」ってコーディング規約がどこかで使われていた話を思い出した。
UNIX系だと思うが
692デフォルトの名無しさん:2013/06/11(火) 00:25:47.19
最近は行数云々より横幅の方を主張したい。

横は160文字程度までは使え!
テキストエディタは縦長とかいう腐った先入観は捨ててしまえ!
693デフォルトの名無しさん:2013/06/11(火) 00:46:27.88
金のある開発現場は縦長モニタを使えるけど
ない現場は横長モニタしか買えないわけで
694デフォルトの名無しさん:2013/06/11(火) 01:14:24.08
人間は横方向の方が視野は広いんだぜ!
金じゃない、金じゃないッスよぉ〜
695デフォルトの名無しさん:2013/06/11(火) 06:24:27.70
>>679
後で拡張してスコープが伸びるかもしれないからあらかじめ最初に書けって言われた時にはこの会社まじヤバイって思ったわ
696デフォルトの名無しさん:2013/06/11(火) 07:52:04.54
>>688
>グローバル operator new のオーバーライドはお勧めできないな
御意。以前bcc32で調べていたが http://hibari.2ch.net/test/read.cgi/tech/1304410950/827
bcc32 のメモリーリーク検出機能はうまく動作しなかった。
697デフォルトの名無しさん:2013/06/11(火) 08:37:32.70
>>696のおつむがうまく動作してないんだろう
長いからその先を10行以内で説明しろよ
698デフォルトの名無しさん:2013/06/11(火) 12:18:26.08
>>697
>長いからその先を10行以内で説明しろよ
bcc32 のメモリーリーク検出機能はうまく動作しなかった。
699デフォルトの名無しさん:2013/06/11(火) 13:15:18.08
>>698
使用契約を破っていつまでも使っている犯罪者が何を言う
700697:2013/06/11(火) 18:40:11.87
>>698
そういう端的な説明は嫌いじゃないぞw
でもそう判断した理由を10行以内で
教えてくれないか?
701デフォルトの名無しさん:2013/06/11(火) 19:51:34.80
>>696
特定の alloc/free を行いたいなら
nothrow みたいにダミー引数をとる new/delete を定義するといいね
702デフォルトの名無しさん:2013/06/11(火) 20:24:00.16
>>696
>new[] したものを delete [] せず、delete する
そりゃundefined behaviorじゃねーの?
メモリリーク検出がうまく動かなくても
仕方ないだろう
703デフォルトの名無しさん:2013/06/11(火) 22:44:42.95
MinGW環境です。

標準入力から文字列を読み取るプログラムfoo↓

int main(){
TCHAR buffer[1024]={0};
while(_fgetts(buffer,1024,stdin)!=NULL){
if(TCHAR* p=_tcschr(buffer,'\n'))*p='\0';
MessageBox(NULL,buffer,NULL,MB_OK);
}
return 0;
}

に対し、名前に環境依存文字を含むファイルを持つディレクトリ内でdir /b | fooとすると、
環境依存文字が?として表示されてしまいます。
正しく表示するにはどうすればよいでしょうか。
704703:2013/06/11(火) 22:47:28.91
追記です。fooはUNICODEビルドで、コマンドプロンプトはcmd /uで起動しています。
705デフォルトの名無しさん:2013/06/11(火) 23:49:46.37
ロケールの設定忘れ?
#include <locale.h>
int main() {
setlocale(LC_ALL, "");
...
}
706デフォルトの名無しさん:2013/06/12(水) 07:16:01.64
環境依存文字ってなんですか?
707デフォルトの名無しさん:2013/06/12(水) 07:26:34.91
@とか
708703:2013/06/12(水) 11:30:54.08
>>705
回答有難うございます。
すみません、手元のコードから移す際に漏れていました。

ロケールの設定を行っても、「@」などは表示できますが、
Unicode環境依存文字「?」「?」が表示されません。

因みに、MessageBox(NULL,_T("?"),NULL,MB_OK);と直接指定すると表示できます。

宜しくお願いします。
709デフォルトの名無しさん:2013/06/12(水) 11:36:44.55
UNICODE有効にしてる?
UNICODE か_UNICODE ってのをビルド時に指定してやらないと。
710デフォルトの名無しさん:2013/06/12(水) 11:38:46.67
L"?"ってやってちゃんと出るか試さないと
711デフォルトの名無しさん:2013/06/12(水) 11:55:07.09
Unicode環境依存文字ってなんですか?
712703:2013/06/12(水) 12:00:32.23
>>709 >>710
>>704に書きました通り、UNICODEビルドです。
念のため、各関数をUNICODE版に置換しましたが、>>705の結果と変わりありませんでした。
ファイル名にはUnicode環境依存文字「↝」が含まれています。
713デフォルトの名無しさん:2013/06/12(水) 12:12:28.33
>>712
>dir /b | fooとすると、
>環境依存文字が?として表示されてしまいます。
dirの出力の文字コードは何になるよう
設定してんのよ?

UTF-8に設定してるなら
freopenでモードを"b,ccs=UTF-8"に指定するとか
setlocale(LC_CTYPE,"Japanese_Japan.65001")
しないとダメなんじゃね?
714デフォルトの名無しさん:2013/06/12(水) 13:20:33.33
stdinは標準ではマルチバイト文字のデータ列に結び付けられるので
 utf-16(コンソールのパイプ) -> shiftjis(stdin) -> utf-16(_fgetwsの結果)
となって変換できない文字が化けてるようだな
715703:2013/06/12(水) 13:20:36.11
>>713
cmd /uで起動したコマンドプロンプト上で、
setlocale(...)やFILE*fp=_wfreopen(L"CON",L"b,ccs=UTF-8",stdin);を加えたコードを実行しましたが、
setlocale()の場合は?で表示され、_wfreopen()の場合は一度目のfgetws(buffer,1024,fp)でNULLを受け取ってしまうようです。
_wfreopen(...ccs=UTF-16LE...);等も試しましたが、状況は変わりませんでした。
716デフォルトの名無しさん:2013/06/12(水) 14:15:23.18
Windowsって糞だな

って結論?
717デフォルトの名無しさん:2013/06/12(水) 14:31:37.37
テキスト処理はいつの時代になっても面倒臭いが結論だろ?
718デフォルトの名無しさん:2013/06/12(水) 18:25:13.26
>>715
よくわかんないけど、dir コマンドはファイルにリダイレクトした時と、パイプにリダイレクトした時で挙動が違うみたい。

具体的には、標準入力を単純に 16進ダンプするプログラム作って、cmd /u から...

dir | dumphex

ってやるのと

dir > test.dat
dumphex < test.dat

で、結果が違う。

パイプの時は、sjis にしてるみたい。

と言うことで、>>716 が正解かも。
719KUSO KOTE:2013/06/12(水) 19:11:54.45
>>703
Visual C++なら特に問題なく動く。
http://ideone.com/GxILtZ
テキストバッファの溢れチェックはしてない。
ただWindowsの標準入出力でUnicodeは
いろいろと鬼門。
720デフォルトの名無しさん:2013/06/12(水) 20:08:34.65
char16_tってどんなときに使うのですか?
中途半端な気がして、使い道が思いつきませぬ
721デフォルトの名無しさん:2013/06/12(水) 20:35:08.00
windowsとかicuの内部文字コードなのでそれなりに使う
722デフォルトの名無しさん:2013/06/12(水) 20:40:43.96
OSは割と内部 UTF-16 or UCS-2 で動いてる
723デフォルトの名無しさん:2013/06/12(水) 20:41:46.38
>>721
windowsで使われてるのはwchar_tだろ?
724デフォルトの名無しさん:2013/06/12(水) 20:45:50.07
>>723
windowsでは sizeof(wchar_t) == sizeof(char16_t) だから
windowsではというよりVCではというべきか
725デフォルトの名無しさん:2013/06/12(水) 20:45:55.76
wchar_t は環境依存だからなあ
今更変更のしようがないとは思うが
726デフォルトの名無しさん:2013/06/12(水) 20:50:43.83
wchar_tはmbstowcsみたいな変換があるけど
char16_tはそれが無いのでウンコ
uint16_tの方がまだマシだ
727703:2013/06/12(水) 21:35:36.17
>>719
コード有難うございます。
MinGWでも動作確認しました。
Unicode環境依存文字をパイプで取り扱うには、コンソールの文字コード変更が必要と言うことですね。

回答して下さった皆様、有難うございました。
728デフォルトの名無しさん:2013/06/13(木) 01:17:09.36
デスクトップのWinでC/C++は小数派だからな。そんなのしているのは学生ぐらいかな
WinでC/C++だと問題がいろいろ問題が出るよな。
729デフォルトの名無しさん:2013/06/13(木) 01:25:29.18
何言ってるかわからなすぎて吹いたw
730デフォルトの名無しさん:2013/06/13(木) 01:26:28.34
winでC++やってるけど問題ってなんだろう
731デフォルトの名無しさん:2013/06/13(木) 01:28:58.22
不自由ソフトなんて使わないで、自由ソフトのLinuxに来いよ
732デフォルトの名無しさん:2013/06/13(木) 01:29:47.96
使わない自由を行使させてもらいます
733デフォルトの名無しさん:2013/06/13(木) 01:30:06.20
>>730
きっとWinAPIで挫折したんだよ
734デフォルトの名無しさん:2013/06/13(木) 01:53:13.19
小数派
735デフォルトの名無しさん:2013/06/13(木) 02:05:42.03
>>731江○添さんみたいに
頭が不自由になるからいやです
736KUSO KOTE:2013/06/13(木) 02:50:47.27
>>727
>コンソールの文字コード変更が必要
んなこたーない。
NULバイトを含むUTF-16での入出力が気持ち悪いのと
パイプがイマイチ(?)なのでUTF-8にしたかっただけ。
http://ideone.com/MDEFZD
737デフォルトの名無しさん:2013/06/13(木) 20:15:57.23
WinでC/C++やっているやっている奴はVSのproでMFCしているのか?
仕事ならともかく、趣味でやっている奴はProなんて高くて買えないだろ
apiでゴリゴリならC#、VBだろう
738デフォルトの名無しさん:2013/06/13(木) 20:20:08.22
>趣味でやっている奴はProなんて高くて買えないだろ
そうだね。でもMFCにしがみつくのはジジイだけ
>apiでゴリゴリならC#
イミフ
739デフォルトの名無しさん:2013/06/13(木) 20:22:19.32
学生ライセンスでタダ乗りやろ?
知らんけど裏技あるらしいで
740デフォルトの名無しさん:2013/06/13(木) 20:57:33.70
>>739
学生はアカデミックなんとかあるから激安でPRO(?)使えるからな

>>738
爺以外はどんな、フレームワークを良く使っているんだ?
お前は何を使っているの
741デフォルトの名無しさん:2013/06/13(木) 21:00:33.04
>>740
WPF。
C++でGUIとか、ゲームだけにして。
742デフォルトの名無しさん:2013/06/13(木) 21:21:59.35
C++でWPFって良く使われているのか
743デフォルトの名無しさん:2013/06/13(木) 22:28:44.79
だが殆どのメジャーな市販アプリはC++でGUIという現実
744デフォルトの名無しさん:2013/06/13(木) 22:33:13.23
たぶん全てのWEBブラウザがC++で書かれてる
745デフォルトの名無しさん:2013/06/13(木) 22:38:26.48
ちょっと待って5万そこらで高いとか言ってんの?
趣味に5万もかけられないとか貧困すぎるだろ
746デフォルトの名無しさん:2013/06/13(木) 22:53:44.58
趣味で5万はまあいいんだが、1年で2013が出るのはちょっと心が折れそう
747デフォルトの名無しさん:2013/06/13(木) 23:52:52.04
趣味でも毎年5万程度ならたいしたこと無いだろう
748デフォルトの名無しさん:2013/06/14(金) 00:28:25.13
貧乏人に趣味を選ぶ権利などない
文句があるなら働け屑が
749デフォルトの名無しさん:2013/06/14(金) 00:51:47.32
Winプログラミングは金がある奴がするものだからな。貧乏人はLinux/GNUで
今年、VC2013が出るのか。Win8.1を出すからなのか、C++11完全対応を餌に金儲けか
750デフォルトの名無しさん:2013/06/14(金) 00:59:29.79
Expressではだめなんでしょうか?
751デフォルトの名無しさん:2013/06/14(金) 01:37:39.73
Express+Qtでいいんじゃない?
やったことないけど
752デフォルトの名無しさん:2013/06/14(金) 04:48:51.77
QtCreator使えよ。
753デフォルトの名無しさん:2013/06/14(金) 06:31:48.33
普通ATLだよ
754デフォルトの名無しさん:2013/06/14(金) 06:46:33.33
プログラミング入門の勉強のため以外にCやC++に存在価値なんて有るんですか?
755デフォルトの名無しさん:2013/06/14(金) 06:49:37.70
はい。
756デフォルトの名無しさん:2013/06/14(金) 07:14:57.40
うちの会社も、案件減ったとはいえ、まだ6割くらいはC++だからなあ
C++「も」書ける人なら、食いっぱぐれはないだろう
757デフォルトの名無しさん:2013/06/14(金) 08:55:43.85
>>754
それが理解できるようになるまで頑張って勉強しましょう
758デフォルトの名無しさん:2013/06/14(金) 19:50:14.49
VC10のC++11対応がクソすぎるんで試しにVC11入れてみたんだけど、臭い立つクソが普通に臭いクソに
なっただけだった。
C++BuilderがClang採用するらしいんだけど、使ってる人いる?コード補完とかカーソル合わせた時の型
名ポップアップとかある?デバッガ含めて全体の使い勝手とかどう?32bit版もちゃんとClangでC++11対
応してる?情報激しく求む。
759デフォルトの名無しさん:2013/06/14(金) 20:23:44.57
学生ならDreamSparkでやりたい放題じゃん
760デフォルトの名無しさん:2013/06/14(金) 20:44:33.31
windowsを窓から投げ捨てろw
C++11するならまずlinux、100歩譲ってmac、windowsは捨て捨てポイw
761デフォルトの名無しさん:2013/06/14(金) 21:25:07.90
VC2012でのC++11の対応率は95%ぐらいはあるの?
2012だから100%とはいわなくても95%ぐらいはないとな
今年の2013は当然C++11完全対応で、C++14を色々取り入れたものになるんだろう 
762デフォルトの名無しさん:2013/06/14(金) 21:39:17.53
763デフォルトの名無しさん:2013/06/14(金) 21:47:25.14
C++ BuilderのClang採用は64bit版だけ、格安のStarter版は32bit開発限定だから
恩恵を受けられない。
Clangが目的なら10万円くらいするPro版以上必須で恩恵を受けられるのは64bit
開発に限られる。
てか、Clang本体はフリーなんだから、IDE諦めてCUIで使えば?
IDE欲しさに10万円とかありえん話だわ。
764デフォルトの名無しさん:2013/06/14(金) 21:55:12.57
>>762
そんなものなのか,orz。MSはC++やる気無いんじゃないのか
これじゃVC2013でもC++11の完全対応は無いかも知れないな
一方俺様製作のC#・VB等に力入れているんだろうが
765片山博文MZパンク ◆0lBZNi.Q7evd :2013/06/14(金) 21:57:02.07
ということは、clang用のIDEを作れば受けるんだな?
766デフォルトの名無しさん:2013/06/14(金) 22:03:29.79
microsoft も clang に興味を示しているとかいないとかニュースになってた気が
767デフォルトの名無しさん:2013/06/14(金) 23:05:21.33
gccでいいじゃん
768デフォルトの名無しさん:2013/06/14(金) 23:23:24.30
GCCはまだ準拠度低いから
769デフォルトの名無しさん:2013/06/15(土) 00:23:50.68
ClangをWindowsで使っている奴いる?
770デフォルトの名無しさん:2013/06/15(土) 21:44:31.92
>>769
なにその罰ゲーム?
linuxならソース引っ張ってきてmakeしてmake installするだけの作業でも
windowsだとググってコマンドラインツールかき集めてソース修正してコンパ
イルしたらなんかうまくいかなくて再びググってって、どんだけマゾなのかw
771デフォルトの名無しさん:2013/06/15(土) 21:47:31.84
>>770
make地獄はオナニストの趣味だろ
出来の悪いReadmeを前に、
他人が出来ないmakeを通すことに
喜びを覚え自慢するという
772 ◆QZaw55cn4c :2013/06/15(土) 22:57:05.13
>>769
cygwin にはすでに入ってるので時々使う
773デフォルトの名無しさん:2013/06/16(日) 01:28:59.15
ああっ、もうダメッ! ぁあ…C++出るっ、C++14出ますうっ!!
ビッ、ブリュッ、ブリュブリュブ リュゥゥゥーーーーーッッッ!!!
いやああああっっっ!!見ないで、お願 いぃぃぃっっっ!!!
ブジュッ!ジャアアバァーーーーーッッッ…ブシャッ! ブババババババアアアアア アッッッッ!!!!
んはああーーーーっっっ!!!ウッ、ウ ンッ、クロノォォォッッ!!!
ムリムリイッッ!!ブチュブチュッッ、ミ チミチミチィィッッ!!!
おおっ!ODRッ!!ウッ、ウンッ、右辺値ッッ!!!右辺値見てぇっ ああっ、もう ダメッ!!はうああ あーーーーっっっ!!!
ブリイッ!ブボッ!ブリブリブ リィィィィッッッッ!!!! いやぁぁっ!あたし、こんなにいっぱいラムダ出してるゥゥッ!
ぶびびびびびびぃぃぃぃぃぃぃっっっっ!!!!ボトボトボトォォッッ!!!
ぁあ…例外出るっ、例外出ます うっ!! ビッ、ブリュッ、ブリュブリュブ リュゥゥゥーーーーーッッッ!!!
いやああああっっっ!!見ないで、お願 いぃぃぃっっっ!!!
ブジュッ!ジャアアア アーーーーーーッッッ…ブJAVAAAAアアアア アッッッッ!!!!
んはああーーーーっっっ!!!ウッ、ウ ンッ、constォォォッッ!!! ムリムリイッッ!!
ブチュブチュッッ、ミチミチミチィィッッ!!! おおっ!
アッ!!アッ、アウッ、autoッッ!!!トレイリングリターンタイプ見てぇっ
ああっ、もう ダメッ!!はうああ あーーーーっっっ!!! ブリイッ!ブボッ!ブリブリブ リィィィィッッッッ!!!!
いやぁぁっ!あたし、こんなにいっぱいエラー出してるゥゥッ!
ぶブイビぃぃーーっっっ!!!!ボトボ トボトォォッッ!!!
ぁあ…型推論出るっ、型名出ます うっ!! ビッ、ブリュッ、ブリュブリュブ リュゥゥゥーーーーーッッッ!!!
いやああああっっっ!!見ないで、お願 いぃぃぃっっっ!!! ブジュッ!
イテレーターーーーッッッ…ブシャッ! ブババババババアアアアア アッッッッ!!!!
774デフォルトの名無しさん:2013/06/16(日) 04:00:49.16
> アウッ、autoッッ

775デフォルトの名無しさん:2013/06/16(日) 06:51:55.39
初学者用のきれいなので頼む
776デフォルトの名無しさん:2013/06/16(日) 08:35:54.10
【IT】 「C言語やJavaを使う人は採用しない」「AGKやDarkBASICの方が生産効率が高い」就職活動
http://kohada.2ch.net/test/read.cgi/pcnews/1365242417/139-141

コンソール研究所は13日、C言語やJavaを使う学生を採用しない方針を固めた。

これは昨今のソフトウェア開発現場において社内研修期間を嫌う企業や官公庁の意向を取り入れたもので、
「 卒業=即戦力 」 が求められる新時代への突入を明確にしたものである。

たいていの面接官は ” 学生時代にどんな部活に所属していましたか? ” などと聞くが、それは時代遅れと
なったようだ。

また、C言語やJavaのスキルを問うものに対しても、「 実務経験がなければ意味がない 」 と言う現場の声も
反映した。

コンソール研究所の開発現場から一人の声を拾ってみた。
(以下ソース参照)
777デフォルトの名無しさん:2013/06/16(日) 08:37:01.45
ググっても出てこない会社なんぞどうでもいい
778デフォルトの名無しさん:2013/06/16(日) 08:38:32.51
アホやな
javaというゴミを排除したい気持ちはわかるが
Cをおろそかにするカスはいつまでたっても良いプログラマにならない
779デフォルトの名無しさん:2013/06/16(日) 09:24:03.54
コンソール研究所はクソコテなのでNGに放り込むとよい
780デフォルトの名無しさん:2013/06/16(日) 10:52:19.40
リンク先見たらマジ基地さんではないか
マストNG
781デフォルトの名無しさん:2013/06/16(日) 11:39:07.37
コンソール研究所なんてはじめて聞いたなあ
その戦略でどんな結果が残せるのか見物だな
782デフォルトの名無しさん:2013/06/16(日) 11:54:11.44
COBOLを駆逐する勢いのJavaが怖いんだろ

まあJavaはいろいろと設計が古いんで後から後から建て増しして文法が汚くなり、
C#に見劣りするようになってしまったけど、C#も今となっては十分汚いな

特にLinqが入ってから汚くなった
これとラムダ式を組み合わせるともはや暗号に近い領域
783デフォルトの名無しさん:2013/06/16(日) 11:55:58.43
しかしLINQをパクろうとしているjavaであった
784デフォルトの名無しさん:2013/06/16(日) 12:05:14.04
LINQができてから、C#もいいと思うようになったけれどね。
それに、まずC++には、refやoutの書式があったほうがいい。
785デフォルトの名無しさん:2013/06/16(日) 12:29:16.39
>>784
LINQ はちょっといいなと思うが、ref と out はいらんだろ
786デフォルトの名無しさん:2013/06/16(日) 12:32:07.07
LINQよりメソッドチェーンのが見やすい
787デフォルトの名無しさん:2013/06/16(日) 12:44:24.02
vc++2012 で実現できる、スマートな可変長引数の処理の仕方はどんなものでしょう。
型は固定でいいです。
788デフォルトの名無しさん:2013/06/16(日) 13:06:02.87
>>782
COBOLは(WinPCベース限定)とっくにVBAに駆逐されてるが。

WSとかLINUXだと今でもCOBOLが新規で使われることあるんだろか...
保守ならわからんでもない(30年前のソースコードを無修正でビルドして動かせるような言語を他に知らんし)。
789デフォルトの名無しさん:2013/06/16(日) 13:37:09.53
>>787
可変長テンプレートのこと?だとしたらVisual C++ Compiler November 2012 CTP入れれば使えるけど
VS2012そのものは更新されないから、C++11絡みの機能使うとインテリセンスがスットコドッコイな赤線を
エディタ上に一杯引いてエラー報告してくるよ。一応コンパイルは通るから、そんなんでも良いなら使えば?
790デフォルトの名無しさん:2013/06/16(日) 13:39:49.10
Microsoft倒産しろ
中身のないビジュアル系といい
おっさん御用達のOfficeといい
ろくなものを作らない
791デフォルトの名無しさん:2013/06/16(日) 13:44:47.79
>>788
企業だと、オブジェクト指向COBOL使う。
792デフォルトの名無しさん:2013/06/16(日) 13:47:21.57
>>790
本当にろくでもないものばかりなら、世界シェアぶっちぎりで1位は保てないんじゃないかとマジレス
793デフォルトの名無しさん:2013/06/16(日) 13:55:10.15
なんでもエクセルで書いてメールに添付するバカがやっと淘汰されつつある。
クラウド化万歳w

てか、そもそも、メール一斉送信して読んだら返信てシステム自体がバカすぎて笑える。
今までよく我慢してたなと関心するわw
794デフォルトの名無しさん:2013/06/16(日) 13:55:17.08
>>792
"誰にとって"良いものなのか、だけの問題たろ。
795デフォルトの名無しさん:2013/06/16(日) 14:15:45.08
>>792
基本的にこの世界はバカによる多数決で成り立ってる
シェアで良し悪しを語るのはバカのやることだよ
796デフォルトの名無しさん:2013/06/16(日) 14:18:02.20
不思議なのはITの仕事してる人間がExcelとかメールの誤用をなんの疑いもなくやってる事だ
797デフォルトの名無しさん:2013/06/16(日) 14:20:31.24
べつに「正しい使い方」とかないと思うよ、方眼紙もわるくないよ
ところで「メールの誤用」って具体的にどういうものを指すの?
誤用といわれてもちょっと思いつかないんだけれど
798デフォルトの名無しさん:2013/06/16(日) 14:21:53.09
>>795
馬鹿の独裁よりはましだし、いいんじゃない?そもそも馬鹿の定義って何?
799デフォルトの名無しさん:2013/06/16(日) 14:24:53.52
>>790
で?Visual Studioより優れた開発環境ってどれなの?
教えてくれないか?そんなのがあるなら喜んで移行するから
800デフォルトの名無しさん:2013/06/16(日) 14:48:18.50
gccならそもそもvs使えんし
801デフォルトの名無しさん:2013/06/16(日) 15:14:25.85
VwwwwwwSwwwwwwwwwwww
802デフォルトの名無しさん:2013/06/16(日) 15:47:36.38
バカがカキコするから糞スレになってきたな
803デフォルトの名無しさん:2013/06/16(日) 16:47:44.11
仕方ないよ
IT業界にはバカしかいない
とくににちゃんを見てる層にはね
804デフォルトの名無しさん:2013/06/16(日) 19:13:06.38
>>803
2chは馬鹿・キチの集うところだからな
おまえら、自分は馬鹿・キチって自覚しろよ
805デフォルトの名無しさん:2013/06/16(日) 22:28:14.74
オナニーを研究しようぜ!
オナニ研究所、名前が直接的すぎるな。
G研究所、セルフシコシコ、
自らを慰める研究淫の会…
よしコンソール研究所でいこう!
こうして生まれたのがコンソーレであった。
806デフォルトの名無しさん:2013/06/16(日) 22:47:56.85
見ないで、お願 いぃぃぃっっっ!!!
ブジュッ!ジャアバァーーーーーッッッ…
ブシャッ! ブバババJAVAaaaァッッッッ!!!!
んはああーーーーっっっ!!!
ああっ、もう ダメッ!!はうああ あーーーーっっっ!!!
ブリイッ!ブボッ!ブリブリブ ィビィィィィッッッッ!!!!
いやぁぁっ!ぁあ…例外出るっ、例外出ます!!
ァッッ!!!だめ戻り値見てぇぇっ
ああっ、もう ダメッ!!
いやぁぁっ!あたし、こんなにいっぱいエラー出してるゥゥッ!
ぶブイビぃぃーーっっっ!!!!ボトボトボトォォッッ!!!
ウッ、ウ 右○値見てぇぇぇっっっ!
807片山博文MZパンク ◆0lBZNi.Q7evd :2013/06/17(月) 00:51:34.19
今、逆アセンブラ作ってる。最終的には逆コンパイラにしたい。そこでC/C++のパーサーが必要なんだけど、いいのありませんか?
808デフォルトの名無しさん:2013/06/17(月) 01:04:47.34
809デフォルトの名無しさん:2013/06/17(月) 11:03:52.61
.Net Frameworkにおける例外処理はもはや戻り値判定に成り下がってしまってるのは問題
なんじゃないかって思う。

スレチか。
810片山博文MZパンク ◆0lBZNi.Q7evd :2013/06/17(月) 12:51:11.11
>>808 ありがとうございます。
811デフォルトの名無しさん:2013/06/17(月) 15:04:38.87
>>809
それはお前の使い方がおかしいだけ
812デフォルトの名無しさん:2013/06/17(月) 20:02:04.59
ものによってはこれ何で例外なの?ってのがあるのは確か
FTPでエラーが帰ってきたのとか、例外じゃなくてもいいだろ
IsError プロパティでも用意すればいいだけ
813デフォルトの名無しさん:2013/06/17(月) 20:20:34.81
>>812
FTPマニア向けFTPフル実装クラスだったら
ステータスを取れるようにすべきだけど
FTPでファイルを取ってくる通信クラス
だったら
例外でいいんじゃない?
814デフォルトの名無しさん:2013/06/17(月) 20:29:06.80
FtpWebRequestだよ
基本何でもできる
815デフォルトの名無しさん:2013/06/18(火) 00:05:58.11
今、sha1ハッシュ処理書いてる。最終的には暗号解読したい。そこでラインダールのアルゴリズムが必用なんだけど、いいのありませんか?
816デフォルトの名無しさん:2013/06/18(火) 00:12:52.98
あるよ
817デフォルトの名無しさん:2013/06/18(火) 00:20:12.83
てめー0lBZNi.Q7evd をdisってんのか
アルゴリズムさえあれば
暗号解読ぐらい朝飯前なお方だぞ
818デフォルトの名無しさん:2013/06/18(火) 07:57:59.03
>>815
>sha1ハッシュ処理書いてる。最終的には暗号解読したい
速度出したいなら、既存の高速演算できる実装を拾ってくればいいんじゃ……
819デフォルトの名無しさん:2013/06/18(火) 13:22:43.87
>>813
例外は、回復不能で続行不能な場合に限るのが良いと思う。
「FTPのエラー」なら、回復不能でも続行不能でもないから、例外にしない方がいいと個人的には思う。
820デフォルトの名無しさん:2013/06/18(火) 13:39:11.85
片っ端から例外吐いて落ちるアプリ作ると面白いな
821デフォルトの名無しさん:2013/06/18(火) 14:07:41.14
>>819
最近その意見スゲー多いんだが、もしかして今やそっちのが主流派なのか?
822デフォルトの名無しさん:2013/06/18(火) 14:54:33.15
>>821
昔と今が変わったのか、またどちらが主流派なのかは分からないけど、俺は昔から>>819な考え方だよ。
例えば、HTTPで401や404エラーになったとき、httpコンポーネントが例外をthrowしたらやりにくいでしょ?
FTPでも同じ。
823デフォルトの名無しさん:2013/06/18(火) 15:03:05.93
【第01回】ミクと学ぶC言語【開発環境】を見て勉強してるんだけど4分27秒のとこの
ビルトってやつ押してもエラー音だけで何も変わらない
書いたソース見ても動画のと同じだしどうしたらいいの?
824デフォルトの名無しさん:2013/06/18(火) 15:12:54.22
#include<stdio.h>

int main(void) {
int a=10;
int b=20;
int c;
c=a+b;
printf("c = %d\n",c);
return 0;
}

↑なんだけど…どっか間違ってる?
825デフォルトの名無しさん:2013/06/18(火) 15:14:36.31
例外はコンストラクタに投げさせるものじゃね?w
826デフォルトの名無しさん:2013/06/18(火) 15:30:55.52
>>824
文法的には問題ない
827デフォルトの名無しさん:2013/06/18(火) 15:47:55.65
文法的に問題ないならなんで30ってでずに書いたソースのままでるの?
828デフォルトの名無しさん:2013/06/18(火) 15:51:32.02
>>827
お前がプログラミングに向いてないから
829デフォルトの名無しさん:2013/06/18(火) 16:07:22.74
コンパイラってなんですか?
830デフォルトの名無しさん:2013/06/18(火) 16:08:33.00
>>828
そういうことはいいからちゃんと教えてよー…
なんでこうなるか知りたいんだ
831デフォルトの名無しさん:2013/06/18(火) 16:09:13.80
>>830
なら、最低「こう」の内容を明記しろ
832デフォルトの名無しさん:2013/06/18(火) 16:35:23.68
>>830
「こう」になんてならないみたいだけどw
http://codepad.org/NVxPTj4D
833デフォルトの名無しさん:2013/06/18(火) 16:44:25.43
もしかして「コンパイル」せずに単にテキストエディタで見たというオチじゃないだろうなw
834デフォルトの名無しさん:2013/06/18(火) 17:50:24.35
>>830
入力待ちが無いからコンソールが一瞬だけ表示されてまたエディタ画面に戻っているだけだと思う
Ctrl+F5を押せばいいと思うよ
835デフォルトの名無しさん:2013/06/18(火) 17:52:04.65
rubyだかなんだかのスクリプトのつもりでやってるんじゃないの?
836デフォルトの名無しさん:2013/06/18(火) 17:57:26.51
>>834
なるほどねー。動画確認したらF5押せとか言ってたな。ないわー。

勉強するならこっちのがいいかもよ。
http://dotinstall.com/

まあ、ミクじゃないとモチベーションが上がらないならこのまま続ければいいと思うが。
837デフォルトの名無しさん:2013/06/18(火) 19:08:40.38
>>836
でもまあ「F5押せ」と言いたくなるのは分かる
(正確には「ビルドする」であって「実行する」ではないが)
つか今時bcc使うとかないわ、せめてVisual Studio にしろよと
あっちならブレークポイント置いとけば勝手に止まるし、コマンドラインコンパイラも使えるしな
838デフォルトの名無しさん:2013/06/18(火) 21:31:59.11
BCCにはブレークポイントとか
コマンドラインコンパイラー無いんですか?
839デフォルトの名無しさん:2013/06/18(火) 21:58:52.75
初歩的な質問で申し訳無いけど
()っていちいちローマ字入力にしないと打てないんだがどうすればいいの?
840デフォルトの名無しさん:2013/06/18(火) 22:13:30.72
>>839
必要なときだけ日本語入力にすればいいんじゃないかな。
841デフォルトの名無しさん:2013/06/18(火) 23:01:36.89
おまいさんのレベルだとむしろ日本語を使わない方がいい
842デフォルトの名無しさん:2013/06/18(火) 23:11:48.10
ぽっくんは仮名入力ですが
普通に()が入力できます
ATOKで変換キーを押すと入力できます
843デフォルトの名無しさん:2013/06/19(水) 10:34:26.25
>>838
ブレークポイントはあるよ
デバッガがついてこないだけで
844デフォルトの名無しさん:2013/06/19(水) 11:01:26.73
デバッガのついてこないブレークポイントとは
どのような概念なのか
845デフォルトの名無しさん:2013/06/19(水) 11:08:45.85
>>839
全角で記号打ち込んでF8押すと半角になるよ
846デフォルトの名無しさん:2013/06/19(水) 11:21:48.77
847デフォルトの名無しさん:2013/06/19(水) 13:14:08.11
>>846=馬鹿
848デフォルトの名無しさん:2013/06/19(水) 20:11:15.22
visualstudioにてwinsockを用いたTCPのプログラムを作成しています
バッファリング処理はバッファをstrcatで連結していけばよいのでしょうか?
もしもっといい方法があるなら教えて頂けないでしょうか
849デフォルトの名無しさん:2013/06/19(水) 20:42:43.79
std::vector<unsigned char>
850848:2013/06/19(水) 22:21:43.35
>>849
早速のレスありがとうございます
なるほどvectorなんて便利なものを使うのですね
ありがとうございます
851デフォルトの名無しさん:2013/06/19(水) 22:48:30.41
>vectorなんて便利なものを使う
いやそれはおかしい。
固定長だろうとデリミタまでの可変長だろうと、
大きめの固定長バッファを一つ用意して
受信APIに
渡す次の書き込み位置をずらしていくことで
受信データを完成させるべき。
852デフォルトの名無しさん:2013/06/19(水) 23:28:56.07
そんなものに「べき」なんてないよ
853デフォルトの名無しさん:2013/06/19(水) 23:32:39.00
生winsock apiならvectorはないでしょ。
vector使うって奴、コード書いてみ?
854デフォルトの名無しさん:2013/06/19(水) 23:41:47.60
>>853
ただ単にお前さんがvectorの使い方知らないだけだよ
855デフォルトの名無しさん:2013/06/19(水) 23:55:35.41
>>854
いいからコード書いてみろ。
856デフォルトの名無しさん:2013/06/20(木) 00:08:18.83
>>855
こういうのいいよな
「馬鹿には無理」とか言う奴に「コード書いてみろ」と言うと大抵逃げる
単なる冷やかしと煽りなのが良く分かる
857デフォルトの名無しさん:2013/06/20(木) 00:16:55.23
こういう発言にちゃんとIDが出れば、
同一人か同かもわかるし、いい加減な煽りはできなくなる
そして、まじめなやり取りだけが書かれるようになる
スレの住人にとってこんなに有意義な事はない
858851:2013/06/20(木) 00:19:37.02
>>855
ほらよ(>>854のコードの想像)
http://codepad.org/TMb1wok8
859デフォルトの名無しさん:2013/06/20(木) 00:19:46.59
めんどくさいだけじゃね?
860デフォルトの名無しさん:2013/06/20(木) 00:19:52.15
いやそうはならない
861デフォルトの名無しさん:2013/06/20(木) 00:20:32.24
バカの相手するだけ無駄
「コード書いてみろ」だってよw
862859:2013/06/20(木) 00:23:28.53
フォローいれた瞬間ほぼ同時にコード出してくるとは
863デフォルトの名無しさん:2013/06/20(木) 00:29:29.63
コード書かないのは電文形式によって全然違うアプローチになるからだけど
アホには分からないんだろうなあ
もっとも俺はvectorをバッファとして使うのは無駄な初期化コストが入るからやらないけど
864デフォルトの名無しさん:2013/06/20(木) 00:43:31.90
vector使うメリットないじゃん。
865デフォルトの名無しさん:2013/06/20(木) 00:43:33.90
>vectorをバッファとして使うのは無駄な初期化コスト
いやそれはおかしい。
無駄なのは「初期」コストじゃない。

>>852=>>854=>>861=>>863
そこまでバカなの?
866デフォルトの名無しさん:2013/06/20(木) 00:50:37.11
>>857
IDなんていくらでも変えられるから意味なし
特に>>856に言ってんなら日付またいでるから本人が意図しなくても変わってる
クズはIDが何なのかも分かってないみたいだなw
867デフォルトの名無しさん:2013/06/20(木) 00:51:56.36
>>865
やっぱ、コードも書けなくて想像で言ってるんだと思うよ。
recv()の周辺数行書けば意図を表明できるのにやらない。できないんだと思うよ。
868デフォルトの名無しさん:2013/06/20(木) 00:52:42.10
>>856
煽ったらコードが出てくると思った?

コード乞食もここまでくると哀れ。

そんな非生産的なことやってるとか生きてる価値ないよお前。
869デフォルトの名無しさん:2013/06/20(木) 00:53:11.40
いくらでも変えることは出来るが、変える奴は信用されない。
だから、IDは有効なツールになる。
870片山博文MZパンク ◆0lBZNi.Q7evd :2013/06/20(木) 00:53:28.70
現在のサイズを記録してresizeメソッド使った後、追記すればデータ型は関係ない。

そんなの関係ねー
871デフォルトの名無しさん:2013/06/20(木) 00:54:17.49
858の糞コードは明らかに854を
揶揄するものだったけど
話をそらそうとしているのは
まさか図星だったのか
872デフォルトの名無しさん:2013/06/20(木) 00:56:58.80
vector脳
873デフォルトの名無しさん:2013/06/20(木) 01:00:16.63
>>869
意図しなくても日付が変わればIDも変わるのに何言ってんのこいつ

毎日0時に議論リセットか?w
だったらトリップのほうが確実
874デフォルトの名無しさん:2013/06/20(木) 01:02:47.62
やめて!
>>852=>>854=>>861=>>863=>>866=>>868=>>873
のライフはもうゼロよ!
875デフォルトの名無しさん:2013/06/20(木) 01:06:58.74
>>865
じゃあ何が無駄なんだよ言ってみろ
876デフォルトの名無しさん:2013/06/20(木) 01:08:25.69
馬鹿に言うだけ無駄
877デフォルトの名無しさん:2013/06/20(木) 01:11:55.15
>>875
だから、コード書いてみろよ。
878デフォルトの名無しさん:2013/06/20(木) 01:14:36.27
メモリブロック再確保。
resizeやreserve使えば回避できる
879デフォルトの名無しさん:2013/06/20(木) 01:19:49.49
ぼよよん
ぼよよん
まったりいきましょ
880デフォルトの名無しさん:2013/06/20(木) 01:24:12.05
char (unsigned char) 配列をポインタで指して書き込みさせるインターフェースに対して
std::vector<char> を使うと、 resize() の際の 0 初期化が切り離せないので無駄が生じる。

初期化無しのメモリ確保は reserve() でできるけど、 size() を超えた書き込みは許されない
ので結局使えない。
881デフォルトの名無しさん:2013/06/20(木) 01:24:51.40
もちろんvectorはグローバル変数が基本です。
そうしないとreserveしても
初期コストがかかるからね。
NRVを進化させた「グローバル
共有戻り値最適化」と呼んで欲しい。
882デフォルトの名無しさん:2013/06/20(木) 01:25:33.43
vectorを使うメリットは、free()やdelete []することなしにメソッドの何処からでもreturnできる、
位しか思い付かないけど、他に何かある?
883デフォルトの名無しさん:2013/06/20(木) 01:25:46.71
size_t siz; //サイズ記録
vector<BYTE> buf;
buf.resize(siz + 10);
memcpy(&buf[siz], mem, 10);
siz += 10;
884デフォルトの名無しさん:2013/06/20(木) 01:26:11.05
>>881 ローカルなvectorの「初期コスト」って何のこと言ってるの?
885デフォルトの名無しさん:2013/06/20(木) 01:29:01.46
>resize() の際の 0 初期化
ネットワークI/Oの話をしているときに
バカですか?
0初期化のコストは測定限界以下の誤差
886デフォルトの名無しさん:2013/06/20(木) 01:29:07.34
>>882
それだけでもあれば使わない理由は無いと思うんだが、それじゃ足りないと思うの?

他に大きいのは例外飛んでも安心ってとこかな。
887デフォルトの名無しさん:2013/06/20(木) 01:32:22.46
0 初期化しないresize()が欲しいな。どこにおねだりすればいい?
888880:2013/06/20(木) 01:32:30.95
>>885
ああ、そういう特定の状況について使うべき・べきではないと言ったわけじゃないよ。
一般的に「無駄が生じる」と言っているだけ。
889デフォルトの名無しさん:2013/06/20(木) 01:33:24.69
890デフォルトの名無しさん:2013/06/20(木) 01:36:18.01
>>884
vector kuso_recv() {
 vector buf; ←これだろ
 buf.push_back(糞);
 return buf;
}

>>887
何もしないconstructのアロケーターを
vectorの第二テンプレート引数に渡す
891デフォルトの名無しさん:2013/06/20(木) 01:38:52.64
>>885
>0初期化のコストは測定限界以下の誤差
測定したこともないのがバレバレ
まあ、そんな高パフォーマンスを要求されるプログラム書いたこともないんだろうけど
892片山博文MZパンク ◆0lBZNi.Q7evd :2013/06/20(木) 01:46:55.60
今日は勉強になる書き込みが多い。ありがとう。

見せ金詐偽に気を付けようね。
893デフォルトの名無しさん:2013/06/20(木) 01:47:41.94
自分が使ってるライブラリのstd::uninitialized_fillの実装を調べたこともないのが丸わかりな奴が
ドヤ顔で「測定限界以下」とか言い張っても苦笑するしかない
894デフォルトの名無しさん:2013/06/20(木) 02:03:04.72
>>893
参考までに、ゼロ初期化のコストが
問題となるケースを教えて下さい
・求められる平均スループット(MiB/s)
・1秒間に発生するresizeの回数と合計の増分サイズ
少なくともTCP通信というミリ秒レベルの処理で
これらが問題となることはあり得ないのでは
ないかと思います

あとstd::uninitialized_fillというのも
vectorの話から唐突で、何の関係があるのか
さっぱりわかりません
895デフォルトの名無しさん:2013/06/20(木) 02:05:01.07
>>890
そのconstructはAllocator requirementsに適合しないね。
896890:2013/06/20(木) 02:11:02.86
>>895
どのあたりが?
897デフォルトの名無しさん:2013/06/20(木) 02:11:24.12
>>894
893 じゃないけど、例えば渡したバッファに対してすでにメモリ上にキャッシュ済みの
データ列を指定サイズ書き出すようなケースを考えるとして、本来 memcpy() 相当で
済むはずのところが memset() + memcpy() 相当となり、単純にメモリアクセスの回数で
考えて「読み+書き」が「書き+読み+書き」で、だいたい 1.5 倍に増えることになる。
898デフォルトの名無しさん:2013/06/20(木) 02:11:59.60
結局どうすれば?
899デフォルトの名無しさん:2013/06/20(木) 02:13:42.54
>>897
それは0初期化と関係ないでしょ
900895:2013/06/20(木) 02:13:44.63
>>896
↓このあたり。
17.6.3.5 [allocator.requirements] Table 28
> a.construct(c, args) Effect: Constructs an object of type C at c
901890:2013/06/20(木) 02:14:45.78
>>900
いやそれは読んだ。
それのどこに適合しないの?
902デフォルトの名無しさん:2013/06/20(木) 02:15:17.89
>>899
memset()が「0初期化」に相当するってことで、あってると思うけど?
903デフォルトの名無しさん:2013/06/20(木) 02:16:20.56
>>901
C型のオブジェクトを構築するものと要求されているところで何もしなければ適合しないに決まってるだろ。
904890:2013/06/20(木) 02:20:57.31
>>903
unsigned charのオブジェクトの構築に
ゼロ初期化の処理など要らんだろ
何を逝っているんだお前は

unsigned char c;
これだってオブジェクトは「構築」されている。
「構築」された状態にするのに処理が不要だっただけ
905デフォルトの名無しさん:2013/06/20(木) 02:29:38.03
>Allocator requirementsに適合しないね。
>どのあたりが?
>17.6.3.5 [allocator.requirements] Table 28
>いやそれは読んだ。

こいつらキチガイ
906デフォルトの名無しさん:2013/06/20(木) 02:37:55.21
プログラマとしては正常な精神状態です。
907デフォルトの名無しさん:2013/06/20(木) 02:44:34.70
いやいやいや、ここは初心者スレだから
vector?便利なものがあるねってレベルで
908895:2013/06/20(木) 02:45:41.19
>>904
そうなのか?と思って調べてみたら "construct" の定義が見つからなかった。

1.8 [intro.object] p1 の "An object is created by a definition, by a new-expression or
by the implementation when needed." で言う "create" と同義と解釈してたんだけど、
定義が無くて曖昧ということならそういう解釈もできるね。
909890:2013/06/20(木) 02:57:22.86
>>908
constructの説明に近いのは8.5の冒頭か
何もしてないというより
default-initializeをした状態と言うべき
910895:2013/06/20(木) 02:58:33.84
>>909
もうちょっと調べたら 8.5 [dcl.init] p7 にあった。
"An object that is value-initialized is deemed to be constructed ... even if no constructor
is invoked for the object’s initialization."

ってことで "Constructs ..." には value-initialized が( unsigned char なら 0 初期化が)
必要となるので、やっぱり何もしないconstructはAllocator requirementsに適合しないね。
911デフォルトの名無しさん:2013/06/20(木) 03:02:16.73
おねだりしましょう
912890:2013/06/20(木) 03:24:32.71
>>910
それは「value-initializeされたものはconstructされたと見なす」
であってconstructの条件じゃないんじゃないの
例えば8.5p11で初期化子が無いためにvalue-initializeでなく
default-initialize(p6)されてデフォルトコンストラクターが
呼ばれたクラスオブジェクトが
constructされていないかといったらそれは違うだろう
913デフォルトの名無しさん:2013/06/20(木) 03:40:46.09
>>912
そのケースを「constructされていない」とすると矛盾が生じる記述があるかな?
914895:2013/06/20(木) 03:55:29.44
>>912
クラスのコンストラクタが完了した場合は当然constructされたものとみなされるよ。
>910 で挙げた規定は、それに加えて、コンストラクタを使わずに value-initialized
れたものについてもconstructされたとみなされるってことね。
http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#508
915デフォルトの名無しさん:2013/06/20(木) 03:59:52.12
英語でおねだりして
ねこ、まっしぐら
916デフォルトの名無しさん:2013/06/20(木) 04:19:04.38
>クラスのコンストラクタが完了した場合は当然constructされたものとみなされる
Why?
constructの定義が無いんだろ?
917デフォルトの名無しさん:2013/06/20(木) 04:22:31.40
江添さんチーッス!
918895:2013/06/20(木) 04:27:24.88
>>916
あぁ、ごめんよ。
>>908を書いた時点ではクラスじゃないものに明らかに適用できない
「コンストラクタの完了」はconstructの定義になりえないと思ってたけど、
>>910で見つけた記述や>>914で挙げたDRを読んだら、十分条件の
ひとつと数えて問題ないと考え直したんだ。
919デフォルトの名無しさん:2013/06/20(木) 05:42:06.43
>>894
今のネットワークHW性能はミリ秒単位なんかじゃない
無駄なメモリアクセスがどれだけパフォーマンス上で問題になるかマルチコア
をフルに使ったプログラムをまじめに組めばはっきりと分かること

std::uninitialized_fillが何か分からないならvectorのコンストラクタやresizeを
デバッガでステップ実行してみれ

あとstd::vectorの初期化はカスタムアロケータじゃ回避できないよ
920デフォルトの名無しさん:2013/06/20(木) 05:59:25.14
俺が言ってるvectorの初期化コストが問題って言うのはHW性能のギリギリレベルの
パフォーマンスが要求されるような場合の話であって
そうじゃない場合はvectorを汎用バッファとして使ったって勿論何の問題もない
全てはケースバイケース
921デフォルトの名無しさん:2013/06/20(木) 06:03:30.08
いったん確保した領域を使いまわせ。
サイズ拡大する予定ならリサーブしとけ。
922デフォルトの名無しさん:2013/06/20(木) 06:04:12.54
unsigned char buf[16384];
大抵はこれでいける。
923890:2013/06/20(木) 07:04:06.25
>>918
何を言っているかさっぱりわからんぞ
・value-initializeでなくてもコンストラクターの完了したら
 construct完了になるというのはどこから読み取った?
・constructの十分条件でなく必要条件が
 value-initializedとどこから読み取った?
924895:2013/06/20(木) 11:12:15.57
>>923
> ・value-initializeでなくてもコンストラクターの完了したら
>  construct完了になるというのはどこから読み取った?

「constructorが完了したらconstructedである」という、単語の関連から可能な解釈であって、
どこから読み取ったということは無い。
「initializationが完了したらinitializedである」とか「modificationの対象はmodified」とかそういうの。

> ・constructの十分条件でなく必要条件が
>  value-initializedとどこから読み取った?

型を限定せずオブジェクト一般について、"constructed"となる条件は、上記の解釈と
>910で挙げた特記事項により、「コンストラクタが完了した、またはvalue-initializedされた」
と、2つの十分条件があり、他には無い(見当たっていない)。unsigned charについて言えば
前者は成立し得ないので、後者が必要(必要十分条件)になると判断した。
925デフォルトの名無しさん:2013/06/20(木) 18:30:30.08
最近流行ってるUNKO/KUSOって
元ネタはなんなの?
926デフォルトの名無しさん:2013/06/20(木) 19:43:57.33
foo、bar、hoge、hageの代わりじゃね?
UNCHI(United China)、UNKO(United Korea)かも判らんが。
927デフォルトの名無しさん:2013/06/20(木) 20:16:06.62
幼稚だよね
928デフォルトの名無しさん:2013/06/20(木) 20:19:28.60
NG推奨ワード
foo/bar/hoge/fuga/KUSO/UNKO
929デフォルトの名無しさん:2013/06/20(木) 22:37:47.87
bazとpiyoを使えということか!
930デフォルトの名無しさん:2013/06/26(水) 18:02:42.23
こんなんみつけた
http://www.ishani.org/web/articles/code/clang-win32/
http://www.ishani.org/web/articles/code/clangvsx/

ClangとVisualStudioを統合できるらしいんだけど、使い方が分かんねー
VSxのコンパイルはできてアドインのインストールまではできるんだけど
リビルドアクティブプロジェクトでリンクエラー出るorz
931デフォルトの名無しさん:2013/06/26(水) 21:46:10.89
>>924
>後者が必要(必要十分条件)になる

亀レスだけど、
必用と十分の区別もつかないアホだな。
932デフォルトの名無しさん:2013/06/26(水) 21:52:17.90
え?
933デフォルトの名無しさん:2013/06/26(水) 22:15:30.18
>>930
バックエンドが互換性無いんだから
統合したところで実用にならないような…
934デフォルトの名無しさん:2013/06/26(水) 22:34:13.81
>>930
統合ってIDEはVS、
コンパイラ、ライブラリはビルドしたClangのものをVSで使えるようにするってこと?
935デフォルトの名無しさん:2013/06/27(木) 01:21:07.82
インテリセンスで Clangの機能を呼べるのか? 呼べないとマズイような
936デフォルトの名無しさん:2013/06/27(木) 19:05:10.70
【初心者姦ゲイ】C/C++室 Ver.84【姦狂依存OK】
937デフォルトの名無しさん:2013/06/27(木) 19:31:29.38
>>935
無理だった上にC++11の構文をみつけるとインテリセンスがエラーの赤線引くウザい
938デフォルトの名無しさん:2013/06/28(金) 17:17:03.93
Windows Vista Home SP2 32bit
VC++ 2010 Express Edition

この開発環境でトリップを生成するにはどのような手順が必要ですか?
#testを◆.CzKQna1OUに変換したいです

unistd.hをインクルードしてcryptを使用するソースは見つかるのですが
Windows上ではcryptは使用できないみたいなのです
939デフォルトの名無しさん:2013/06/28(金) 17:41:16.16
cryptのアルゴリズム調べれば済むだろゴミ
940デフォルトの名無しさん:2013/06/28(金) 19:42:55.97
関数のアルゴリズム調べろとかいう奴がゴミ
Perl持ってくりゃいいだろ
941デフォルトの名無しさん:2013/06/28(金) 20:26:57.63
>>938
こんな風に直してみて

#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
#include <limits.h>
#ifdef HAVE_PWD_H
#include <pwd.h>
#endif
#ifndef _PASSWORD_EFMT1
#define _PASSWORD_EFMT1 '_'
#endif
942デフォルトの名無しさん:2013/06/28(金) 21:00:28.33
limits.hにcryptは無いぞ
943デフォルトの名無しさん:2013/06/28(金) 22:40:15.85
理由は分からないが、以前limits.hにある定義を使ってたのかも

>static char sccsid[] = "@(#)crypt.c 5.11 (Berkeley) 6/25/91";
>static char sccsid[] = "@(#)crypt.c 8.1.1.1 (Berkeley) 8/18/93";

このソースには入っていた
944デフォルトの名無しさん:2013/06/28(金) 22:40:24.48
>>938
cryptのC言語実装なんてググればすぐ出てくるだろ
945デフォルトの名無しさん:2013/06/28(金) 22:45:24.39
コードをググル時のゴミ(hatenaとかtwitterとかstackoverflowとか諸々)避け汎用キーワードって何?
946デフォルトの名無しさん:2013/06/28(金) 22:49:38.56
>>945 汎用キーワード? -site: じゃダメなのか?
947938:2013/06/28(金) 23:33:54.00
このサイトのコードでsaltを求め
ttp://trip2ch.net/wiki/index.php?%E3%83%88%E3%83%AA%E3%83%83%E3%83%97%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0

go言語でのソースなら関数まるまる書いてる所があったので
それをC言語に直してやってみたらうまくいきました
ありがとうございました
948デフォルトの名無しさん:2013/06/29(土) 05:03:06.94
>>945
ゴミはお前だろ
949デフォルトの名無しさん:2013/06/29(土) 05:42:19.27
>以前limits.hにある定義を使ってたのかも
>このソースには入っていた
こういう馬鹿を見るとイラっとする
950デフォルトの名無しさん:2013/06/30(日) 01:55:56.22 ID:hro7qS4x!
vector<int> aa;
const int x = 4;
const int y = 4;
int tmp[x][y] = {
{1, 1, 1, 0},
{0, 1, 0, 1},
{0, 1, 1, 1},
{0, 0, 0, 1},
};
for (int i = 0; i < x; ++i) {
vector<int> a;
for (int j = 0; j < y; ++j) {
a.push_back(tmp[i][y]);
}
aa.push_back(a);
}
とやって、aa[i][j]とかでaaの要素を使おうとおもってたのですがうまくいきません。

for (int i = 0; i < (int)aa.size(); ++i) {
for (int j = 0; j < (int)aa[i].size(); ++j) {
cout << aa[i][j] << " ";
}
cout << endl;
}
こんな感じで表示させると、
0 0 0 0
0 0 0 0
0 0 0 0
12775664 12775664 12775664 12775664
とか表示されます。どこか間違ってるか教えて下さい。
951デフォルトの名無しさん:2013/06/30(日) 02:03:16.73
いくら「vector」と言っても、実際のデータ構造はほぼ普通の1次元配列
……つまり、aaとaは両方intの1次元配列と考えて差し支えない
要するに、「aa.push_back(a);」は、「aa[i] = a」と書くようなもの。そりゃ上手くいかないわけだ

ちなみに、vectorを入れ子にすれば2次元以上の配列も宣言可能。詳しくはググれ
952デフォルトの名無しさん:2013/06/30(日) 02:08:00.15
tmp[i][y]
953デフォルトの名無しさん:2013/06/30(日) 02:11:31.29 ID:hro7qS4x!
ありがとうございます!
すいません、
vector< vector<int> > aa;
としてやったのですが、ソースをコピーするときに間違えました。
954デフォルトの名無しさん:2013/06/30(日) 02:23:47.94 ID:hro7qS4x!
すいません、ミスわかりました。
955デフォルトの名無しさん:2013/06/30(日) 10:19:32.38
>いくら「vector」と言っても、実際のデータ構造はほぼ普通の1次元配列
>>951はvectorを何だと思ってたんだろう
956デフォルトの名無しさん:2013/06/30(日) 10:25:44.66
vector、奴は四天王の中でも最弱…
957デフォルトの名無しさん:2013/06/30(日) 10:50:04.79
>>955
実際ほぼ「動的にサイズ変更できる1次元配列」だろ……
まあコンテナ自体、「templateを駆使して作った便利な配列」なんだけど
958デフォルトの名無しさん:2013/06/30(日) 11:03:47.79
「実際」とか「ほぼ」じゃなくて、1次元配列と同じ扱いが出来るのが保証されてるのがvectorの利点じゃ?
あとコンテナは配列だけじゃないだろ、連結リストとか
959デフォルトの名無しさん:2013/06/30(日) 11:06:47.65
>>957
一次元配列のデータ構造をしたコンテナーに
他ならないのだけれど、
「いくらvectorと言っても」とは?
960デフォルトの名無しさん:2013/06/30(日) 11:07:13.49
std::listにはoperator[]がないぞ

std::dequeのoperator[]は複雑な演算を必要とするのか著しく遅いし
961デフォルトの名無しさん:2013/06/30(日) 11:09:34.53
http://d.hatena.ne.jp/kikairoya/20100718/1279465696

こんな感じか
gccのdequeは結構速いんだな
962デフォルトの名無しさん:2013/06/30(日) 11:22:59.85
>>960
operator[]ってコンテナの要件に含まれてたっけ?
963デフォルトの名無しさん:2013/06/30(日) 11:26:39.19
んなわけないだろ
ランダムアクセスできなければコンテナじゃない
だなんて
964デフォルトの名無しさん:2013/06/30(日) 11:28:00.43
>>962
いやいや今回のように一次元配列とか二次元配列でアクセスする場合は必要だろう、って話
別にコンテナの要件ではない
965デフォルトの名無しさん:2013/06/30(日) 12:51:42.04
何いってんの?
966デフォルトの名無しさん:2013/06/30(日) 13:41:26.69
>>965
理解できないんならレスしなくていいよ
967デフォルトの名無しさん:2013/06/30(日) 14:15:53.10
そもそも>>960が見当違いだ
968デフォルトの名無しさん:2013/06/30(日) 14:39:45.22
>>967
お前は話を良く読んでない
969デフォルトの名無しさん:2013/06/30(日) 20:23:34.24
質問です

仮想クラス IHoge と関数 void Piyo(IHoge* pHoge) があり、
関数 Piyo の内部では pHoge の実行時の型でコピーを作りたいと思っているのですが、
どのような実装をすればいいのでしょうか。
970デフォルトの名無しさん:2013/06/30(日) 20:30:21.96
人にものを訪ねるときはpiyoとhogeを使うな
話はそれからだ
971デフォルトの名無しさん:2013/06/30(日) 20:31:04.08
PiyoとHogeを使った質問しか出来ません
972デフォルトの名無しさん:2013/06/30(日) 20:31:18.42
すみません…
書き直した方が良いですか
973デフォルトの名無しさん:2013/06/30(日) 20:31:35.88
じゃあshine
974デフォルトの名無しさん:2013/06/30(日) 20:35:08.04
自分のコピーを作る関数を規定する
975デフォルトの名無しさん:2013/06/30(日) 20:40:18.02
>>974
なるほど
ありがとうございます
976デフォルトの名無しさん:2013/07/01(月) 15:22:02.85
>>975
ゴミグズはやっぱり恥ずかしくないんだな
hogeとか書いといてまたのこのこ出てくるとか頭悪すぎ
977デフォルトの名無しさん:2013/07/01(月) 16:24:04.94
hogehoge
978デフォルトの名無しさん:2013/07/01(月) 16:45:26.28
hoge排除厨はなぜかfoo barには文句を付けないだよね
979デフォルトの名無しさん:2013/07/01(月) 17:20:02.14
いやfoo barも同じ
980デフォルトの名無しさん:2013/07/01(月) 17:31:10.54
この程度でゴミクズ呼ばわりされては
>>975もたまらないだろうけど
安易にhogeを使うと争いに巻き込まれる
という勉強にはなっただろう
981デフォルトの名無しさん:2013/07/01(月) 17:57:50.11
hogeというクラスを作りたいのですが、どうやればいいですか><
982デフォルトの名無しさん:2013/07/01(月) 18:03:29.32
まずロープで首を吊ります
983デフォルトの名無しさん:2013/07/01(月) 18:07:14.98
なんでhogeって嫌われてるの?
そもそも一般的に嫌われているのか、ここのスレだけなのか、一部のアンチだけなのか
984デフォルトの名無しさん:2013/07/01(月) 18:24:57.70
このスレの一部のアンチ
985デフォルトの名無しさん:2013/07/01(月) 18:39:27.31
下手したら一人のキチガイという可能性もあるw
986デフォルトの名無しさん:2013/07/01(月) 19:02:42.35
嫌われているという風に見せてるネタだと思ってた
987デフォルトの名無しさん:2013/07/01(月) 19:18:17.08
また始まったよ
こんな下らないことにゴチャゴチャ言う奴って俺の想像を超えた無能なんだろうなぁ
988デフォルトの名無しさん:2013/07/01(月) 19:29:54.34
当然だろ
ム板にいてもプログラムを書けないからこそhogeに妙にこだわったり
人の事を馬鹿呼ばわりする位しか出来ない
989デフォルトの名無しさん:2013/07/01(月) 19:34:19.75
hogeがすぐに出てくるのは普段日本語の資料しか調べてない証拠

日本語より英語の資料のほうが多いのに、わざわざ少ない日本語の資料を選ぶ
→合理的な思考回路を持たない基地害

基地害はプログラミングなんかやってる場合ではない
病院行け
990デフォルトの名無しさん:2013/07/01(月) 19:44:27.09
>>989
発狂中の病人が病院を抜け出して書いております
とっとと病院に(・∀・)カエレ!!
991デフォルトの名無しさん:2013/07/01(月) 19:44:29.96
>>987
一般的に嫌われてるよ。
「エックス、イコール、100です」って言っても変な奴だとは思われないけど、
「ほげぇ、イコール、100です」って言ったらあいつ絶対おかしいって話になる。
試しに何人かにこれ言ってみな。
992デフォルトの名無しさん:2013/07/01(月) 19:46:59.58
C++をディスるためにやってることだからスレが荒れればなんでもいいんだろ
hoge使うなはそもそも合理的理由が無く、ゆえに論理的な反論がされないから言い放題で好きなだけ荒らせる便利な口実
ましてその辺を理解できず便乗したり信じそうになる奴がいるんだからやめられないだろうな
993デフォルトの名無しさん:2013/07/01(月) 19:47:50.08
「問題です。えっくすイコールひゃく、わいイコールえっくす、ではわいはいくつでしょう?」
「問題です。ほげぇほげぇイコールひゃく、ふがぴよイコールほげぇほげぇ、ではふがぴよはいくつでしょう?」
994デフォルトの名無しさん:2013/07/01(月) 19:50:03.58
C++をディスるためにやってることだからスレが荒れればなんでもいいんだろ
そもそもhogeを使う合理的理由が無く、ゆえに論理的な反論がされないから使い放題で好きなだけ荒らせる便利な口実
ましてその辺を理解できず便乗したり信じそうになる奴がいるんだからやめられないだろうな
995デフォルトの名無しさん:2013/07/01(月) 20:00:11.22
うぜぇなもう>>1にhoge禁止っとけよ。
996デフォルトの名無しさん:2013/07/01(月) 20:05:01.19
【初心者歓迎】C/C++室 Ver.85【環境依存OK】
http://toro.2ch.net/test/read.cgi/tech/1372676667/
997デフォルトの名無しさん:2013/07/01(月) 20:43:39.05
要するに、C++について行けない無能な上に人格障害患っているゴミが粘着して暴れてるってだけ
998デフォルトの名無しさん:2013/07/01(月) 20:48:53.35
>>997
そこまで自覚あるならやめてくれない?
999デフォルトの名無しさん:2013/07/01(月) 23:39:31.97
hogeとコードに実際に書いたところで品質に左右されるわけじゃねーんだから気にすんなよ
1000デフォルトの名無しさん:2013/07/01(月) 23:40:50.78
です
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。