トップページ⇒tech
1001コメント264KB

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

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2013/04/28(日) 17:27:19.70
エスケープシーケンスや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が重い事があるのでここも利用)
0002デフォルトの名無しさん2013/04/28(日) 18:02:07.74
NG推奨:半角にして登録してくだい
◆QZaw55cn4c
◆0lBZNi.Q7evd
/tech/1313183984/
0003デフォルトの名無しさん2013/04/28(日) 19:30:08.32
>>2に追加

NG必須:半角にして登録してくだい
hoge
片山
0004デフォルトの名無しさん2013/04/28(日) 20:25:38.66
hogeは日本の美しい表記です。それを否定するのは非国民
0005デフォルトの名無しさん2013/04/28(日) 21:29:44.13
HOGEってのはキモいウニユーザーの
イメージがあるな。
奴らは一般人と会話するときにもHOGEを
使うから困ったものだ。
0006デフォルトの名無しさん2013/04/28(日) 21:39:25.63
大昔、日常会話の中で「ピー syntax error!」と叫ぶ人がいた。
今は絶滅してると思う、たぶん。
0007デフォルトの名無しさん2013/04/28(日) 21:43:49.40
キュンキュンキュン! キュンキュンキュン!
私のハードディスクに記録しているのでありますっ☆
0008デフォルトの名無しさん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
という警告が出たのですが、
これってどういうときに出るのでしょうか?
また、無視してよい物なのでしょうか?
0009デフォルトの名無しさん2013/04/29(月) 14:15:44.74
>>8
もともとどこかでreadが宣言されてたけど
オマエがreadを宣言しちゃったから
オマエの方が優先されるけどいいんだな
という警告と思われる
0010デフォルトの名無しさん2013/04/29(月) 17:11:14.32
ゆとり世代のわがままっぷりが良く分かる
0011デフォルトの名無しさん2013/04/29(月) 17:13:48.53
>>10
なぜそれを「ゆとり世代」とか「わがまま」と感じたのか興味あるね

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

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

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

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

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

マゾにもほどがある
0079デフォルトの名無しさん2013/05/06(月) 20:56:21.61
>>67
君の中ではそうなんだろうな (w
0080デフォルトの名無しさん2013/05/07(火) 00:00:14.38
inlineの仕様は「通常の関数呼び出しするより
中身を展開する方が望ましい(prefer to)」
だからなあ。
ODRが主目的でないのは異論が無いと思うけど
インライン展開されると言い切られるとちょっと違う。
0081デフォルトの名無しさん2013/05/07(火) 00:30:46.24
ほんとに展開されるかどうかはわからんもんね
0082デフォルトの名無しさん2013/05/08(水) 04:33:36.98
多重継承は正義だったのでしょうか?
0083デフォルトの名無しさん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;
}
0084デフォルトの名無しさん2013/05/09(木) 13:26:24.36
最後の引数が間違ってるからじゃね?
0085デフォルトの名無しさん2013/05/09(木) 14:55:06.54
VCだとNULLで通るんだがなぁ

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

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

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

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

まあgccはEclipse CDT入れてるからいいけどさ
0104デフォルトの名無しさん2013/05/11(土) 20:00:35.28
>>101
環境を述べた上であれば環境固有の話をしてもいいスレです。
Visual C++と説明した上でC90の話をすることは構いませんが
話の前提をVisual C++の低スペックに合わせる不自由を
他人に要求しないでください
0105デフォルトの名無しさん2013/05/11(土) 20:03:23.82
VS2012が低スペックだと・・・?
0106デフォルトの名無しさん2013/05/11(土) 20:03:48.04
もろちん
0107デフォルトの名無しさん2013/05/11(土) 20:13:39.14
>>105
1990年仕様のままで
1999,2011の2回の改訂に
全く追従してないからな。
Cについては化石だろ?
0108デフォルトの名無しさん2013/05/11(土) 20:19:31.69
msとしてはC++使えってスタンスだからな
しゃあない
0109デフォルトの名無しさん2013/05/11(土) 20:20:21.64
gccとかclangの方がマシとは
0110デフォルトの名無しさん2013/05/11(土) 20:38:59.38
ウンコVCにはハーブサッター氏も困っている
http://herbsutter.com/2012/05/03/reader-qa-what-about-vc-and-c99/
0111デフォルトの名無しさん2013/05/11(土) 20:44:37.15
でもMSってClangに興味を持って秘かに取り入れようとしてるんでしょ?SP2位で入れて来たりして
0112デフォルトの名無しさん2013/05/11(土) 20:47:47.88
>>111
4月に出たうぷだて2には入っていませんでしたよ
0113デフォルトの名無しさん2013/05/11(土) 20:53:30.93
>>111
半年の短期採用でどうにかなるもんじゃないだろ
0114デフォルトの名無しさん2013/05/11(土) 20:56:43.58
という事は次期バージョンか、それとも有償プラグインかよ
0115デフォルトの名無しさん2013/05/11(土) 21:04:25.96
>>99
いまやVC使っている奴よりGCCが圧倒的に多いだろ
VC捨ててGCCにする
0116デフォルトの名無しさん2013/05/11(土) 21:06:19.35
>>115
winの仕事でgccって、オマエばかなの?
0117デフォルトの名無しさん2013/05/11(土) 21:12:17.68
バカなんだろう
0118デフォルトの名無しさん2013/05/11(土) 21:24:24.62
GPLで仕事か
羨ましい(笑)
0119デフォルトの名無しさん2013/05/11(土) 21:31:12.46
でも、Visual C++ってC++11のサポートすら中途半端な低スペックだからな
低スペックな奴は低スペックなのが良いのかもな
0120デフォルトの名無しさん2013/05/11(土) 21:46:58.52
企業が開発する有償のコンパイラが
2011年9月の規格を2012年に完全に
盛り込むのは難しいだろう。
VC6の時は規格制定から約3ヶ月後の
出荷だったし、不幸なコンパイラだな。
0121デフォルトの名無しさん2013/05/11(土) 21:50:54.04
VC++は「みんな使ってるから安心」が最大のメリットなんだよ。
最新規格を追い求める向きはそういう製品をどうぞ。
0122デフォルトの名無しさん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またもやスルー
0123デフォルトの名無しさん2013/05/11(土) 22:01:04.11
vc糞過ぎる
0124デフォルトの名無しさん2013/05/11(土) 22:23:51.36
みんなって言うか、少数民族がじゃない
0125デフォルトの名無しさん2013/05/11(土) 22:27:03.20
>>124
仕事の話を趣味の話にすり替えないでください
0126デフォルトの名無しさん2013/05/11(土) 23:43:30.87
趣味ならともかく仕事の話ってなると小数派になるんじゃない?
組み込み屋もC/C++使っているんだから
で、MSはいまやあんまりVCに力入れてないように感じるんだけど
0127デフォルトの名無しさん2013/05/11(土) 23:45:28.77
まるで職業プログラマが全て組み込み屋みたいな言い方だね。
0128デフォルトの名無しさん2013/05/12(日) 00:07:31.06
>>126
なんか明後日の方向には力入れてる。
C++/CLIとかC++/CXとかなんかもう訳分からんw
0129デフォルトの名無しさん2013/05/12(日) 00:28:04.87
>>126
.NETの時代でしょー
SQL Server + .NETは超楽じゃん
0130デフォルトの名無しさん2013/05/12(日) 00:56:56.72
仕様策定者がレファレンス実装を出さないのが悪い
0131デフォルトの名無しさん2013/05/12(日) 01:01:02.49
>>128
C++の進化が亀過ぎで、自社で拡張しないといけないんだろう
MS的にはC++にしがみつくのは止めてねって感じかな
Win職業プログラマはMSの導きに従わないと、だんだん食いぱっくれるかも
0132デフォルトの名無しさん2013/05/12(日) 09:41:38.56
>>130
参照実装と言えば、
C99のジェネリックって_Genericも無しに
どうやって実現すんだ?と思ってヘッダーを覗いたら
ウンコな実装で拍子抜けしたでござる
0133デフォルトの名無しさん2013/05/12(日) 10:46:52.82
インターフェースがしっかりしててそれなりに動けばいいの
コンパイラ屋のモチベは下がるかも知れんけどw
0134デフォルトの名無しさん2013/05/12(日) 11:31:36.35
C99の似非ジェネリックなんていらねーよ
C#のジェネリックの方がよほど使える
というかさすがにスレ違いか
0135デフォルトの名無しさん2013/05/12(日) 11:37:31.51
そこでどうしてC++とかC11でなく
C#になったのた不思議。
第一、Cのジェネリックに対応するC#の仕様は
ジェネリクスでなくオーバーロード。
0136デフォルトの名無しさん2013/05/12(日) 11:44:39.61
C#のジェネリックはC++のテンプレートとは全然違うんだぜという話をしようとしたが、
これはするとしたらC#スレで話するわ
0137デフォルトの名無しさん2013/05/13(月) 21:28:49.53
むしろどう違うととらえてていたのか気になる
・C#では(クラス型は)物理的なインスタンスが一つ。
 つまりオーバーロードの解決はコンパイル時
・そのためTが満たすべき条件をC#では基本クラスで指定
 一方C++はコンセプトLite検討中?
・そのためC#は特殊化が原則無い
・でも倫理的なインスタンスの型情報(Tが何型か)は持っている
・C++は型以外の値そのものをパラメーターに指定可

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

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

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

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

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

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

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

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

基底クラスAがあり、そのAの派生クラスBがあり
Bのインスタンスを何度も生成した場合
B1とB2の基底クラスインスタンスAは
A単体なのかA1、A2と増えていくのかどちらですか?
0179片山博文MZパンク ◆0lBZNi.Q7evd 2013/05/16(木) 00:00:10.27
>>178 後者
0180デフォルトの名無しさん2013/05/16(木) 00:17:06.64
B1とB2はいったいどこから出てきたんだ
基底クラスインスタンスなんてわけわからん語を作るな
コードを書いて説明しろ
0181デフォルトの名無しさん2013/05/16(木) 00:18:53.86
こういうのが説明力がないっていうんだよな
会社で煙たがられる存在
0182デフォルトの名無しさん2013/05/16(木) 00:20:36.18
基底クラスインスタンスのメンバ変数を書き換えるようなメソッドを用意して実験したらいいんじゃないかな(エスパー)
0183デフォルトの名無しさん2013/05/16(木) 01:01:07.62
インスタンスの数=newした数(Java風)
だから顔の数じゃなくてボディの数で数えろと
0184デフォルトの名無しさん2013/05/16(木) 01:46:42.40
>>180
何度も生成するから
1、2、3、4、5…
と増えていくんだよ
0185デフォルトの名無しさん2013/05/16(木) 07:19:43.02
単体なのか増えていくのか、
質問するより、自分でコード書いた方が早いだろ
0186デフォルトの名無しさん2013/05/16(木) 09:52:49.32
こういうのは入門書でよくやる理解しやすいたとえ話でやるより
コード貼ってどうこうしたほうが…そもそも自作自演っぽく思えてきたけど
0187デフォルトの名無しさん2013/05/16(木) 11:35:44.57
たしかにQZはC++の知識がないから
QZの自演ってことはありうる
0188デフォルトの名無しさん2013/05/16(木) 12:25:09.68
>>178
結局何を聞きたいのかさっぱりだ
0189デフォルトの名無しさん2013/05/16(木) 12:34:47.33
派生を生成するために
基底のインスタンスも増えていったらメモリの無駄じゃないの?
0190デフォルトの名無しさん2013/05/16(木) 12:38:06.02
>>189
だったら派生せずに新しくクラスを作ればいいじゃん
0191デフォルトの名無しさん2013/05/16(木) 12:38:42.93
>>189
派生のインスタンスの中に基底のインスタンスに相当する部分が含まれているのでは?
0192デフォルトの名無しさん2013/05/16(木) 12:40:31.09
継承を一体何だと思ってんだか
0193デフォルトの名無しさん2013/05/16(木) 12:46:03.41
派生を複数生成しても
基底は1つになる方法はない?
0194デフォルトの名無しさん2013/05/16(木) 12:48:54.89
なんか意味を正しく理解してないのがいそうだからこの流れでは『インスタンス』禁止にしとけ
クラスTのインスタンス -> T型の変数 と言い換えとけ
0195デフォルトの名無しさん2013/05/16(木) 13:19:11.46
>>193
継承を使わずに基底にあたる型をshared_ptrとかでメンバに持つクラスにしろ
0196デフォルトの名無しさん2013/05/16(木) 13:25:38.02
>>193
virtual継承
0197デフォルトの名無しさん2013/05/16(木) 13:38:48.28
>>193
is-aとhas-aの違いはわかる?
0198デフォルトの名無しさん2013/05/16(木) 15:53:31.31
学生は人である
学生を増やしても人のインスタンスが一つになっている状況とは如何に
あれか、学生数の水増しかw
0199デフォルトの名無しさん2013/05/16(木) 16:17:39.82
>>193の中では継承はどういうイメージになってるんだ?
0200デフォルトの名無しさん2013/05/16(木) 17:01:59.23
>>193
派生を使わない。
基本クラスに持たせようとしていた情報は
グローバル変数で持つ。
派生クラスに持たせようとしていた情報は単独の
クラスにして
みんなでグローバル変数をみる
0201デフォルトの名無しさん2013/05/16(木) 17:04:43.82
>>193
コンポジションを使うとか
どうしても継承が必要なのか、継承を使わなくてもいいのかはよく検討すべき
0202デフォルトの名無しさん2013/05/16(木) 18:30:51.59
もうAとBとB1とB2を全部
グローバル変数にしようぜ
0203デフォルトの名無しさん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
0204デフォルトの名無しさん2013/05/17(金) 01:02:41.45
>>203
何故自分で試そうとしないのですか?
0205デフォルトの名無しさん2013/05/17(金) 01:11:23.80
>>203
これ見てわからなかったらもう来るなよミジンコ
http://ideone.com/ViHQJy
0206デフォルトの名無しさん2013/05/17(金) 01:41:05.07
くぎゅうぅぅ
0207デフォルトの名無しさん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.と同じ
0208デフォルトの名無しさん2013/05/17(金) 02:03:39.74
constは左隣につく、左側がない場合のみ、例外として右側につく、と覚えてる
0209KUSO KOTE2013/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
0210デフォルトの名無しさん2013/05/17(金) 07:20:10.83
>>203
1, 4 は例外的だし意味もあいまいだから「使わない」
0211デフォルトの名無しさん2013/05/17(金) 07:40:06.86
>>210
それぞれ3と6を使うってこと? それならむしろ自分は逆だなあ。
0212デフォルトの名無しさん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
って考えると、全然自然じゃない気もする。
0213デフォルトの名無しさん2013/05/17(金) 09:12:40.30
constは
・左側で一番近い
・型に付いて
修飾するというのが基本ルール
>>203の1,4はその基本ルールでは解釈できず>>208,210のいうように例外的に解釈しなければならないから不自然

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

自分は1,4を使う派だけど、constをどちらの目的で使うかによって、
型名とconstの位置が逆になるので、パッと見て分かりやすいかなー?と思っている。
0215デフォルトの名無しさん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はイミフだからエラー
って考えると自然?
0216デフォルトの名無しさん2013/05/17(金) 12:03:02.39
そんなかんじでいいんじゃない
0217デフォルトの名無しさん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、・・・?
0218デフォルトの名無しさん2013/05/17(金) 12:46:15.89
>・左側で一番近い
規格の該当個所はよ
0219KUSO KOTE2013/05/17(金) 15:03:07.06
>>217
記憶域指定子は別に左でなくても良いのだけれど
http://ideone.com/k9Lxqm
0220KUSO KOTE2013/05/17(金) 15:12:14.57
URL間違えたoops
http://ideone.com/PAlXVV
0221デフォルトの名無しさん2013/05/17(金) 15:19:59.33
http://msdn.microsoft.com/ja-jp/library/1b4az623.aspx
stringを取得する関数ってこれみたいに参照渡ししてることが多いけど、stringをreturnで返したら駄目なの?
0222KUSO KOTE2013/05/17(金) 15:31:43.27
>>221
昔は右辺値参照が無かったから
コピーのオーバーヘッドを避けるために
参照にしていたと思われる。
0223デフォルトの名無しさん2013/05/17(金) 15:47:36.06
やはりマイクロソフトの設計思想かな
マイクロソフトは昔から関数を
inに対してoutを与えるものでなく
「正否のステータスを返せるサブルーチン」
ととらえているところがある。
だから戻り値は参照渡しで受け取る
0224デフォルトの名無しさん2013/05/17(金) 15:50:21.95
>>221
C++の.NET拡張はスレ違い
0225デフォルトの名無しさん2013/05/17(金) 16:13:49.70
>>224
221はただの例示で本題はstd::stringだからな?
0226デフォルトの名無しさん2013/05/17(金) 16:22:45.99
C++の文字列はJavaみたいはimmutable
じゃないからねえ。
わざわざインスタンスを生成するより
使い回す方が自然。
0227デフォルトの名無しさん2013/05/17(金) 19:52:53.57
今回のconstもだけど、テンプレートやポインタ等の型を
コンパイラはどのように構文解析して型を決めるんだ?
0228デフォルトの名無しさん2013/05/17(金) 22:10:02.07
その状況で構文規則的にありえる構文候補を列挙してソースとマッチするものに絞り込んでいくんだがそういう話でなく?
0229デフォルトの名無しさん2013/05/17(金) 22:14:50.72
*で区切られると覚えれば
別に左とか右とかそんなのどうでもいいんだよ
0230KUSO KOTE2013/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に戻って解析を続ける

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

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

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

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

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

体感的には.NETが遅いので、C/C++を使うじゃないかとー
0300デフォルトの名無しさん2013/05/19(日) 11:55:29.30
C++のほうは個別のdelete終了ごとにアロケータの内部整合性を保たないといけないけど、
GCなら一括でいろいろできるね。
0301デフォルトの名無しさん2013/05/19(日) 11:56:19.37
>>299 .NETはPC上でしか動かないからな。組み込み.NETランタイムとか開発されれば別だが。
0302デフォルトの名無しさん2013/05/19(日) 11:58:53.09
速度だよ
似たようなアルゴリズムを .NET で実行と明らかに遅い
0303デフォルトの名無しさん2013/05/19(日) 12:04:51.96
標準、dlmalloc、tlsf、固定プールとか
いろいろ比較してみたいけど、なんか環境用意するのが面倒だな…
0304デフォルトの名無しさん2013/05/19(日) 12:08:21.19
>>302
比較コードはよ
0305デフォルトの名無しさん2013/05/19(日) 13:00:24.45
あいかわらず無意味な比較してるなあ
.NETのコア部分はC++で書かれてるのに
0306デフォルトの名無しさん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(...); });
こんな感じで書けたら素敵なんですが・・・・・・
0307デフォルトの名無しさん2013/05/19(日) 13:08:47.13
WaitForSingleObjectで別スレッドで動かすとか
0308デフォルトの名無しさん2013/05/19(日) 13:09:50.63
そこまで書けるのなら書けば良いじゃん
0309デフォルトの名無しさん2013/05/19(日) 13:10:13.45
>>305
>>253の疑問を晴らすには
そんなにおかしな比較とは思えんが、
いつかの空ループベンチよりはマシだ

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

んで、他のOSで(Windows7)確認してみたら一瞬、OS依存か
0315デフォルトの名無しさん2013/05/19(日) 14:06:21.42
>>311
POSIXには条件変数というクソな同期の仕組みがある。
そのクソ仕様はそのままC++11に取り込まれたけどな。
0316デフォルトの名無しさん2013/05/19(日) 14:37:12.62
>>310
>>281のC#はGCを含んでるだろ
0317規制外板にてレス代行依頼中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)で同じファイルディスクリプタを
指定した場合、どのように動作していたのでしょうか?
0318デフォルトの名無しさん2013/05/19(日) 15:38:02.15
>同じ値の場合、dup2() は何もせず、newfd を返す。
>というのが正しい処理だと思います

その根拠は?
0319規制外板にてレス代行依頼中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と違う場合は、どのような条件が
考えられるのでしょうか?
0320デフォルトの名無しさん2013/05/19(日) 16:01:03.13
>>319
そのLinuxの方はエラーが無い限りoldを
返すと書いてあるので、エラーが起きたかバグがあるか
BSDの方はエラーがある場合は同様だけれど
エラーが無い場合について言及されていないので
何が返っても文句は言えない

それ以上のことはリンク先のISO/IEC 9945-1:1990
とやらを読まないとなんとも
0321デフォルトの名無しさん2013/05/19(日) 18:17:05.12
>>306
C++11ならasyncとfuture::wait_for使うところかな
0322デフォルトの名無しさん2013/05/19(日) 18:30:11.24
中断が必要なものにfutureねぇ。
メイン側に待つ以外のやることもないし。
ループ構造なんだから、ループ開始前に
取得した
時刻からの経過時間に閾値を設けて
タイムアウトさせる所じゃないの?
0323デフォルトの名無しさん2013/05/19(日) 23:10:03.14
>>315
条件変数ってcondition variableのこと?
それならwin apiにもあったような
0324デフォルトの名無しさん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
って感じ?
0325デフォルトの名無しさん2013/05/19(日) 23:36:31.46
0はintなのでintです
終了
0326デフォルトの名無しさん2013/05/20(月) 03:08:47.68
autoで宣言する意味はないぞ。
0327デフォルトの名無しさん2013/05/20(月) 03:20:55.82
ゼロオーバーヘッドさん現る
0328デフォルトの名無しさん2013/05/20(月) 07:21:26.05
数値リテラルは型が分かりにくいのでautoにしない方がいい
0329デフォルトの名無しさん2013/05/20(月) 11:08:50.04
イテレータはautoが有効活用される場面の1つだし、
>324くらいならautoでもいいんじゃね? と思ったりする
0330デフォルトの名無しさん2013/05/20(月) 11:15:54.75
http://www32.ocn.ne.jp/~ons/text/CPP0xFAQ.html.ja#auto

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

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

まず、何をしたいのかよくわからない
0344デフォルトの名無しさん2013/05/21(火) 21:37:54.75
>>341
Professional版買うのがいいと思うよ
無償版のC++でGUIアプリとか無理ゲー
0345デフォルトの名無しさん2013/05/21(火) 21:40:02.19
インターフェイスなんか♯でいいだろ
0346デフォルトの名無しさん2013/05/21(火) 22:40:29.69
VS2010でC++は確かプラットフォームSDK入れないと
ネイティブコンパイルできないんじゃなかったっけ。
0347デフォルトの名無しさん2013/05/21(火) 22:41:39.68
ちなみにVSでProが必要なのは仕事でチーム開発する人とか
だけだと思うよ。基本機能はExpressで全部そろってる。
SDKとか追加で入れる手間はあるけど無料だし。
0348デフォルトの名無しさん2013/05/21(火) 23:00:36.68
>>342-344 VC6ではWM_〜をそのままコピペで使えたけど実力不足で
2010でSendMessageは難しそうです。レスありがとうございました。
0349デフォルトの名無しさん2013/05/21(火) 23:42:22.88
>>347
仕事でもVSS使ってるとこなんてごく少数だろ。
それよりもMFC/ATLが必要でPro買ってるのがほとんどじゃねーか?
0350デフォルトの名無しさん2013/05/22(水) 00:06:53.16
TFSは2012でExpressが出たでー
0351デフォルトの名無しさん2013/05/22(水) 00:22:58.84
visualassistがないとコーディング時のストレスがやばいからpro買ってる
0352デフォルトの名無しさん2013/05/22(水) 00:47:20.01
>>349
Proの評価版を入れてspy++を使えば良いんじゃ
評価版のspy++をexpressにコピペすればspy++が使えるんじゃないのか
評価期間終了したらコピペspy++を消せば良い
0353デフォルトの名無しさん2013/05/22(水) 01:11:36.21
...アンカー間違えてる,orz
>>352は>>341
0354デフォルトの名無しさん2013/05/22(水) 03:12:57.95
そもそもSendMessageするのに
なんでSpy++ツールが必要なのかふしぎ
0355KUSO KOTE2013/05/22(水) 03:26:33.98
>>346
Visual C++ 2010 ExpressでSDKが必要になるのは
64ビットコンパイルする時。
0356デフォルトの名無しさん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彡'´    / ハ      〈    彡'´  ノ    | | | |    \
                                | | | |      \
0357デフォルトの名無しさん2013/05/23(木) 22:22:51.29
>>352
お巡りさんこいつです。
0358デフォルトの名無しさん2013/05/27(月) 14:32:46.37
iniファイル作成時にコメントアウト文を挿入したいのですがどの関数を使えばいいですか?
WritePrivateProfileStringで代用しようとしましたがうまくいきません.
0359デフォルトの名無しさん2013/05/27(月) 18:44:56.35
>>358
fprintf
0360デフォルトの名無しさん2013/05/27(月) 19:12:16.65
APIの範囲じゃ無理
0361デフォルトの名無しさん2013/05/27(月) 19:41:25.25
内部設計書って本当に必要なのか?
インターフェイスや要件を文書できっちり決めなきゃならんのはわかるんだが
メソッドの中の処理を逐一日本語で書かされるのが納得いかない
こんな手間かけるならコード直接書いたほうが早いし見やすいじゃん
0362デフォルトの名無しさん2013/05/27(月) 20:08:13.26
>>361
まず君の会社の「ナイーヴ設計書」とやらが
他の会社の内部設計書と同じだと思わない方がいい。
一般には利用者から見えないプログラム内部構造や
使用するフレームワークを指す。

フローチャート相当の記述はアルゴリズムが
クリティカルなプログラムだけに限定したい
ってことには同意。
0363デフォルトの名無しさん2013/05/27(月) 20:12:33.99
>>361
それはドカタに作業させるのに必要なことだから
ドカタは対人間インターフェースを有する人型機械
その機械は逐一指示を受けて作業する作られている
0364デフォルトの名無しさん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>が必要で、普通の関数の時は要らない
っぽいって漠然とおぼろげに気がしたりしなかったりしてるんだけど・・・・・・・・・・
0365KUSO KOTE2013/05/27(月) 20:45:02.75
>>364
テンプレートにVisual C++の__stdcallは鬼門。
void (*__stdcall)(....) と
void (*)(....) は互換性がないから原則無理。
ラムダで囲っておけばたぶんok。
0366KUSO KOTE2013/05/27(月) 21:06:37.16
細かいところで間違い訂正。
 誤 result_type (* __stdcall pf)(....)
 正 result_type (__stdcall * pf)(....)
型は__stdcall pointer to functionじゃなくて
pointer to __stdcall functionだからね。
0367デフォルトの名無しさん2013/05/27(月) 21:17:53.46
>>365
>ラムダで囲っておけばたぶんok
って具体的にどうするの?

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

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

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

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

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

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

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

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

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

C++標準ライブラリの§13.10.3、P612と書いただろうが
それをお前が勝手に他の本と間違えただけ
0417デフォルトの名無しさん2013/05/31(金) 02:03:13.10
初心者は去れ!
0418デフォルトの名無しさん2013/05/31(金) 02:04:30.83
クックック・・・
0419デフォルトの名無しさん2013/05/31(金) 02:05:40.54
ウェーッハッハ!
0420デフォルトの名無しさん2013/05/31(金) 02:20:55.81
>>398
素人は黙ってな
とりあえず文句は代わりのコードを書いてから言え
0421デフォルトの名無しさん2013/05/31(金) 02:36:09.90
>>416
こいつ馬鹿?
0422デフォルトの名無しさん2013/05/31(金) 02:45:03.28
複数のbasic_ostreamを管理するbasic_ostreamを作ればいいじゃん。
と思ったけどリソース管理が汚くなりそうだ。
カスタムデリータの情報を消せる
type erasure版unique_ptrって無いですか?
0423デフォルトの名無しさん2013/05/31(金) 03:21:26.15
実体不明のstreamと実体不明のデリータでどうやって解放すんだよ
デリータをコンポジションしたリソースクラスでも作れば?
class resource_with_deleter_base{
 仮想デストラクタ
}
0424デフォルトの名無しさん2013/05/31(金) 03:23:16.91
>>421
馬鹿だから放置で
0425デフォルトの名無しさん2013/05/31(金) 03:30:52.44
「規格票」という用語を用いる人はたいてい労害JIS信者
ところで何で「票」なんだ?
0426デフォルトの名無しさん2013/05/31(金) 03:58:30.43
栗じゃおかしいだろ
0427デフォルトの名無しさん2013/05/31(金) 05:01:33.24
伝票とかの票だろうね
0428デフォルトの名無しさん2013/05/31(金) 08:12:06.93
>>422
shared_ptrをラップ(継承?)してコピーをdeleteすればいいんじゃね?
0429デフォルトの名無しさん2013/05/31(金) 08:53:08.87
>>428
shared_ptrのデストラクタってvirtualだっけ?
0430デフォルトの名無しさん2013/05/31(金) 08:59:00.42
お前はスマポをさらにポインタで運用するのか?
0431デフォルトの名無しさん2013/05/31(金) 09:01:08.49
>>429
たぶんそうじゃないから、それが嫌なら継承せずにラップするか、その他の
小細工を加える(operator new/deleteをprivateにする)とか好きにしたらいい。
0432デフォルトの名無しさん2013/05/31(金) 09:02:08.63
あ、operator new/deleteもdeleteでいいや。(privateにするのはC++03までのやりかた)
0433デフォルトの名無しさん2013/05/31(金) 10:32:17.64
>>432
馬鹿は帰れ
0434デフォルトの名無しさん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な時
このコードは安全ですか?
0435デフォルトの名無しさん2013/06/01(土) 08:07:30.73
new X(tmp.release())にすべきじゃね
0436デフォルトの名無しさん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
0437デフォルトの名無しさん2013/06/01(土) 08:59:35.19
>>434
安全かな
0438デフォルトの名無しさん2013/06/01(土) 09:44:50.81
そのソースだけではXがなにしてるかわからないので潜在的には危険と言わざるをえない
0439デフォルトの名無しさん2013/06/01(土) 12:14:22.90
>>438
寝言はうるさい
0440デフォルトの名無しさん2013/06/01(土) 13:37:39.49
new X(tmp.release())
これマジでだめなの?
こんなコードはそこらじゅうで
使われてると思うんだけど
0441デフォルトの名無しさん2013/06/01(土) 14:11:34.76
new X(tmp.release())
これマジでだめなの?
こんなコードはそこらじゅうで
使われてると思うんだけど
0442デフォルトの名無しさん2013/06/01(土) 14:12:16.59
>>440
Xの定義によるとしか言えないかな
bad_allocでリークするかどうかとかそういう事なら気にしなくていい
メモリ足りなければ即落すのが作法だからリークとか関係ない
0443デフォルトの名無しさん2013/06/01(土) 14:19:02.09
newがbad_alloc投げたら確実にリークする
メモリ足りない場合に落とすべきかどうかはケースバイケースなので
大丈夫だとは言いたくない
0444デフォルトの名無しさん2013/06/01(土) 14:23:05.06
世間ではナマポは勝ち組。
C++でナマポを一瞬でも使ったら
例外安全地獄で負け。
ただしオナーニのネタとしては最適。
0445デフォルトの名無しさん2013/06/01(土) 14:47:49.74
つまりC++でオナニーすること自体が負け組と言えよう
0446デフォルトの名無しさん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) );
0447デフォルトの名無しさん2013/06/01(土) 16:20:16.35
catch して mem.release(); すればいいだけ
0448デフォルトの名無しさん2013/06/01(土) 16:45:52.78
スマポは逃げ
>X(int *p) : mem(p)
これがそもそもおかしい
コンストラクションが完了していないのに所有権を移すのは
「失敗したときは元通り」というマナーに反するからね

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

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

と

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

って何か変わるの?
0477デフォルトの名無しさん2013/06/02(日) 01:02:11.93
>>476
インデントが一個得する
0478KUSO KOTE2013/06/02(日) 01:37:25.00
>>476
前者はreturnが無くてもOK。
後者はcatchの中にreturnが無いとundefined behavior。
本当にそれ以外の違いが思いつかない。。
0479デフォルトの名無しさん2013/06/02(日) 18:01:07.23
サンプルプログラムでutf16を扱うには
L"ほげ"
とありますが、Lとは何をincludeすれば使えますか?あとこれを表示するには
printf("%lc",L"ほげ");
であってますか?
0480デフォルトの名無しさん2013/06/02(日) 18:10:58.15
ほげとか言ってる時点で無理
0481デフォルトの名無しさん2013/06/02(日) 18:14:44.20
ざわ…ざわ…
0482デフォルトの名無しさん2013/06/02(日) 18:17:14.28
だめでした
utf16文字列がascii文字コードで扱える文字ばかり扱っているものと仮定して
(つまりアルファベットのみ使っている)
変換する方法はありますか?
0483デフォルトの名無しさん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"死ね");
とするのが良いでしょう。
04844832013/06/02(日) 18:30:08.18
setlocaleの引数間違えました。逆です。
0485デフォルトの名無しさん2013/06/02(日) 18:41:54.42
ありがとうございます
ですが::OutputDebugStringへの出し方がわからなかったので、結局
for(unsigned int i = 0 ; i < size_in_byte ; i++)
{
0486デフォルトの名無しさん2013/06/02(日) 18:43:07.93
::OutputDebugString("%c",((char*)utf16)[i]);
}
として強引に出力しました
本格的に必要になったらまた考えます
0487デフォルトの名無しさん2013/06/02(日) 18:50:02.53
解決したようで よかったな
もう二度と来るなよオマエ
0488デフォルトの名無しさん2013/06/02(日) 19:56:02.85
これはひどい
やはりホゲ脳にはちょっと難しかったかな…
0489デフォルトの名無しさん2013/06/02(日) 20:47:24.45
あまり知られてないマニアックな
文法を知りたいです
こんなのコンパイル通るのかよ
って例を教えてください
0490デフォルトの名無しさん2013/06/02(日) 21:26:27.92
operator()をオーバーロードして、test(0)(1)(2)(3)(4)(5)(6)(7)(8)(9);とか?
最初見た時なんじゃこりゃ?と思った
0491デフォルトの名無しさん2013/06/02(日) 21:30:58.08
1[a] = 100;
0492デフォルトの名無しさん2013/06/02(日) 21:43:06.06
>>489
IOCCCの投稿作品でも読めばいいんじゃね?
0493デフォルトの名無しさん2013/06/02(日) 21:54:15.92
C/C++でこの手のウンココードを競うとキリがない。
APLにはかなわないけど。
http://ideone.com/rEbxA0
0494デフォルトの名無しさん2013/06/02(日) 22:01:55.15
>test(0)(1)(2)(3)(4)(5)(6)(7)(8)(9)
SUGEEEE!
0495デフォルトの名無しさん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(...)
{
}
0496デフォルトの名無しさん2013/06/02(日) 22:36:15.20
>>489
こういうのでいいのかな
http://ideone.com/rw1hGJ
0497デフォルトの名無しさん2013/06/02(日) 22:48:09.91
あ、無駄に継承してしまってた
継承いらないや
0498デフォルトの名無しさん2013/06/02(日) 22:48:55.79
何でこうなるんだ、と思って調べたら
a->b が (a.operator->())->b になるのね。
勉強になった。
0499デフォルトの名無しさん2013/06/02(日) 22:48:56.62
こうだ
http://ideone.com/uTF33G
0500デフォルトの名無しさん2013/06/02(日) 22:49:41.98
ポインタに行き当たるまで operator-> を実行し続けるという仕様
意外とマイナーな仕様だと思う
0501デフォルトの名無しさん2013/06/02(日) 22:49:46.49
>>490,494
やりかたがわからん‥‥
0502デフォルトの名無しさん2013/06/02(日) 22:51:03.29
operator-> でスマポを返しても機能するのはこの仕様のおかげだから
スマポを使ってる人には常識
0503デフォルトの名無しさん2013/06/02(日) 22:51:45.11
>>501
別に
std::cout << a << b << c << d;
と同じ事やで
0504デフォルトの名無しさん2013/06/02(日) 22:52:16.17
>>501
自分自身の参照を返すんだよ
0505デフォルトの名無しさん2013/06/02(日) 23:02:24.96
>>499
せっかくだからヌルポで…
http://ideone.com/42b10V
0506デフォルトの名無しさん2013/06/02(日) 23:03:28.15
>>503
えうれか!http://codepad.org/QZZAUWC9
お題thx
0507デフォルトの名無しさん2013/06/02(日) 23:05:16.69
>>505
ガッ

NULLを使ったメンバ呼び出しって規格上どうなんだっけ
0508デフォルトの名無しさん2013/06/02(日) 23:17:36.53
>>507
たぶんNGだろうね
offsetofマクロが許されてこれがNGなのは
釈然としないけど
0509デフォルトの名無しさん2013/06/02(日) 23:55:14.76
sizeofは「式を評価しない」からOK
0510デフォルトの名無しさん2013/06/02(日) 23:56:48.77
Java使いが演算子オーバーロードが汚い
という理由がよくわかったわ
0511デフォルトの名無しさん2013/06/03(月) 00:38:25.96
get/setが汚いのに比べれば
0512デフォルトの名無しさん2013/06/03(月) 06:43:53.14
シーシャープが至高って事はわかった
0513デフォルトの名無しさん2013/06/03(月) 13:26:52.93
c#のプロパティ機能は、確かにちょっと欲しい。
演算子のオバロでどこまで行けるか…?
0514デフォルトの名無しさん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()で呼び出したいってことなんだけど・・・・・・・・・
0515デフォルトの名無しさん2013/06/05(水) 19:30:50.50
式テンプレート使えば?
0516デフォルトの名無しさん2013/06/05(水) 19:40:16.39
黒魔術でもなんでもなく普通に各パーツと中間の合体状態をクラスとして定義してoperator+をオーバーロードするだけじゃんか
0517デフォルトの名無しさん2013/06/05(水) 19:57:25.94
ラムダだとダメな気が。
0518デフォルトの名無しさん2013/06/05(水) 20:27:28.09
>>516 コードはよ
0519デフォルトの名無しさん2013/06/05(水) 21:14:08.93
いちいちautoと書くのは何か意味があるの?
autoなんてもう20年以上前からオブソリートなキーワードだと
思ってたけど。
0520デフォルトの名無しさん2013/06/05(水) 21:15:01.18
ぷらーん
釣りとしてイマイチ
0521デフォルトの名無しさん2013/06/05(水) 21:57:07.07
>>520
ぷらーんて、食い付いたんじゃないのかよw
0522デフォルトの名無しさん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)>
みたいに繋いで妥協するしかないだろう。
0523デフォルトの名無しさん2013/06/05(水) 23:43:07.02
>>514
まずテンプレート抜きでの基本から理解しないとはじまらないぞ
ttp://ideone.com/nhzkwq
テンプレートは魔法の道具じゃなく基本の延長にある普通の機能なんだから
0524デフォルトの名無しさん2013/06/06(木) 01:50:32.33
http://ideone.com/agSW9t
もっと一般化するならtupleとか使うことになるだろうけどなんかいやだな
0525デフォルトの名無しさん2013/06/06(木) 04:04:37.15
C++がそんな関数型なわけがないと言って出て行った友人が
5分後scalaかぶれになって帰ってきた。死にたいorz
0526デフォルトの名無しさん2013/06/06(木) 08:55:17.66
scalaってなーに
0527デフォルトの名無しさん2013/06/06(木) 10:01:03.61
砂糖を入れすぎたJava
0528デフォルトの名無しさん2013/06/06(木) 10:17:16.20
>>524
読みこなせなくて何がどうなってるのか分からない。オレサマダメスギワロエナイ
0529デフォルトの名無しさん2013/06/06(木) 13:44:01.05
他スレから誘導されてきました。

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

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

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

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

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

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

java c++ 呼び出し でググれ
0549デフォルトの名無しさん2013/06/07(金) 08:17:32.99
すんませーん質問さして下さい。
まずうちのコンパイラはVS2005です。
で、久々C++でコード書こうとおもってある程度のクラス作ったりして
std::wstringを使って文字列入れたんです。
で表示させようと思ってstd::wcoutを使っても表示されないので
ローケル設定してないせいか?と思ったんですが。
そのローケルの設定方法を忘れてしまいました。
C言語の方のローケルの設定方法はわかるんですが、C++の方の設定方法って
どうしたらよいか、どなたかご教示ください。
0550デフォルトの名無しさん2013/06/07(金) 08:25:05.74
>>544
javaでもnative修飾子はあるけど
それは、javaのプログラミング知識が結構豊富で
かつC++で書いたそのコードもよっぽり良いコード書で利用価値
があるなら良いけど、まぁ、そこまでの知識や技量があるなら
逆にこんなところで質問なんかしてるわけは無いな
0551デフォルトの名無しさん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(""))
0552デフォルトの名無しさん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として扱いたいのですが…
0553デフォルトの名無しさん2013/06/07(金) 13:05:27.20
>>552
あなたの要求は論理的に破綻してます
0554デフォルトの名無しさん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];
};
0555デフォルトの名無しさん2013/06/07(金) 14:02:06.70
こんぱいらさんの気持ちになってかんがえたらわかるかもしれません
0556デフォルトの名無しさん2013/06/07(金) 14:29:27.05
>554
この方法で解決はできるのですが、
mogeをAが提供する処理の中で使いたいのです…結局
struct B : public A<B,99>
とすることで自己解決しましたが、勉強になりました。
(普通じゃないかもしれませんが)
ありがとうございました。
0557デフォルトの名無しさん2013/06/07(金) 14:56:42.42
static_cast<T*>(this)->moge();
じゃダメなのか?
0558デフォルトの名無しさん2013/06/07(金) 15:41:51.43
>557
そういう方法もあるんですね??勉強になります。
出来るだけBの中身をすっきりしたいという希望もあり、
できればAに含めたかったのです。
virtual経由で、というのも考えたんですが、
数値計算用のコードで、計算時間クリティカルな場所だったので避けました。
そうじゃないならそもそもarrayでなく可変長使うんですが…
初心者なのでいまいちわかってないのですが
どのみち要素数がAに伝えられないと
Aで計算できないのでダメなのかと…
0559デフォルトの名無しさん2013/06/07(金) 15:44:06.58
>558
自己レス、可変長でも計算時間変わんないですね。
あほな事言いました。引数で渡せばいいだけか…
なんとなくarrayのように配列数を型情報に押し込めたかっただけです。
ありがとうございました。
0560デフォルトの名無しさん2013/06/07(金) 22:36:11.95
>>476
後者みたいな事出来たのか・・・・
0561デフォルトの名無しさん2013/06/07(金) 22:59:48.98
>>560
知らなくていいです
むしろ曲芸的コードは知らない方がいい
0562デフォルトの名無しさん2013/06/07(金) 23:53:15.65
他人が読めないコードに不可解な優越感を持つプログラマは意外と多いから困る
0563デフォルトの名無しさん2013/06/08(土) 00:03:24.28
>>562
学校ならいいんだけど、仕事でこれやられると引いてしまう
0564デフォルトの名無しさん2013/06/08(土) 00:57:07.71
漠然とした質問ですまんが
メモリ破壊バグってなんでこう全然別の場所、タイミングで発症するんだろうねえ
0565デフォルトの名無しさん2013/06/08(土) 01:03:09.48
メモリ破壊だから
としか言いようがない
0566デフォルトの名無しさん2013/06/08(土) 01:05:24.88
うんまあそうですよね
メモリ破壊的なコーディングしてたとして、C++的にはそれが意図的なものか判別できないよね
0567デフォルトの名無しさん2013/06/08(土) 01:14:41.45
>>562
何か合理的な理由がある(わずかでも速いとか)場合でも、同義の分かりやすいコードをコメントで付記すべきだよね
0568デフォルトの名無しさん2013/06/08(土) 01:18:59.35
>>564
監視係を適切な所に配置するのもぷろぐらまの仕事

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

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

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

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

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

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

>>598
struct UNK : ここと base {
ここ
 :
};
0602デフォルトの名無しさん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
0603デフォルトの名無しさん2013/06/09(日) 09:11:27.23
頭皮がパブリック
0604デフォルトの名無しさん2013/06/09(日) 09:55:58.13
>582
>優秀な人ほどアスペ気味で他人を攻撃する
誰だよそれは
リーナスか?
ジョブズか?
ゴスリンか?
ハゲか?
日下部か?
0605デフォルトの名無しさん2013/06/09(日) 10:06:29.36
ストールマンが抜けてるぞ。

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

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

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

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

>>616
>歴史上の貢献は皆無。
fj.binary になにか投稿していたようですよ cat だったかと
0619デフォルトの名無しさん2013/06/09(日) 15:57:19.57
簡単に言うと、C/C++スレに出没する
コテハンを全て足したぐらいの
戦闘力を備えた 過去の人物
0620デフォルトの名無しさん2013/06/09(日) 16:59:57.65
>歴史上の貢献は皆無。
有名な「はなししって?」のツッコミは彼が元祖かと
0621デフォルトの名無しさん2013/06/09(日) 17:08:45.69
それを貢献というならそうなんだろうな...
0622デフォルトの名無しさん2013/06/09(日) 17:13:07.12
アスペがかっこいい、許される、
という観念を日本に浸透させた
0623デフォルトの名無しさん2013/06/09(日) 17:13:56.54
当時FEPの開発に関与したことがあって、日本語表記にこだわりがあったんじゃない?、
0624デフォルトの名無しさん2013/06/09(日) 17:24:38.58
流石C++スレ、おっさんばっかりやw
0625デフォルトの名無しさん2013/06/09(日) 17:27:15.93
今時若者がC++を学ぶ必要なんか無い
平均年齢45以上でok
0626デフォルトの名無しさん2013/06/09(日) 17:29:27.28
俺は若者だがC++は学ぶ価値あると思うよ
実務で使わなくてもノウハウがあらゆる言語に応用出来る
0627デフォルトの名無しさん2013/06/09(日) 17:37:21.95
でも、オサーンになるほど、何故か転用能力が低くなるんだよな。
まんまコピペしかできないと言うか。
応用して欲しいのに、何故か無理やり同じものを使おうとするから、C 系は嫌われるんだよなー。
0628 ◆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

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

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

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

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

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

>>642
・・・・。

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

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

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

{
  Foo foo;

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

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

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

横は160文字程度までは使え!
テキストエディタは縦長とかいう腐った先入観は捨ててしまえ!
0693デフォルトの名無しさん2013/06/11(火) 00:46:27.88
金のある開発現場は縦長モニタを使えるけど
ない現場は横長モニタしか買えないわけで
0694デフォルトの名無しさん2013/06/11(火) 01:14:24.08
人間は横方向の方が視野は広いんだぜ!
金じゃない、金じゃないッスよぉ〜
0695デフォルトの名無しさん2013/06/11(火) 06:24:27.70
>>679
後で拡張してスコープが伸びるかもしれないからあらかじめ最初に書けって言われた時にはこの会社まじヤバイって思ったわ
0696デフォルトの名無しさん2013/06/11(火) 07:52:04.54
>>688
>グローバル operator new のオーバーライドはお勧めできないな
御意。以前bcc32で調べていたが http://hibari.2ch.net/test/read.cgi/tech/1304410950/827
bcc32 のメモリーリーク検出機能はうまく動作しなかった。
0697デフォルトの名無しさん2013/06/11(火) 08:37:32.70
>>696のおつむがうまく動作してないんだろう
長いからその先を10行以内で説明しろよ
0698デフォルトの名無しさん2013/06/11(火) 12:18:26.08
>>697
>長いからその先を10行以内で説明しろよ
bcc32 のメモリーリーク検出機能はうまく動作しなかった。
0699デフォルトの名無しさん2013/06/11(火) 13:15:18.08
>>698
使用契約を破っていつまでも使っている犯罪者が何を言う
07006972013/06/11(火) 18:40:11.87
>>698
そういう端的な説明は嫌いじゃないぞw
でもそう判断した理由を10行以内で
教えてくれないか?
0701デフォルトの名無しさん2013/06/11(火) 19:51:34.80
>>696
特定の alloc/free を行いたいなら
nothrow みたいにダミー引数をとる new/delete を定義するといいね
0702デフォルトの名無しさん2013/06/11(火) 20:24:00.16
>>696
>new[] したものを delete [] せず、delete する
そりゃundefined behaviorじゃねーの?
メモリリーク検出がうまく動かなくても
仕方ないだろう
0703デフォルトの名無しさん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とすると、
環境依存文字が?として表示されてしまいます。
正しく表示するにはどうすればよいでしょうか。
07047032013/06/11(火) 22:47:28.91
追記です。fooはUNICODEビルドで、コマンドプロンプトはcmd /uで起動しています。
0705デフォルトの名無しさん2013/06/11(火) 23:49:46.37
ロケールの設定忘れ?
#include <locale.h>
int main() {
setlocale(LC_ALL, "");
...
}
0706デフォルトの名無しさん2013/06/12(水) 07:16:01.64
環境依存文字ってなんですか?
0707デフォルトの名無しさん2013/06/12(水) 07:26:34.91
�@とか
07087032013/06/12(水) 11:30:54.08
>>705
回答有難うございます。
すみません、手元のコードから移す際に漏れていました。

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

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

宜しくお願いします。
0709デフォルトの名無しさん2013/06/12(水) 11:36:44.55
UNICODE有効にしてる?
UNICODE か_UNICODE ってのをビルド時に指定してやらないと。
0710デフォルトの名無しさん2013/06/12(水) 11:38:46.67
L"?"ってやってちゃんと出るか試さないと
0711デフォルトの名無しさん2013/06/12(水) 11:55:07.09
Unicode環境依存文字ってなんですか?
07127032013/06/12(水) 12:00:32.23
>>709 >>710
>>704に書きました通り、UNICODEビルドです。
念のため、各関数をUNICODE版に置換しましたが、>>705の結果と変わりありませんでした。
ファイル名にはUnicode環境依存文字「↝」が含まれています。
0713デフォルトの名無しさん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")
しないとダメなんじゃね?
0714デフォルトの名無しさん2013/06/12(水) 13:20:33.33
stdinは標準ではマルチバイト文字のデータ列に結び付けられるので
 utf-16(コンソールのパイプ) -> shiftjis(stdin) -> utf-16(_fgetwsの結果)
となって変換できない文字が化けてるようだな
07157032013/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...);等も試しましたが、状況は変わりませんでした。
0716デフォルトの名無しさん2013/06/12(水) 14:15:23.18
Windowsって糞だな

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

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

dir | dumphex

ってやるのと

dir > test.dat
dumphex < test.dat

で、結果が違う。

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

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

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

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

!
0775デフォルトの名無しさん2013/06/16(日) 06:51:55.39
初学者用のきれいなので頼む
0776デフォルトの名無しさん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のスキルを問うものに対しても、「 実務経験がなければ意味がない 」 と言う現場の声も
反映した。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

こいつらキチガイ
0906デフォルトの名無しさん2013/06/20(木) 02:37:55.21
プログラマとしては正常な精神状態です。
0907デフォルトの名無しさん2013/06/20(木) 02:44:34.70
いやいやいや、ここは初心者スレだから
vector?便利なものがあるねってレベルで
09088952013/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" と同義と解釈してたんだけど、
定義が無くて曖昧ということならそういう解釈もできるね。
09098902013/06/20(木) 02:57:22.86
>>908
constructの説明に近いのは8.5の冒頭か
何もしてないというより
default-initializeをした状態と言うべき
09108952013/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に適合しないね。
0911デフォルトの名無しさん2013/06/20(木) 03:02:16.73
おねだりしましょう
09128902013/06/20(木) 03:24:32.71
>>910
それは「value-initializeされたものはconstructされたと見なす」
であってconstructの条件じゃないんじゃないの
例えば8.5p11で初期化子が無いためにvalue-initializeでなく
default-initialize(p6)されてデフォルトコンストラクターが
呼ばれたクラスオブジェクトが
constructされていないかといったらそれは違うだろう
0913デフォルトの名無しさん2013/06/20(木) 03:40:46.09
>>912
そのケースを「constructされていない」とすると矛盾が生じる記述があるかな?
09148952013/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
0915デフォルトの名無しさん2013/06/20(木) 03:59:52.12
英語でおねだりして
ねこ、まっしぐら
0916デフォルトの名無しさん2013/06/20(木) 04:19:04.38
>クラスのコンストラクタが完了した場合は当然constructされたものとみなされる
Why?
constructの定義が無いんだろ?
0917デフォルトの名無しさん2013/06/20(木) 04:22:31.40
江添さんチーッス!
09188952013/06/20(木) 04:27:24.88
>>916
あぁ、ごめんよ。
>>908を書いた時点ではクラスじゃないものに明らかに適用できない
「コンストラクタの完了」はconstructの定義になりえないと思ってたけど、
>>910で見つけた記述や>>914で挙げたDRを読んだら、十分条件の
ひとつと数えて問題ないと考え直したんだ。
0919デフォルトの名無しさん2013/06/20(木) 05:42:06.43
>>894
今のネットワークHW性能はミリ秒単位なんかじゃない
無駄なメモリアクセスがどれだけパフォーマンス上で問題になるかマルチコア
をフルに使ったプログラムをまじめに組めばはっきりと分かること

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

あとstd::vectorの初期化はカスタムアロケータじゃ回避できないよ
0920デフォルトの名無しさん2013/06/20(木) 05:59:25.14
俺が言ってるvectorの初期化コストが問題って言うのはHW性能のギリギリレベルの
パフォーマンスが要求されるような場合の話であって
そうじゃない場合はvectorを汎用バッファとして使ったって勿論何の問題もない
全てはケースバイケース
0921デフォルトの名無しさん2013/06/20(木) 06:03:30.08
いったん確保した領域を使いまわせ。
サイズ拡大する予定ならリサーブしとけ。
0922デフォルトの名無しさん2013/06/20(木) 06:04:12.54
unsigned char buf[16384];
大抵はこれでいける。
09238902013/06/20(木) 07:04:06.25
>>918
何を言っているかさっぱりわからんぞ
・value-initializeでなくてもコンストラクターの完了したら
 construct完了になるというのはどこから読み取った?
・constructの十分条件でなく必要条件が
 value-initializedとどこから読み取った?
09248952013/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について言えば
前者は成立し得ないので、後者が必要(必要十分条件)になると判断した。
0925デフォルトの名無しさん2013/06/20(木) 18:30:30.08
最近流行ってるUNKO/KUSOって
元ネタはなんなの?
0926デフォルトの名無しさん2013/06/20(木) 19:43:57.33
foo、bar、hoge、hageの代わりじゃね?
UNCHI(United China)、UNKO(United Korea)かも判らんが。
0927デフォルトの名無しさん2013/06/20(木) 20:16:06.62
幼稚だよね
0928デフォルトの名無しさん2013/06/20(木) 20:19:28.60
NG推奨ワード
foo/bar/hoge/fuga/KUSO/UNKO
0929デフォルトの名無しさん2013/06/20(木) 22:37:47.87
bazとpiyoを使えということか!
0930デフォルトの名無しさん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
0931デフォルトの名無しさん2013/06/26(水) 21:46:10.89
>>924
>後者が必要(必要十分条件)になる

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

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

unistd.hをインクルードしてcryptを使用するソースは見つかるのですが
Windows上ではcryptは使用できないみたいなのです
0939デフォルトの名無しさん2013/06/28(金) 17:41:16.16
cryptのアルゴリズム調べれば済むだろゴミ
0940デフォルトの名無しさん2013/06/28(金) 19:42:55.97
関数のアルゴリズム調べろとかいう奴がゴミ
Perl持ってくりゃいいだろ
0941デフォルトの名無しさん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
0942デフォルトの名無しさん2013/06/28(金) 21:00:28.33
limits.hにcryptは無いぞ
0943デフォルトの名無しさん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";

このソースには入っていた
0944デフォルトの名無しさん2013/06/28(金) 22:40:24.48
>>938
cryptのC言語実装なんてググればすぐ出てくるだろ
0945デフォルトの名無しさん2013/06/28(金) 22:45:24.39
コードをググル時のゴミ(hatenaとかtwitterとかstackoverflowとか諸々)避け汎用キーワードって何?
0946デフォルトの名無しさん2013/06/28(金) 22:49:38.56
>>945 汎用キーワード? -site: じゃダメなのか?
09479382013/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言語に直してやってみたらうまくいきました
ありがとうございました
0948デフォルトの名無しさん2013/06/29(土) 05:03:06.94
>>945
ゴミはお前だろ
0949デフォルトの名無しさん2013/06/29(土) 05:42:19.27
>以前limits.hにある定義を使ってたのかも
>このソースには入っていた
こういう馬鹿を見るとイラっとする
0950デフォルトの名無しさん2013/06/30(日) 01:55:56.22ID: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
とか表示されます。どこか間違ってるか教えて下さい。
0951デフォルトの名無しさん2013/06/30(日) 02:03:16.73
いくら「vector」と言っても、実際のデータ構造はほぼ普通の1次元配列
……つまり、aaとaは両方intの1次元配列と考えて差し支えない
要するに、「aa.push_back(a);」は、「aa[i] = a」と書くようなもの。そりゃ上手くいかないわけだ

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

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

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

仮想クラス IHoge と関数 void Piyo(IHoge* pHoge) があり、
関数 Piyo の内部では pHoge の実行時の型でコピーを作りたいと思っているのですが、
どのような実装をすればいいのでしょうか。
0970デフォルトの名無しさん2013/06/30(日) 20:30:21.96
人にものを訪ねるときはpiyoとhogeを使うな
話はそれからだ
0971デフォルトの名無しさん2013/06/30(日) 20:31:04.08
PiyoとHogeを使った質問しか出来ません
0972デフォルトの名無しさん2013/06/30(日) 20:31:18.42
すみません…
書き直した方が良いですか
0973デフォルトの名無しさん2013/06/30(日) 20:31:35.88
じゃあshine
0974デフォルトの名無しさん2013/06/30(日) 20:35:08.04
自分のコピーを作る関数を規定する
0975デフォルトの名無しさん2013/06/30(日) 20:40:18.02
>>974
なるほど
ありがとうございます
0976デフォルトの名無しさん2013/07/01(月) NY:AN:NY.AN
>>975
ゴミグズはやっぱり恥ずかしくないんだな
hogeとか書いといてまたのこのこ出てくるとか頭悪すぎ
0977デフォルトの名無しさん2013/07/01(月) NY:AN:NY.AN
hogehoge
0978デフォルトの名無しさん2013/07/01(月) NY:AN:NY.AN
hoge排除厨はなぜかfoo barには文句を付けないだよね
0979デフォルトの名無しさん2013/07/01(月) NY:AN:NY.AN
いやfoo barも同じ
0980デフォルトの名無しさん2013/07/01(月) NY:AN:NY.AN
この程度でゴミクズ呼ばわりされては
>>975もたまらないだろうけど
安易にhogeを使うと争いに巻き込まれる
という勉強にはなっただろう
0981デフォルトの名無しさん2013/07/01(月) NY:AN:NY.AN
hogeというクラスを作りたいのですが、どうやればいいですか><
0982デフォルトの名無しさん2013/07/01(月) NY:AN:NY.AN
まずロープで首を吊ります
0983デフォルトの名無しさん2013/07/01(月) NY:AN:NY.AN
なんでhogeって嫌われてるの?
そもそも一般的に嫌われているのか、ここのスレだけなのか、一部のアンチだけなのか
0984デフォルトの名無しさん2013/07/01(月) NY:AN:NY.AN
このスレの一部のアンチ
0985デフォルトの名無しさん2013/07/01(月) NY:AN:NY.AN
下手したら一人のキチガイという可能性もあるw
0986デフォルトの名無しさん2013/07/01(月) NY:AN:NY.AN
嫌われているという風に見せてるネタだと思ってた
0987デフォルトの名無しさん2013/07/01(月) NY:AN:NY.AN
また始まったよ
こんな下らないことにゴチャゴチャ言う奴って俺の想像を超えた無能なんだろうなぁ
0988デフォルトの名無しさん2013/07/01(月) NY:AN:NY.AN
当然だろ
ム板にいてもプログラムを書けないからこそhogeに妙にこだわったり
人の事を馬鹿呼ばわりする位しか出来ない
0989デフォルトの名無しさん2013/07/01(月) NY:AN:NY.AN
hogeがすぐに出てくるのは普段日本語の資料しか調べてない証拠

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

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