C++相談室 part109

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレに
お願いします。

前スレ
C++相談室 part108
http://toro.2ch.net/test/read.cgi/tech/1386591136/

このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.88【環境依存OK】
http://toro.2ch.net/test/read.cgi/tech/1384061494/

次期規格C++1yはこちら
C++14/C++1y
http://toro.2ch.net/test/read.cgi/tech/1382889622/

■長いソースを貼るときはここへ。■
 http://codepad.org/
 http://ideone.com/
2デフォルトの名無しさん:2013/12/29(日) 10:16:15.84
【重要】
hogeは禁止です。使用しないでください。
万が一hogeが書き込まれても、スルーしてください。
相手にするとあなたも荒らしと同じ扱いになります。
3デフォルトの名無しさん:2013/12/29(日) 10:16:46.02
----テンプレここまで-----
4在日・創価タブーの恐怖:2013/12/29(日) 10:53:46.90
在日or帰化朝鮮人なら、人を殺しても許される世の中になりつつある模様

「日本人なら何人も殺そうと思った」生野区通り魔事件 韓国籍の男を不起訴に
http://blog.livedoor.jp/societynews/archives/1108674.html

【尼崎連続変死】男性虐待死、角田美代子元被告と親族ら8人全員不起訴
http://jacklog.doorblog.jp/archives/35922412.html

菅元首相ら不起訴へ 原発事故で検察
http://www.nikkei.com/article/DGXNASDG0901P_Z00C13A8CR0000/
※管元総理の原発視察は違法。さらにこの視察のせいで、原子炉の減圧作業開始が
遅れたことが爆発につながった、と国会で追及された。
(亡くなった東電・吉田所長も雑誌インタにて証言)
マスコミは、この事実をほとんど封殺。

孤立してるのは日本じゃなく、日本のマスコミ。
ミス・インターナショナル吉松育美さん 芸能界の闇を告発→マスコミ黙殺→命まで狙われる
http://kamonohashi.doorblog.jp/archives/35001601.html
【芸能】米メディア「日本の沈黙する報道陣」 吉松育美さんへの嫌がらせ脅迫ストーカー事件、国内メディアは横並びでダンマリ
http://hayabusa3.2ch.net/test/read.cgi/mnewsplus/1387851934/
※問題の男は、創価大卒(在日?)という情報アリ
続く
5在日・創価タブーの恐怖:2013/12/29(日) 10:59:49.78
続き
創価&在日&オウムにメスを入れられるのは、自民「単独」政権だけ

【朗報】自民党「憲法のせいで特定の宗教を解散させられない」
http://www.log-channel.net/bbs/poverty/1386937136/
>そのオウムを解散させられない今の司法と憲法は問題と思われませんか?

9条問題にすり替えて憲法改正に反対してる創価公明党、その他政党の正体と、
在日系スポンサーが牛耳るメディアが反対する狙いに気付こう。

自民単独政権=自公連立解消実現の最低必要条件

衆院で自民党単独2/3 か、
衆参両院で自民単独過半数
※ただし、自民にも帰化人スパイが残ってる可能性を考えると、さらに多くの議席が必要。

現在クリアしてるのは、衆議院での単独過半数のみ

なぜ在日と創価はタブーなのか考察 1
http://www.youtube.com/watch?v=CxIGOhFT4g8
なぜ在日と創価はタブーなのか考察 2
http://www.youtube.com/watch?v=iG_oaqU0pEM
6デフォルトの名無しさん:2013/12/29(日) 11:01:47.44
hoge禁止されたキチガイ朝鮮人がスレを荒らしているようだね
同族嫌悪かな
7デフォルトの名無しさん:2013/12/29(日) 11:18:24.09
【誘導】
hogeを使いたい人用の隔離スレッドが立った模様ww
http://toro.2ch.net/test/read.cgi/tech/1388277515/
8デフォルトの名無しさん:2013/12/29(日) 12:42:03.46
STLつかうと一気に実行ファイルサイズが10倍に?!

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

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

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

#include <stdafx.h>
後死ね。

言葉が悪いな。それで教えているつもりか。
まぁヒントぐらいにはなったな。
うむごくろう。
9デフォルトの名無しさん:2013/12/29(日) 13:01:51.60
【重要】
hogeは禁止します、使用しないでください。
万が一hogeが書き込まれても、スルーしてください。
相手にするとあなたも荒らしと同じ扱いになります。
なお、スルー出来ない人はhogeはNGワードに追加しておくことが強く推奨されています。

【重要】
hogeが禁止されていないと発狂する人がいます。
万が一hogeを使うなと書き込まれても、スルーしてください。
相手にするとあなたも荒らしと同じ扱いになります。
なお、スルー出来ない人はhogeはNGワードに追加しておくことが強く推奨されています。
10デフォルトの名無しさん:2013/12/29(日) 15:27:37.29
>>9
スレのルールには従えよカス朝○人
11デフォルトの名無しさん:2013/12/29(日) 17:32:04.71
12前スレ996:2013/12/29(日) 18:26:18.73
再投下

= nullptr よりは =0 のほうがタイプしやすくて楽だね
クソなのは virtual に決まってるのに省略不可であること
それと関数じゃなくクラスが持つ属性じゃねってよく思う
多重継承がらみで仕方ないっちゃ仕方ないんだけど
13デフォルトの名無しさん:2013/12/29(日) 18:32:03.15
おめ
14デフォルトの名無しさん:2013/12/29(日) 19:08:51.11
再投下するなら推敲しろw
15デフォルトの名無しさん:2013/12/29(日) 19:22:43.87
C++03とC++11の違い: 文字列ライブラリ編
basic_stringをリファレンスカウントで実装することを禁止

COW(にCopy on Write()による文字列クラスの実装は、30年前はともかく、
今となってはとても効率が悪い。
なぜならば、マルチコア、マルチスレッドが当たり前になってしまったからだ。
今は文字列クラスをCOWで実装すべきパフォーマンス上の理由がないので、
C++11では、COWで実装することは規格で禁止された。

http://cpplover.blogspot.jp/2013/12/c03c11_29.html
16デフォルトの名無しさん:2013/12/29(日) 19:32:22.01
>>12
C#やJavaみたいに、
関数にabstract
クラスにinterface
を付けられるようにしろということだな
17デフォルトの名無しさん:2013/12/29(日) 19:45:27.20
>>16
今さらかえるようなものでもないし、あんま気にならない。
どうせかえるのなら、仮想でないデストラクタが宣言されたクラスの継承を制限してほしい。
んで、継承するための予約語追加とかね。
18デフォルトの名無しさん:2013/12/29(日) 20:10:28.31
>>17
C++11 の final でダメなんだっけ?
19デフォルトの名無しさん:2013/12/29(日) 20:10:31.44
> 仮想でないデストラクタが宣言されたクラスの継承を制限
そんな余計なことしなくてよろしい
20デフォルトの名無しさん:2013/12/29(日) 20:16:46.49
>>15
> http://cpplover.blogspot.jp/2013/12/c03c11_29.html
> 「文字列を保持するストレージを文字列クラスで共有して」

これじゃ何だかstatic メンバを使ってるみたいな表現じゃないか。
2118:2013/12/29(日) 20:19:03.26
ああ、仮想でないデストラクタか
それはダメかも。
22デフォルトの名無しさん:2013/12/29(日) 20:21:34.54
動的削除なスマポしか使わなければ仮想デストラクタなどいらないし
23デフォルトの名無しさん:2013/12/29(日) 20:26:53.73
int i;
std::unique_ptr<int> p(&i);

スマポってこんなことが簡単に出来て全然安全じゃないんですけど
なんでこんなクソみたいな仕様なんですか
なんでnew部分を隠蔽しないんですか
24デフォルトの名無しさん:2013/12/29(日) 20:32:36.06
Createポリシーを使えばいいんじゃねーの
25デフォルトの名無しさん:2013/12/29(日) 20:39:32.28
>>23
そんな糞みたいなコード書いたことないから気づかなかったわ
26デフォルトの名無しさん:2013/12/29(日) 20:39:35.22
>>23
自分に向けて引き金引く馬鹿を救う必要は無い
27デフォルトの名無しさん:2013/12/29(日) 20:47:13.90
C++14からmake_uniqueが追加されるからそれ使えば問題なし
28デフォルトの名無しさん:2013/12/29(日) 20:47:29.84
int i;
std::unique_ptr<int> p( &i );
std::unique_ptr<int> q( &*p );
std::unique_ptr<int> r( new int[ 0 ] );
こんなんもやりたい放題だしもうちょっと安全に配慮して設計しろよ
29デフォルトの名無しさん:2013/12/29(日) 21:16:30.06
おまいらまだやっとんのかいな〜foo
30デフォルトの名無しさん:2013/12/29(日) 21:17:07.89
int i;
delete &i;
だってやれる(コンパイル通る)のにそんなの問題にしてもしょうがない
31デフォルトの名無しさん:2013/12/29(日) 21:19:37.58
いやいやわざわざクラス作るなら不正な操作できないような設計にしろよ
32デフォルトの名無しさん:2013/12/29(日) 21:20:49.33
>>31
具体的にどうすればよかったというのだね?
33デフォルトの名無しさん:2013/12/29(日) 21:23:25.68
だからnewを隠蔽するなりいろいろあるだろ
34デフォルトの名無しさん:2013/12/29(日) 21:26:43.76
C++は"知識次第で"安全に書ける言語であればいい
危険な書き方はコンパイラで警告なりエラーなり出せればいいんだから。
ママンの介抱が必要なお子ちゃまはC#でもしゃぶってろ
35デフォルトの名無しさん:2013/12/29(日) 21:31:23.24
オートマ車しか運転できない(しちゃいけない)者がF1車に向かって「この設計は危険だ!」と叫ぶ図
36デフォルトの名無しさん:2013/12/29(日) 21:32:59.44
いやこの設計は危険だろ
37デフォルトの名無しさん:2013/12/29(日) 21:35:36.45
危険だと思うなら標準スマポを直接使わないで、newを隠蔽したクラスを自分で作ればいいだけの話
こんなところに因縁つける奴は何かズレてる
38デフォルトの名無しさん:2013/12/29(日) 21:37:05.65
>>37
もちろん作ってるし、標準のデザインが悪いって話をするのが悪い理由がわからない
なんでダメなの?
39デフォルトの名無しさん:2013/12/29(日) 21:41:36.30
>>33
どうやってnewを隠蔽するというの?
make_shared, make_unique で満足できない?
40デフォルトの名無しさん:2013/12/29(日) 21:44:33.51
他の人も言ってるように、じゃあどうすれば良かったの?
お前さんの論で行くと、あらゆるシグネチャのコンストラクタに対応できるnewを隠蔽したスマポが必要になるのだが
41デフォルトの名無しさん:2013/12/29(日) 21:48:06.31
>>38
今さら変えられない仕様(newが生ポインタを返すこと)を前提にすれば
穴をすべてふさぐことが不可能なのはほぼ明らかで、不毛だと思うから。

不毛じゃないすばらしいアイディアをあんたが出してくれる可能性を否定は
しないが、これまでのところ具体的なアイディアは出さずに文句だけ言ってる
不毛な印象しかない。
42デフォルトの名無しさん:2013/12/29(日) 21:56:54.80
C++のソースを32bit用にビルド、64bit用にビルドって
具体的にはどのようなことが行われてるんですか?
43デフォルトの名無しさん:2013/12/29(日) 22:03:04.41
x86の機械語にコンパイルすんのが32bit用
AMD64の機械語にコンパイルすんのが64bit用
44デフォルトの名無しさん:2013/12/29(日) 22:04:31.71
そもそも危険でもなんでもない
必ず死ぬんだから
45片山博文MZコスモ ◆T6xkBnTXz7B0 :2013/12/29(日) 22:25:56.50
>>42
IDE上でWin32と表示されてるコンボボックスをつついてみる
46デフォルトの名無しさん:2013/12/29(日) 22:46:12.89
auto と Variant を混同してるやつに auto は型じゃないことを納得させる方法について
47デフォルトの名無しさん:2013/12/29(日) 22:54:41.44
全部variantで書かせればいいんじゃね
48デフォルトの名無しさん:2013/12/29(日) 22:58:10.93
テンプラでよくね?
49デフォルトの名無しさん:2013/12/29(日) 23:02:42.00
>>46
そんなのにC++やらせるのが根本的な間違い
50デフォルトの名無しさん:2013/12/29(日) 23:04:14.73
型をまぜこぜに代入するだけやろ
51デフォルトの名無しさん:2013/12/29(日) 23:05:31.83
本の虫
http://cpplover.blogspot.jp/2007/02/inside-boostany.html
> 実行時にオブジェクトを管理しなければならないので、
> コンパイル時に型が決まってしまうテンプレートでは 「 役 不 足 」 である。

出た、役不足
52デフォルトの名無しさん:2013/12/29(日) 23:06:52.62
autoってなんでも代入できるじゃん!すごく便利な型だよ!
C++でもやればできるんじゃん!!
53デフォルトの名無しさん:2013/12/29(日) 23:09:04.42
>>51
テンプレートで十分って意味だろ?
54デフォルトの名無しさん:2013/12/29(日) 23:14:13.50
auto があれば boost::any なんていりませんよね?
55デフォルトの名無しさん:2013/12/29(日) 23:17:45.56
autoとanyは別物。
女が良く言うケーキは別腹と関係があるかも。
56デフォルトの名無しさん:2013/12/29(日) 23:54:59.51
>>51
ベースがplaceholder ってクラスになってるけど、_1とか_2ってまさにanyだよな。
57デフォルトの名無しさん:2013/12/30(月) 01:21:58.12
std::threadみたいにType erasureすれば天ぷらでも動的管理してやんぜ
ってことと理解した
58デフォルトの名無しさん:2013/12/30(月) 03:24:31.85
プロジェクトに混ぜたら危険、雇ってはいけないプログラマのあるある

C++はメモリリークを起こすので危険とか、車はマニュアル車限定と言い
つつ、使ってる言語がJavaとかスクリプト言語。
59デフォルトの名無しさん:2013/12/30(月) 04:35:32.29
>>2
LR捏造するな、チョーセン人死ね
60デフォルトの名無しさん:2013/12/30(月) 05:25:05.19
>>58
「C++はメモリリークを起こすので危険」→「使ってる言語がJavaとかスクリプト言語。」
だけなら何の違和感もなくね?
61デフォルトの名無しさん:2013/12/30(月) 05:43:35.77
無いよね。
62デフォルトの名無しさん:2013/12/30(月) 07:36:44.98
>車はマニュアル車限定

センスが年寄り過ぎるな
もう現代は一般人向けラインアップでは
マニュアル車は虫の息だぞ
根強く細々と残ってはいるが
63デフォルトの名無しさん:2013/12/30(月) 09:13:48.87
ああそういえば居たな。
ある程度開発が進んだとこで、C++はnewで確保したのを開放しないといけないんだ、と言った奴が。
6418:2013/12/30(月) 09:15:54.86
>>62
だからそこまでこだわってるのに、Java かよ! ってことだろ。
6518:2013/12/30(月) 09:17:00.38
>>63
レビューもろくろくしてないプロジェクトだとそんなもんだろ (w
66デフォルトの名無しさん:2013/12/30(月) 11:29:23.34
モダンなc++な書き方ってどこで身に付ければいいんだ
入門書とかみてもスマートポインタとかのってないよね
67デフォルトの名無しさん:2013/12/30(月) 12:07:19.81
「これがモダンだ」と思っているその時もう陳腐化し始めている
チャラいのをモダンと勘違いしてるやつもよくいる
68デフォルトの名無しさん:2013/12/30(月) 12:16:54.50
最先端とモダンを混同する奴もいる
69デフォルトの名無しさん:2013/12/30(月) 14:09:49.71
こんどうたよもん
70デフォルトの名無しさん:2013/12/30(月) 23:29:44.60
メモリ確保に失敗した例外をキャッチしてどう処理するの?
71デフォルトの名無しさん:2013/12/30(月) 23:34:27.34
終了
72デフォルトの名無しさん:2013/12/30(月) 23:35:46.28
一生catchがよばれないことを神に祈る
73デフォルトの名無しさん:2013/12/30(月) 23:38:29.81
>>70
その事実が分かるようメッセージを出すなりログを出して終了
74デフォルトの名無しさん:2013/12/31(火) 00:17:59.23
>>70
amazonのメモリ購入ページを表示して終了
75デフォルトの名無しさん:2013/12/31(火) 00:20:45.78
>>74
わりとすき
76デフォルトの名無しさん:2013/12/31(火) 00:49:53.50
>>70
リークさせているアプリをkillして再試行するというのはやったことある。
普通はそこまでしないけど、アプリの性質によってはなんとかしなくちゃいけないケースもある。
77デフォルトの名無しさん:2013/12/31(火) 01:13:21.92
>>68
最先端を英語で言ったのがモダンじゃないのか?
78デフォルトの名無しさん:2013/12/31(火) 01:16:16.23
モダンは「現代的」くらいの意味で「最先端」とは違うだろ
79デフォルトの名無しさん:2013/12/31(火) 01:25:48.24
cutting edgeとかstate-of-the-artとか
80デフォルトの名無しさん:2013/12/31(火) 02:03:53.97
classic と modern で分けるのがよい
81デフォルトの名無しさん:2013/12/31(火) 11:50:14.69
なんかエラーになっちゃうので質問です。

http://ideone.com/PK78t0
これでSFINAEの呼び出しが ambiguous とか言われてしまうんですが、なぜでしょうか?
82デフォルトの名無しさん:2013/12/31(火) 12:36:14.28
逆参照が2段になってるのは、おかしいな
83デフォルトの名無しさん:2013/12/31(火) 12:39:16.97
>>82
逆参照が2段って、 *t.*v のとこでしょうか?
ちなみに *t.*v を t->*v にしてもダメなんです。
84デフォルトの名無しさん:2013/12/31(火) 12:47:02.46
>>81
3つ目の可変長引数を要求する関数がSFINAEによって除外されていないから
SFINAEはオーバーロード集合から関数を取り除くが、オーバーロード解決には影響しない
可変長引数に引数を渡さないときは他の関数と同じ優先順位みたい

解決策1:それ以外の場合の関数の引数を全て可変長引数にする
http://ideone.com/j9ncv6
可変長引数に引数が渡されるとき、その関数の優先順位は下がるのを利用する

解決策2:明示的に第三引数を渡す
http://ideone.com/MxqVsc
理由は策1と同じ 明示的に渡したくないならラッパを一段噛ませればよい

規格での規定はどうなっているのかよく分からないので詳しい人にお願いしたい

参考
http://cpplover.blogspot.jp/2010/03/decltypesfinae.html
85デフォルトの名無しさん:2013/12/31(火) 12:48:08.32
文字どうりambiguousだからだろ
みんな「それ以外」にも当てはまってしまう
86デフォルトの名無しさん:2013/12/31(火) 13:04:31.09
>>83
.**vってこと
8786:2013/12/31(火) 13:05:17.18
エラーメッセージで言ってきてるところ
88デフォルトの名無しさん:2013/12/31(火) 13:16:39.43
>>84,85
どうもありがとう!

複数の環境でテストしてて、ちょっと混乱してました。
示してもらったコード例了解しましたが、VCではどちらもダメみたいですね・・・

>>86
.**v ってどういうことだろ? 「V」 に対してそういう解決方法があるんだろうか・・・
89デフォルトの名無しさん:2013/12/31(火) 14:18:02.99
sizeof std::ptrdiff_t == sizeof std::size_t

って常に真になりますか
90デフォルトの名無しさん:2013/12/31(火) 14:34:33.77
ならない
91デフォルトの名無しさん:2013/12/31(火) 15:03:21.64
>>88
v はメンバポインタへのポインタ(つまり普通のポインタ)
*v でメンバへのポインタ
.**v でメンバ
そんなわけないのに、エラーメッセージには .** とある
92デフォルトの名無しさん:2013/12/31(火) 15:13:36.42
>>91
何か大きく勘違いしてるような。。。
93デフォルトの名無しさん:2013/12/31(火) 15:24:53.31
>>91
ええと、
int (test::*mF)(int) const = &test::get;
に対して更にそのアドレスを取って
auto pmF = &mF;

みたいなものを想定してるってこと?
94デフォルトの名無しさん:2013/12/31(火) 16:02:07.00
>>93
そゆこと
95デフォルトの名無しさん:2014/01/01(水) 12:17:50.58
あけおめ
いろいろ参考になり、解決しました。どうもです。

メンバポインタが絡んだSFINAEで、生ポインタ ->* メンバポインタ はOKだけど
スマポ ->* メンバポインタ はエラーになるのを回避するために、生ポとスマポを同等に扱う必要があった。
(*ポインタ.*メンバポインタ なら両方OKだけど、その形にできない。)
ideon と VC で挙動が違うので遠回りしてしまった。
http://ideone.com/k1cPey
96デフォルトの名無しさん:2014/01/01(水) 18:03:17.98
int
main(int argc, char *argv[])
{
}
とreturn を書かない人に聞きたいんですが、
不要だから書かないのはわかりますが、ではなぜ
int argc, char *argv[]
とは書くのでしょうか?

不要であればここも書く必要は無いと思うのですが
97デフォルトの名無しさん:2014/01/01(水) 18:08:37.98
知るか。特に理由なんて無いだろ
俺は
auto main() -> int
{
}
98デフォルトの名無しさん:2014/01/01(水) 18:08:45.54
それはreturnを書かない糞野郎に聞けよ
99デフォルトの名無しさん:2014/01/01(水) 18:09:50.73
>>98
どうしてreturnを書かない人がKUSO野郎なのですか?
アナタの方こそ糞なのでは?
100デフォルトの名無しさん:2014/01/01(水) 18:12:18.31
このHOGE野郎!
101デフォルトの名無しさん:2014/01/01(水) 18:34:29.06
main()に特別扱いなんてねーよ
エントリポイントですらないし

引数はなんとなく、合わせておきたいよな
引数の数くらいは。たとえcdeclであれ。
102デフォルトの名無しさん:2014/01/01(水) 18:52:42.12
101が何を言っているのかわからない
cdeclとか言うあたり、単なるすれ違いだろう
103デフォルトの名無しさん:2014/01/01(水) 22:10:24.38
>>95
すでに解決済みのようだけど、std::mem_fnを使えばプログラムがより簡単になるかもしれない
mem_fnという名前だけどリンク先のようにメンバ変数にも使える
MSVCでのテストはしてないけどどうぞ
http://ideone.com/pqm0Y1
104デフォルトの名無しさん:2014/01/01(水) 22:38:14.86
>>103
コード例までどうもありがと。
mem_fn とか is_member_function_pointer を使ってうまく分岐する方法もあったかもしれないですね。

だけどどうもSFINAEの仕組みが納得できない。

なんでこれがコンパイルエラーになるのかさっぱりだ。
http://ideone.com/Ykulus
ごく単純なオーバーロード解決に思えるし、最悪でも可変長引数に落ちると思うんだけど?
105デフォルトの名無しさん:2014/01/01(水) 22:47:34.92
コンパイラのエラーメッセージが読めないやつ多いな
106デフォルトの名無しさん:2014/01/01(水) 22:48:09.99
>>105
いや、オレ一人だと思うが。
107デフォルトの名無しさん:2014/01/01(水) 22:56:42.55
>>105
ああごめんなさい。
「test」関数が宣言だけで実装がないのに呼び出してるからなのね。
http://ideone.com/Ykulus は直しました。

またVCの話とごっちゃにしてしまいました。
交互に実験してるもんでつい。
ちゃんと中身を実装してもVCだとエラーになるんですよ。
C2668: 'test' : オーバーロード関数の呼び出しを解決することができません。
108デフォルトの名無しさん:2014/01/01(水) 23:42:10.25
decltypeのカンマ以降を外してもだめ?
decltype(a,b) = decltype(b) だからメンバ関数呼び出しのとこ見てないんじゃないかな
109デフォルトの名無しさん:2014/01/01(水) 23:55:30.99
エラー一覧だけじゃなくて出力も見ろよ
110デフォルトの名無しさん:2014/01/02(木) 00:11:58.82
>>108
さっそく実験。
カンマの前をほとんど無視してるんじゃないかって疑惑は自分も持ってて、外してみました。
http://ideone.com/Ykulus
結果、VCではやっぱダメ。

>>109
C2668: 'test' : オーバーロード関数の呼び出しを解決することができません。(新機能 ; ヘルプを参照)
short test<int(__thiscall ichikawa::* &)(int) const,ichikawa&>(V,T,int *)' の可能性があります。
または 'char test<int(__thiscall ichikawa::* &)(int) const,ichikawa&>(V,T,int *)'
引数リスト '(int (__thiscall ichikawa::* )(int) const, ichikawa)' を一致させようとしているとき

何というか・・・変
>>95であげた http://ideone.com/k1cPey でもそうだったけど、
operator * があらゆる型に(intでさえも)存在してることになってるみたい。
test1(int) と test2(int) がともに true_type になるんですよ。(ideon ではともに false_type)
111デフォルトの名無しさん:2014/01/02(木) 00:15:20.97
実験する前に仕様書読めよw
112デフォルトの名無しさん:2014/01/02(木) 00:25:13.06
読んで何が正しいか確かめる。
現実への対処はまた別。逃げられないならなんか工夫するしかない。
あ、それが>>95
113デフォルトの名無しさん:2014/01/02(木) 03:57:05.05
>>110
生ポとスマポが分かれてるけど、やりたい事はできるだろう
http://ideone.com/5JDegK
114片山博文MZコスモ ◆T6xkBnTXz7B0 :2014/01/02(木) 08:18:44.33
これ見ろよ。読めるか?
#define MZC_SCOPE_BEGIN(TYPE,var) \
struct SCOPE ## var { \
TYPE& var; \
SCOPE ## var(TYPE& value) : var(value) {} \
~SCOPE ## var() { //...
#define MZC_SCOPE_END(TYPE,var) \
}} scope_ ## var(var);
115デフォルトの名無しさん:2014/01/02(木) 08:21:40.61
>>113
t->*v と t.operator->()->*v を分けるって、何を対象にしているのかすごく明確になりますね!
んで、VCではあいかわらずエラー。もう笑うしかない。

error C2572: 'test' : 既定パラメーターの再定義です: パラメーター 3
error C2995: 'int8_t test(V &&,T &&,'unknown-type' *)' : 関数テンプレートは既に定義されています
------ ビルド開始, 構成: Debug Win32 ------
error C2572: 'test' : 既定パラメーターの再定義です: パラメーター 3
test' の宣言を確認してください。
error C2995: 'int8_t test(V &&,T &&,'unknown-type' *)' : 関数テンプレートは既に定義されています
'test' の宣言を確認してください。
116デフォルトの名無しさん:2014/01/02(木) 08:23:23.03
>>114
よゆー
117113:2014/01/02(木) 09:48:30.55
>>115
VC++2013ならコンパイル出来るはず
118デフォルトの名無しさん:2014/01/02(木) 13:38:54.22
メモリーアクセスで
n番目の配列のm番目のビットを調べろという関数があるじゃないですか?
bool get_bit(int n,int m);
しかし、一番目の配列を出せという関数
int get(int n)
とintの中のm番目のbitを調べろという関数
bool get(int x,int m)
を使った方が速い換わりに複雑じゃないですか?
こういうときはiteratorを使えば良いんですよね?
119デフォルトの名無しさん:2014/01/02(木) 13:41:09.11
日本語でおk
120デフォルトの名無しさん:2014/01/02(木) 15:27:21.66
Cの動的なオブジェクト生成について質問です
CLASS_hoge *cl;
int main(){
int i, j=0;

for(i=0; i<5; i++){
cl = new CLASS_hoge[i]
cl[i].input(j);

j += 100;
}
for(i=0; i<5; i++){
cl[i].output(); // input()の第一引数の値を表示する関数
}
delete[] cl;
return 0;
}
とやるとコンパイルは通るのですが、
実行結果が 全部400と表示されてしまいます。
ちなみに使っているOSはwindows2000でコンパイラはbccです
わかる方いらしたらご教授くださいm(_ _)m
121デフォルトの名無しさん:2014/01/02(木) 15:33:10.15
cl = new CLASS_hoge[5];
for(i=0; i<5; i++){
こうすべきだろ全部上書きされてなかったことになってんぞ
122デフォルトの名無しさん:2014/01/02(木) 15:43:40.11
>>120
C で記述するの?それともC++で記述するの?
http://codepad.org/SErWepFM
123デフォルトの名無しさん:2014/01/02(木) 15:46:01.63
>>121
そうでしたorz

ちなみにcl = new CLASS_hoge[size];

のサイズに関してなんですが
5などの決まった数でなく、可変にするなんて事できますでしょうか?
124デフォルトの名無しさん:2014/01/02(木) 15:47:14.86
できなきゃ困るだろ
125デフォルトの名無しさん:2014/01/02(木) 15:49:15.70
>>122
基本的に混合してます

javaの方ばかりやってたんで、Cに関しては素人同然なのでわからない仕様だらけです・・・
126デフォルトの名無しさん:2014/01/02(木) 15:52:22.35
>>124

つまり、可変にして例えばファイルから読み込んだ数だけインスタンスを生成するようにしたい
という事なんですが、できますでしょうか?
127デフォルトの名無しさん:2014/01/02(木) 15:54:29.27
それくらい試せばすぐわかることだろうが
128デフォルトの名無しさん:2014/01/02(木) 15:59:41.56
>>127

もう一台のmacでvectorを使って、クラスのオブジェクトを代入して取り出すプログラムを書いて
gccでコンパイルしたら思った通りの結果が出せたんですが、
windowsの方では上手く行かなくて
つまりDxLibを使ったブログラムを書いているんですが、
にたようなソースを書いても上手く行かなかったんで質問した訳です。
129デフォルトの名無しさん:2014/01/02(木) 16:04:06.31
vector使えよ!
130デフォルトの名無しさん:2014/01/02(木) 16:05:09.18
>>128
どうせコピーコンストラクタ&代入ちゃんと用意してなかったとかそういうのだろ
131デフォルトの名無しさん:2014/01/02(木) 16:06:21.67
>>120
hoge厨は迷惑だから来るなよ
132デフォルトの名無しさん:2014/01/02(木) 16:08:23.34
>>120
>Cの動的なオブジェクト生成について質問です
Cはスレ違いなのでいりません
ホゲキチガイはお帰り下さい
133デフォルトの名無しさん:2014/01/02(木) 16:08:54.67
>>129
使っては見たんですが、上手く行かず
(vectorを使って随時オブジェクトを格納していって取り出すようなのを書いて
macの方のコンパイラは通って実行も正しくできたのですが、)
例えばほかにどのようにして使えばよろしいですか?
134デフォルトの名無しさん:2014/01/02(木) 16:11:57.66
>>133
ま ず コ ー ド を 晒 せ
135デフォルトの名無しさん:2014/01/02(木) 16:12:03.96
>>120
正月2日目から他人に嫌がらせか。
リアルではみんなに陰で死ねばいいのにって言われてることに気付いてる?
136デフォルトの名無しさん:2014/01/02(木) 16:13:02.74
>>133
ソースよこせ
137デフォルトの名無しさん:2014/01/02(木) 16:13:06.00
>>133
使わなくていいから回線切れ社会不適合
138デフォルトの名無しさん:2014/01/02(木) 16:14:25.19
>>133のコードって電子ゴミでしょw
電子ゴミをばらまく基地害w
139デフォルトの名無しさん:2014/01/02(木) 16:16:19.48
>>120
>わかる方いらしたらご教授くださいm(_ _)m
日本語すらままならないゴミクズがプログラミングか。
140デフォルトの名無しさん:2014/01/02(木) 16:16:21.25
一円の価値もないコードが見せられないのか?
141デフォルトの名無しさん:2014/01/02(木) 16:17:56.20
>>139
>>120は韓国人だから日本語が不自由なんだよ
これでhoge厨は韓国人だと判明したな
142デフォルトの名無しさん:2014/01/02(木) 16:19:49.96
143デフォルトの名無しさん:2014/01/02(木) 16:22:12.66
>>142
他人のリソースはゴミ置き場じゃないって分かってる?
お前も自分の部屋に他人がゴミを置いていっても文句言うなよ
144片山博文MZコスモ ◆T6xkBnTXz7B0 :2014/01/02(木) 16:26:58.91
関数の外側に手続き処理を書くな。
vectorの要素を使う前にresizeで要素を確保しろ。
基本が出来てない。
C言語からやり直せ
145デフォルトの名無しさん:2014/01/02(木) 16:27:57.41
めちゃくちゃすぎワロタ
146デフォルトの名無しさん:2014/01/02(木) 16:28:52.19
>28 CLASS_01 *cl;
なんでグローバル変数なの?
>30 vector<CLASS_01> *vec = new vector<CLASS_01>;
なんでいちいちnewするの?
javaじゃないんだから
>37 CLASS_01 c = (CLASS_01)vec->at(i);
このキャスト何?意味あるの?
>47〜51
なんでnewするの?コードの意味が分からない
>65 cl = new CLASS_01[5];
>66 cl[5].input(75);
cl[5]にはアクセスできない
こんなことしたら強制終了するに決まってんだろ

java脳すぎるだろ
まともに勉強しなおした方がいい
147デフォルトの名無しさん:2014/01/02(木) 16:29:11.97
>>142
どうなるのが正しいのか
148デフォルトの名無しさん:2014/01/02(木) 16:29:15.38
>>142
とりあえずJavaから離れてC++の初心者本読め
newしたものが勝手にdeleteされることはないし
push_back()の意味もはき違えてる
めちゃくちゃ
149デフォルトの名無しさん:2014/01/02(木) 16:34:39.23
vector<CLASS_01> vec;
int num=100;
for(int i=0;i<5;i++)
{
CLASS_01 cl;
cl.input(num);
vec.push_back(cl);
num+=50;
}
まずはこんな感じだろ
150デフォルトの名無しさん:2014/01/02(木) 16:35:22.28
うむ
151デフォルトの名無しさん:2014/01/02(木) 16:37:51.26
>>149

なるほど

初心者ですいませんC++の初心者本読みます
javaから入ってC++勉強したてなのでわからない部分が多くて
勉強し直します
152デフォルトの名無しさん:2014/01/02(木) 16:38:16.18
hoge使うような書籍やサイトで勉強してたらそりゃあ>>120みたいなことになるだろう
わざわざ自分から情報価値の低いもので勉強して時間を無駄にする低知能
>>120みたいな低知能を育てあげたDQNご両親もさぞ鼻が高いでしょうよ
153デフォルトの名無しさん:2014/01/02(木) 16:39:34.16
ほら>>151見てみろよ。
初心者を言い訳に出すアホっぷり。

お前には一生無理だよ。
154デフォルトの名無しさん:2014/01/02(木) 16:39:54.16
>>152
ほげほげうっせーよ隔離スレに消えろ
155デフォルトの名無しさん:2014/01/02(木) 16:44:25.03
お前らは正月休みもないか?
156デフォルトの名無しさん:2014/01/02(木) 16:47:53.01
>>154
>>120に言えきちがい。
157デフォルトの名無しさん:2014/01/02(木) 16:50:06.28
>>120
あんた人の気持ちとか分からないタイプの人でしょ?
お前みたいな屑とは関わりたくもないけど屑扱いするわけにもいかず、当たり障りのない対応をしてるリアルの周りの人の気持ちとか分からないでしょ?
158デフォルトの名無しさん:2014/01/02(木) 16:53:24.49
タイプタイプとうっさいのう。
レッテル張りしかできんのかこいつ。
159デフォルトの名無しさん:2014/01/02(木) 16:57:52.35
C++の知識はさて置いて
スレのルールに従えない馬鹿はどうしようもないな
160デフォルトの名無しさん:2014/01/02(木) 16:58:40.95
そんなルールは知らんが?
161デフォルトの名無しさん:2014/01/02(木) 17:00:41.13
便所の落書きにルールなんてあるのか?hw
162デフォルトの名無しさん:2014/01/02(木) 17:06:13.25
>>120は何で正月からこのスレを荒らそうと思ったんだろうな
163デフォルトの名無しさん:2014/01/02(木) 17:15:50.32
>>162
それはお前だ
164デフォルトの名無しさん:2014/01/02(木) 17:16:41.59
hogeが単独でなく他の文字列の一部に入っている場合はルール違反とはいえない
165デフォルトの名無しさん:2014/01/02(木) 17:16:50.66
ビャーネあたりが文句言うならまだしも

素人がCとC++について細かなことをいうのはprg
166デフォルトの名無しさん:2014/01/02(木) 17:16:58.09
>>160
荒らすなキチガイ
167デフォルトの名無しさん:2014/01/02(木) 17:24:44.84
今頃120は目的通り荒らしが成功して
パソコンの前で大喜びだろう。
168デフォルトの名無しさん:2014/01/02(木) 17:25:48.70
>>117
背中を押してくれてありがと。
さっき2012から2013に入れ替えて、コンパイルできることを確認しました。

2010以降でできる必要があるんでワークアラウンドは結局いるんだけど、いろんな環境で試せてよかった。
169デフォルトの名無しさん:2014/01/02(木) 17:25:55.29
>>162
>>120は荒らす意志はないんじゃね
ただ心が歪んでるだけだと思われ
170デフォルトの名無しさん:2014/01/02(木) 17:26:59.71
ぜんぜ知らんのだがjavaだったらまともなのか?
171デフォルトの名無しさん:2014/01/02(木) 17:32:23.64
>>170←ゴミクズの言い訳を真に受ける馬鹿wwwww
172デフォルトの名無しさん:2014/01/02(木) 17:34:03.27
>>171
だってjavaは全く知らないだもん。
173デフォルトの名無しさん:2014/01/02(木) 17:35:04.92
わざとらしい間違え方すんなよ
174デフォルトの名無しさん:2014/01/02(木) 17:37:00.30
175デフォルトの名無しさん:2014/01/02(木) 17:40:23.77
hoge厨には馬鹿チョンしかいないという説が今回も>>120によって補強されました。
176デフォルトの名無しさん:2014/01/02(木) 17:42:00.49
>>174
ありがとうございます すごくわかりやすいです。
177デフォルトの名無しさん:2014/01/02(木) 17:44:07.61
>>172
Java知らなくても>>120の頭の程度をみれば分かるだろ
178デフォルトの名無しさん:2014/01/02(木) 17:49:40.68
>>174

const

++i, j += 100 )
179デフォルトの名無しさん:2014/01/02(木) 17:51:31.32
ああ、i++ はよくないな
180デフォルトの名無しさん:2014/01/02(木) 17:53:20.85
181デフォルトの名無しさん:2014/01/02(木) 17:54:40.66
c++ならいいのか
182デフォルトの名無しさん:2014/01/02(木) 17:55:10.44
>>179
プリミティブは気にしなくていいですよ。
カウンタは後置のほうが見た目と動作が一致するのでわかりやすいです。
183デフォルトの名無しさん:2014/01/02(木) 18:00:08.34
>>180
なんでスマポ使わないん?
184デフォルトの名無しさん:2014/01/02(木) 18:02:18.71
説明のためですね。
185デフォルトの名無しさん:2014/01/02(木) 18:02:36.09
型を気にして前置と後置使い分けるとか馬鹿らしい
186デフォルトの名無しさん:2014/01/02(木) 18:02:39.41
イテレータ使い始めた頃から
後置が必要でなければすべて前置インクリメントするようになった
187デフォルトの名無しさん:2014/01/02(木) 18:02:42.49
初心者にnew,deleteの動作を教えるのになんでスマポなんだよ
188デフォルトの名無しさん:2014/01/02(木) 18:12:06.53
スレが伸びてると思ったらhogeキチの>>120が来てたのか、正月から迷惑だな。
189デフォルトの名無しさん:2014/01/02(木) 18:24:29.13
>>182
プリミティブとは何ですか?
190デフォルトの名無しさん:2014/01/02(木) 18:26:43.50
>>188
ホゲキチガイは意図的な嵐じゃねーの
>>160みたいなのはホゲが禁止されていると知って
意図的にとぼけてるようだし
191デフォルトの名無しさん:2014/01/02(木) 18:27:06.95
192デフォルトの名無しさん:2014/01/02(木) 18:29:51.31
前置インクリなんて変態しか使いよらんじゃろ
193デフォルトの名無しさん:2014/01/02(木) 18:30:16.31
またかよ。
C++に「プリミティブ型」などと言う物は無い。Java用語。
C++のそれはfundamental typeと言う。
194デフォルトの名無しさん:2014/01/02(木) 18:31:25.13
前置しか使わんな
195デフォルトの名無しさん:2014/01/02(木) 18:32:16.63
単なる外来語です。
196デフォルトの名無しさん:2014/01/02(木) 18:33:26.25
for (int i = 0; i < n; ++i)
一度馴染むと後置のほうがキモくなる
197デフォルトの名無しさん:2014/01/02(木) 18:34:51.57
>>196
根拠も必然性も無しにお前の感覚を語られても
198デフォルトの名無しさん:2014/01/02(木) 18:34:54.46
後置きサクサクじゃー
199デフォルトの名無しさん:2014/01/02(木) 18:35:54.62
>>196
???
200デフォルトの名無しさん:2014/01/02(木) 18:36:51.10
スタイルについては、自分の属している組織に準じれば良いのではないでしょうか。
次は、コンテナ版を誰か書いてあげてください。
オッチャンは家の用があるのでお暇します。
よろしく。
201デフォルトの名無しさん:2014/01/02(木) 18:39:46.43
>>120
すげーな、やっぱチョンは日本語間違えまくりだな
タイプミスってレベルじゃないしな

やっぱチョンがhogeを使うのか
202デフォルトの名無しさん:2014/01/02(木) 18:44:42.40
前置はキモくて嫌いだが、いちいち判断して混在とかするのはもっとキモくなるからな
結局前置統一だわ
203デフォルトの名無しさん:2014/01/02(木) 18:45:33.77
>>197
型によっていちいち前置と後置を使い分けるのと統一するのとどっちがいいと思うんだ?
それともすぐ破棄される一時オブジェクトを作るのが趣味なのか?
204デフォルトの名無しさん:2014/01/02(木) 18:52:30.26
>>203
使い分けたらいいんじゃね?違う型なんだから。
intなどは古くからi++とするのが慣わしだったし
イテレーターは++iとする必要があるので、
イテレーターだけ++iで何が悪いのか
205デフォルトの名無しさん:2014/01/02(木) 18:53:13.16
>>203が前置と後置の使い分けをそもそも理解してなさそうな件
206デフォルトの名無しさん:2014/01/02(木) 18:56:52.97
いちいち使い分けるのは無意味だな
統一感の方が大事
207デフォルトの名無しさん:2014/01/02(木) 18:59:05.62
>>203の言いたいことであってんじゃね?
208デフォルトの名無しさん:2014/01/02(木) 19:01:28.70
>>190
禁止なんかされてない
荒らすな チョーセン人
209デフォルトの名無しさん:2014/01/02(木) 19:05:15.22
>>205
そのツッコミの方が話しの筋を追えてない感がある
210デフォルトの名無しさん:2014/01/02(木) 19:05:16.02
>>203は生ポとスマポの区別もつかなそう
211デフォルトの名無しさん:2014/01/02(木) 19:08:56.58
>>208
>>1-3を百回読み直してこいキチガイ
212デフォルトの名無しさん:2014/01/02(木) 19:09:49.85
造船人は「郷に入りては郷『が』従え」だから本当にタチが悪い
213デフォルトの名無しさん:2014/01/02(木) 19:10:10.56
>>208
>>1-3を百回読み直してこいキチガイ
21418:2014/01/02(木) 19:10:11.25
>>210 とかなると、ああ、いつもの人かなって感じ。
215デフォルトの名無しさん:2014/01/02(木) 19:16:12.15
ああ、いつもの人か
216デフォルトの名無しさん:2014/01/02(木) 19:22:41.77
よし生ポとスマポの統一感のために
ポインタの++は禁止な
必ずoperator[]を使うことにしよう
217デフォルトの名無しさん:2014/01/02(木) 19:31:05.39
>>160は安定のQZ
気がふれているのでスルーでお願いします(^_^)
218デフォルトの名無しさん:2014/01/02(木) 19:35:02.66
>>208は安定のQZ
気がふれているのでスルーでお願いします(^_^)
219デフォルトの名無しさん:2014/01/02(木) 19:51:49.57
統一感っていうけど
for (int i = 0; i < n; ++i)
for (vector<baka>::iterator i = container.begin(); i != container.end(); ++i)
統一感なんてどうでもいいくらいに書き方違わね?

for (auto &i : container)
でおk
220デフォルトの名無しさん:2014/01/02(木) 19:58:18.34
>>114
意図や利用場所にもよるんだろうが、ローカルで使うなら
{struct SCOPE ## var { \

}} scope_ ## var(var);}
じゃねーの?それに複数使いたい場合とかも微妙なような・・・
221デフォルトの名無しさん:2014/01/02(木) 20:01:35.14
>>219
まぁ、イテレータをインクリメントするくらいだから、
そんときイテレータの型はばっちり意識してるわけだしなw
整数で回すときより、抽象度は下がってる。
222デフォルトの名無しさん:2014/01/02(木) 20:03:16.50
>>208
国籍で驕るのは、我が国を衰退させた元凶の1つ
自らの正当性を説きたくば、あくまでコードで語れ
223デフォルトの名無しさん:2014/01/02(木) 20:08:12.54
>>217-218
デタラメな言いがかりは、チョーセン人の遺伝子に組み込まれているようだな

hoge禁止ルールのねつ造は従軍慰安婦ねつ造のそれと同じ思考なのだろう

板全体を荒らし始めやがった
224片山博文MZコスモ ◆T6xkBnTXz7B0 :2014/01/02(木) 20:09:10.41
scope以外でいい名前ないかな? 確かに誤解を招く。スコープを出たらデストラクタが
呼ばれるというコードなんで、スコープを局所に絞るのは意味ないかと
225デフォルトの名無しさん:2014/01/02(木) 20:11:32.72
>>222
うんこコードしか書けないQzはチョーセン人以下
226デフォルトの名無しさん:2014/01/02(木) 20:13:59.96
id導入まだかよ…
227片山博文MZコスモ ◆T6xkBnTXz7B0 :2014/01/02(木) 20:19:56.92
よし、Javaに習って
MZC_FINALLY_BEGIN(TYPE,var)
...
MZC_FINALLY_END(TYPE,var)
にするぞ
228デフォルトの名無しさん:2014/01/02(木) 20:21:58.06
Boost.ScopeExit
229デフォルトの名無しさん:2014/01/02(木) 20:24:26.64
hoge厨の相手なんかするからスレが荒れるんだろ
レス返してた奴は猛省しろ
230デフォルトの名無しさん:2014/01/02(木) 20:27:25.52
年明け早々、あぼーんあぼーんしとるのう。
231デフォルトの名無しさん:2014/01/02(木) 20:42:58.86
俺たちは回答したいと思う質問者に回答してるだけ。
質問者がhogeユーザーかどうかは問題ではないし、
hogeユーザーに回答したことによってスレが荒れようが壊滅しようが知ったことじゃない。
232デフォルトの名無しさん:2014/01/02(木) 20:52:26.30
スレのルールに反した書き込みは有用であっても削除依頼を出して消してもらえばいい。
運営に掛け合ってみるといいと思う。
スレ上で戦われると読みづらい。
オッチャンはそう思います。
233デフォルトの名無しさん:2014/01/02(木) 20:53:38.18
>>231
ゴタクはスレのルールを守ってからにしろよキチガイ
自分が荒らしを助長しておきながら
「荒れようがし知ったことではない」とかふざけんな
234デフォルトの名無しさん:2014/01/02(木) 20:54:00.73
hogeと書くだけで、頭の固い一部住人を釣って排除できる仕組み。
235デフォルトの名無しさん:2014/01/02(木) 20:57:26.83
スレのルール自体がおかしいなら、そのスレは廃れればいい。
有用な書き込みが消されるなら、有用な書き込みができる人は他所に移る。
ゴミ屑しか残らない。
2CHにゴミ屑しか残っていなければ、他のサイトに移る。
ゴミ屑しか寄り付かない。
ネット資本主義です。
オッチャンはそう思います。
236デフォルトの名無しさん:2014/01/02(木) 21:01:07.45
ヤフーにプログラミングの相談ができる掲示板があるので、そこに移るといいと思う。
237デフォルトの名無しさん:2014/01/02(木) 21:04:33.23
チョーセン人の出来る事は言いがかり付けるだけ。
まともに回答する能力はないので、質問にはhogeを使っておけば
チョーセン人のクソ回答を回避できる。
238デフォルトの名無しさん:2014/01/02(木) 21:05:34.06
piyo
239デフォルトの名無しさん:2014/01/02(木) 21:06:09.22
おいだれか冷静な住民いたらまとめてくれ
どういう構図で戦ってんだこいつら
240デフォルトの名無しさん:2014/01/02(木) 21:08:20.35
どっちも頭がおかしいからほっとけばいいhoge
241デフォルトの名無しさん:2014/01/02(木) 21:10:41.08
所詮自作自演で荒らしてるだけなんで、誰も食いつかなければ左右に分かれて
一人で自演してる。
そのうちだれか食いついてくる。
そういうわけなんで、運営に行けってことにすればいい。
242デフォルトの名無しさん:2014/01/02(木) 21:12:54.28
>運営に行け
姉妹スレでホゲキチガイがコピペ貼りまくったときに
通報したアンチは涙目だったなwwwww
243デフォルトの名無しさん:2014/01/02(木) 21:13:47.56
>>242
ここに書かないで運営行け。
244デフォルトの名無しさん:2014/01/02(木) 21:19:17.73
>>239
hoge本で失敗したチョーセン人がhogeに対して恨みを持ち
hoge撲滅を終生の目標と定めてム板を攻撃している
245デフォルトの名無しさん:2014/01/02(木) 21:24:29.54
>>239
hoge推進派とhogeアンチが争っていた
hoge推進派は煽りスレを立てて、コピペを多量に投下した
激情したアンチがhoge禁止スレを立てた
hoge推進派は無視してhogeを投下している
争いは続く
246デフォルトの名無しさん:2014/01/02(木) 21:27:17.25
つまりhogeを境に二者が互いの主張で争ってんのね?
それに加えてまたQZがどうのとかいうやつが紛れ込んでるのね?
(QZがどうの、ってやつは宿題スレを長期間荒らしに荒らしまわったので、
こいつについては俺はよく知っている)
247デフォルトの名無しさん:2014/01/02(木) 21:33:26.94
>>246
QZはhoge推進派の一人
いつも969か949で(アンチに先にスレを立てられる前に)
禁止ルールを削った次スレを立てようとするが
先日は立て間違えてゴミスレを作ってしまった
248デフォルトの名無しさん:2014/01/02(木) 21:36:03.58
hoge推進派なんていねーよ
こんなの日本では昔から慣習的に使われていたのに
何故か発狂するキチガイがいるだけ

日本の慣習は全て気に食わない類の人間だろ
249デフォルトの名無しさん:2014/01/02(木) 21:38:55.67
>日本では昔から慣習的に使われていた
ほらまた印象操作が始まったw
250デフォルトの名無しさん:2014/01/02(木) 21:39:04.94
なるほどそうか。
chige にでもしたかったのか?
251247:2014/01/02(木) 21:40:14.44
だが壮大なコピペが推進派の仕業なのかアンチの仕業だったのかは
意見の別れるところ
252デフォルトの名無しさん:2014/01/02(木) 21:44:51.90
>>245
hoge推進派なんて見たことねーぞ。
連呼してる荒らしはいたがどう解釈してもあれは推進してない。
>>246
禁止ってルールを既成事実に出来ないと発狂しちゃう人が居るだけ。
禁止する理由は「荒れるから」「俺が嫌いだから」「hoge使う奴はアホだから(質問行為全否定)」しか出してない。
hoge許可スレ設置→影も形も無かったhoge連投荒らし発生→禁止すべき発言→話題転換に成功すると荒らし停止→禁止すれば荒れない実績が!(ドヤ顔)
・・・どうみても自演です本当にありがとうございました
253デフォルトの名無しさん:2014/01/02(木) 21:48:19.18
お前ら運営行け。
ここでやるな。
254デフォルトの名無しさん:2014/01/02(木) 21:49:10.10
これは根が深い。
お前らの相手を恨むパワーは最大限まで発揮されてるんだな。
255デフォルトの名無しさん:2014/01/02(木) 21:49:53.35
>>252
全て妄想の域を出ない妄言だって自覚はある?
なかったら糖質だから病院行けよ。
256デフォルトの名無しさん:2014/01/02(木) 21:53:19.08
>>250
その手の具体的な目標のある行為じゃなく、荒らしたいから荒らしてる類だと思うよ。
hoge使う解説はレベル低いからその影響受けた奴を排除する為にhoge禁止って理屈だから質問スレ自体全否定だな。
257デフォルトの名無しさん:2014/01/02(木) 21:54:37.06
>>245
追記: あとから来た俺は、なにやってるんだこいつら?と思って、
hogeと書いたり書かなかったりしている しょうもないことで人を縛るな、俺は知らん
258デフォルトの名無しさん:2014/01/02(木) 21:56:45.08
>>256
真に優秀な人間は、2ちゃんには居ない。
ここで答えてくれる奴ならオーライ。五十歩百歩。
あと一応256オメ
259片山博文MZコスモ ◆T6xkBnTXz7B0 :2014/01/02(木) 22:00:44.58
>Boost.ScopeExit

初心者に1317行も読ませるのかよ。。。つくづく頭でっかちなライブラリだな
260デフォルトの名無しさん:2014/01/02(木) 22:03:42.80
禁止なら禁止でいいから荒れないようにしてくれ。
別にclassみたいなC++では必ず使うようなタームが禁止されるわけじゃないから
こちらとしては禁止にしてもらっても問題ない。
261デフォルトの名無しさん:2014/01/02(木) 22:05:23.05
参考までに関連スレより

6 デフォルトの名無しさん sage 2013/10/19(土) 21:46:06.01
今までのあらすじ
-------以前のスレ
 hoge変数
  ↓
 hoge死ね!
  ↓
 荒れるからhogeは禁止にしろ
--------以前のスレ
 >>1ですhogeは禁止しません
  ↓
 許可なんだなテメーhoge hoge hoge hoge
  ↓
 >>1のせいだシネ
-------前スレ
 >>1(名前:ほげ)。hogeは禁止しません(プ)
  ↓
 意図的にやってるなテメーhoge hoge hoge hoge
  ↓
 (コピペで荒れる。1は700レスほど沈黙)
  ↓
 712:俺が1。気違い共の俺へのレスを今見たわ悪ぃw
 ゴミクズ!気違い!気違い!
------本スレ
 >>1: hogeは無しで
262デフォルトの名無しさん:2014/01/02(木) 22:06:38.64
goto禁止やマクロ禁止みたいにそれなりに意味のわかる禁止ならまだしもだがな
263デフォルトの名無しさん:2014/01/02(木) 22:07:50.99
>>256
前から思ってるんだけどhoge質問をスルーしたところで
質問者はなんでスルーされたか分からないと思うんだよね

スレ違いの質問にレスつけるのは基本的にアウトだけど
誘導のためなら許されるじゃん?

だからhoge質問にもhogeを使ってない本やホムペで一から勉強しなおせと
一言レスをつけるくらいの余裕はあっていいと思うんだよ
回答はアウトでいいけどその一言くらいはレスさせて欲しい
264デフォルトの名無しさん:2014/01/02(木) 22:09:42.86
じゃあ、おれは foo を使うわ :P
265デフォルトの名無しさん:2014/01/02(木) 22:17:17.90
>>260
無駄無駄、スルーしないなら荒らしとか言いながらhogeが出るたびに一々噛み付いたり「スルーしない奴は荒らし」ってコピペ貼って騒いでるから。
自分がスルーしてないのにスルーしない奴は荒らしって書く辺り自分が荒らしだって自覚はあるんじゃねーかな。
266デフォルトの名無しさん:2014/01/02(木) 22:21:58.20
コードで語れ。ってスレなのに、hogeにこだわって騒ぐあたり、
実は誰かに召喚された非C++erなんじゃないの?と思ったり。
267デフォルトの名無しさん:2014/01/02(木) 22:23:55.85
>質問者はなんでスルーされたか分からないと思うんだよね
これはあるだろうな。
俺の回答欲のせいでスレが荒れるのは避けたいから一応スルーしてるけども。
268デフォルトの名無しさん:2014/01/02(木) 22:24:23.71
>>263
勉強しなおせなんて回答がOKな質問スレとか質問スレの意味が無いんだが…
質問スレで勉強不足や資料選択ミスを根拠に門前払いとかナンセンス過ぎる。

禁止理由でスレの目的自体が破綻してしまってるからスレチ以前の問題だよ。
269デフォルトの名無しさん:2014/01/02(木) 22:26:21.61
>>263
アンチhogeのチョーセン人はスルーできない DNAに組み込まれた粘着力
270デフォルトの名無しさん:2014/01/02(木) 22:29:39.01
>>268
門前払い?
テメーの読んでるのは間違った資料だと教えてもらえるんだろうが
271デフォルトの名無しさん:2014/01/02(木) 22:32:45.94
ここは相談スレだからな。
「hoge がダメな理由がわかりません。相談に乗ってくれませんか?」は排除できないはず。

ところで、
std::conditional< 0 < 2, int, char>::type nakamura;

std::conditional< 0 > 3, int, char>::type kataoka;
後者がエラーにならないコンパイラありませんか?
272デフォルトの名無しさん:2014/01/02(木) 22:33:12.60
つまり、こういうことか

・hogeは非推奨です。hogeアンチ、アンチhogeアンチがスレで遊んで困っています。
・hogeアンチ、アンチhogeアンチを構うのも非推奨です。
・てかいいからコードで語れよお前ら。

>>270
原則として、2ちゃんには面白いことを書けって言われただろ
そもそも、このスレは規格書読めない人間は門前払い前提か?
それならそう書かないとだろう
273デフォルトの名無しさん:2014/01/02(木) 22:33:38.10
>>269
あ、韓国人だ
おはよう
274デフォルトの名無しさん:2014/01/02(木) 22:34:39.88
Win32API質問箱でMSDNを全部読んで理解した奴以外質問禁止って言ってる奴そっくりな奴がいるな
275デフォルトの名無しさん:2014/01/02(木) 22:41:29.71
>>274
そんな事言ってる奴はいない。読んで理解できなくて質問するのは全然問題ない
読めばわかる事をわざわざ聞くバカが叩かれる
276デフォルトの名無しさん:2014/01/02(木) 22:42:31.67
>>271
カッコつけてみて
277デフォルトの名無しさん:2014/01/02(木) 22:44:54.88
hoge質問者はhoge本やhogeサイト見て理解できなかったんだろ?
まずは自分のやってきたことを省みろよ
278デフォルトの名無しさん:2014/01/02(木) 22:47:42.44
>>275
「規格書を読めばわかる事をわざわざ聞くな」
という「相談室」か。ゴツイな。
俺は2012Draftしか持ってないが。
279デフォルトの名無しさん:2014/01/02(木) 22:49:41.89
>>276
std::conditional< (0 > 3), int, char>::type kataoka;
がエラーにならないんじゃなくて、
std::conditional< 0 > 3, int, char>::type bando;
がエラーにならないコンパイラ
280デフォルトの名無しさん:2014/01/02(木) 22:50:57.35
>>273
>>269は日本人だよ。
韓国系日本人の二世か三世。
ソフト〇ンクの社長みたいなもん。
281デフォルトの名無しさん:2014/01/02(木) 22:52:03.66
>>277
それってある種の初心者排除ってことだよね
でも、初心者歓迎スレにもそれ書いてあるよね
282デフォルトの名無しさん:2014/01/02(木) 22:52:26.75
>>278
全くだ。
283デフォルトの名無しさん:2014/01/02(木) 22:54:52.02
>>278
あほう、MSDNと規格表じゃ全然違う
2chで質問できるという事はMSDNを参照できるという事だ
284デフォルトの名無しさん:2014/01/02(木) 23:04:06.35
MSDNって「読み方」ってあるよね 結構暫く溺れてた
C++の規格書ってのもちょっと似てる
285デフォルトの名無しさん:2014/01/02(木) 23:05:31.23
>>283

>> 272
> そもそも、このスレは規格書読めない人間は門前払い前提か?

に対して、

>>274
> Win32API質問箱でMSDNを全部読んで理解した奴以外質問禁止って言ってる奴 「そっくりな奴」 がいるな

ときて、

>>275
> そんな事言ってる奴はいない。読んで理解できなくて質問するのは全然問題ない
> 読めばわかる事をわざわざ聞くバカが叩かれる

だよ。

つまり「読めば」ってのは規格書のこと
286デフォルトの名無しさん:2014/01/02(木) 23:09:45.70
2つ質問させてください。
手元にコンパイル環境がないのでためせません。

>>120の問題点である
cl = new CLASS_hoge[i];のせいで
i=4の時にclの示すアドレスがCLASS_hoge[4]の配列で
上書きされてるのはわかるんですが、
i=4の時に、配列には、0から3までしかないか、メモリの不正アクセスが発生しませんか?

また、cl[i].output();で表示しようにも
配列にはi=0〜3のときの
cl[i].output();って400ではなく初期値じゃないんですか?
287デフォルトの名無しさん:2014/01/02(木) 23:09:56.51
> 規格書読めない人間
には規格書を持っていない人間も含まれる
持っていなけりゃ当然読めない
288デフォルトの名無しさん:2014/01/02(木) 23:28:38.84
289デフォルトの名無しさん:2014/01/02(木) 23:35:17.65
>>288
Javaでもまともなプログラム書けるとは思えぬ
290デフォルトの名無しさん:2014/01/02(木) 23:48:08.60
>>286
発生しないよ











って回答がくれば満足か?
HOGE厨って頭弱いからそれで信用するんだろうなW
291デフォルトの名無しさん:2014/01/02(木) 23:50:08.84
>>288
thx!
292デフォルトの名無しさん:2014/01/03(金) 00:02:28.61
>>279
あるかどうか知らないけど、規格的にはそれはエラーになるのが正しい
たぶん14.2.3
293デフォルトの名無しさん:2014/01/03(金) 00:08:59.69
>>291←自分で過去ログすらチェックできないこれがホゲキチガイの知能レベル。
294デフォルトの名無しさん:2014/01/03(金) 00:09:53.41
>>292
thx!
295デフォルトの名無しさん:2014/01/03(金) 00:25:45.19
まだ荒らし続けのか? チョーセン人
296デフォルトの名無しさん:2014/01/03(金) 00:25:55.53
昔のことは知らないんだけど、相談室にふさわしい意味のある質疑ってこれまでにあったの?
297デフォルトの名無しさん:2014/01/03(金) 02:10:37.04
>>295
チョーセン人だとバレてかなり動揺してるな
多くの人が不快感を持つhogeを平気で使えるなんて、遺伝子レベルでの欠陥があるのだろう
298デフォルトの名無しさん:2014/01/03(金) 02:19:49.34
>>265
>「スルーしない奴は荒らし」ってコピペ貼って
アンカー付けてなけりゃ別にいいだろ。
それとも自分に反応したと勘違いしちゃったの?
299デフォルトの名無しさん:2014/01/03(金) 02:35:41.45
>>286
初期値だが何か?
いい加減、ホゲ禁止のスレでホゲ嵐を続けるのをやめた方がいいぞキチガイ
300デフォルトの名無しさん:2014/01/03(金) 03:20:06.69
存在しない規則をコリエイトして荒らしまくるチョーセン人
301デフォルトの名無しさん:2014/01/03(金) 04:35:24.31
何が彼を必死にさせるのだろう?
302デフォルトの名無しさん:2014/01/03(金) 05:21:57.06
全ての規則はそもそも存在しないところに作られたものなんだけどな。
韓国人の間では宇宙創世より前から存在する規則があるのだろうか。
303デフォルトの名無しさん:2014/01/03(金) 05:42:58.29
ほんの数日で300レスとは、C++さすがだな。
304デフォルトの名無しさん:2014/01/03(金) 05:46:40.30
C++はネイティ吐けるんだからそりゃ速いだろ
インタプリタモドキのC#とはダンチ
305デフォルトの名無しさん:2014/01/03(金) 06:05:08.46
C++のいいところは、あの奇妙なテンプレート。
パズルのようでぴったりはまるとなんだかうれしい。
速度なんか正直どうでもいい。
大切なことだけどどうでもいい。
306デフォルトの名無しさん:2014/01/03(金) 06:47:01.16
テンプレートが好きならC++捨ててD言語おすすめ
307デフォルトの名無しさん:2014/01/03(金) 06:54:48.74
なんだそれ?聞いたことねえな。
昔は聞いたことあったのにな。
308デフォルトの名無しさん:2014/01/03(金) 07:42:10.86
素人が書いたテンプレートなんてまず使い物にならない
309デフォルトの名無しさん:2014/01/03(金) 07:53:51.03
プロの素人なので大丈夫です。
310デフォルトの名無しさん:2014/01/03(金) 09:46:33.13
素人童貞ですねわかります。
311デフォルトの名無しさん:2014/01/03(金) 09:52:15.75
>>308
素人の作ったテンプレートツール使ってるよ。
312デフォルトの名無しさん:2014/01/03(金) 11:03:57.74
>>293
お前らがほげほげ騒いでるから見落としたんだよ
確かにホゲソースだったけどさ
313デフォルトの名無しさん:2014/01/03(金) 11:07:22.50
hogeをNGに入れておけばよい
314デフォルトの名無しさん:2014/01/03(金) 11:20:00.28
>>252
うっかり使ってしまう新参者以外で
推進派なんてオマエしかいないだろjk
たぶんオマエがいなければ元から荒れることはないと思うんだQZ
315デフォルトの名無しさん:2014/01/03(金) 11:44:05.80
>>314
「うっかり使ってしまう」のを「推進派」と分類するのがオマエの論理性の無さなんだなあ。
周りは苦労するだろう。
316デフォルトの名無しさん:2014/01/03(金) 12:00:28.50
誤 推進派
正 hoge荒らし
317デフォルトの名無しさん:2014/01/03(金) 12:14:38.72
hoge論争の経緯

-------初心者84以前のスレ
 ホゲ(hoge変数)
  ↓
 アンチ「hoge使う奴は死ね!
  ↓
 アンチ?「荒れるからhogeは禁止にしろ
--------初心者85
 ホゲ「>>1ですhogeは禁止しません★
  ↓
 アンチ「許可なんだなテメーhoge hoge hoge hoge
  ↓
 アンチ「>>1のせいだシネ
-------初心者86
 ホゲによるスレ立て「>>1(名前:ほげ)。hogeは禁止しません(プ)★
  ↓
 アンチ「意図的にやってるなテメーhoge hoge hoge hoge
  ↓
 ?「コピペ推奨ですね? >>1
 (というhogeコピペが続く。1は700レスほど沈黙)
  ↓
 ホゲ「712:俺が1。気違い共の俺へのレスを今見たわ悪ぃw
   ゴミクズ!気違い!気違い!★
------初心者87
 アンチによるスレ立て「hogeは禁止で
------初心者88
 アンチによるスレ立て「hogeは禁止で
  ↓
 ホゲ「そんなルールは存在しない★

★=QZ
318デフォルトの名無しさん:2014/01/03(金) 12:26:56.70
コピペ荒らしはQzのしわざだろ。
自分でスレッドを立てておいて、
レスが700になるまで見てなかった
なんてあるわけ無いだろうjk
319デフォルトの名無しさん:2014/01/03(金) 12:34:14.87
hoge論争の続き

------初心者88
 アンチによるスレ立て「hogeは禁止で
(C/C++スレは平和に)

------C++スレ109
 アンチによるスレ立て「hogeは禁止で
  ↓
 (hoge変数使用〜hogeは禁止ですコピペ のループ)
  ↓
 ホゲ「アンチは自らのスルールールも守れない馬鹿w ★
 アンチ「hogeは禁止。スレのルールには従え
 ホゲ「そんなルールは存在しない★

★=Qz
320デフォルトの名無しさん:2014/01/03(金) 12:48:13.94
コピペ荒らしは逆恨みを永久に記憶する遺伝子を持ってるチョーセン人の仕業
321デフォルトの名無しさん:2014/01/03(金) 12:54:32.74
>>320=Qz
700レスもの間、スレが荒れたのを放置したのは
テロに屈しないからですか?
322デフォルトの名無しさん:2014/01/03(金) 13:00:40.27
荒らしといて「止めないのが悪い」
まったくチョーセン人の遺伝子はクズだな
323デフォルトの名無しさん:2014/01/03(金) 13:04:41.42
自分でhoge許可の煽りスレを立てて
「コピペ上等だよね >>1 hoge hoge〜」と自分にレスしてスレを荒らして
700あたりで「おまえら馬鹿めキチガイ」
と開き直ったクズは言うことが違うね
324デフォルトの名無しさん:2014/01/03(金) 13:12:30.46
> 「コピペ上等だよね >>1 hoge hoge〜」と自分にレスしてスレを荒らして
でたー、アイムザッパニーズ チョーセン人の特技、国技
325デフォルトの名無しさん:2014/01/03(金) 13:25:00.53
>>324
自己紹介乙
韓国の人って正月もネット掲示板に張り付いてるのか・・・
326デフォルトの名無しさん:2014/01/03(金) 13:27:52.94
ここはhogeエヴァンジェリストであるQZさんと
それによって被害を被ったアンチさんとの
不毛な争いのスレッドとなりました
327デフォルトの名無しさん:2014/01/03(金) 13:28:08.18
>>315
日本語が理解できないようだね
hoge厨はやっぱり韓国人だったか
328デフォルトの名無しさん:2014/01/03(金) 13:33:44.85
エヴァンジェリストって何だ?
福音派?
329デフォルトの名無しさん:2014/01/03(金) 13:37:39.63
>>327
おまえ本当にダメなやつだな。
330デフォルトの名無しさん:2014/01/03(金) 13:42:31.10
>>327みたいなのはもうしょうがないんだよ
331デフォルトの名無しさん:2014/01/03(金) 13:44:27.96
QZはアンチアンチhogeテロリスト。
アンチhogeに対して「テロには屈しない」といって
執拗な対抗意識を持つお方。
hoge禁止スレを見つけてはhogeを投下して荒らし、
自らの正義を貫いたと考える輩。
332デフォルトの名無しさん:2014/01/03(金) 13:47:51.48
見破られて動揺したチョーセン人が、自分より下のQZ認定する事でごまかそうと画策してる
チョーセン人の浅知恵
333デフォルトの名無しさん:2014/01/03(金) 13:49:32.66
これだからQは精神科行ってるんだよな
こんなキチガイが実社会で生きていけるわけがない
334デフォルトの名無しさん:2014/01/03(金) 13:58:20.07
あちなみにQZは
>>4=>>5=>>322=>>324=>>329=>>330=>>332です
「(朝鮮でなく)チョーセン」
「ザッパニーズ」
「LR(ローカルルール)」
「(キチガイでも基地外でもなく)気違い」
「ゴミクズ」
「鮮人」
という言葉を多用します。
335デフォルトの名無しさん:2014/01/03(金) 14:04:49.18
>自分より下のQZ
自分が相手より下なことは認めるんだw
336デフォルトの名無しさん:2014/01/03(金) 14:12:33.87
必死でQZ認定を続けるチョーセン人の浅知恵
337デフォルトの名無しさん:2014/01/03(金) 14:48:44.10
日本語に弱い>>315が発狂しててワラタw
338デフォルトの名無しさん:2014/01/03(金) 14:51:07.27
韓国人が「浅知恵」という単語を習得しました。
339デフォルトの名無しさん:2014/01/03(金) 14:55:07.06
>>314
 > >>252
 > うっかり使ってしまう新参者以外で
 > 推進派なんてオマエしかいないだろjk
 
「新参者はhogeをうっかり使ってしまう。それ以外の推進派なんて・・・」という文章だろ。
推進派という集合の中に新参者が入っているのは明らか。
>>314の頭の中ではhogeをうっかり使ってしまった新参者もhoge推進者に分類されているのさ。
340デフォルトの名無しさん:2014/01/03(金) 14:56:21.25
>>334
つまんねーこと言ってないでなんかネタ振れや!
341デフォルトの名無しさん:2014/01/03(金) 14:56:49.34
質問です
この流れはいつまで続くのでしょうか?
342デフォルトの名無しさん:2014/01/03(金) 14:59:11.08
チョーセンジンチョーセンジン騒いでるhoge厨が消えるまで。
343デフォルトの名無しさん:2014/01/03(金) 15:12:28.74
>>337
おまえが弱いのは日本語だけじゃなくて頭全体のようだな。
344デフォルトの名無しさん:2014/01/03(金) 15:35:31.32
C++のネタなんて尽きてしまっているのです。
345デフォルトの名無しさん:2014/01/03(金) 16:38:48.72
baka move_helper(baka & qz)
{
return std::move(qz);
}



// 呼び出し(おっと受け取り手がない!)
move_helper(qz);
346デフォルトの名無しさん:2014/01/03(金) 16:54:23.97
baka&&
347デフォルトの名無しさん:2014/01/03(金) 16:55:47.07
swap(baka& b, kuzu& qz);
348デフォルトの名無しさん:2014/01/03(金) 16:56:54.24
hogeって書いて何が問題なの?って考えたら見えてくるな。
それに過剰に反応するやつが結局スレ荒らしてるんだな。
hogeなんて何十年もまえからプログラミングの話題にフワフワ乗っかってきてるだけのものなのに。
なぜ今更過剰に反応してるのかが不明。
349デフォルトの名無しさん:2014/01/03(金) 17:01:53.41
>>348
だからそういうのは「キチガイ」と言うんだよ
専門用語では「了解不能」と言う
350デフォルトの名無しさん:2014/01/03(金) 17:02:50.88
まあhogeなんて今時見る機会も少ないからな。
351デフォルトの名無しさん:2014/01/03(金) 17:04:23.93
>>349
お前もいいから煽るなよw
煽られたら相手がどうするしかなくなるかくらい分かるだろう?
展開を固定させてるのはお前にも責任あるよ。
352デフォルトの名無しさん:2014/01/03(金) 17:05:31.76
>>351
いやそういうことまで責任を感じる必要はない
キチガイは精神病院に閉じ込めておくべき
353デフォルトの名無しさん:2014/01/03(金) 17:08:41.88
>>352
じゃあ俺からはこれ、お願いよ。頼むわw
な、ちょっとでも理性の残ってるほうに働きかけてるつもりだから。
hoge否定派じゃなくて、アンタに俺は話しかけてみてるから。
アンタがコントロールしてこの紛争を収めてくれないか。頼む。
354デフォルトの名無しさん:2014/01/03(金) 17:12:16.35
>>353
お断りする
お前がやれ
金くれるというのなら話は別だが
355353:2014/01/03(金) 17:16:08.34
話しかける相手を間違えたようだ。すまない。
hoge否定派で話聞ける人いる?
356デフォルトの名無しさん:2014/01/03(金) 17:19:00.72
あ、ひょっとして否定派っていうのが間違いで、
否定してスレ荒らしてるのは結局たった一人なのかな?
357デフォルトの名無しさん:2014/01/03(金) 17:20:30.86
>>345
ところがbakaクラスの定義は以下だった
struct baka {
// 出来損ないのコピコン
baka(baka &other):mem(other.mem){}
// おっと、移動コンストラクターが無い!
};

結果、bakaオブジェクトは逆に増えてしまった
358デフォルトの名無しさん:2014/01/03(金) 17:23:55.30
あちなみに
>>348=>>349=QZです
359デフォルトの名無しさん:2014/01/03(金) 17:28:56.85
>>348
hoge にもQZにも過剰反応することからも察してやれよ
360348:2014/01/03(金) 17:29:03.36
またQZ扱いされてなんとなくわかったわw
このスレ荒らしてるやつ、宿題スレ荒らしてたやつと一緒かもなw
過去にQZに言い負かされて私怨持っちゃってるんだよ。
その粘着力および見境の無さたるやすごいのなんの。
361デフォルトの名無しさん:2014/01/03(金) 17:31:36.95
まあQZに言い負かされたお頭ならばいたしかたあるまい
362デフォルトの名無しさん:2014/01/03(金) 17:35:22.67
Qの頭のおかしさをまとめたwikiまであるというのに
言い負かされるとは情けないと思わないのか?
363デフォルトの名無しさん:2014/01/03(金) 17:39:01.05
いや、あのwikiを書いたのこそが問題のQZアンチでしょうよw
おれあの顛末は宿題スレでリアルタイムに見てたぞw
364デフォルトの名無しさん:2014/01/03(金) 17:50:50.64
ここでいつものスローガンを書きたくなったが、C++ に tentative definition の概念はないのであった
365デフォルトの名無しさん:2014/01/03(金) 17:55:13.55
〜だな
やっぱ〜なのか

某最萌スレの汚物を思い出す言葉尻
なんだろう。別人だとして、自演する人らはだいたいこんな口調になるのかな
366デフォルトの名無しさん:2014/01/03(金) 18:00:39.11
あちなみに
>>364=QZです
367デフォルトの名無しさん:2014/01/03(金) 18:14:18.73
>>356
仮に複数だったとしても否定理由をロクに説明もせずに共感できてる辺りでお察し
368デフォルトの名無しさん:2014/01/03(金) 18:33:16.21
>>367
ホゲキチガイは今までさんざんスレを荒らしてきたというのに
「禁止する理由など無い」とか良く真顔で言えるものだ
369デフォルトの名無しさん:2014/01/03(金) 18:42:17.51
ほhogeの是非はあるが
少なくともまともな人間ならばこのスレの状況を見てhogeを使おうとは思わんよ
370デフォルトの名無しさん:2014/01/03(金) 18:51:21.74
foo, bar 使ってもウザい言われるにょ
どうすればいいの?
371デフォルトの名無しさん:2014/01/03(金) 19:11:41.07
それがウザいって言われてるのは見たことないが。
372デフォルトの名無しさん:2014/01/03(金) 19:26:23.97
「ウザい」じゃなかった。
前スレで「むかつくから使うなよ」って言われたよ
373デフォルトの名無しさん:2014/01/03(金) 19:33:09.25
asdやqweが一番楽なのに
374デフォルトの名無しさん:2014/01/03(金) 19:51:36.77
>>363
http://www54.atwiki.jp/qzaw55cn4c/pages/16.html

これの事か?
どう見てもQZが完敗の上に大爆死しているが
375デフォルトの名無しさん:2014/01/03(金) 20:04:03.57
シェアードライブラリとか…
思いっきり環境/OS依存なところに持ち込んで爆死扱いですか持ち込まれる方も方だが
376デフォルトの名無しさん:2014/01/03(金) 20:04:51.57
お前が書いたんだろ?
377376:2014/01/03(金) 20:05:32.47
>>376>>374へのレスね。
378デフォルトの名無しさん:2014/01/03(金) 20:29:38.87
>>369
根拠のない誘導乙
379デフォルトの名無しさん:2014/01/03(金) 20:39:40.38
根拠も何もまともな人はこのスレをさらっと読めばどういう状況か理解できる
380デフォルトの名無しさん:2014/01/03(金) 20:41:38.99
>>379
QZへの私怨でスレ荒らしまくりですか?
381デフォルトの名無しさん:2014/01/03(金) 21:09:57.83
\           /     /. : : : : : : : :ヽ-‐.: :_;. --- .._: : : : : : : :\       \      /
_  や  争  _   /, -‐==ミ: : : : _,ィニ-‐……ー-: 、`ヽ、: : : : ヽ、      _   や   _
_  め  う   _     . .:´: : : : : : : ≠:7: : : : : : : : : : : : :ヽ、 ヽ| : i : : :,     _   め   _
_  て  の   _   /.: : : : -‐: :7´: : /:,ハ : : : :ヽ : : : ゝ-- :\ | : :! : : : ,   _   て   _
_  :  は  _ /, -‐/.: : : : :i : : /ィ:爪: : :\ :\ : : :\: : :`ト : !: : : :′   _   :    _
    :        〃  /. : : : : : : |.:イ :ハ:| \: .、\: : xィ¬ト、: :| : : ! : : : : :,         :
/          \   /.: :/.: : : : /l : |/Гト、       / |_,ノ0:::ヽ : : :i : : : : :′ /        \
 /  |  |  \    | .:/.:/. : : :i: i : | |ノ0:::ト        |: :∩::::::ト: : : !: : : : : : :,  / | | \
             ∨i: |: : : : |: :ヽ| |::∩::|         !.::∪::::::| |: : :i : : : : : : ′            ,ィ /〉
               |: |: : i : :', : |  |::∪::|         !: : : : : :||: : i : : : : : : : :,          / レ厶イ
                ヽハ: : :、: :ヽ|  l : : : |    ,   └――┘ ! : : i : : : : : : : ′        /   ⊂ニ、
                い、: :\/   ̄ ̄                 ', : : i : : : : : : : : ,     _, -‐'    ⊂ニ,´
    r 、  _          ヽ: :〈        <    ̄}         |: : : ! : : : : : : : :′,.-‐T   _,. -‐'´ ̄
    くヾ; U|           | : \                   /| : : :i : : : : :_, -‐'    |  /
   r―'   ヽ、             | : : : \               イ: : :| : : :i_,. -‐       |/
    `つ _   ̄ ̄Τ`ー―-- L: : : : : `: : . . .  __    .:〔: : :|: : :r┬'              |
382デフォルトの名無しさん:2014/01/03(金) 21:13:24.75
>>379
いえプログラムを扱う職業では統合失調症もどきとパーソナリティ障害を併発しやすいんです。
たぶん3割以上はその手に染まってゆく。なぜならそういう能力が求められている
からである。つまりバカ的(非技術、創作など)な能力はいらないってことです。
383デフォルトの名無しさん:2014/01/03(金) 21:14:47.37
QZは統合失調症
384デフォルトの名無しさん:2014/01/03(金) 21:34:20.49
C++使いなんて、C#使いやじゃヴぁ使いと違って厨を卒業してものの分かった人たちの集まりだと思ってました。
385デフォルトの名無しさん:2014/01/03(金) 21:43:54.66
むしろ執着してるパラノイア系かと
386デフォルトの名無しさん:2014/01/03(金) 22:00:42.18
>>373
_ が一番楽だよ。
グローバルスコープでなきゃ自由に使ってOK。
俺はクラスのプライベートメンバは _ にしている。
387デフォルトの名無しさん:2014/01/03(金) 22:31:03.88
プログラミング素人が言語を学んで使えるようになるには
どのくらいの期間が必要なん?30時間ぐらいでマスターできる?
388デフォルトの名無しさん:2014/01/03(金) 22:32:16.13
↓何をもってマスターというのか定義がどうのこうの言い出すアホ
389デフォルトの名無しさん:2014/01/03(金) 22:38:00.22
brainfuckとか数分で言語仕様をマスターできてオススメ
390デフォルトの名無しさん:2014/01/03(金) 22:47:24.80
>>387
教える人の技量次第
391デフォルトの名無しさん:2014/01/03(金) 23:13:09.04
ネットで学ぶにはどこがおすすめ?hogehogeじゃない教材があると助かる
392デフォルトの名無しさん:2014/01/03(金) 23:16:08.53
2chがおすすめ
性格がひん曲がった連中が間違った知識を教えてくれるよ
393デフォルトの名無しさん:2014/01/03(金) 23:23:27.81
dotinstall
394デフォルトの名無しさん:2014/01/03(金) 23:43:50.24
最初は本がいいんじゃないか?
と思った俺はおっさんなのか・・・
395デフォルトの名無しさん:2014/01/03(金) 23:49:10.52
>>374
久しぶりに見たけど大笑いしたわ
初笑いだw
396デフォルトの名無しさん:2014/01/04(土) 00:00:18.74
すばらしい初笑いですね。
397デフォルトの名無しさん:2014/01/04(土) 00:09:00.67
グヒヒ ← >>395の初笑い
398デフォルトの名無しさん:2014/01/04(土) 01:15:30.82
うおーきも
399デフォルトの名無しさん:2014/01/04(土) 01:42:45.81
>>387
30時間なら、ぷろぐらみんぐのかんがえかたのきほん
がどうにか身につくくらいかな

マスターがどれくらいを指すのかわからんが
その10倍くらい頑張ればまあひよっこ以上にはなれるんじゃまいか
400デフォルトの名無しさん:2014/01/04(土) 01:56:24.95
ヘッダーに静的変数の定義を書きたいんですがどうしたらよかですか?
401デフォルトの名無しさん:2014/01/04(土) 02:08:32.84
書かないでください
402KUSO KOTE:2014/01/04(土) 02:39:28.85
ODRを使います
http://ideone.com/HrFW15
403デフォルトの名無しさん:2014/01/04(土) 03:26:18.89
>>400
ヘッダーというのはコンパイラが提供するものなので
アナタは書かないで下さい
404デフォルトの名無しさん:2014/01/04(土) 03:30:14.07
マスターって初心者と中級者とアルティメットマスタークラスと底辺ドカタ職業マと上級職業マでは指すものが全く違うでしょ

<それぞれのイメージしているマスター>
■初心者
Windowsだろうがファイナルファンタジー14だろうが1ヵ月程度でサクッと完成させるネ甲
夏休みの間に友達をアッと言わせるソフトを作りたい

■中級者
自分用のアプリケーションなら必要最小限の作業で思い通りのものが完成させられる
「時間さえあれば〇〇言語で作れないものはない」と豪語し始めるのがこの辺り

■アルティメットマスタークラス
コンパイラの特性も含め言語仕様を完全に理解しておりメモリ管理などを完璧に行える
アプリケーションの設計や完成させられるかどうかなどについては別腹

■底辺ドカタ職業マ
デスマも残業もせずに仕様書通りに開発し、納期に間に合わせられる
面倒なバグは解決できれば良いが、解決できなくとも上手くごまかしたい

■上級職業マ
企業などでの分業を前提として保守性や拡張性も含めて設計し、コストの見積りができる
アンテナを張り巡らせて最新のものをチェックしている
405デフォルトの名無しさん:2014/01/04(土) 03:39:06.35
>仕様書通りに開発

そんな当たり前のことができる奴は見たことがないな。
プログラマー=アスペ、コミュ障なので。
所詮は底辺のクズ。
406デフォルトの名無しさん:2014/01/04(土) 03:40:34.70
>>405
俺は仕様書を見たことが無い
407デフォルトの名無しさん:2014/01/04(土) 03:48:28.75
中級者の説明が不適切だな
「一応作りたい物を作るらしいが、他人には理解困難な糞を量産する。
特徴は『ここ汚い』と言われると『時間が無かったので』と
キモい笑いをしながら言い訳を始める。
実際には設計能力が欠落しているので
100万年の時間を与えてもマトモな物は作れない」
408デフォルトの名無しさん:2014/01/04(土) 03:57:26.76
このスレではhogeの使用が禁止されています
hogeを使いたい人は↓でお願いします

【hoge】メタ構文変数【foo】
http://toro.2ch.net/test/read.cgi/tech/1388050606/
409デフォルトの名無しさん:2014/01/04(土) 05:18:30.97
>>407
それ中級者は一生それ以上にならないって話にならね?
410デフォルトの名無しさん:2014/01/04(土) 05:41:20.74
そこはかとなく漂う闇プログラマー臭
411デフォルトの名無しさん:2014/01/04(土) 06:24:51.73
くだらねぇ
結局あんたは何を作ったの?ってことだよ
412デフォルトの名無しさん:2014/01/04(土) 06:30:38.03
ここにいる連中は何も作れないよ
会社にもいるだろ、言語についてだけはやたら詳しいが全く仕事できないやつ
そういうやつって、書籍のサンプルコード片を実行してだけ。
413デフォルトの名無しさん:2014/01/04(土) 07:12:31.04
江添先生の悪口ですか。
414デフォルトの名無しさん:2014/01/04(土) 08:33:03.18
お前らはマジで何を作ってるの?
単なる社内システム?
415デフォルトの名無しさん:2014/01/04(土) 10:07:23.69
>>402
>>400ではないが、異なる翻訳単位での同一性について気になることがあったので確かめてみた。
#include <functional>
#include <boost/bind/placeholders.hpp>

auto p_1 = &my::placeholders::_1st;
auto p_2 = &std::placeholders::_2;
auto p_3 = &_3;            //boostの _3
auto p_u = &miruna::static_vars<int>::a;

---- test1.cpp ----
p_1 0x01302c19 {class my::oph_t<1,struct my::nil> my::placeholders::
p_2 msvcp120d.dll! 0x0f6dbef2 (追加情報のためのシンボルの読み込み) _2 std::_Ph<2> *
p_3 0x01302c0e {boost::arg<3> _3} {...} boost::arg<3> *
p_u 0x00342978 {ThreadTest.exe!unko miruna::static_vars<void>::a} {v=0.000000000 } unko *

---- test2.cpp ----
p_1 0x01302bfd {class my::oph_t<1,struct my::nil> my::placeholders::
p_2 msvcp120d.dll! 0x0f6dbef2 (追加情報のためのシンボルの読み込み) _2 std::_Ph<2> *
p_3 0x01302bf2 {boost::arg<3> _3} {...} boost::arg<3> *
p_u 0x00342978 {ThreadTest.exe!unko miruna::static_vars<void>::a} {v=2.71828008 } unko *

stdのプレースホルダとあんたのunkoは異なる翻訳単位間でも同一物で、boostのは別物なんだね。

>>403
???
416デフォルトの名無しさん:2014/01/04(土) 10:16:02.69
>>415
確かめるのはいいけど、その処理系ではそうなっているという事しか確認できない
その結果を規格書と照合するところまでやりなよ
417デフォルトの名無しさん:2014/01/04(土) 11:08:47.73
>>414
液晶を洗浄する装置の制御プログラム
418デフォルトの名無しさん:2014/01/04(土) 11:37:02.95
Cで作るのなんて子供だけだろjk
419デフォルトの名無しさん:2014/01/04(土) 11:40:26.72
シーケンサで組んどきゃ安定感もあるし後々の拡張や組換えも楽なのに
無理からRTOSを制御ループの中に突っ込んで身動きできないシステムを構築してしまうおバカさん多いよね
420KUSO KOTE:2014/01/04(土) 11:45:50.40
>>416
4.2段落5にて、クラステンプレートの静的データメンバーには
ODR(One Definition Rule)が適用されると読みとりました。
ODRによって異なる翻訳単位で同一のものを指すことが
保証されると考えとりまする
42118:2014/01/04(土) 11:57:08.65
>>419
> シーケンサで

PLC のこと?
なら、板違いっすよ。
422415:2014/01/04(土) 11:58:27.74
>>416
自分は>>420じゃないけど別途確認してみる。
423デフォルトの名無しさん:2014/01/04(土) 12:34:46.65
>>400
ODRを使います

inline int& fack() {
  static int manko = 123;
  return manko;
}

int * const p_baka = &fack();

使う側:
cout << (*p_baka)++;
424デフォルトの名無しさん:2014/01/04(土) 12:49:28.42
ODR「の例外」を利用します、だろ。
425デフォルトの名無しさん:2014/01/04(土) 12:51:57.20
規格4.2の説明はODRではない
426デフォルトの名無しさん:2014/01/04(土) 13:17:54.62
>>415
> ???
頭の悪そうなレスですね
ヘッダーとは何か。一度規格を読んでみることを
オススメします
427415:2014/01/04(土) 13:30:05.36
自分の持ってる2012Draftでは、§3.2(5) と §14.5.1.3 が該当するのかなあ。
そしてそれが外部リンケージを持つことの規定が§3.5(5) なの?

んでboostのプレースホルダは単に無名namespaceに入れてるだけなので、翻訳単位ごとに違う実体になってると。

>>426
すみませんが具体的にどういう点?
428415:2014/01/04(土) 13:32:05.92
>>426
え-と、わからないのは
>>403
>ヘッダーというのはコンパイラが提供するものなので
という言葉の意味。
コンパイラが提供するって何のこと?
429デフォルトの名無しさん:2014/01/04(土) 13:36:43.48
おそらくど初心者の寝言
430デフォルトの名無しさん:2014/01/04(土) 13:42:48.79
単一の.cppで十分なド素人なんだから.hは不要と言いたいのだろう
431415:2014/01/04(土) 13:50:44.12
まあでもここの議論によって自作ライブラリのプレースホルダを、
boost方式からODR例外を使う方法に改善することができた。
感謝。
432デフォルトの名無しさん:2014/01/04(土) 13:52:11.33
iostreamのようなものがヘッダーで
プログラマーが書いたmy.hはヘッダーじゃないってことだろ。
「インスタンスと言ったらテンプレートの話」レベルでは厳密には正しい。
規格上は
#include "my.h"
はヘッダーでなくソースファイルのインクルード。
433デフォルトの名無しさん:2014/01/04(土) 14:01:21.83
>>431
単に
 ヘッダー:  extern placeholder_t _1st;
 cpp: placeholder_t _1st;
とすればいいだけの話です。
糞ブーストの真似をしてすべてをヘッダファイルに突っ込もうとするのはやめてください。
434デフォルトの名無しさん:2014/01/04(土) 14:07:58.03
>自分の持ってる2012Draft
>>415の持ってる規格ドラフトは中華版
435415:2014/01/04(土) 14:21:05.70
>>432
知らなかった

>>433
cppをそのたび用意するのはちょっと・・・
staticメンバでうまくいくんならいいんじゃない?ダメな点ってありますか?

>>434
どういう意味だよw
436デフォルトの名無しさん:2014/01/04(土) 14:22:54.53
シーケンサ
hoge

この二つは共通性がある
(公共の場で何の断りもなく使用することが
 はばかられる用語という意味で
437デフォルトの名無しさん:2014/01/04(土) 14:30:27.90
>>436
まだやるか?死ね
438デフォルトの名無しさん:2014/01/04(土) 14:41:38.29
聞く人の立場になって考えれば
いきなりそんな言葉をだされるのが適切でないのは自明
またスレッドのルールにも反する(>>1-3)
キチガイは去れ
439デフォルトの名無しさん:2014/01/04(土) 14:45:39.36
>>438
>>2 が妥当なルールか?死ね
440デフォルトの名無しさん:2014/01/04(土) 14:46:14.47
>>2-3はチョーセン人が付け加えたウソルールなので無視しましょう
441デフォルトの名無しさん:2014/01/04(土) 14:53:54.44
>>439
>>261の経緯を考えれば極めて妥当
というより荒れている原因の半分以上はQZが原因

キチガイはすべてのルールをテンプレでなく1に書かないと
捏造と見なすらしい
442デフォルトの名無しさん:2014/01/04(土) 15:23:50.77
このスレではhogeの使用が禁止されています
hogeを使いたい人は↓でお願いします

【hoge】メタ構文変数【foo】
http://toro.2ch.net/test/read.cgi/tech/1388050606/
443デフォルトの名無しさん:2014/01/04(土) 15:25:08.70
スルー出来ないチョーセン人
444デフォルトの名無しさん:2014/01/04(土) 15:29:31.54
>>433
全部ヘッダにつっこんでくれた方がビルドしなくてよくて楽だけどなー
445デフォルトの名無しさん:2014/01/04(土) 15:31:00.71
7 デフォルトの名無しさん sage 2013/12/29(日) 11:18:24.09
【誘導】
hogeを使いたい人用の隔離スレッドが立った模様ww
http://toro.2ch.net/test/read.cgi/tech/1388277515/
446デフォルトの名無しさん:2014/01/04(土) 15:37:37.89
>>442
違うだろ。 hoge を禁止したい奴がその妥当性を主張して合意を得るためにがんばるのがそのスレッド。
大勢の住人の合意が確認できるまでは出てくるんじゃない。
447デフォルトの名無しさん:2014/01/04(土) 15:39:50.60
>>441
1に書いたからってルールとして実効性を持つとも限らない
スルー検定のようにスレの流れそのもので〆ないと
448デフォルトの名無しさん:2014/01/04(土) 15:41:55.68
>>444
リフレクション機能のある言語でも使え
449デフォルトの名無しさん:2014/01/04(土) 15:44:52.76
>>446
hoge禁止に反対してるのはお前とチョーセン人チョーセン人連呼してる韓国系日本人だけ
450デフォルトの名無しさん:2014/01/04(土) 15:46:13.73
>>447
自分で>>445のhoge専用隔離スレ立てておいて
普通のスレを荒らしに来るな基地外QZ
451デフォルトの名無しさん:2014/01/04(土) 15:47:51.13
>1に書いたからってルールとして実効性を持つとも限らない

キチガイの荒らしは言うことが違うわ
荒らしを正当化する理由がよくも出てくるものだ
452デフォルトの名無しさん:2014/01/04(土) 17:46:44.45
>>433
全然ありがたくないやり方だな。
453デフォルトの名無しさん:2014/01/04(土) 17:50:08.59
最近、7割くらいあぼーんしてるな。
454デフォルトの名無しさん:2014/01/04(土) 18:10:48.52
意見交換が活発だからね
455デフォルトの名無しさん:2014/01/04(土) 18:22:10.18
>>453
フィルタに問題なければスレごとあぼーんしたほうがいいと思うよ
456デフォルトの名無しさん:2014/01/04(土) 21:16:10.85
>>433
extern不要を唱える誰かには無理だな
457デフォルトの名無しさん:2014/01/04(土) 21:29:29.04
ヘッダーを読み込めるということは、フッターも読み込めますか?
458デフォルトの名無しさん:2014/01/04(土) 21:41:02.41
ボインなおねーさんのいる店か?
459 ◆QZaw55cn4c :2014/01/04(土) 21:52:55.42
externは要らない子っ!
460デフォルトの名無しさん:2014/01/04(土) 23:17:59.32
そんな大層な問題じゃないから
461デフォルトの名無しさん:2014/01/05(日) 02:46:17.26
struct unko {
unko(int){}
};

struct big {
unko mem = 200;
big() : mem(100) {}
};

引数200じゃなくて100で1回だけコンストラクタが呼ばれるのですが
=200 はどこに行っちゃったんでしょうか?
462デフォルトの名無しさん:2014/01/05(日) 02:59:25.37
mem(100) でよんでるから呼ばれない
463デフォルトの名無しさん:2014/01/05(日) 03:14:32.72
「初期化付きのメンバーはメンバーイニシャライザー書けない」
とかならまだわかるけど、
どうしてこんな糞仕様になったのか。

unko mem = 200;
この変数の宣言は有効でも初期化は
コンストラクターの書き方しだいで呼ばれない
なんて気がふれているとしか思えない。
464デフォルトの名無しさん:2014/01/05(日) 03:36:56.97
>>463
どうしてってそりゃ、何年も前に出されてる提案に聡明なお前様がダメ出しをしなかったからですよ。
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2756.htm

で、どんな仕様ならよかったと思うの?
465デフォルトの名無しさん:2014/01/05(日) 03:47:30.65
基本的に宣言の所で書いた値で初期化されるが、コンストラクタによっては別の値で初期化もできる。
何の違和感も無いな。普通。

精々「書かれたコンストラクタの全てがその値を初期化リストで初期化してる場合」に警告出す程度だな。
466デフォルトの名無しさん:2014/01/05(日) 04:05:46.58
>>456
それはC の話、C++ではそもそも tentative definition が無理だから唱えていない
467 ◆QZaw55cn4c :2014/01/05(日) 04:06:45.10
>>459
お前は誰だww
468デフォルトの名無しさん:2014/01/05(日) 11:15:14.26
>>464
オレはまだ生まれてなかった。ジジイどもが勝手に醜い仕様を決めた。
469デフォルトの名無しさん:2014/01/05(日) 11:20:37.93
>>463
関数のデフォルト引数の仕様も気が触れてるのか?
470デフォルトの名無しさん:2014/01/05(日) 11:40:01.29
>>463
RVOも否定すんのか?
471デフォルトの名無しさん:2014/01/05(日) 12:18:14.78
>>468
で、どんな仕様ならよかったと思うの?
472デフォルトの名無しさん:2014/01/05(日) 12:40:00.14
コンストラクタのボディでconstを初期化できないからと、初期化子なんかひねり出して負けは決まった
473デフォルトの名無しさん:2014/01/05(日) 12:56:08.42
>>471
そうさな、例えば

struct PersonName {
string firstName;
string familyName;
PersonName(firstName = "Akira", familyName = "Ikegami") { }
};
474デフォルトの名無しさん:2014/01/05(日) 12:59:02.43
で、引数付きの時どうやって共存すんの
475デフォルトの名無しさん:2014/01/05(日) 13:00:57.33
宣言の順番と初期化子の順番が違ったらエラーにして欲しい
476デフォルトの名無しさん:2014/01/05(日) 13:02:35.69
>>474
struct kuso {
A a{1};
};
477デフォルトの名無しさん:2014/01/05(日) 13:03:53.53
それは>>461と何が違うのか
478デフォルトの名無しさん:2014/01/05(日) 13:09:14.72
>>473
どういう意味?

PersonName pn1("Ryoichi");  //池上遼一(漫画家)
PersonName pn2( , "Maeda");  //前田遼一(ジュビロ磐田)
PersonName pn2("Jhon", "McEnroe"); //ジョン・マッケンロー(アメリカの元男子プロテニス選手)
479デフォルトの名無しさん:2014/01/05(日) 13:09:45.07
間違えた
>>474
480デフォルトの名無しさん:2014/01/05(日) 13:34:28.23
>>474
struct PersonName {
string firstName;
string familyName;
PersonName(firstName = "Akira", familyName = "Ikegami") { }
PersonName(const std::map<string, string>& vec, string f) : firstName(f), familyName(vec[f]) { }
};

×Jhon
○John
481デフォルトの名無しさん:2014/01/05(日) 13:49:20.85
悲しいお知らせがあります
>>445で誘導されたhogeキチガイ専用スレは
スレタイが不適切だったばかりに
削除されてしまいました
482デフォルトの名無しさん:2014/01/05(日) 13:54:28.30
チョーセン人の浅知恵が否定された
483デフォルトの名無しさん:2014/01/05(日) 13:55:11.78
>>471
変数名を表すクラス

template <typename T>
struct variable {
string name;
typename T type;
variable(name = "hoge") { }
};
484デフォルトの名無しさん:2014/01/05(日) 13:56:00.50
>>482
オマエがたてたクソスレだろQZ
485デフォルトの名無しさん:2014/01/05(日) 13:56:01.45
×typename
○typedef
486デフォルトの名無しさん:2014/01/05(日) 13:59:44.18
これってなんで止まってんの?

軍事用のプログラムのソースコードが気になる
http://toro.2ch.net/test/read.cgi/tech/1388751787/
487デフォルトの名無しさん:2014/01/05(日) 14:29:59.58
>>484
息をするがごとくウソをつくチョーセン人
488デフォルトの名無しさん:2014/01/05(日) 14:38:20.75
チョーセン人がそこらじゅうのスレで「hoge禁止」とかいう慰安婦像を設置してるな
荒らすなよ
489デフォルトの名無しさん:2014/01/05(日) 14:43:37.93
このスレではhogeの使用が禁止されています ※>>1を読むこと
hogeを使いたい人は↓でお願いします

【hoge】メタ構文変数【foo】
http://toro.2ch.net/test/read.cgi/tech/1388050606/
490デフォルトの名無しさん:2014/01/05(日) 14:45:16.52
>>489
>>1を読むこと

読んだが?
491デフォルトの名無しさん:2014/01/05(日) 14:56:53.35
個人的な思い込みに基づいて"hoge"の使用に過剰な反応をする人がこのスレに住み着いていて、
最近は「hoge禁止」がスレ住人の総意であるかのように見せる工作を繰り返しているようです。
あまり気にしないでやってください。
492デフォルトの名無しさん:2014/01/05(日) 15:17:39.48
>>486
わからない。
特に問題なさげなのにね。
493デフォルトの名無しさん:2014/01/05(日) 15:34:16.67
本物のコード晒すアホが湧きかねないってことか
494デフォルトの名無しさん:2014/01/05(日) 15:38:34.24
hoge禁止は総意でない
1人か2人反対しているキチガイがいる
495デフォルトの名無しさん:2014/01/05(日) 15:49:42.51
1人か2人のキチガイに気を使ってhogeを禁止する必要はないな
496デフォルトの名無しさん:2014/01/05(日) 16:17:07.69
たった一人のhoge狂信キチガイにスレを荒らされても困ります
497デフォルトの名無しさん:2014/01/05(日) 16:23:46.06
hoge狂信キチガイなどいない、いるのはアンチhogeのキチガイチョーセン人
498デフォルトの名無しさん:2014/01/05(日) 16:32:03.51
>>475
-Weffc++ じゃアカンの?
499デフォルトの名無しさん:2014/01/05(日) 17:41:05.24
500デフォルトの名無しさん:2014/01/05(日) 17:57:44.75
こういうショートカットってどう名付ける?
どうもネーミング苦手

//const/volatile属性と参照属性を外して型の同一性を比較
template<class T, class U>
  struct is_same_????? : public
     std::is_same<typename std::remove_cv<typename std::remove_reference<T>::type>::type,
             typename std::remove_cv<typename std::remove_reference<U>::type>::type> {
};
501デフォルトの名無しさん:2014/01/05(日) 18:27:53.32
comp_type
502デフォルトの名無しさん:2014/01/05(日) 19:12:30.51
>>500
確かにremove_cv と remove_reference は思わぬところでハマるな。
自分も同じようなの使ってるけど内部的な使用だけだからちゃんとした名前は付けてない。
503デフォルトの名無しさん:2014/01/05(日) 19:25:44.76
姓名判断も取り入れようよ。
504デフォルトの名無しさん:2014/01/05(日) 20:11:47.11
>>501
そのものズバリだねえ
505デフォルトの名無しさん:2014/01/05(日) 20:20:49.31
hoge
506デフォルトの名無しさん:2014/01/05(日) 20:27:18.02
N*Nの正方行列の積って皆さんどうやってます?

ベタにC[i][j] += A[i][k] *B[k][j];
だと実用に耐えれない速度ですよね
10000*10000をCore i7で1秒を割りたいです。
507デフォルトの名無しさん:2014/01/05(日) 20:30:21.71
遅延
508デフォルトの名無しさん:2014/01/05(日) 20:30:26.30
SIMDに対応した行列ライブラリ使う
509デフォルトの名無しさん:2014/01/05(日) 20:39:48.03
人が作ったものを使うしかできないの?
510デフォルトの名無しさん:2014/01/05(日) 20:42:07.33
>>509
性能の良いものがあるのに自作するほど暇じゃない
511デフォルトの名無しさん:2014/01/05(日) 20:48:58.70
どうせ遅いんだから気にしない
512デフォルトの名無しさん:2014/01/05(日) 20:50:23.46
>>510
それならあなたはなぜ、C++を使ってソフトウェアを書いているのですか?
513デフォルトの名無しさん:2014/01/05(日) 20:50:34.95
何でも自分で作るほうがえらいっていうのは
日本のIT業界の悪い習慣
514デフォルトの名無しさん:2014/01/05(日) 20:55:50.69
>>512
なんでそういう返しになるのか理解できない
お前はsinとかまで自作するのか?俺は組み込みの仕事でスピードのためにやったことあるけど
普通は既存のライブラリ使う。

C/C++の世界では昔から適切なライブラリを選択して使うのはごく当たり前
515デフォルトの名無しさん:2014/01/05(日) 20:57:55.16
最初は既存のライブラリを使うけど
どうしても速度が出ない事があるからその場合は自作するしかない
516デフォルトの名無しさん:2014/01/05(日) 20:58:43.36
>>515
例えば?
517デフォルトの名無しさん:2014/01/05(日) 20:59:55.63
別解、こういうことまで考えることがC++erだろうから、マジレスでいいだろ。

>>509
車輪を自作してみるくらいのことは時間作って当然やるが、
漏れのないライブラリなんてなかなかできない、
数学的に漏れのない完全なテストケース書ける自信はない

>>512
お前が書いてくれないからさ
518デフォルトの名無しさん:2014/01/05(日) 21:04:29.80
>>506は行列の積だけ言ってるけど、行列扱うときは積だけってケースはまずなく
逆行列やら固有値分解etcも必要になってくるだろ?
そんなの全部自作してたら当然時間掛かるし、そんな工数を許してくれないw
学校の課題とかなら別だけど
519デフォルトの名無しさん:2014/01/05(日) 21:04:38.37
行列演算はCLAPACK使おう、うん
520デフォルトの名無しさん:2014/01/05(日) 21:15:01.33
>>506
積和演算ならAVX2+ml64.exeでDLL作ってリンクすれば相当速くなるぞ
521デフォルトの名無しさん:2014/01/05(日) 21:15:48.08
あ、しまった
AVX2はHaswell以降だった
522デフォルトの名無しさん:2014/01/05(日) 21:17:15.46
目的(ライブラリにない機能を付加/パフォーマンス等)と範囲(和と積と行列式まで等)が
明確にできるなら自作してみるのもいいさ。
523デフォルトの名無しさん:2014/01/05(日) 21:20:16.99
積とる目的が3DCGなら4x4固定でGPUでもたたけばいいしな
特徴量抽出みたいなNの大きい次元を扱うなら算術ライブラリがいいし
目的次第だな
524デフォルトの名無しさん:2014/01/05(日) 21:26:44.53
それを書いて世の中の為になるのか?
525デフォルトの名無しさん:2014/01/05(日) 21:27:18.04
10000x10000か
デカイ行列だね
526デフォルトの名無しさん:2014/01/05(日) 21:32:16.45
floatとしても行列3つで1GB越え
>1秒を割りたいです
はて?
527デフォルトの名無しさん:2014/01/05(日) 21:35:17.05
10000x10000の正方行列の積をとりたい理由が知りたいな
528デフォルトの名無しさん:2014/01/05(日) 21:35:26.72
作ってお金をもらっている職種だし、
まあそれなりに役に立っているんじゃないかな
529デフォルトの名無しさん:2014/01/05(日) 21:48:40.19
そういや、clのamd64でインラインアセンブラできなくなったのなんで?
私用でちょいちょいっと書くのには便利だったんだが、、
530デフォルトの名無しさん:2014/01/05(日) 22:45:53.67
>>500
is_same_ignoring_cv_ref
comp_typeみたいな名前では判断基準が不明瞭なので役に立たない

若しくはこの比較の具体的用途の名前にする
531デフォルトの名無しさん:2014/01/05(日) 23:05:45.25
>>530
ちょっと長いけどそれがいいっすかね・・
is_same_bear とか is_same_naked とかも考えてたけど。
532デフォルトの名無しさん:2014/01/05(日) 23:13:33.86
>>531
「is_same_但しトップレベルのconst_volatileと参照は無視」
これが一番間違いがなく、かつポータブル
533デフォルトの名無しさん:2014/01/05(日) 23:21:24.94
>>529
x86-64のCは面倒臭い約束事が増えて事実上無意味とみなされたかららしい

http://www.officedaytime.com/tips/asm64/callconv.html

こんな状態じゃなあ

http://www.officedaytime.com/tips/asm64/project.html

こうやってリンクすればプロジェクト一つに出来るし

http://homepage1.nifty.com/herumi/prog/x64.html

gccならインラインアセンブラ可能なんでこちらで遊んでは?
534デフォルトの名無しさん:2014/01/05(日) 23:24:16.11
C++と関係ないインランアセンブラは余所でやってください
535デフォルトの名無しさん:2014/01/05(日) 23:27:00.45
http://www.officedaytime.com/tips/asm64/caution.html
http://msdn.microsoft.com/ja-jp/library/7kcdt6fy.aspx

しかし面倒だ

スタックポインタをいじれないとかどういう罰ゲームだ
割り込み掛かった時に問題なのかね
レジスタ呼び出しに4本も使ってるし
536デフォルトの名無しさん:2014/01/05(日) 23:31:15.62
>>530,532
それでは採用させていただきますm(_ _ )m
537デフォルトの名無しさん:2014/01/05(日) 23:43:49.94
C++と関係ないインランアセンブラは余所でやってください
キチガイ
538デフォルトの名無しさん:2014/01/06(月) 00:09:48.43
>>537
こいつからはhogeアレルギーと同じ匂いを感じる
539デフォルトの名無しさん:2014/01/06(月) 01:30:03.63
non-naked が便利だったのに、はて淫乱とな

これは深い
540デフォルトの名無しさん:2014/01/06(月) 02:12:45.97
>>535
>http://www.officedaytime.com/tips/asm64/caution.html
なにこのうんこぺーじ

> スタックポインタが動くような操作をしていいのは関数の最初と最後の部分だけ。その部分は「prolog」「epilog」と呼ばれ、やっていいことが決まっている。
allocaで普通に変更するし、関数呼び出しの際レジスタで渡しきれない引数はスタックに積む
541デフォルトの名無しさん:2014/01/06(月) 03:11:41.31
適当にうらる貼っておけばお前らがアラを探してくれるからこっちは楽だw
542片山博文MZコスモ ◆T6xkBnTXz7B0 :2014/01/06(月) 03:38:12.14
うお、やっぱその頁嘘だったのか…? 要検証
543デフォルトの名無しさん:2014/01/06(月) 05:08:42.09
MSDN以外信じるなw
544デフォルトの名無しさん:2014/01/06(月) 09:31:34.13
http://www.officedaytime.com/tips/router.html
ルーターとハブの違いを喜々として書いてるこのページ見て思い出した
以前にもウンコページだと指摘したことあるぞ
545デフォルトの名無しさん:2014/01/06(月) 09:59:45.65
#define BOOST_TRY { try
#define BOOST_CATCH(x) catch(x)
#define BOOST_REHOGEROW throw;
#define BOOST_CATCH_END }
BOOSTの例外マクロがこんな感じになっていたのですが
BOOST_TRYの{とBOOST_CATCH_ENDの}は何のためにあるのですか
546デフォルトの名無しさん:2014/01/06(月) 10:26:43.28
>>543
MSDN(英語版)以外信じるな
更に言えばMSDNも鵜呑みにするな
547デフォルトの名無しさん:2014/01/06(月) 11:00:39.92
ふむ、なにより関数コールの時は戻り番地をスタックに積まなきゃならないので、
プロローグ、エピローグ以外でスタックポインタを動かすような操作が禁止され
ているというのは明らかなデマだな
548デフォルトの名無しさん:2014/01/06(月) 11:05:43.26
こうか? これならまあ普通だな (例)leaveはともかく

× プロローグ、エピローグ以外で
○ プロローグ前とエピローグ後で
549デフォルトの名無しさん:2014/01/06(月) 12:26:59.92
>>545
スコープ
550デフォルトの名無しさん:2014/01/06(月) 12:49:24.63
C++と関係ないインランアセンブラは余所でやってください
551デフォルトの名無しさん:2014/01/06(月) 12:53:51.62
C++の規格書に
7.4 The asm declaration
がある。全然問題ない
552デフォルトの名無しさん:2014/01/06(月) 13:01:55.95
汗もできないC++erなんて

といいたいところだが、amd64の勉強が遅れてるんだよな
idafreeでamd64も扱ってくれないかなマジで
553デフォルトの名無しさん:2014/01/06(月) 13:04:51.02
>>551
『asm(string-literal);
The asm declaration is conditionally-supported;
its meaning is implementation-defined』
これだけしか規定されていないのに
スタックとかエピローグとかは関数呼び出し規約の話は
スレ違いだろう。
554デフォルトの名無しさん:2014/01/06(月) 13:05:40.81
こいつアンチhogeってるキチガイだろうな
555デフォルトの名無しさん:2014/01/06(月) 13:08:00.42
そろそろasmで荒らし始めるぞ
556デフォルトの名無しさん:2014/01/06(月) 13:31:29.36
>>550
C++にはasmが予約語になっているので全然無関係ではない
557デフォルトの名無しさん:2014/01/06(月) 13:41:33.22
asmのコピペ爆撃が始まる悪寒
558デフォルトの名無しさん:2014/01/06(月) 13:48:46.32
hoge嫌い、汗嫌いときて、次はなんだ

attributeあたり?
そういや、atlprov最近EEに付かない
559デフォルトの名無しさん:2014/01/06(月) 14:44:16.75
C++に限っては仕様的にmain内でreturnを書かなくてもいいというのを
どこかで見たが忘れた
560デフォルトの名無しさん:2014/01/06(月) 14:52:05.26
C99以降もそうだ
561デフォルトの名無しさん:2014/01/06(月) 18:34:42.83
ペイピッポォ
562デフォルトの名無しさん:2014/01/06(月) 18:56:28.14
企画の始まりの日 トイレの個室の中で
派遣たちの声の遠い残響 独りで聞いた

隠したバグすべて 見えないバグすべて
派遣に押し付けて いまはどこを彷徨い行くの

答えの潜む無数のルーチン
出会わなければ 正社員のままでいられた
不死なるエラーを持つコード
見つからないで 僕のため
このデスマするため 生まれてきた

一億と二千行前からバグってる
八千行過ぎた頃からもっとカオスになった
一億と二千行後もバグってる
バグがバレたその日から僕の地獄に電話はやまない
563デフォルトの名無しさん:2014/01/06(月) 20:56:45.32
加齢臭強烈すぎ
564デフォルトの名無しさん:2014/01/06(月) 21:18:37.82
派遣を雇うようなとこってTDDやBDDやるの?
565デフォルトの名無しさん:2014/01/06(月) 22:18:28.23
ギリギリ生活していけるだけの給料しかもらえない派遣って何のために生きてるの?
566デフォルトの名無しさん:2014/01/06(月) 22:22:09.82
何かのために生きなきゃいけないの?
567デフォルトの名無しさん:2014/01/06(月) 22:33:12.93
畑に戻んべ
568デフォルトの名無しさん:2014/01/06(月) 22:34:39.00
ギリギリ生活していけるだけしかもらえないのは賃金や税金の基本
いくら給料があがろうとギリギリである事には変わりない
それが食費ぎりぎりなのか、住宅ローンを返すのにぎりぎりなのかという差はあっても
賃金というのはギリギリなのである
569デフォルトの名無しさん:2014/01/06(月) 22:48:45.35
徳川三百年か
570デフォルトの名無しさん:2014/01/06(月) 22:56:08.13
衣食住と子供がいれば教育費
給与からこれらを差し引いて残るならギリギリとは言わない

具体的には貯金したりプレステ2を買ったりできる余裕があればギリギリとは言わない



毎日3000円のランチ食べてて貯金できない人はどうなるの?
とかそういう大人げない質問はやめろ
571デフォルトの名無しさん:2014/01/06(月) 23:54:02.29
面白い質問来ないかな
572デフォルトの名無しさん:2014/01/07(火) 00:02:01.69
じゃ・・・
template <typename T>
void func(T&& arg);
として
int a = 0;
func(a);
func((int)a);
とやると、上下どちらの呼び出しでもarg の型は int& なんですが、
std::string a;
func(a);
func((std::string)a);
とやると、上の呼び出しにおける arg はstd::string& で、下は std::string&& になるみたいです。
なんで?
573デフォルトの名無しさん:2014/01/07(火) 00:04:33.85
C++でCスタイルキャスト使う池沼はNG
574デフォルトの名無しさん:2014/01/07(火) 00:07:51.50
static_cast 使ったって同じだが?
575デフォルトの名無しさん:2014/01/07(火) 01:00:15.73
>>572
ならないっぽいけど?
http://ideone.com/VeQeyM
576デフォルトの名無しさん:2014/01/07(火) 01:04:37.86
そのコードのどこで判断できんの
577デフォルトの名無しさん:2014/01/07(火) 01:07:43.55
>>576
intの時もstd::stringの時も1回目の呼び出しでは変化してるけど、キャストしてる2回目は変化してないでしょ。
578デフォルトの名無しさん:2014/01/07(火) 01:09:23.45
つまり>>572
> 上下どちらの呼び出しでもarg の型は int& なんですが、
は間違ってるんじゃ? っていう意味。
579デフォルトの名無しさん:2014/01/07(火) 02:21:16.69
>どちらの呼び出しでもarg の型は int&
どう考えても違います
580KUSO KOTE:2014/01/07(火) 02:52:13.94
>>577
キャストで変化してますよ。
http://ideone.com/pxJBy3

因みに
 int a;
 int &b = a;
について
 式a はint型のlvalue →T&&はint&に
 式(int)a はint型のprvalue →T&&はint&&に
 式b はint &型のlvalue →T&&はint&に
 式(int)b はint型のprvalue →T&&はint&&に
581デフォルトの名無しさん:2014/01/07(火) 03:44:21.87
ところでなんでargumemtでなくparameterにargなんて名前を付けるんだ?
582デフォルトの名無しさん:2014/01/07(火) 04:35:28.39
パラメータは与えるものそのもの(実引数的な)を指すニュアンスが強いっぽい気がする
argumentは導出の根拠になるものだから別に不自然じゃない
583デフォルトの名無しさん:2014/01/07(火) 06:45:04.64
>>580
型が変化した結果、値が変化してない、って言ってるんだよ。
そんくらい理解しろよ。
584デフォルトの名無しさん:2014/01/07(火) 06:59:08.61
mainがargc,argvゆえ
585デフォルトの名無しさん:2014/01/07(火) 11:01:32.47
最近おもったんですけど、
テンプレートプログラミングって静的に変数定義しなければ
オブジェクト指向と両立できますね。
586デフォルトの名無しさん:2014/01/07(火) 13:55:19.63
クラス変数は関係なかろう
587デフォルトの名無しさん:2014/01/07(火) 20:16:21.26
最近思ったんですけど、
テンプレートプログラミングってhogeを使わなければ
オブジェクト指向と両立できますね。
588デフォルトの名無しさん:2014/01/07(火) 20:19:57.37
>>587
meta の 意味分かってる?
589デフォルトの名無しさん:2014/01/07(火) 20:22:16.97
>>587
別にhogeが悪いんじゃない
ただサンプルとしてhogeが嫌われてるだけだろ

リリースソースにhogeが実装されてたなら死ねと思うけども
590デフォルトの名無しさん:2014/01/07(火) 20:23:21.94
>>588
ごめん、馬鹿にもわかるように教えてくれないか?
低能でほんとすまん
591デフォルトの名無しさん:2014/01/07(火) 20:24:29.62
hogeを使うようなunkoプログラムは
テンプレートもオブジェクト指向もクソも無い
と言う意味では正しいな。
ただ>>585が何を言っているのかよくわからない。
592デフォルトの名無しさん:2014/01/07(火) 20:41:38.11
powA = 8.0f;
powB = 40.0f;

こうしているんですが、なぜかpowAに40.0fが入り、powBに8.0fが入ってしまいます。
ここ以外では変数を使ってないんですが、こういうことってよくあるもんでしょうか?
593デフォルトの名無しさん:2014/01/07(火) 20:43:19.61
>>592
あるわけないでしょ
594デフォルトの名無しさん:2014/01/07(火) 20:45:45.50
ワロタ
595デフォルトの名無しさん:2014/01/07(火) 20:48:59.05
>>592
そのレベルだと一回自分でトレースしたらいいよ
596デフォルトの名無しさん:2014/01/07(火) 20:56:20.43
>>592
よくあったらプログラマーがノイローゼになります
597デフォルトの名無しさん:2014/01/07(火) 20:57:27.69
年に3回くらいある
598デフォルトの名無しさん:2014/01/07(火) 21:02:16.74
metaについてこんこんと3時間くらい説明してくれる人募集!
599デフォルトの名無しさん:2014/01/07(火) 21:04:13.68
>>592
古いCOBOLでならあったな
Displayかまさないと変数代入してくれない現象
600デフォルトの名無しさん:2014/01/07(火) 21:08:28.22
>>592
これが不思議と起こる人には良く起こるんだよ
属人性のある呪いみたいな物だよ
601デフォルトの名無しさん:2014/01/07(火) 21:09:26.38
>>598
もうメタメタ
602デフォルトの名無しさん:2014/01/07(火) 21:11:13.57
>>598
会社辞メタい
603デフォルトの名無しさん:2014/01/07(火) 21:12:56.43
socketのタイムアウトの方法について教えてください。

状況:
while(isStop){
nBytesRecv = recv(sock, buf, buffSizeS, 0);
memcpy(rP.data+receivedByte,buf,nBytesRecv);
memset(rP.data+receivedByte+nBytesRecv,0x00,1);
if (nBytesRecv == 0) {
printf("受信終了\n");
isStop = false;
}

とまあ、普通どおりのコードなわけですが、なんでか、recv関数でブロッキング。
ところが、select関数なぞを駆使してもブロッキングはまったくもって解消されません。

質問内容:
みなさんはどのようにタイムアウトを設定してますでしょうか?

補足:
うむむ。
丸1日無駄にしたわけですが、
いろいろ調べてみたところ、avast の Webシールドがプロキシってるようだが、
これが悪さをするらしい。
Webシールドを切ると、上記コードだけでselectを使わなくてもブロッキングされない。
邪推すると、最後のEOFあたりが残っていて、avast側にとり置かれていて
最後の1文字がバッファにとどいていない。最後のEOFがバッファに入ってきてその1文字を無視した0を
nByteRecvに入れてwhile文が抜けられるはずだが、それが来ない、みたいなことかな???

基本TCPというかHTTPなので、Content-Lengthあたりに任せちゃう手も使える場面と使えない場面とあり・・・
604デフォルトの名無しさん:2014/01/07(火) 21:14:43.74
605デフォルトの名無しさん:2014/01/07(火) 21:14:44.76
>どのようにタイムアウトを設定してますでしょうか?

selectでタイムアウトを実現しています
606デフォルトの名無しさん:2014/01/07(火) 21:19:35.32
>>572
VCだろ?
>>575のコードだと i が 12→24→48 って遷移すんだろ?
今すぐ窓から投げ捨てろ

マジレスするとこれはかなり致命的。
『〜ができない』とかいう問題ならどっかで回避コード書いて済むかもしれんが、
あらゆる場所で起きるしコンパイルエラーにもならんし。
607デフォルトの名無しさん:2014/01/07(火) 21:21:29.95
>>603
HTTP 1.1なら通信が終わっても鯖側から切るとは限らんぞ
608デフォルトの名無しさん:2014/01/07(火) 21:23:49.24
>>598
大阪弁講座 第一回「なんや」
609デフォルトの名無しさん:2014/01/07(火) 21:30:52.06
>>603
基本に帰れ。recv()を調べるんだ
http://msdn.microsoft.com/ms740121

>>608
それやな
610デフォルトの名無しさん:2014/01/07(火) 21:39:31.69
>>605
なるほど。

select でもタイムアウトがガン無視される場合はどうするんですかね?
つか、avast のWebシールド止めても、なぜだかselect のタイムアウトが利かない(涙)
なんなんだろうなぁ。

>>607
だもんだから、やることやっちまったら、こっちからお断りだい、とグレースフルにソケットをぶっ殺そうとしてますが、
良い考えが見当たらないもので、どうしたものかと・・・
611デフォルトの名無しさん:2014/01/07(火) 21:40:28.36
>>585はもういないのか?
612デフォルトの名無しさん:2014/01/07(火) 21:44:54.34
>>603
nBytesRecvが「想像通り」か?
printfしてみろ
613デフォルトの名無しさん:2014/01/07(火) 22:00:55.24
>>609
調べているんだが・・・
非ブロッキングにするのはよいけど、データの終わりをどう判断してよいやら。
ブロッキングなら、最後はnBytesRecvが0になると思うんだが、吸い込まれてフリーズ
強制終了以外に手は無い・・・ですよ。

>>612
完璧です。
1byteたりとも違いもなく、全く問題も無いです。
614デフォルトの名無しさん:2014/01/07(火) 22:04:52.80
ライブラリがいかんのかなぁ、とも思っています。
開発環境:MinGW + ws2_32 + z
615デフォルトの名無しさん:2014/01/07(火) 22:05:07.67
>>610
>select でもタイムアウトがガン無視される場合はどうするんですかね?

タイムアウトの指定が間違っているので誤りを見つけて正す
616603:2014/01/07(火) 22:11:52.96
>>615
タイムアウトの設定は関係ないと思っています。

FD_ZERO(&readfds);
FD_SET(sock,&readfds);
tv.tv_sec=0;
tv.tv_usec=1;
select(0, &readfds, NULL, NULL, &tv);

tv.tv_sec=1; あたりにしても一度吸い込まれるとタイムアウトは利かなくなります。
select関数はwhileループの直前で指定しています。
そもそも、ブロッキングが一度起きると、サーバがセッションを切ってもrecv関数で止まったままです。
そりゃ、おかしいでしょう?
617592:2014/01/07(火) 22:12:31.77
>>595
おかげさまでトレースしたところ、原因が判明しました。
for文に問題があったようで、お騒がせしました。
618デフォルトの名無しさん:2014/01/07(火) 22:13:36.08
>>616
じゃあselectからrecvまでの流れが間違ってんだろ
619デフォルトの名無しさん:2014/01/07(火) 22:15:00.96
>select関数はwhileループの直前

そりゃだめだ
620603:2014/01/07(火) 22:21:08.55
>>619
なるほど

selectが毎回内容を上書きしてしまう

ってことですね。
ちょっとやってみます。
621デフォルトの名無しさん:2014/01/07(火) 22:23:52.74
>>620
>ってことですね
違う
すべてのrecv呼び出しの前に必ずselectしろ
622603:2014/01/07(火) 22:30:26.55
>>621
動かないっすねぇ

 fd_set readfds;
 fd_set fds;
 struct timeval tv;

 FD_ZERO(&readfds);
 FD_SET(sock,&readfds);
 tv.tv_sec=1;
 tv.tv_usec=1;

 while(isStop){
  memset(buf, 0xFF, buffSizeS);  //for debug
  memcpy(&fds,&readfds,sizeof(fd_set));
  select(0, &fds, NULL, NULL, &tv);
  nBytesRecv = recv(sock, buf, sizeof(buf), 0);
  
  if (nBytesRecv == 0) {
   printf("受信終了\n");
   isStop = false;
   printf("receivedByte=%d\n",receivedByte);
   break;
  }else{//受信しているということ
   memcpy(rP.data+receivedByte,buf,nBytesRecv);
   memset(rP.data+receivedByte+nBytesRecv,0x00,1);
  }
 }
623デフォルトの名無しさん:2014/01/07(火) 22:34:57.91
>>622
すれ違いなのでそろそろやめたいのだけれど最後に

以下を毎回セットでやれ
 FD_ZERO
 FD_SET
 select
 recv
624デフォルトの名無しさん:2014/01/07(火) 22:40:06.35
>>622
>select(0, &fds, NULL, NULL, &tv);
>  nBytesRecv = recv(sock, buf, sizeof(buf), 0);

selectの結果を見ないんじゃ
selectが役に立ってない死ね
625603:2014/01/07(火) 22:41:10.20
>>623
とりあえず誘導をお願いできませんか?

ちなみに、
// memcpy(&fds,&readfds,sizeof(fd_set));
FD_ZERO(&readfds);
FD_SET(sock,&readfds);
tv.tv_sec=1;
tv.tv_usec=1;

select(0, &fds, NULL, NULL, &tv);
に書き直してもNG

ちなみに、
avast Webシールドを有効にすると、固まらなかった通信もきちんとrecvでブロッキング(泣)
626603:2014/01/07(火) 22:44:36.68
>>624
見れないですよ。
selectの結果をみようにも、recvでうんともすんとも動かなくなるんですから。

結果を見る前にrecv関数に入って制御がもどってきません。
627デフォルトの名無しさん:2014/01/07(火) 22:46:19.60
>select(0, &fds, NULL, NULL, &tv);
この間にコード書けば結果は見れるだろアホか
>  nBytesRecv = recv(sock, buf, sizeof(buf), 0);
628603:2014/01/07(火) 22:48:41.42
>>627
あう〜

うまくいきました。
おせわになりましたです。
629デフォルトの名無しさん:2014/01/07(火) 22:52:10.51
まさかこれで消える
630デフォルトの名無しさん:2014/01/07(火) 23:02:30.77
>>606
そんな問題のどこが致命的なんだよ
631デフォルトの名無しさん:2014/01/07(火) 23:04:39.99
>>630
f(int &)
f(int &&)
のオーバーロード解決が正しくないのはとても嫌です
ボクのコンパイラーがそんな糞コンパイラーだなんて
耐えられません
632デフォルトの名無しさん:2014/01/07(火) 23:06:35.34
耐えがたきをタエ
忍び難きをシノブ
633デフォルトの名無しさん:2014/01/07(火) 23:48:16.61
>>630
ある関数があって、
「この関数は右辺値も左辺値も受けます。左辺値を受けたらその値を使い、右辺値だったら内部で確保したコピーを使います。」
「ある変数をそのまま関数に渡してもいいですし、コピーとって右辺値にして渡してもいいです。」
「コピーとって右辺値にする一番手っ取り早い方法は、同一の型にキャストすることです。」

って説明したいのに、最後が嘘になっちゃう。
634デフォルトの名無しさん:2014/01/07(火) 23:52:00.46
嘘じゃないな。ほんとは正しいのに結果的に期待通りじゃなくなってしまう。
635デフォルトの名無しさん:2014/01/07(火) 23:52:12.40
>>633
すまん
演算子という単語も加えて説明してくれないか
636デフォルトの名無しさん:2014/01/07(火) 23:58:29.89
>>635
は?

int a = 10;
func(a);
とやったら、aがfunc内部で参照として使用されます。

キャスト「演算子」を使って
func(static_cast<int>(a));
とやったら、func内部で使われる値はaとは無関係で、aの寿命に依存しなくなります。

でいいのか?
637デフォルトの名無しさん:2014/01/07(火) 23:59:47.36
まあ、int とかだったら
func(a+0);
とすればいいんだけどさ。
638デフォルトの名無しさん:2014/01/08(水) 08:00:21.97
>>633
キャストしたらコピーが作られるわけではない。
intの左辺値が右辺値になるだけ。
コピーは仮引数の参照型に実引数をバインドする際に
コンパイラーがやること。
 static_cast<int>(a) //ここではコピーは発生しない
 int && ref = (基本型のprvalue) //ここでコピーが発生
639デフォルトの名無しさん:2014/01/08(水) 08:16:13.32
質問です。
関数へのポインタ型への変換operatorを
typedef無しで書くにはどうしたらよいですか?
operator void*()()
と書くと怒られてしまいます
640デフォルトの名無しさん:2014/01/08(水) 08:37:02.88
template<typename T>
class baka {
  operator T();
};

baka<void *()>
641片山博文MZコスモ ◆T6xkBnTXz7B0 :2014/01/08(水) 18:55:09.24
#include <stdio.h>
int f(void) {return 2;}
template <typename T>
struct tensai {
operator T() {return f;}
};
int main(void) {
tensai<int (*)(void)> t;
printf("%d\n",t());
}
642デフォルトの名無しさん:2014/01/08(水) 19:38:18.21
struct unko {
static void (*pf)();
operator decltype(unko::pf)();
};
643KUSO KOTE:2014/01/08(水) 20:03:35.74
#include <type_traits> // for common_t ype

struct unko
{
operator std::common_type<void (*)()>::type ()
{
std::printf("うんこー\n" );
return nullptr;
}
};
644デフォルトの名無しさん:2014/01/08(水) 21:40:07.78
>>638
何で参照で受けてコピーが発生するんだよ?
キャストした時点で新しいオブジェクトが発生するに決まってるだろ。
645デフォルトの名無しさん:2014/01/08(水) 21:46:43.60
>>644
実装上の話をしてるのか形式的な話をしてるのか解らんから堂々巡りになるぜ
646デフォルトの名無しさん:2014/01/08(水) 21:47:08.45
>キャストした時点で新しいオブジェクトが発生

規格のどこにそんなことが書いてあるの
647デフォルトの名無しさん:2014/01/08(水) 21:48:33.53
金慶珠 「水掛け論になりますから」
648デフォルトの名無しさん:2014/01/08(水) 21:50:35.60
どんな実装だろうねぇ
存在するのかねぇ
649デフォルトの名無しさん:2014/01/08(水) 21:52:13.71
int a = 1;
(double)a;
ってやるとdouble型のオブジェクトが新しく発生するの?
(int)a;
だとどうなの?
650デフォルトの名無しさん:2014/01/08(水) 21:53:32.40
もちろん
651デフォルトの名無しさん:2014/01/08(水) 21:59:25.84
int a;
(double)a;
でdouble型の新たな実体が発生しない訳がない。当然だ。
同じ型だとどうなるのか?
規格を見ずにあてずっぽうに答えてみる・・・5.4あたりか?
652デフォルトの名無しさん:2014/01/08(水) 22:01:14.18
>>644
>何で参照で受けてコピーが発生するんだよ?

しないの?
8.5.3p5
a temporary of type“cv1 T1”is created and initialized from the initializer expression using the rules for a non-reference copy-initialization
653デフォルトの名無しさん:2014/01/08(水) 22:02:26.06
まともなコンパイラならどちらも最適化して消えまする
654デフォルトの名無しさん:2014/01/08(水) 22:17:26.07
>>653
実装の話やめろ
655デフォルトの名無しさん:2014/01/08(水) 22:20:25.05
(double)a;
これが消えないとかありえないわ
656デフォルトの名無しさん:2014/01/08(水) 22:23:42.29
volatileじゃなければ消しても問題ない
657デフォルトの名無しさん:2014/01/08(水) 22:25:45.80
存在しない実装を前提に話すのって無意味だよね
658デフォルトの名無しさん:2014/01/08(水) 22:30:47.13
>>651
5.4には結果はprvalueとあるけれど
コピーの有無は書かれてない模様
659デフォルトの名無しさん:2014/01/08(水) 22:35:36.64
>>655
そういう話じゃない
>>638に対する反論
660デフォルトの名無しさん:2014/01/08(水) 22:38:28.65
>>659
さいですか。
次からはサンプル書くにもお気をつけあそばせ。
意味が分かんないんで。
661デフォルトの名無しさん:2014/01/08(水) 22:41:51.78
>>660
>>644からずっとその流れだが?
662デフォルトの名無しさん:2014/01/08(水) 22:44:06.98
>>661
あーそうですか
それは失礼しました
非常に申し訳ない
663デフォルトの名無しさん:2014/01/08(水) 22:47:31.83
許さない
664デフォルトの名無しさん:2014/01/08(水) 22:50:33.64
問題1
 int a; に対し(int)aでコピーが起こるか?

問題2
 int&& ref = 100;でコピーは起こるか?

今のところ前者が5.4、後者が8.5.3p5という根拠が示されたが
5.4ではよくわからんとの意見あり
665デフォルトの名無しさん:2014/01/08(水) 22:51:42.47
>>662
気にスンナ

ところでその>>638って>>633に対して言ってるんだけど、そこにある
「この関数は右辺値も左辺値も受けます。左辺値を受けたらその値を使い、右辺値だったら内部で確保したコピーを使います」
ってどういう言う意味だ?そんなことありえるの?
666デフォルトの名無しさん:2014/01/08(水) 22:54:32.55
実例で欲しいね
667デフォルトの名無しさん:2014/01/08(水) 22:54:33.17
>>665
ふつうはconst参照の時にコピーして右辺値参照の時にそのまま使うのだけれど、
>>633は何故かその逆の動作をする酔狂な実装の関数オーバーロードを定義しただけ
668デフォルトの名無しさん:2014/01/08(水) 23:01:55.35
(int)aでコピーが生成されるかはよ
おまえらページ番号暗記しとるやろ
669デフォルトの名無しさん:2014/01/08(水) 23:09:04.70
>>667
ん?逆じゃね?
670デフォルトの名無しさん:2014/01/08(水) 23:29:42.73
>>667
"const"参照とは言ってない。
せっかく参照で受けてんのに、なんでわざわざコピー作るんだ?
それに右辺値参照だったら、相手はすぐ死んでしまう恐れがあるからコピー作るだろ?
実例は作成中だから少し待て。
671デフォルトの名無しさん:2014/01/09(木) 00:01:54.19
面白い例にしようと思ったが意外とつまらなくなってしまったブツブツ・・・

http://ideone.com/XFvdbM
672デフォルトの名無しさん:2014/01/09(木) 00:47:26.29
>>646
5.2.9 [expr.static.cast] p1
> The result of the expression static_cast<T>(v) is the result of
> converting the expression v to type T. If T is an lvalue reference type
> or an rvalue reference to function type, the result is an lvalue; if T
> is an rvalue reference to object type, the result is an xvalue;
> otherwise, the result is a prvalue.

5.2.9 [expr.static.cast] p4
> ... an expression e can be explicitly converted to a type T using a
> static_cast of the form static_cast<T>(e) if the declaration T t(e); is
> well-formed, for some invented temporary variable t (8.5). The effect of
> such an explicit conversion is the same as performing the declaration
> and initialization and then using the temporary variable as the result
> of the conversion. ...

ってことで int a = 10; に対して static_cast<int>(a) すると
int x(a); として初期化したような一時オブジェクト(つまりコピー)が作られ、それが
prvalue として得られる。
673デフォルトの名無しさん:2014/01/09(木) 00:53:15.91
pついてないrvalueって何?右辺値にキャストしたやつ?
674デフォルトの名無しさん:2014/01/09(木) 01:03:14.28
>>673
prvalue と xvalue を合わせて rvalue と言う。
http://cpplover.blogspot.jp/2010/03/n3055-taxonomy-of-expression-value.html
675デフォルトの名無しさん:2014/01/09(木) 01:06:39.56
>>672
それがVCだとそうならないの?
>>671のコードで「VCではダメ」って書いてるけど、どういう動きになるの?
676デフォルトの名無しさん:2014/01/09(木) 06:33:07.50
>>672
つまり>>638のstatic_cast<int>(a)でコピー無しは嘘と言うことだな。
ちなみに (int)a ではどうなの?
677デフォルトの名無しさん:2014/01/09(木) 08:15:24.33
同じこと
678デフォルトの名無しさん:2014/01/09(木) 08:30:58.89
おまえらの得意な規格のページ出せはよ
679デフォルトの名無しさん:2014/01/09(木) 08:31:15.85
コピーが発生するかどうか、リリースビルド覗いて確認しろw
汗出力くらいできんだろ
680デフォルトの名無しさん:2014/01/09(木) 08:38:30.08
例え最適化されるとしても文法的な理解としてはコピーになるとしか言いようがないな
681デフォルトの名無しさん:2014/01/09(木) 08:40:35.09
なんだよ仕様はこうですと連呼しつつソースが出せんのか
682デフォルトの名無しさん:2014/01/09(木) 09:02:56.54
ページ番号を出すのはムズいな
683デフォルトの名無しさん:2014/01/09(木) 09:27:46.01
キャストの結論

633>コピーするにはキャスト
638>キャストではコピーされない。
  static_castではコピーされない
672>規格ではstatic_castはコピーされる
 ↓
では(int)aキャストでは?
 ↓
される
 ↓
ソースは?
 ↓
コピーされるとしか言いようがない
 ↓
ソース出せないのか
 ↓
出せません
684デフォルトの名無しさん:2014/01/09(木) 09:42:57.11
今思ったんだけど
void (*)()
ってなんかいやらしいな
685デフォルトの名無しさん:2014/01/09(木) 09:47:13.57
C/C++マはそれ書くとき皆中学生のようなトキメキを覚えるのです
686デフォルトの名無しさん:2014/01/09(木) 10:28:25.08
'A'==L'A'
って常に真になりますか
687デフォルトの名無しさん:2014/01/09(木) 11:53:37.65
>>678 5.4 p1
688デフォルトの名無しさん:2014/01/09(木) 11:54:08.97
〜 p4
689デフォルトの名無しさん:2014/01/09(木) 12:23:55.70
>>686
ならない
一例として
gcc main.c -fshort-wchar -fwide-exec-charset=UTF16LE
gcc main.c -fshort-wchar -fwide-exec-charset=UTF16BE
690デフォルトの名無しさん:2014/01/09(木) 12:24:21.94
>>686
C++は文字コードまで規定してないので真になるとは限らない
でもそうならない環境を知らない
691デフォルトの名無しさん:2014/01/09(木) 12:28:07.69
>>689
わざわざワイド文字使いながらローカル表現と違うエンディアン使うって滅多になくね?
と思うけどまあアリか
692デフォルトの名無しさん:2014/01/09(木) 12:39:36.57
>>688
5.4p4だと(int)aはstatic_castでなくconst_cast<int>(a)と同じと読めるけど違う?
693デフォルトの名無しさん:2014/01/09(木) 12:53:02.96
>>692
違う。 const_cast の変換先に指定できるのはポインタと参照だけだから、その次の static_cast になる。
694デフォルトの名無しさん:2014/01/09(木) 13:52:13.20
>>686
_ _STDC_MB_MIGHT_NEQ_WC_ _で調べられる
695デフォルトの名無しさん:2014/01/09(木) 18:45:02.55
以下のコードでコンパイルエラーが出たけど、なんでか分からん…
(g++ 4.8.1)
#include <stdio.h>

template<typename T>
static inline void Print(const T* (&p)) { printf("%p\n", p); }

class Test1 {
public:
Test1() {}
};

int main() {
class Test2 {
public:
Test2() {}
};

const Test1* test1 = new Test1;
Print(test1); // ← こっちはOK

const Test2* test2 = new Test2;
Print(test2); // ← これはコンパイルエラー
}
696デフォルトの名無しさん:2014/01/09(木) 18:58:06.62
ローカルなクラスはテンプレート引数に使えない
C++11では使えるようになったのでオプションに-std=c++11を指定するとコンパイルが通るはず
697デフォルトの名無しさん:2014/01/09(木) 18:58:41.24
テンプレートに関数ローカルな型を渡せるようになったのはC++11から
698デフォルトの名無しさん:2014/01/09(木) 19:06:22.25
>>696,697
うほ!即答助かる
そんな事があったのかー
クラスをローカルにしなきゃ回避できるから困ってはいなかったけど
原因が分かってすっきりした!
699デフォルトの名無しさん:2014/01/09(木) 19:07:59.95
>>696
-std=c++11を指定したらコンパイルは通った
700デフォルトの名無しさん:2014/01/09(木) 21:42:19.03
C++でstdio.h使うばかってなんなの?


cstdioにしとけや
701デフォルトの名無しさん:2014/01/09(木) 21:52:01.89
stdioでおなかいっぱいです
それでいけることにしかつかってない
異論は認める
702デフォルトの名無しさん:2014/01/09(木) 22:00:58.52
stdio.hはC++でコンパイルエラーが発生するかもしれない、cstdioは発生しない、
両方とも定義は同じもの
703デフォルトの名無しさん:2014/01/09(木) 22:01:26.79
>>700あえて聞こう。それはなぜ?
704デフォルトの名無しさん:2014/01/09(木) 22:03:27.51
ラッパー書けねーな
まいったなこりゃ
705デフォルトの名無しさん:2014/01/09(木) 22:29:11.51
>>702
何をばかなこと言っているんだおまいは
706デフォルトの名無しさん:2014/01/09(木) 22:29:27.69
作法にだけはこだわる
それが無能の特徴
707デフォルトの名無しさん:2014/01/09(木) 22:43:55.62
作法にだけこだわる馬鹿 と 作法にこだわる人
の区別がつかない馬鹿
708デフォルトの名無しさん:2014/01/09(木) 22:44:44.08
作法はちゃんとしろアホ。手を抜くな
709デフォルトの名無しさん:2014/01/09(木) 22:58:25.37
こだわらない馬鹿よりは1gぐらいマシ
710デフォルトの名無しさん:2014/01/09(木) 23:56:28.06
unko *p = 0;
(unko )*( p);
711デフォルトの名無しさん:2014/01/10(金) 01:03:18.69
[](){}();
712デフォルトの名無しさん:2014/01/10(金) 02:20:49.61
reinterpret_castはstaic_castではダメだったのか
713デフォルトの名無しさん:2014/01/10(金) 02:33:14.90
ダメだからあるんだろ
714デフォルトの名無しさん:2014/01/10(金) 02:45:47.90
>>711
すぐラムダ式と分かった
715デフォルトの名無しさん:2014/01/10(金) 08:03:36.48
C++のインナークラスで質問です
JAVAでいうところの
class Outer {
Outer(int _u) {
u = _u;
}

int u;

class Inner {
void f() {
cout << Outer::this->u;
}
};
};
Outer* o = new Outer(200);
Inner* i = o->new Inner();
みたいなことをやりたいのですがどう書けばよいのかわかりません
インスタンスnewみたいなことはできないのでしょうか?
716KUSO KOTE ◆unko./w.Osri :2014/01/10(金) 08:25:10.13
C++はstaticなインナークラス相当しか無いので
Innerが自分でOuterへのポインターを持つしかありません

class Outer {
int u;
public:
Outer(int u) : u{u} {}

class Inner {
Outer *const parent;
public:
Inner(Outer *p) : parent{p} {}

void f() {
cout << this->parent->u;
}
};
};
Outer *o = new Outer{200};
Inner *i = new Inner{o};
717デフォルトの名無しさん:2014/01/10(金) 08:40:34.33
ラムダって便利だよね
718デフォルトの名無しさん:2014/01/10(金) 09:48:28.91
OuterとInnerは全く関係ないので無理です
Outerで適当にInnerクラス生成する関数でも作ってください
719デフォルトの名無しさん:2014/01/10(金) 10:49:10.59
>>715
それC++ではコンポジションに近いからなあ
ただ内部クラスから外部クラスのスコープを参照したいという事は良くあるから気持ちが
分からないでもない
ま、解決策は内部クラスの方をfriend classとして別に宣言してコンポジションにすると
いいかなあ
720デフォルトの名無しさん:2014/01/10(金) 10:54:21.73
コンポジションに、近い??
721デフォルトの名無しさん:2014/01/10(金) 10:57:53.55
>>700
stdio.hで困った事なんて一度もない
722デフォルトの名無しさん:2014/01/10(金) 11:09:20.56
offsetofマクロを使うと内部クラスのメンバへポインタを切り替えられるのは事実だから
そういう特殊な用途用としか思えない

それ以外はスコープを外したコンポジションでいいんじゃないの?
723デフォルトの名無しさん:2014/01/10(金) 11:23:08.22
>>722
Javaのインナークラスは親1に対してインナー多だぞ
アグリゲーションならともかくコンポジションとは違う
724デフォルトの名無しさん:2014/01/10(金) 11:33:59.42
>>700
cstdio使ってる奴はむしろ警戒する。リベラルで面倒臭いコード書いてそう
725デフォルトの名無しさん:2014/01/10(金) 11:41:02.13
>>715
そもそもなんでnewしたいのか。
Outer o;
Outer::Inner i;
では何故いけないのか。
726デフォルトの名無しさん:2014/01/10(金) 11:42:08.27
まともにC++を使いこなせない奴に限ってinclude <cstdio>を警戒するよね。
727デフォルトの名無しさん:2014/01/10(金) 11:43:21.31
>>724
402のような糞コードのことですね
728715:2014/01/10(金) 11:50:48.71
>>725
JAVAでボタンが押されたときとかに
Activityのイベントハンドラでサービスを起動するのに
使うようなイメージです
画面から動かされた処理が完了した後に
画面をに結果を出したりしたいです
729デフォルトの名無しさん:2014/01/10(金) 11:51:38.56
C++11をふんだんに盛り込むのが使いこなすことだと思ってる輩が多いので困るです
730デフォルトの名無しさん:2014/01/10(金) 11:55:21.44
>>728がJava脳過ぎて、>>725の質問に全く答えていないことに笑った。
その>>725はC++脳過ぎて、Javaのインナークラスを知らない頓珍漢なのだが。
731デフォルトの名無しさん:2014/01/10(金) 12:06:35.77
>>724
iostreamでなくcstdio使う人はむしろ保守派

>>730
JAVA() の時点でお察し
732デフォルトの名無しさん:2014/01/10(金) 13:00:30.84
>>722
型変換って知ってるか?
型変換するとアドレスが変わるんだぞ
733デフォルトの名無しさん:2014/01/10(金) 13:02:43.81
coutは狙った出力をさせるのが恐しく面倒だし、Google C++スタイルガイドにも
printfを使ってくださいと書いてあるのを見てからはiostreamはincludeしなくなった。
もう全部↓これ
#include <stdio.h>
734デフォルトの名無しさん:2014/01/10(金) 13:05:09.73
iostreamがクソなのは言うまでもないが
どうしてcstdioでなくstdio.hになるのか
バカなの?
735デフォルトの名無しさん:2014/01/10(金) 13:08:02.44
名前空間で囲われただけで本質的な違いが全くないからだろ
736デフォルトの名無しさん:2014/01/10(金) 13:30:37.62
std::printfって書けるのがとてもありがたい
737デフォルトの名無しさん:2014/01/10(金) 13:57:28.16
>>723
すげえな
再利用の出来ないインナークラスをそんなにたくさん埋め込むのか
738デフォルトの名無しさん:2014/01/10(金) 14:45:00.85
Inner ClassはProxy Classを作るのに便利だよ
739デフォルトの名無しさん:2014/01/10(金) 15:15:12.59
すみません今から覚えるのにCとC++どっちを学習したら良いでしょうか
JAVAとverilogは書いたことあります
C++を覚える過程でCがかけるようになるならC++の勉強をしようと思っています
740デフォルトの名無しさん:2014/01/10(金) 15:18:51.26
いきなりC++でいいよ
Cを含んでるんだから
いっぺんに全部を理解するのは無理だから段階的に勉強していけばいい
741デフォルトの名無しさん:2014/01/10(金) 15:20:05.47
C++がいいだろうが。
C++にCは含まれるが、不便な部分でCを使わずにかけてしまう可能性があり
C言語の学習を飛ばしてしまう可能性がある。
742デフォルトの名無しさん:2014/01/10(金) 15:24:40.49
文字列操作、ポインタ操作、printfとかはC言語の初歩だが
C++ではより簡単に実現できスルーできてしまう可能性がある。
実用上はC++で、学習的にはCから。
743デフォルトの名無しさん:2014/01/10(金) 15:33:33.47
初学者にC/C++を教えるってことは低水準なセンスを叩き込みたいんだろうから
まあ学習にはCだな
744デフォルトの名無しさん:2014/01/10(金) 17:02:43.12
C言語でmallocとrealloc 使って、
データを積み重ねているんだけど

C++で書く場合
vector< unsigned char >::push_back
データ積み重ねようとしてるけど
これでいい?

なんか他にいい方法ある?
745デフォルトの名無しさん:2014/01/10(金) 17:10:29.28
それでいい
746デフォルトの名無しさん:2014/01/10(金) 20:29:28.69
14のジェネリックlambdaが待ち遠しいんですけど、これってデフォルト引数を与えたりできますかね?
あっちのスレは止まってるみたいなんで。
747デフォルトの名無しさん:2014/01/10(金) 20:38:03.81
bindでなんとかしろ
748デフォルトの名無しさん:2014/01/10(金) 21:42:56.28
>>747
bindをラムダでリプレースしたいからのに・・それじゃ・・・
749デフォルトの名無しさん:2014/01/10(金) 23:55:01.23
文法について質問させてください。
以下の★の書き方ですが
 b
 b<T>
 template b<T>
のどれが正しいのでしょうか?
ルールが複雑すぎて難しいです。。

template<typename T>
class b {
public: bool a;
};

template<typename T>
class d : public b★ {
d() : b★() {
this -> b★::a = true;
}
};

class d2 : public b★ {
d2() : b★() {
this -> b★::a = true;
}
};
750デフォルトの名無しさん:2014/01/10(金) 23:59:27.97
template<typename T>
class b {
public: bool a;
};

template<typename T>
class d : public b<T> {
d() : b<T>() {
a = true;
}
};

class d2 : public b★ {
d2() : b★() {
a = true;
}
};

下側は指定してくれないとなんとも
751749:2014/01/11(土) 00:00:05.55
想像ではこんな感じです
template<typename T>
class d : public b<T> {
d() : b<T>() {
this -> template b<T>::a = true;
}
};

class d2 : public b<int> {
d2() : b<int>() {
this -> b<int>::a = true;
}
};
752デフォルトの名無しさん:2014/01/11(土) 00:03:31.45
>>749
class d のデフォルトコンストラクタが private になってるぞ
753749:2014/01/11(土) 00:10:35.12
>>750
a = true;
の所なんですが、VCでb::aで通っていたところが
clangで怒られたのです。
コンパイラにtemplateが足りないと言われたので試行錯誤で
this -> namespace1::namespace2::template B<T>::a
みたいな書き方にしたら通ったのですが
初めて見る書き方なので不安で質問しました。
一応aだけでも通るのはわかります。

>>752
すみませんpublicの間違いです。
754デフォルトの名無しさん:2014/01/11(土) 00:56:15.53
: b

d :

こいつらが顔文字に見えて仕方がない
755デフォルトの名無しさん:2014/01/11(土) 01:05:30.93
まず
・b
この書き方ができるのは自分(d)のみ
自分以外の型は例えばb<int>とb<bool>は
異なる型なので<>の指定が必要

次に
・namespace_name::template b<T>
・b<T>
・typename d::b
この辺はカオス。知らん

特にtypename d::bは<T>が無いので
曖昧だとエラー
VC++,g++,clangともに挙動が怪しい気がする
756デフォルトの名無しさん:2014/01/11(土) 01:06:00.45
世の中には
*やらテメーの肛門見て
旭日旗だ
こいつは親日派に違いない
と感じる人もいるんだし
よくあることですよ
757デフォルトの名無しさん:2014/01/11(土) 01:09:11.43
unko *p = 0;
(unko )*( p);
758デフォルトの名無しさん:2014/01/11(土) 01:15:28.98
>>753
文法のことはさておき、a をちゃんとコンストラクタで初期化するのが本筋。

template<typename T>
class b {
public: bool a;
b() : a(true) { }
};

template<typename T>
class d : public b<T> {
d() : b<T>() { }
};
759デフォルトの名無しさん:2014/01/11(土) 01:16:39.20
>>746
ラムダのデフォルト引数て何?
具体的に
760デフォルトの名無しさん:2014/01/11(土) 01:21:46.54
>>759
[](auto t=※){} のことでは?
761デフォルトの名無しさん:2014/01/11(土) 01:30:36.97
>>758
コンストラクタを継承する場合は
template<typename T>
class d : public b<T> {
public:
  using b<T>::b; // b<T>::b<T> ?
};
でよい?
762KUSO KOTE ◆unko./w.Osri :2014/01/11(土) 01:33:05.04
b<●>::b<●> ?

>>757
いいね!
763デフォルトの名無しさん:2014/01/11(土) 01:36:36.57
>>760
それです。

fn を例えば2変数のファンクタとして、
[&fn](auto x = 8) { return fn(1, x); }; みたいな
764デフォルトの名無しさん:2014/01/11(土) 02:04:34.55
最近スレがマトモですね
やっぱりhogeが禁止されるとスレも健全になるようです
765デフォルトの名無しさん:2014/01/11(土) 03:53:51.17
c++11のatomic_bool型に値を入れるとき
operator=だとメモリバリア指定ができないので
これははメモリバリア無しという理解は正しいですか?
766デフォルトの名無しさん:2014/01/11(土) 04:52:51.23
storeがよばれるのでデフォルトやつが指定されます
767デフォルトの名無しさん:2014/01/11(土) 08:23:58.00
禁句「バリアってなんですか?」
768通りすがり:2014/01/11(土) 08:24:12.23
構造体を指定するときに、

struct hoge val

と宣言しても

hoge val

と宣言しても問題なさそうなのですが、
「struct」 を付ける意味ってあるの?
769デフォルトの名無しさん:2014/01/11(土) 08:31:33.29
>>768
人に質問するときはhogeを使うな
770デフォルトの名無しさん:2014/01/11(土) 08:32:44.27
>>768
無いな
771デフォルトの名無しさん:2014/01/11(土) 08:37:01.68
構造体ってなんですか?
772デフォルトの名無しさん:2014/01/11(土) 08:54:35.85
double baka;
struct baka{};

int main()
{
  struct baka i;
}
773デフォルトの名無しさん:2014/01/11(土) 09:11:27.70
「構造体を指定」とはどのような意味なのか
やはりいつものhoge荒らしは日本語が怪しい
774デフォルトの名無しさん:2014/01/11(土) 09:23:51.70
Pascal風に言うとスカラーで無いもの
775デフォルトの名無しさん:2014/01/11(土) 09:26:36.48
>>774
おまえの脳内定義などどうでもよい
776デフォルトの名無しさん:2014/01/11(土) 09:40:01.09
【重要】
hogeは禁止です。使用しないでください。
万が一hogeが書き込まれても、スルーしてください。
相手にするとあなたも荒らしと同じ扱いになります。

※ テンプレを良く読んで下さい
777デフォルトの名無しさん:2014/01/11(土) 10:27:15.83
>>775
無知をさらけ出して可哀想な奴
778デフォルトの名無しさん:2014/01/11(土) 10:52:51.81
バグ?
なぜかVC2013 だと 6 => 3 => 1 の呼び出しでアクセス違反が発生して終了
http://ideone.com/1C4EQp
779763:2014/01/11(土) 10:54:37.87
>>763の意味でのデフォルト引数って設定できるようになるんでしょうか?
780KUSO KOTE ◆unko./w.Osri :2014/01/11(土) 12:06:19.99
>>778
test_tmp((typename std::decay<T>::type)x); ?
781デフォルトの名無しさん:2014/01/11(土) 12:19:31.53
>>778
std::forward 使え
782デフォルトの名無しさん:2014/01/11(土) 12:24:19.82
>>778
hogeを使え
低脳らしく
783デフォルトの名無しさん:2014/01/11(土) 12:32:45.82
>>779
スレ違いは
去れ
784デフォルトの名無しさん:2014/01/11(土) 12:32:50.91
>>781
なんで?と思って念のためCスタイルキャストとstatic_castを比較してみた
http://ideone.com/1C4EQp
そしたら「追加1」と「追加2」で挙動が異なった。
785デフォルトの名無しさん:2014/01/11(土) 12:34:13.64

「挙動が異なった」というのはVCでの話ね。
ideonでは見ての通り動いてる。
786デフォルトの名無しさん:2014/01/11(土) 12:47:36.57
型推測とCスタイルキャストが相性悪いんかな
一回余計にdereferenceしてる
787デフォルトの名無しさん:2014/01/11(土) 12:54:21.02
Cスタイルキャストとstatic_castは別のものだが、static_castできるならば同じはずでは?
static_cast<T>(x) がコンパイルエラーにならないとき、それは(T)xと同じだと思ってたが。
788デフォルトの名無しさん:2014/01/11(土) 12:59:38.48
Cスタイルキャストはstatic_castができないとき reinterpret_cast するというものじゃなかったっけ?
やれやれ、また規格の話か。
789デフォルトの名無しさん:2014/01/11(土) 13:21:31.62
リテラルのアドレスをmoveするヤツなんかいねーだろと端折ってあって
リニア変換してないオフセット付のアドレスが釣れてしまってんじゃネーの?
790デフォルトの名無しさん:2014/01/11(土) 13:21:54.35
>>788
そんな規定はねーよ
791デフォルトの名無しさん:2014/01/11(土) 13:22:58.62
>>789
アセンブリ出力ぐらい読んでから言え
792デフォルトの名無しさん:2014/01/11(土) 13:29:47.17
>>790
規格見てねーけどこういうところに書いてあったからな
http://d.hatena.ne.jp/prettysoft/20101026/1373123454
「Cスタイルのキャストは static_cast できなければ reinterpret_cast するというものです」
ま、ヒマがあったら確認するよw
793デフォルトの名無しさん:2014/01/11(土) 13:35:00.82
794デフォルトの名無しさん:2014/01/11(土) 13:58:52.00
>>782みたいなキチガイは何なの?
795デフォルトの名無しさん:2014/01/11(土) 14:09:46.35
>>783
何がスレ違いなのさ?
796デフォルトの名無しさん:2014/01/11(土) 14:13:29.76
またチョーセン人が荒らしてるのか。
とっとと死ねよ
797デフォルトの名無しさん:2014/01/11(土) 14:24:27.00
>>743
正直言ってその場合アセンブリ言語を少し齧らせたほうがいい。
ポインタで躓く奴が多すぎるがアセンブリ言語やれば一目瞭然だ。
無論AT&T文法だと面倒だからIntel文法のアセンブリ言語な。
798デフォルトの名無しさん:2014/01/11(土) 14:28:53.72
>>794
hogeが嫌いすぎて頭オカシイ人だからほっとけ。
799デフォルトの名無しさん:2014/01/11(土) 15:02:28.39
>>778はVCのバグ

cスタイルのキャストは受けが悪いという点はさておき、
T&& x;
として受けた変数に対する (T&&)x; は問題の発生する余地はない。
800デフォルトの名無しさん:2014/01/11(土) 16:03:59.11
Qが使えなくなったコテ外してファビョているのか
801デフォルトの名無しさん:2014/01/11(土) 16:24:01.18
チョーセン人がいたるところでhoge禁止の慰安婦像をたてている
802デフォルトの名無しさん:2014/01/11(土) 16:28:50.12
hogeに必死で反発してるやつって子供っぽいんだろうなw
unokとかbakaとかも見てて恥ずかしいけど、俺は反発しないけどな。
本人がやりたいんならやらせとけ、って感じで傍観しとくけど。
803デフォルトの名無しさん:2014/01/11(土) 16:29:55.25
>>802
だよな
必死に反発してる=「自分が絶対で他の価値観を認めない」って事だから、
もろに自己愛性パーソナリティ
チョーセン人っぽいね
804デフォルトの名無しさん:2014/01/11(土) 16:34:11.67
めんどくさいから煽るなよ
805デフォルトの名無しさん:2014/01/11(土) 16:36:31.63
>>795
次期の話は別スレがあるでしよ
806デフォルトの名無しさん:2014/01/11(土) 17:09:40.68
なんかキャストの話は荒れそうで申し訳ないんだけど、質問です。
テンプレートでgetterのconstをthisのconstと切り離して、テンプレートパラメータのconst属性に合わせたい。

template <typename T>
struct yakitori {
T val;
yakitori(const T& x) : val(x) { }
T& get() const { return const_cast<T&>(val); }//constメンバー
};

const yakitori<int> v(2);//テンプレートパラメータは非const
int& i1 = v.get();//const不要  ・・・・・ A

const yakitori<const int> c(3);//テンプレートパラメータはconst
const int& i2 = c.get();//constがないとエラー  ・・・・・ B

get() はconstメンバーだけど、Aはできるようにしたいのでconst_castしてます。
mutable使ってもできるけど、ほかに方法はない?
const_cast とか mutable をみると見境なく噛みついてくる人がいるんで困ってる。
807デフォルトの名無しさん:2014/01/11(土) 17:30:19.31
↓良い悪いは誰も聞いてないのに語りだすアホ
808デフォルトの名無しさん:2014/01/11(土) 17:59:00.86
Aができるようにしたいという要望がキモイ
809デフォルトの名無しさん:2014/01/11(土) 18:05:42.36
Aは未定義動作だけど鼻から悪魔出したいの?
810デフォルトの名無しさん:2014/01/11(土) 18:13:29.43
>>809
それじゃconst_castは何でも未定義になると言ってるようなもんだぞ
811デフォルトの名無しさん:2014/01/11(土) 18:18:29.48
チョーセン人チョーセン人言ってる人ってもしかしてリアル韓国人?
日本人を装う韓国人を何度か見たことあるけどそっくり。
「日本人は自分たち韓国人を常に意識して優位に立とうとしてるから、
同じだというレッテルを貼れば悔しがるだろう」
という思考回路だそうな。
812デフォルトの名無しさん:2014/01/11(土) 18:23:12.26
リアル朝鮮人で合ってるよ
但し日本国籍を取得してる
813デフォルトの名無しさん:2014/01/11(土) 18:24:20.10
あちこちのスレにhoge禁止という慰安婦像を立てて回ってるのはチョーセン人
814デフォルトの名無しさん:2014/01/11(土) 18:30:29.42
>>806
いや、逆にconst_castとmutableの両方とも必要だと思うぞ。
815デフォルトの名無しさん:2014/01/11(土) 18:36:28.62
>>812
国籍取得つーか韓国系二世とかじゃなかったか?
816デフォルトの名無しさん:2014/01/11(土) 18:49:35.96
>>809,814
あ、そうだった!

>>808
ここではconst属性はテンプレートパラメータで規定したくて、thisのconst属性には縛られる必要はないんだよ。
817デフォルトの名無しさん:2014/01/11(土) 19:03:43.93
>>806
T valをポインターで持つようにする
818603:2014/01/11(土) 20:20:28.55
いや〜順調順調

ってか、socket っつうのはタイムアウトさせないんだな。
質問した立場であれなんだが、
人の話は聞くモンじゃないって良く分かったわ。
819デフォルトの名無しさん:2014/01/11(土) 20:44:58.11
>>818
ブロッキングさせて解決したか。
しかしそれは単にselectの使い方をマスターできなかっただけだ。
820デフォルトの名無しさん:2014/01/11(土) 22:06:39.92
ちょっと818が何言ってるかわからない
タイムアウトオプションと言う意味なら
Windowsでは使ってはいけない類のものだが
821デフォルトの名無しさん:2014/01/11(土) 23:25:26.12
>>806
なんかちょっと変だな。

その例でいくと、
yakitori<int> と yakitori<int&> と yakitori<const int&>
の組み合わせならわかる。

yakitori<int> と yakitori<const int> というのは用途がちょっと想像できない。
822KUSO KOTE ◆unko./w.Osri :2014/01/12(日) 02:53:36.91
823806:2014/01/12(日) 07:36:35.54
>>817,822
やっぱポインタ経由が正解ですか。それで試してみる。
>>821
確かに実際発生するのはyakitori<int> と yakitori<int&> と yakitori<const int&>かも。
824821:2014/01/12(日) 09:31:17.18
>>823
やっぱ<int>と<int&>と<const int&>なんだな。
ポインタ経由が楽だけど、参照へのポインタなんてないぞ。

ポインタを使わず、まともに
「thisのcv属性に依存せず、テンプレートパラメータのcv属性に従う変数を持つクラス」
なんてのを作ろうとしてもかなり難しい。
オレは途中までやって諦めたw
825デフォルトの名無しさん:2014/01/12(日) 10:52:00.77
C勉強中なのですがポインタ変数のインクリメント・デクリメントはなぜ挙動が違うのでしょうか
826デフォルトの名無しさん:2014/01/12(日) 11:06:42.69
その方が便利だから
827デフォルトの名無しさん:2014/01/12(日) 11:18:30.97
淫クリ?
828デフォルトの名無しさん:2014/01/12(日) 11:39:55.61
>>825
別の機能なのに同じ書式に無理やり合わせただけ
829デフォルトの名無しさん:2014/01/12(日) 11:45:13.12
淫クリを?
830デフォルトの名無しさん:2014/01/12(日) 12:11:15.93
インクリメントとデクリメントの挙動が違う、
って何言ってるのかさっぱり意味が分からん。

型ごとに違うって意味?
831デフォルトの名無しさん:2014/01/12(日) 12:12:54.38
分かるだろ
淫クリはペロペロしてやると体をピクピクさせるだろうが
832828:2014/01/12(日) 12:29:38.58
*hoge++が値じゃなくアドレスをインクリメントしてるみたいなので今の段階でそのメリットがわかりません
*hoge+1がなら値がインクリメントされるのでなぜこのような仕様にしたのかもわかりません
833デフォルトの名無しさん:2014/01/12(日) 12:31:40.28
>>832
それ単純に演算の優先順位の違いや
*(hoge++) (++は*より強い
(*hoge) + 1 (+は*より弱い
834デフォルトの名無しさん:2014/01/12(日) 12:35:30.85
>>833
荒らしの相手してんじゃねーよゴミクズ
835デフォルトの名無しさん:2014/01/12(日) 12:37:11.29
>>833は韓国人なんだろ。
キモすぎ。
836828:2014/01/12(日) 12:37:38.85
>>833
なるほどーありがとうございますまたひとつ気になったのですが
*hoge++はなぜ構文エラーにならないのでしょうか
837デフォルトの名無しさん:2014/01/12(日) 12:39:31.81
なぜ構文エラーになる(べき)と思うの?
838デフォルトの名無しさん:2014/01/12(日) 12:39:49.48
>>836
お前迷惑だから書き込むなよ
839デフォルトの名無しさん:2014/01/12(日) 12:41:36.05
>>836
hogeサイトばっか読んでるからそんなことも分からないんだろ

hogeサイトは読むだけ時間の無駄だと>>836が証明してくれた
840デフォルトの名無しさん:2014/01/12(日) 12:42:37.87
>>837
hogeを使ってるような糞本で学習したから間違った知識が身に付いてるだけw
841デフォルトの名無しさん:2014/01/12(日) 12:45:00.13
個人的な思い込みに基づいて"hoge"の使用に過剰な反応をする人がこのスレに住み着いていて、
最近は「hoge禁止」がスレ住人の総意であるかのように見せる工作を繰り返しているようです。
あまり気にしないでやってください。
842828:2014/01/12(日) 12:50:49.84
>>837
アドレスのインクリメントをするのならhage++と書いたほうがすっきりするし
*hage++の*は不要というかあるべきものじゃないと思うので
Statement has no effect と警告文は一応でるのですが、それでいいのかーと思いました
843デフォルトの名無しさん:2014/01/12(日) 12:50:59.64
>>824
よかったらどう諦めたのか教えてください。
844デフォルトの名無しさん:2014/01/12(日) 12:56:21.85
>>842
不要だと思うなら付けなくていいよw
アドレスのインクリメントをする前のアドレスにアクセスしたいからそう書くんだろ
個人的には見た目で何してるからわからんからそうは書かないけど
845KUSO KOTE ◆unko./w.Osri :2014/01/12(日) 12:58:59.74
>>823-824
何となくこんな感じ
http://ideone.com/uITHCw
846デフォルトの名無しさん:2014/01/12(日) 13:03:07.56
(*p)++
*(p++)

こう書くようにすればアホでもわかる
847デフォルトの名無しさん:2014/01/12(日) 13:06:14.45
【重要】
hogeは禁止です。使用しないでください。
万が一hogeが書き込まれても、スルーしてください。
相手にするとあなたも荒らしと同じ扱いになります。

※ テンプレを良く読んで下さい
848828:2014/01/12(日) 13:09:17.40
>>844,846
理解しましたありがとうございます
849デフォルトの名無しさん:2014/01/12(日) 13:15:27.00
>>828はさっきからなぜイミフな自演を続けてるんだ?
850デフォルトの名無しさん:2014/01/12(日) 13:16:45.46
こうやってhoge本ではまともな知識が得られないと知っても
まだhoge本を読むんだろうな

こういう学習能力のない奴って社会で疎まれるんだけど
>>828みたいな池沼は気付いてるんだろうか?
>>828は本当に生きてる価値がない
851デフォルトの名無しさん:2014/01/12(日) 13:22:11.80
struct hoge{...};
char c[x];
new(c) hoge[100];

xに必要な大きさを知るにはどうすればいいですか
852828:2014/01/12(日) 13:22:56.68
hoge病人の発狂が面白くてやめられんわ
853デフォルトの名無しさん:2014/01/12(日) 13:23:33.81
828,828,851はいつもの基地外の自演です
854デフォルトの名無しさん:2014/01/12(日) 13:24:58.68
訂正
 誤 828,828,851はいつもの基地外の自演です
 正 825,828,851はいつもの基地外の自演です
855デフォルトの名無しさん:2014/01/12(日) 13:28:29.04
hoge撃滅篤志隊以外のみなさまは発作が収まるまでスレに近づかないようにしてください
856デフォルトの名無しさん:2014/01/12(日) 13:32:09.57
>>828は精神病だという自覚がないんだろうな、かわいそうに。
857デフォルトの名無しさん:2014/01/12(日) 13:32:12.88
alignas (baka) char[sizeof(baka) * 100];
858デフォルトの名無しさん:2014/01/12(日) 13:48:22.68
>>851
実験して取り出すしか無いらしい。

476. Determining the buffer size for placement new
http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_closed.html#476

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3813.html#68
> In Chicago 2013, EWG deemed this NAD. ...
859デフォルトの名無しさん:2014/01/12(日) 13:52:49.49
先頭に要素数を隠し持つんだっけか?
860デフォルトの名無しさん:2014/01/12(日) 14:16:14.08
じゃあ
alignas(X) char buf[sizeof(X) * 100];
for (auto i=0; i<100;i++)
  allocator<X>().construct(&buf[sizeof(X) * i], p1,p2,p3);
861デフォルトの名無しさん:2014/01/12(日) 14:29:56.36
例外起きたら困るから
int i;
try {
  for ( i=0; i<100; i++ )
    alloc.construct(&buf[sizeof(X) * i]);
}
catch(...) {
  while ( --i >= 0 ) {
    alloc.destroy(&buf[sizeof(X) * i]);
  }
  throw:
}
862デフォルトの名無しさん:2014/01/12(日) 14:35:45.45
static baffer[1024*1024*32]; 最強
863デフォルトの名無しさん:2014/01/12(日) 14:42:12.01
>>862
それやめた方がいい。
言語が確保するメモリ領域を圧迫するから不安定になり得る。
864デフォルトの名無しさん:2014/01/12(日) 14:44:25.77
原因不明な「起動できない不具合」になるんかね
865デフォルトの名無しさん:2014/01/12(日) 14:46:21.20
「言語が確保するメモリ領域を圧迫するから 不 安 定 に な り 得 る」
ここは笑うところですか?
866デフォルトの名無しさん:2014/01/12(日) 14:57:34.02
めんどくさいな
const std::size_t Y = 256;
struct x {};
alignas(x) buf[sizeof(x) * N + Y];
auto p = new(buf) x[N];
if ((intptr_t)p - (intptr_t)buf > Y)
 exit(このコンパイラおかしくね?);
867デフォルトの名無しさん:2014/01/12(日) 15:02:07.37
データ処理をするプログラムで,コンパイルは通るのに実行時にSegmentation fault(core dumped)になってしまうことがよくある.
自分のプログラミング能力の低さに苦しんでいたところ,どうやらコンソールでスタックサイズが制限されているため大規模データだと処理できなくなるらしい.
http://d.hatena.ne.jp/takehr/20111109/1320836412


C++ でプログラムをしているとつい忘れてしまうのがスレッドのスタックオーバーフローの問題。
最近の OS はスレッド当たり 2〜8MB のスタック領域を持っているため、よほどのことがない限りスタックが溢れてしまうことはない。
だが、再帰や alloca を積極的に使うようなプログラムではスタックオーバーフローを気にすべきだ。
http://www.nminoru.jp/~nminoru/programming/stackoverflow_handling.html
868デフォルトの名無しさん:2014/01/12(日) 15:05:47.33
staticってスタックを使うの!?
869デフォルトの名無しさん:2014/01/12(日) 15:11:50.74
厳密に言えばスタックではないと思うが。
OSやコンパイラの制約で、staticを巨大に取ればスタック領域が減らされるんだよ。
870デフォルトの名無しさん:2014/01/12(日) 15:13:47.58
プログラムのメモリサイズはls -lで調べます
871デフォルトの名無しさん:2014/01/12(日) 15:14:17.55
>>869
言い訳ダセェw
872デフォルトの名無しさん:2014/01/12(日) 15:15:08.83
生配列でいいなら
そもそもplacement newする必然性無いんじゃね?
873デフォルトの名無しさん:2014/01/12(日) 15:15:58.03
>>872
誰も必然性は聞いてません
874デフォルトの名無しさん:2014/01/12(日) 15:17:15.96
便宜上書いただけだろうに
話が読めないアスペは困る
875デフォルトの名無しさん:2014/01/12(日) 15:20:01.25
巨大なのは動的確保して、OS側にメモリ管理を任せた方がいい。
少量ならメモリに乗りっぱなしで速度上の問題はないし、
巨大ならスワップなどして動作は継続できやすい。突然止まるとか起こりにくい。
876デフォルトの名無しさん:2014/01/12(日) 15:55:46.41
動的確保はいかなる場合でもfreeしろとキチガイが言いがかりをつけてくる
877デフォルトの名無しさん:2014/01/12(日) 16:37:24.55
>>824
>>845みたいな感じ、もしくはmutable使っていけると思うけど?

ところで、
「thisのcv属性に依存せず、テンプレートパラメータのcv属性に従う変数を持つクラス」って簡潔で当を得てるね。
この表現だけ俺にちょうだい。
コメントにつけるからw
878デフォルトの名無しさん:2014/01/12(日) 16:37:54.84
>>836

2 + 3 * 4 が構文エラーになるなら、 

*hoge++

は構文エラーになるだろうね
879デフォルトの名無しさん:2014/01/12(日) 17:05:28.17
>>858
wwwwwwww
880デフォルトの名無しさん:2014/01/12(日) 18:33:03.74
>>878
他人に迷惑をかけるのが好きなんだねぇ
どういう教育受けたらそうなるのか疑問だわ
881デフォルトの名無しさん:2014/01/12(日) 19:25:37.86
>>880
迷惑って何のことか、しばらく「えっ?」てなったぞ
おまえが C++ を使うことのほうが「迷惑」かもな
882デフォルトの名無しさん:2014/01/12(日) 19:28:29.10
ホゲを使って荒らし続けてるのって
明らかにたった一人だよな
883デフォルトの名無しさん:2014/01/12(日) 19:29:03.50
プログラム技術だのソフトウェア技術だのって結局ハウツーレベルのものなんだなあ。
884デフォルトの名無しさん:2014/01/12(日) 19:39:28.29
チョーセン人があいかわらず必死でhogeに言いがかり付けてるのか
そんなにイヤなら祖国に帰れよ
885デフォルトの名無しさん:2014/01/12(日) 21:32:31.25
>>883
この板のハウツーレベルだけど、実際は経験則でしかソフトウェアは書けない
886デフォルトの名無しさん:2014/01/12(日) 21:48:43.20
>>885
「経験がないと書けない」だったらよかったんだけどね。

経験がないと手術はできない
経験則でしか手術はできない

経験がないと飛行機の操縦はできない
経験則でしか飛行機の操縦はできない
887デフォルトの名無しさん:2014/01/12(日) 21:49:13.47
>>884
よう帰化韓国人
888デフォルトの名無しさん:2014/01/12(日) 22:29:18.66
>>886
同じものを二度も書いて金が獲られるってのは、ソフトウェア産業であってはならない
889デフォルトの名無しさん:2014/01/12(日) 22:38:06.23
>>888
回答にも理由にもなっていない。
890デフォルトの名無しさん:2014/01/12(日) 22:43:07.26
純粋仮想デストラクターって
何のためにあるのでしょうか?
891デフォルトの名無しさん:2014/01/12(日) 22:49:23.23
継承して使うクラスのために
892デフォルトの名無しさん:2014/01/12(日) 22:55:32.28
なくて困る状況を知らない
あって良かった状況もこれまでなかった
893デフォルトの名無しさん:2014/01/12(日) 23:02:26.65
あれ、使えるんですか?
派生クラスを生成できないですよね?
894デフォルトの名無しさん:2014/01/12(日) 23:06:31.62
ベースクラスのデストラクタで何もする必要がない場合って
純粋仮想デストラクタでおk?
895デフォルトの名無しさん:2014/01/12(日) 23:07:22.48
>>893
なんでやねん
896デフォルトの名無しさん:2014/01/12(日) 23:18:38.55
コンパイルエラーになるんですけど・・
struct B {
 virtual ~B() = 0;
};

struct D : B {
 virtual ~D() {}
};

int main() {
 delete new D;
}
897デフォルトの名無しさん:2014/01/12(日) 23:26:37.99
>>896
定義は必要。
B::~B() { }

マヌケだろ?
898KUSO KOTE ◆unko./w.Osri :2014/01/12(日) 23:29:00.61
こうやって使うため?
http://ideone.com/C4qbw2
899KUSO KOTE ◆unko./w.Osri :2014/01/12(日) 23:30:52.44
897とかぶったすまぬ
900デフォルトの名無しさん:2014/01/12(日) 23:32:26.69
>>886
医者やパイロットとくらべて、ひと山いくらの人材で成り立っている業界だと言いたいのか?

大雑把には正しいが、決めつけはよくない。
カテゴリーによるんだ。
理論・学識と教養、それに裏打ちされた経験。
すべてを満たさないとできない高度なプログラミング。


それが、C++なのだ。
901デフォルトの名無しさん:2014/01/12(日) 23:38:55.74
>>898
// 気が変わった
ってどういう意味?

= 0;
でなきゃいけない理由と何か関係が?
902KUSO KOTE ◆unko./w.Osri :2014/01/12(日) 23:52:40.49
>>901
気の迷いです忘れて。
Bの生成を抑制するためだけの書き方なのかな。
903デフォルトの名無しさん:2014/01/13(月) 00:13:58.22
まじかよ
純粋仮想関数(=0)ってのは定義が無いんじゃなくて
定義が無いかもしれない、継承しないとインスタンス化できない
って意味なのか
でデストラクタだけは定義が必須と。
C++糞文法すぎるだろ
904デフォルトの名無しさん:2014/01/13(月) 00:19:06.87
嫌なら使うな
905デフォルトの名無しさん:2014/01/13(月) 00:21:48.18
医者やパイロットになれなかった人がプログラマになります。
906デフォルトの名無しさん:2014/01/13(月) 00:32:18.30
int main(){
    void pattern0(void);
    void pattern1(void);

    void(*ptr[2])(void) = {
        pattern0,
        pattern1
    };
}
これは、class内だと
class A{
    A(){
        void(A::*ptr[2])(void) = {
            &A::pattern0,//Aのprivateメンバ
            &A::pattern1
        };
        (this->*ptr[0])();
        (this->*ptr[1])();
    }
};
で実行できたんですがこれって正しいですか?
907デフォルトの名無しさん:2014/01/13(月) 00:37:43.00
>>906
上記のはCでコンパイルしたもので、

C++でクラス内部の関数ポインタを使いたいという感じなのですが・・・
908デフォルトの名無しさん:2014/01/13(月) 00:40:36.03
>>907
x上記のは
○前者は
909デフォルトの名無しさん:2014/01/13(月) 00:42:06.42
>A::pattern0
どこにも定義がない物を使用するのはおかしいな。
910デフォルトの名無しさん:2014/01/13(月) 00:44:12.49
>>909
これがダメな答えの見本です
911デフォルトの名無しさん:2014/01/13(月) 00:49:20.05
>>909さん
自分の説明不足です
すいませんソース貼ります
http://ideone.com/qxMane
912デフォルトの名無しさん:2014/01/13(月) 00:51:12.34
>>906
2つのprivateメンバが仮想関数の場合、コンストラクタ内での呼び出しには
そこはかとない哀愁が漂うでしょう。
913デフォルトの名無しさん:2014/01/13(月) 00:52:06.83
>>912
あの・・・すいません
もう少しわかりやすい解説をお願いします
914デフォルトの名無しさん:2014/01/13(月) 01:02:39.45
>>911
何ら問題ない
915デフォルトの名無しさん:2014/01/13(月) 01:04:47.84
>>914
ありがとう
やっぱり独学だと不安なもので・・・
916デフォルトの名無しさん:2014/01/13(月) 01:14:32.54
>>912
privateな仮想関数を許す言語仕様が糞なだけだろ
言語仕様が糞だと使用者も糞な思考になるようだな
917デフォルトの名無しさん:2014/01/13(月) 01:18:16.74
iostreamのみのインクルードで
printfを使用するのはおかしいな。
918デフォルトの名無しさん:2014/01/13(月) 01:20:41.62
>>917
ごめん
Cで書いたのをそのまま持ってきてしまった
正しくはcout <<; です
919デフォルトの名無しさん:2014/01/13(月) 01:21:32.74
>>917
その他は問題ないですよね?
920デフォルトの名無しさん:2014/01/13(月) 01:21:34.55
この後で「テーブルをstaticにしたいけど書き方がわかりません」
と言うに一票
921デフォルトの名無しさん:2014/01/13(月) 01:30:34.17
>>916
・ >>912で書いた問題はprivateであることとは全然関係ない
・ privateな仮想関数は template method パターンとかに有用

以上の根拠よりお前には基本的な教養が欠けていることが判明した。
922KUSO KOTE ◆unko./w.Osri :2014/01/13(月) 01:44:38.58
>>919
いいんじゃないの。

>>920
静的配列の書き方がわからなかった。。
仕方なくポインターで書いてみた。
http://ideone.com/HmZ9rv
923デフォルトの名無しさん:2014/01/13(月) 01:58:17.68
テンプレートメソッドパターンて
protectedじゃないのか?
924デフォルトの名無しさん:2014/01/13(月) 02:04:27.13
結局観なかったけども昨年はあまちゃんって映画のせいで倍返しだ!が流行ってて鬱陶しかった
925デフォルトの名無しさん:2014/01/13(月) 02:05:19.79
auto rule = LR"(倍返しは禁止です)";
926デフォルトの名無しさん:2014/01/13(月) 02:23:56.14
にゃんぱす!
927デフォルトの名無しさん:2014/01/13(月) 07:24:27.33
C++はprivateで、C#がprotectedだったかな
928デフォルトの名無しさん:2014/01/13(月) 07:36:31.49
言い直す。
C++はprivateから可能だけど、C#だとエラーになるんでprotected以上が必要。
929デフォルトの名無しさん:2014/01/13(月) 07:51:52.25
できるかできないかじゃなくて意味的にはprotected
930デフォルトの名無しさん:2014/01/13(月) 07:56:58.87
Base <--- Derived という継承関係でvfunc が仮想関数とする
this がDerivedオブジェクトの時、

A this->Base::vfunc();      Base::vfunc が呼ばれる
B (this->*&Base::vfunc)();   Derived::vfunc が呼ばれる

なんだな。
こういうのはるか昔に一度は覚えたけど、使った覚えがない。
931デフォルトの名無しさん:2014/01/13(月) 08:01:35.29
privateな仮想関数がどういうときに有用かはわからなくても、
それを禁止なんかしないのがC++らしさといえよう
932デフォルトの名無しさん:2014/01/13(月) 08:09:41.41
>>930
意味を考えればわかりそうだけど
( this -> Base::vfunc )()
 仮想を無視した固定の呼び出し
( this ->* &Base::vfunc )() Base
 普通の呼び出し。呼び出す関数を&Base::vfuncで指定してみた。
 たまたまBase::vfuncが仮想だった。
933デフォルトの名無しさん:2014/01/13(月) 08:19:57.58
>>932
意味?シンタックスにどう意味づけするの?
ところで実際に使ったことはある?
934デフォルトの名無しさん:2014/01/13(月) 08:22:41.41
>>931
そりゃprivate で virtual なんだろ。意図したとおりに動作する。
「直感と違う意図しない動作を引き起こす」んでなければ制約なんかしないよね。
935デフォルトの名無しさん:2014/01/13(月) 08:39:10.03
基本クラスのprivateは見る必要がないと思っていて
public関数fを定義したら勝手に仮想関数になりました
意図しない関数が呼ばれました
privateに依存するのはおかしいと思います
936デフォルトの名無しさん:2014/01/13(月) 09:02:48.46
>>935
ヘッダに見えてるんだよ。
virtualって書いてあるんだよ。
継承して同じ関数名付けたのは自分なんだよ。

それは見えない落とし穴じゃなくてフェンスのない崖なんだ。
937デフォルトの名無しさん:2014/01/13(月) 11:22:15.65
>>903
関連: 何と書いたら何が吐き出されるかイメージするんだ
たとえばVCなら、 =0; って書くとそこのvtableには__purecall がセットされる

ついでに、__declspec(novtable)ってのも意識しよう
938デフォルトの名無しさん:2014/01/13(月) 11:26:25.40
コンパイルエラーになることを落とし穴と思う人間もいるんだな。
939デフォルトの名無しさん:2014/01/13(月) 12:05:53.50
前に.hファイルに静的変数を書く話が出てたと思うんだけど、結局結論がよくわからないままだった。

 .hファイルに、e1, e2, e3... という変数があり、その.hファイルをincludeするcppファイルから見せる
 e1, e2, e3を定義するcppファイルは作らない。.hファイルだけ提供する。
 e1, e2, e3は e_space という名前空間に入れる。using namespace e_space; とやると裸でアクセスできる。
 異なるcppファイル間での同一性を確保(同一のアドレスをもつ)する

ということがしたんだけど、ODR例外を使ってどうやればいいの?
940デフォルトの名無しさん:2014/01/13(月) 12:09:59.07
__declspec(selectany)
でいいだろ
941デフォルトの名無しさん:2014/01/13(月) 12:48:09.18
ODR例外だったらテンプレートクラスのstaticメンバを使えばよろしい

template <typename T, T val>
struct hone {
static T s1;
static double d1;//テンプレートはダミー
};
template <typename T, T val>
T hone<T, val>::s1 = val;//Tが整数型のときのみ通用

template <typename T, T val>
double hone<T, val>::d1 = 3.14;

//ここまでヘッダ


namespace e_space {
namespace {
int& e1 = hone<int, 1>::s1;//整数型のみ
int& e2 = hone<int, 2>::s1;
int& e3 = hone<int, 3>::s1;
double& pi = hone<int, 0>::d1;//テンプレートはダミー
}
}
942デフォルトの名無しさん:2014/01/13(月) 13:21:34.31
>>941
参照にするのか。条件を満たすのかな?
943デフォルトの名無しさん:2014/01/13(月) 14:55:15.60
>>941
整数型とそうでないときの扱いが非対称で気持ち悪い。
型によって初期化の方法が違うしから統一できないのはわかる。
944デフォルトの名無しさん:2014/01/13(月) 15:24:41.25
>結論がよくわからないままだった
なんで>>400,>>402,>>415,>>420を読んでわからないんだよw
945デフォルトの名無しさん:2014/01/13(月) 15:31:17.60
>>941
>hone<int, 2>::s1;
なんで同じs1を使い回すんだよw
e1とe2が同じint型の同じ初期値だったら同じ実体かよ
946デフォルトの名無しさん:2014/01/13(月) 15:43:24.33
テンプレート引数が違うのでそれぞれの静的メンバは別の実体
947デフォルトの名無しさん:2014/01/13(月) 15:56:10.21
初期値と変数の識別がリンクすべきでないという指摘だろ
別の人が同じ番号使っても衝突するし
honeにe1,e2,e3を定義すればよいだけでは?
948デフォルトの名無しさん:2014/01/13(月) 16:11:38.01
>>937
ただの仮想関数と実体を持つ純粋仮想関数は
コンパイラがコンパイル時にオブジェクト生成を
許すかどうかの違いだけだと思っていたけれど
vtableの定義が違うものなん?
949デフォルトの名無しさん:2014/01/13(月) 16:17:58.64
>>940
>__declspec(selectany)
名前から察するに、extern要らない珍説を唱えた
Qz大勝利ということかな
950デフォルトの名無しさん:2014/01/13(月) 16:41:09.04
>>944,947
>>941のは、using namespace e_space; とした場合 e1, e2, e3 を裸で使えるってことじゃん?
honeに直接定義すると、常にhone<int, 1>::e1 とアクセスしなきゃなんない。
951デフォルトの名無しさん:2014/01/13(月) 17:20:09.96
>>950
namespace e_space {
namespace {
int& e1 = hone<int>::e1;
int& e2 = hone<int>::e2;
int& e3 = hone<int>::e3;
としない理由が良くわからないのだけれど
それに無名名前空間ならヘッダに書いてもよいのでは
952デフォルトの名無しさん:2014/01/13(月) 17:45:59.40
>>948
純粋じゃない場合の仮想関数実体を指すテーブルエントリに何が入ってるかって話。
定義が無いんだから無いなりの何かが入ることになる。読んだ瞬間に死ぬゴミかもしれないし、
特定の関数が呼ばれるようになっているかもしれない。
953941:2014/01/13(月) 17:51:08.77
>>951
ごめん //ここまでヘッダ の位置間違えてた。
>>941のは全部ヘッダね。
954デフォルトの名無しさん:2014/01/13(月) 18:04:28.82
ライブラリはC++で作らないほうがよいとこの間どこかで読んだのですが、何かの冗談ですよね?
便利なクラスをライブラリ化とかよくありますよね?
955デフォルトの名無しさん:2014/01/13(月) 18:09:49.13
cでライブラリを書いて、c++でラッパーのライブラリを書きます
956デフォルトの名無しさん:2014/01/13(月) 18:17:59.06
Unix方面も狙いたいライブラリならCで書く傾向があるかな
まあ最近はそーでもないか
957デフォルトの名無しさん:2014/01/13(月) 18:47:45.72
>>955
そりはどういう理由で?
958デフォルトの名無しさん:2014/01/13(月) 18:54:41.48
外部ライブラリに依存しないC++でライブラリを書いて
extern CでABIを用意し
C++のラッパクラス経由でライブラリを操る。
959デフォルトの名無しさん:2014/01/13(月) 18:59:22.89
QZ大勝利と聞いてやってきました
960デフォルトの名無しさん:2014/01/13(月) 19:09:44.28
>>952
何を言ってるのかさっぱりなんだが

A: 普通の仮想関数(=0の指定無し)
B: 関数実体をもつ純粋仮想関数(=0かつ関数定義あり)
C: 関数定義無しの純粋仮想関数(=0で関数定義無し)

なんでBとAでvtableの内容が違うと言い張るの?
961デフォルトの名無しさん:2014/01/13(月) 19:12:19.89
便乗させてもらうが、俺はAとBでどう違いが出るのかわからない。
教えて!
962デフォルトの名無しさん:2014/01/13(月) 19:13:00.37
>>960
A(の場合のvtable)を使った関数呼び出しは有効。Bを使った関数呼び出しは無効。
うっかり動いたらそれに依存するコード書く奴が出てくるからエラーにする、とかいう考えはあり得るな。
963デフォルトの名無しさん:2014/01/13(月) 19:17:44.96
>>962
便乗だが
>Bを使った関数呼び出しは無効
のソースは?
964デフォルトの名無しさん:2014/01/13(月) 19:33:44.77
>>963
純粋仮想関数に対する仮想関数呼び出し(virtual call)は抽象クラスの
コンストラクタ・デストラクタ内からしか起こりえないが、その効果は定義の
有無に関わらず未定義。

10.4 [class.abstract] p6
> Member functions can be called from a constructor (or destructor) of an
> abstract class; the effect of making a virtual call (10.3) to a pure
> virtual function directly or indirectly for the object being created (or
> destroyed) from such a constructor (or destructor) is undefined.

定義のある純粋仮想関数は x.Abstract::PureVirtual() のようにして呼び出すことが
できるが、この場合は vtable は使われない。
965デフォルトの名無しさん:2014/01/13(月) 19:46:35.72
さあ面白い展開になってきましたw
>>960の反応が楽しみです
966960:2014/01/13(月) 20:55:36.36
>>964
なるほど便利になったでござる

>定義のある純粋仮想関数は x.Abstract::PureVirtual() のようにして呼び出すことが
>できるが、この場合は vtable は使われない。
967デフォルトの名無しさん:2014/01/13(月) 21:00:58.53
もっとおしろいレスしろやカス
968デフォルトの名無しさん:2014/01/13(月) 21:12:21.10
hoge病人
969デフォルトの名無しさん:2014/01/13(月) 21:13:48.21
----hoge.h
__declspec(selectany) int global_var;

externは要らないということですね
970デフォルトの名無しさん:2014/01/13(月) 21:24:13.18
【重要】
hogeは禁止です。使用しないでください。
万が一hogeが書き込まれても、スルーしてください。
相手にするとあなたも荒らしと同じ扱いになります。
971デフォルトの名無しさん:2014/01/13(月) 21:45:26.51
2つほどお願いします。

ネットワークなのですが、
select の nfds の値ですが、いくつかSOCKETがあるのですが、
その場合、SOCKETをすべて or で演算した結果を放り込もうとしてます。

概ね誤差が1024前後程度におさまるので大したことにはならないと思うのですが、
何か弊害はあるでしょうか?


また
boost を導入したいのですが、MinGWだとなぜだか、thread だけ明確にdisabled されているのですが、
なにか原因はありますでしょうか?

宜しくお願いします。
972デフォルトの名無しさん:2014/01/13(月) 22:04:26.96
selectで1024は尋常じゃないだろ

>thread だけ明確にdisabled されているのですが
g++4.8でstd::thread使うとエラーになるアレのことか?
973デフォルトの名無しさん:2014/01/13(月) 22:24:01.90
お前ら成人式の日にまでC++談義かw
年に一回の成人式くらい行けよw
974デフォルトの名無しさん:2014/01/13(月) 22:29:22.21
俺なんかマメに年に二回は行ってるよ
975デフォルトの名無しさん:2014/01/13(月) 22:29:41.98
cygwin、MinGWを避けて、boostを避けて、c++を避けて
成人式へ行けば良かったなんて日が、このスレの人たちにも来るんだろうか?
976デフォルトの名無しさん:2014/01/13(月) 22:31:43.20
前の三つは要らないな
977デフォルトの名無しさん:2014/01/13(月) 22:38:09.04
>>971

ネットワークプログラミング相談室 Port29
http://toro.2ch.net/test/read.cgi/tech/1351670708/
978デフォルトの名無しさん:2014/01/13(月) 22:38:26.06
>>972
ちょっと待てよ
gcc4.8のどのビルド使ってんだよ
公式MinGWとかじゃないだろうな
あれは糞だぞ
ライブラリの対応が遅くて

だからライブラリの対応が早いTDMかDistroかMinGW-Buildsを使ってるわけよ
979デフォルトの名無しさん:2014/01/13(月) 22:39:33.81
>>973
成人式に行っても絡む友人が居ないからc++で遊んでんだろ
980デフォルトの名無しさん:2014/01/13(月) 22:47:21.64
>>978
なんで俺に
昨日ウブンコをインスコしてapt-get upgradeしたら
4.8が入ってthreadが無効になってるとかいうエラーで
つまづいたので聞いてみただけ
回避策探すのに30分ぐらいかかったわ
981デフォルトの名無しさん:2014/01/13(月) 22:52:55.85
成人式
ヒキヲタDTの俺には縁がないな
友達同士で楽しそうにつるむ奴に囲まれるとか
どんな拷問だよ
982デフォルトの名無しさん:2014/01/13(月) 22:57:13.54
よう10年前の俺(´・ω・`)
983デフォルトの名無しさん:2014/01/13(月) 22:58:14.68
江●添さんチーッス!
984デフォルトの名無しさん:2014/01/13(月) 23:11:11.88
あのとき多態性なんかに浮気しないで、一途にカーネルを追っていたらって思うんだ。
985デフォルトの名無しさん:2014/01/13(月) 23:27:37.46
何この流れキモイ
986デフォルトの名無しさん:2014/01/13(月) 23:38:39.42
>>985
まぁいいじゃないか
祝日にc++スレに来てるキモい奴同士仲良くしようぜ
987デフォルトの名無しさん:2014/01/13(月) 23:39:23.54
>>972
??

>selectで1024は尋常じゃないだろ
select の戻り値じゃなくて、nfds の値なんですけど?
きちんと計算で出してたんですけど、なんか冗長で、エラーも包含しそうなので、簡潔にorかな?と
少なくともSOCKET全部or すりゃ、少ない値にはならんでしょう、と。

>g++4.8でstd::thread使うとエラーになるアレのことか?
gcc++-4.3です。
booost をダウンロード解凍したのち、MinGWバッチを走らせて、のち
b2 実行すると、
# error "Threading support unavaliable: it has been explicitly disabled with BOOST_DISABLE_THREADS"

だそうです。
調べても適切な解が見当たらないです。
988デフォルトの名無しさん:2014/01/13(月) 23:42:55.83
エナブレ
989デフォルトの名無しさん:2014/01/13(月) 23:55:01.68
ヘッダのstatic変数の定義について自分の理解をまとめてみたのですが、これで正しいでしょうか
http://ideone.com/y9k0Ee
990デフォルトの名無しさん:2014/01/13(月) 23:57:53.86
991デフォルトの名無しさん:2014/01/14(火) 00:02:42.60
えーマジWindowsでgcc?
gccが許されるのは小学生までだよね
992デフォルトの名無しさん:2014/01/14(火) 00:11:21.50
>>989
正しい。
だけどどうせテンプレートパラメータはダミーなんだし、int N とした方がじゃんじゃん増やせていいと思う。
あと static_vars_holder<void>; をあらかじめ実体化する必要はないと思う。

http://ideone.com/aS7apw
993デフォルトの名無しさん:2014/01/14(火) 00:22:36.39
>>992
ありがとうございます

ところで、
template<typename T> と
template<> と
template
の違いって何ですか?
994デフォルトの名無しさん:2014/01/14(火) 00:26:26.55
よーしパパ、ヘッダーでじゃんじゃんstatic使っちゃうぞ〜
995デフォルトの名無しさん:2014/01/14(火) 00:31:04.75
staticおじさん
996デフォルトの名無しさん:2014/01/14(火) 00:39:31.40
>>993
template<typename T, typename U, typename V>
struct static_vars_holder<T, U, V>;

template<typename U, typename V>
struct static_vars_holder<int, U, V>;

template<typename V>
struct static_vars_holder<int, int*, V>;

template<>
struct static_vars_holder<int, int*, char>;

と減っていく。

>>994
あのやり方は各スタティックメンバをどう初期化するかって問題の解決にならないんだよね。
997KUSO KOTE ◆unko./w.Osri :2014/01/14(火) 01:25:37.83
なんか進化してるし

調子に乗って拡張してみた。
確認はあまりしてない。
http://ideone.com/kLOapo
998KUSO KOTE ◆unko./w.Osri :2014/01/14(火) 01:33:58.28
おっとこれだと翻訳単位で量産されますかね。
>>997は見なかったことにして下さい。。
999デフォルトの名無しさん:2014/01/14(火) 01:51:13.37
関数はそれぞれODR例外で一つだから動きそうな
いいのかこれ?
よくわからない
1000デフォルトの名無しさん:2014/01/14(火) 02:00:16.23
次スレ

C++相談室 part110
http://www.youtube.com/watch?v=zCYddK1CDk8
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。