1 :
デフォルトの名無しさん :
2013/12/29(日) 10:15:36.15
【重要】 hogeは禁止です。使用しないでください。 万が一hogeが書き込まれても、スルーしてください。 相手にするとあなたも荒らしと同じ扱いになります。
----テンプレここまで-----
hoge禁止されたキチガイ朝鮮人がスレを荒らしているようだね 同族嫌悪かな
STLつかうと一気に実行ファイルサイズが10倍に?! 環境によるだろ。 俺はBorland-C++5.6.2に -D_RTLDLL オプションを指定して、極力 ランタイムを使用するようにして使っているが、例えばstd::vectorを 使っても使わない時と比べ10Kほどしか増えない すげえ。ダイナミックリンクしといてファイルサイズが増えないとかいってるよ。この人。 C1010: プリコンパイル済みヘッダーの検索中に予期しない EOF を検出しました。 とかいうエラーが出るんだけどこれってどうすればいいの? #include <stdafx.h> 後死ね。 言葉が悪いな。それで教えているつもりか。 まぁヒントぐらいにはなったな。 うむごくろう。
【重要】 hogeは禁止します、使用しないでください。 万が一hogeが書き込まれても、スルーしてください。 相手にするとあなたも荒らしと同じ扱いになります。 なお、スルー出来ない人はhogeはNGワードに追加しておくことが強く推奨されています。 【重要】 hogeが禁止されていないと発狂する人がいます。 万が一hogeを使うなと書き込まれても、スルーしてください。 相手にするとあなたも荒らしと同じ扱いになります。 なお、スルー出来ない人はhogeはNGワードに追加しておくことが強く推奨されています。
12 :
前スレ996 :2013/12/29(日) 18:26:18.73
再投下 = nullptr よりは =0 のほうがタイプしやすくて楽だね クソなのは virtual に決まってるのに省略不可であること それと関数じゃなくクラスが持つ属性じゃねってよく思う 多重継承がらみで仕方ないっちゃ仕方ないんだけど
おめ
再投下するなら推敲しろ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
>>12 C#やJavaみたいに、
関数にabstract
クラスにinterface
を付けられるようにしろということだな
>>16 今さらかえるようなものでもないし、あんま気にならない。
どうせかえるのなら、仮想でないデストラクタが宣言されたクラスの継承を制限してほしい。
んで、継承するための予約語追加とかね。
>>17 C++11 の final でダメなんだっけ?
> 仮想でないデストラクタが宣言されたクラスの継承を制限 そんな余計なことしなくてよろしい
21 :
18 :2013/12/29(日) 20:19:03.26
ああ、仮想でないデストラクタか それはダメかも。
動的削除なスマポしか使わなければ仮想デストラクタなどいらないし
int i; std::unique_ptr<int> p(&i); スマポってこんなことが簡単に出来て全然安全じゃないんですけど なんでこんなクソみたいな仕様なんですか なんでnew部分を隠蔽しないんですか
Createポリシーを使えばいいんじゃねーの
>>23 そんな糞みたいなコード書いたことないから気づかなかったわ
>>23 自分に向けて引き金引く馬鹿を救う必要は無い
C++14からmake_uniqueが追加されるからそれ使えば問題なし
int i; std::unique_ptr<int> p( &i ); std::unique_ptr<int> q( &*p ); std::unique_ptr<int> r( new int[ 0 ] ); こんなんもやりたい放題だしもうちょっと安全に配慮して設計しろよ
おまいらまだやっとんのかいな〜foo
int i; delete &i; だってやれる(コンパイル通る)のにそんなの問題にしてもしょうがない
いやいやわざわざクラス作るなら不正な操作できないような設計にしろよ
>>31 具体的にどうすればよかったというのだね?
だからnewを隠蔽するなりいろいろあるだろ
C++は"知識次第で"安全に書ける言語であればいい 危険な書き方はコンパイラで警告なりエラーなり出せればいいんだから。 ママンの介抱が必要なお子ちゃまはC#でもしゃぶってろ
オートマ車しか運転できない(しちゃいけない)者がF1車に向かって「この設計は危険だ!」と叫ぶ図
いやこの設計は危険だろ
危険だと思うなら標準スマポを直接使わないで、newを隠蔽したクラスを自分で作ればいいだけの話 こんなところに因縁つける奴は何かズレてる
38 :
デフォルトの名無しさん :2013/12/29(日) 21:37:05.65
>>37 もちろん作ってるし、標準のデザインが悪いって話をするのが悪い理由がわからない
なんでダメなの?
>>33 どうやってnewを隠蔽するというの?
make_shared, make_unique で満足できない?
他の人も言ってるように、じゃあどうすれば良かったの? お前さんの論で行くと、あらゆるシグネチャのコンストラクタに対応できるnewを隠蔽したスマポが必要になるのだが
>>38 今さら変えられない仕様(newが生ポインタを返すこと)を前提にすれば
穴をすべてふさぐことが不可能なのはほぼ明らかで、不毛だと思うから。
不毛じゃないすばらしいアイディアをあんたが出してくれる可能性を否定は
しないが、これまでのところ具体的なアイディアは出さずに文句だけ言ってる
不毛な印象しかない。
C++のソースを32bit用にビルド、64bit用にビルドって 具体的にはどのようなことが行われてるんですか?
x86の機械語にコンパイルすんのが32bit用 AMD64の機械語にコンパイルすんのが64bit用
そもそも危険でもなんでもない 必ず死ぬんだから
45 :
片山博文MZコスモ ◆T6xkBnTXz7B0 :2013/12/29(日) 22:25:56.50
>>42 IDE上でWin32と表示されてるコンボボックスをつついてみる
auto と Variant を混同してるやつに auto は型じゃないことを納得させる方法について
全部variantで書かせればいいんじゃね
テンプラでよくね?
>>46 そんなのにC++やらせるのが根本的な間違い
型をまぜこぜに代入するだけやろ
autoってなんでも代入できるじゃん!すごく便利な型だよ! C++でもやればできるんじゃん!!
auto があれば boost::any なんていりませんよね?
55 :
デフォルトの名無しさん :2013/12/29(日) 23:17:45.56
autoとanyは別物。 女が良く言うケーキは別腹と関係があるかも。
>>51 ベースがplaceholder ってクラスになってるけど、_1とか_2ってまさにanyだよな。
std::threadみたいにType erasureすれば天ぷらでも動的管理してやんぜ ってことと理解した
58 :
デフォルトの名無しさん :2013/12/30(月) 03:24:31.85
プロジェクトに混ぜたら危険、雇ってはいけないプログラマのあるある C++はメモリリークを起こすので危険とか、車はマニュアル車限定と言い つつ、使ってる言語がJavaとかスクリプト言語。
59 :
デフォルトの名無しさん :2013/12/30(月) 04:35:32.29
>>58 「C++はメモリリークを起こすので危険」→「使ってる言語がJavaとかスクリプト言語。」
だけなら何の違和感もなくね?
61 :
デフォルトの名無しさん :2013/12/30(月) 05:43:35.77
無いよね。
>車はマニュアル車限定 センスが年寄り過ぎるな もう現代は一般人向けラインアップでは マニュアル車は虫の息だぞ 根強く細々と残ってはいるが
ああそういえば居たな。 ある程度開発が進んだとこで、C++はnewで確保したのを開放しないといけないんだ、と言った奴が。
64 :
18 :2013/12/30(月) 09:15:54.86
>>62 だからそこまでこだわってるのに、Java かよ! ってことだろ。
65 :
18 :2013/12/30(月) 09:17:00.38
>>63 レビューもろくろくしてないプロジェクトだとそんなもんだろ (w
モダンなc++な書き方ってどこで身に付ければいいんだ 入門書とかみてもスマートポインタとかのってないよね
67 :
デフォルトの名無しさん :2013/12/30(月) 12:07:19.81
「これがモダンだ」と思っているその時もう陳腐化し始めている チャラいのをモダンと勘違いしてるやつもよくいる
最先端とモダンを混同する奴もいる
69 :
デフォルトの名無しさん :2013/12/30(月) 14:09:49.71
こんどうたよもん
70 :
デフォルトの名無しさん :2013/12/30(月) 23:29:44.60
メモリ確保に失敗した例外をキャッチしてどう処理するの?
終了
一生catchがよばれないことを神に祈る
>>70 その事実が分かるようメッセージを出すなりログを出して終了
>>70 amazonのメモリ購入ページを表示して終了
>>70 リークさせているアプリをkillして再試行するというのはやったことある。
普通はそこまでしないけど、アプリの性質によってはなんとかしなくちゃいけないケースもある。
>>68 最先端を英語で言ったのがモダンじゃないのか?
モダンは「現代的」くらいの意味で「最先端」とは違うだろ
79 :
デフォルトの名無しさん :2013/12/31(火) 01:25:48.24
cutting edgeとかstate-of-the-artとか
classic と modern で分けるのがよい
82 :
デフォルトの名無しさん :2013/12/31(火) 12:36:14.28
逆参照が2段になってるのは、おかしいな
>>82 逆参照が2段って、 *t.*v のとこでしょうか?
ちなみに *t.*v を t->*v にしてもダメなんです。
文字どうりambiguousだからだろ みんな「それ以外」にも当てはまってしまう
86 :
デフォルトの名無しさん :2013/12/31(火) 13:04:31.09
87 :
86 :2013/12/31(火) 13:05:17.18
エラーメッセージで言ってきてるところ
>>84 ,85
どうもありがとう!
複数の環境でテストしてて、ちょっと混乱してました。
示してもらったコード例了解しましたが、VCではどちらもダメみたいですね・・・
>>86 .**v ってどういうことだろ? 「V」 に対してそういう解決方法があるんだろうか・・・
89 :
デフォルトの名無しさん :2013/12/31(火) 14:18:02.99
sizeof std::ptrdiff_t == sizeof std::size_t って常に真になりますか
ならない
91 :
デフォルトの名無しさん :2013/12/31(火) 15:03:21.64
>>88 v はメンバポインタへのポインタ(つまり普通のポインタ)
*v でメンバへのポインタ
.**v でメンバ
そんなわけないのに、エラーメッセージには .** とある
>>91 ええと、
int (test::*mF)(int) const = &test::get;
に対して更にそのアドレスを取って
auto pmF = &mF;
みたいなものを想定してるってこと?
94 :
デフォルトの名無しさん :2013/12/31(火) 16:02:07.00
あけおめ
いろいろ参考になり、解決しました。どうもです。
メンバポインタが絡んだSFINAEで、生ポインタ ->* メンバポインタ はOKだけど
スマポ ->* メンバポインタ はエラーになるのを回避するために、生ポとスマポを同等に扱う必要があった。
(*ポインタ.*メンバポインタ なら両方OKだけど、その形にできない。)
ideon と VC で挙動が違うので遠回りしてしまった。
http://ideone.com/k1cPey
int main(int argc, char *argv[]) { } とreturn を書かない人に聞きたいんですが、 不要だから書かないのはわかりますが、ではなぜ int argc, char *argv[] とは書くのでしょうか? 不要であればここも書く必要は無いと思うのですが
知るか。特に理由なんて無いだろ 俺は auto main() -> int { } だ
それはreturnを書かない糞野郎に聞けよ
>>98 どうしてreturnを書かない人がKUSO野郎なのですか?
アナタの方こそ糞なのでは?
100 :
デフォルトの名無しさん :2014/01/01(水) 18:12:18.31
このHOGE野郎!
main()に特別扱いなんてねーよ エントリポイントですらないし 引数はなんとなく、合わせておきたいよな 引数の数くらいは。たとえcdeclであれ。
101が何を言っているのかわからない cdeclとか言うあたり、単なるすれ違いだろう
>>103 コード例までどうもありがと。
mem_fn とか is_member_function_pointer を使ってうまく分岐する方法もあったかもしれないですね。
だけどどうもSFINAEの仕組みが納得できない。
なんでこれがコンパイルエラーになるのかさっぱりだ。
http://ideone.com/Ykulus ごく単純なオーバーロード解決に思えるし、最悪でも可変長引数に落ちると思うんだけど?
コンパイラのエラーメッセージが読めないやつ多いな
>>105 ああごめんなさい。
「test」関数が宣言だけで実装がないのに呼び出してるからなのね。
http://ideone.com/Ykulus は直しました。
またVCの話とごっちゃにしてしまいました。
交互に実験してるもんでつい。
ちゃんと中身を実装してもVCだとエラーになるんですよ。
C2668: 'test' : オーバーロード関数の呼び出しを解決することができません。
decltypeのカンマ以降を外してもだめ? decltype(a,b) = decltype(b) だからメンバ関数呼び出しのとこ見てないんじゃないかな
エラー一覧だけじゃなくて出力も見ろよ
>>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)
実験する前に仕様書読めよw
読んで何が正しいか確かめる。
現実への対処はまた別。逃げられないならなんか工夫するしかない。
あ、それが
>>95 か
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);
>>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' の宣言を確認してください。
117 :
113 :2014/01/02(木) 09:48:30.55
>>115 VC++2013ならコンパイル出来るはず
メモリーアクセスで n番目の配列のm番目のビットを調べろという関数があるじゃないですか? bool get_bit(int n,int m); しかし、一番目の配列を出せという関数 int get(int n) とintの中のm番目のbitを調べろという関数 bool get(int x,int m) を使った方が速い換わりに複雑じゃないですか? こういうときはiteratorを使えば良いんですよね?
日本語でお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
cl = new CLASS_hoge[5]; for(i=0; i<5; i++){ こうすべきだろ全部上書きされてなかったことになってんぞ
123 :
デフォルトの名無しさん :2014/01/02(木) 15:46:01.63
>>121 そうでしたorz
ちなみにcl = new CLASS_hoge[size];
のサイズに関してなんですが
5などの決まった数でなく、可変にするなんて事できますでしょうか?
できなきゃ困るだろ
125 :
デフォルトの名無しさん :2014/01/02(木) 15:49:15.70
>>122 基本的に混合してます
javaの方ばかりやってたんで、Cに関しては素人同然なのでわからない仕様だらけです・・・
126 :
デフォルトの名無しさん :2014/01/02(木) 15:52:22.35
>>124 つまり、可変にして例えばファイルから読み込んだ数だけインスタンスを生成するようにしたい
という事なんですが、できますでしょうか?
それくらい試せばすぐわかることだろうが
128 :
デフォルトの名無しさん :2014/01/02(木) 15:59:41.56
>>127 もう一台のmacでvectorを使って、クラスのオブジェクトを代入して取り出すプログラムを書いて
gccでコンパイルしたら思った通りの結果が出せたんですが、
windowsの方では上手く行かなくて
つまりDxLibを使ったブログラムを書いているんですが、
にたようなソースを書いても上手く行かなかったんで質問した訳です。
vector使えよ!
>>128 どうせコピーコンストラクタ&代入ちゃんと用意してなかったとかそういうのだろ
131 :
デフォルトの名無しさん :2014/01/02(木) 16:06:21.67
>>120 >Cの動的なオブジェクト生成について質問です
Cはスレ違いなのでいりません
ホゲキチガイはお帰り下さい
133 :
デフォルトの名無しさん :2014/01/02(木) 16:08:54.67
>>129 使っては見たんですが、上手く行かず
(vectorを使って随時オブジェクトを格納していって取り出すようなのを書いて
macの方のコンパイラは通って実行も正しくできたのですが、)
例えばほかにどのようにして使えばよろしいですか?
>>120 正月2日目から他人に嫌がらせか。
リアルではみんなに陰で死ねばいいのにって言われてることに気付いてる?
137 :
デフォルトの名無しさん :2014/01/02(木) 16:13:06.00
138 :
デフォルトの名無しさん :2014/01/02(木) 16:14:25.19
>>133 のコードって電子ゴミでしょw
電子ゴミをばらまく基地害w
139 :
デフォルトの名無しさん :2014/01/02(木) 16:16:19.48
>>120 >わかる方いらしたらご教授くださいm(_ _)m
日本語すらままならないゴミクズがプログラミングか。
一円の価値もないコードが見せられないのか?
142 :
デフォルトの名無しさん :2014/01/02(木) 16:19:49.96
143 :
デフォルトの名無しさん :2014/01/02(木) 16:22:12.66
>>142 他人のリソースはゴミ置き場じゃないって分かってる?
お前も自分の部屋に他人がゴミを置いていっても文句言うなよ
関数の外側に手続き処理を書くな。 vectorの要素を使う前にresizeで要素を確保しろ。 基本が出来てない。 C言語からやり直せ
めちゃくちゃすぎワロタ
>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 とりあえずJavaから離れてC++の初心者本読め
newしたものが勝手にdeleteされることはないし
push_back()の意味もはき違えてる
めちゃくちゃ
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; } まずはこんな感じだろ
うむ
151 :
デフォルトの名無しさん :2014/01/02(木) 16:37:51.26
>>149 なるほど
初心者ですいませんC++の初心者本読みます
javaから入ってC++勉強したてなのでわからない部分が多くて
勉強し直します
hoge使うような書籍やサイトで勉強してたらそりゃあ
>>120 みたいなことになるだろう
わざわざ自分から情報価値の低いもので勉強して時間を無駄にする低知能
>>120 みたいな低知能を育てあげたDQNご両親もさぞ鼻が高いでしょうよ
153 :
デフォルトの名無しさん :2014/01/02(木) 16:39:34.16
ほら
>>151 見てみろよ。
初心者を言い訳に出すアホっぷり。
お前には一生無理だよ。
お前らは正月休みもないか?
156 :
デフォルトの名無しさん :2014/01/02(木) 16:47:53.01
>>120 あんた人の気持ちとか分からないタイプの人でしょ?
お前みたいな屑とは関わりたくもないけど屑扱いするわけにもいかず、当たり障りのない対応をしてるリアルの周りの人の気持ちとか分からないでしょ?
タイプタイプとうっさいのう。 レッテル張りしかできんのかこいつ。
C++の知識はさて置いて スレのルールに従えない馬鹿はどうしようもないな
そんなルールは知らんが?
便所の落書きにルールなんてあるのか?hw
162 :
デフォルトの名無しさん :2014/01/02(木) 17:06:13.25
>>120 は何で正月からこのスレを荒らそうと思ったんだろうな
hogeが単独でなく他の文字列の一部に入っている場合はルール違反とはいえない
ビャーネあたりが文句言うならまだしも 素人がCとC++について細かなことをいうのはprg
今頃120は目的通り荒らしが成功して パソコンの前で大喜びだろう。
>>117 背中を押してくれてありがと。
さっき2012から2013に入れ替えて、コンパイルできることを確認しました。
2010以降でできる必要があるんでワークアラウンドは結局いるんだけど、いろんな環境で試せてよかった。
ぜんぜ知らんのだがjavaだったらまともなのか?
>>170 ←ゴミクズの言い訳を真に受ける馬鹿wwwww
わざとらしい間違え方すんなよ
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 ありがとうございます すごくわかりやすいです。
>>174 const
++i, j += 100 )
ああ、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 プリミティブは気にしなくていいですよ。
カウンタは後置のほうが見た目と動作が一致するのでわかりやすいです。
184 :
デフォルトの名無しさん :2014/01/02(木) 18:02:18.71
説明のためですね。
型を気にして前置と後置使い分けるとか馬鹿らしい
イテレータ使い始めた頃から 後置が必要でなければすべて前置インクリメントするようになった
初心者にnew,deleteの動作を教えるのになんでスマポなんだよ
188 :
デフォルトの名無しさん :2014/01/02(木) 18:12:06.53
スレが伸びてると思ったらhogeキチの
>>120 が来てたのか、正月から迷惑だな。
>>188 ホゲキチガイは意図的な嵐じゃねーの
>>160 みたいなのはホゲが禁止されていると知って
意図的にとぼけてるようだし
191 :
デフォルトの名無しさん :2014/01/02(木) 18:27:06.95
前置インクリなんて変態しか使いよらんじゃろ
またかよ。 C++に「プリミティブ型」などと言う物は無い。Java用語。 C++のそれはfundamental typeと言う。
前置しか使わんな
195 :
デフォルトの名無しさん :2014/01/02(木) 18:32:16.63
単なる外来語です。
for (int i = 0; i < n; ++i) 一度馴染むと後置のほうがキモくなる
>>196 根拠も必然性も無しにお前の感覚を語られても
後置きサクサクじゃー
200 :
デフォルトの名無しさん :2014/01/02(木) 18:36:51.10
スタイルについては、自分の属している組織に準じれば良いのではないでしょうか。 次は、コンテナ版を誰か書いてあげてください。 オッチャンは家の用があるのでお暇します。 よろしく。
201 :
デフォルトの名無しさん :2014/01/02(木) 18:39:46.43
>>120 すげーな、やっぱチョンは日本語間違えまくりだな
タイプミスってレベルじゃないしな
やっぱチョンがhogeを使うのか
前置はキモくて嫌いだが、いちいち判断して混在とかするのはもっとキモくなるからな 結局前置統一だわ
>>197 型によっていちいち前置と後置を使い分けるのと統一するのとどっちがいいと思うんだ?
それともすぐ破棄される一時オブジェクトを作るのが趣味なのか?
>>203 使い分けたらいいんじゃね?違う型なんだから。
intなどは古くからi++とするのが慣わしだったし
イテレーターは++iとする必要があるので、
イテレーターだけ++iで何が悪いのか
>>203 が前置と後置の使い分けをそもそも理解してなさそうな件
206 :
デフォルトの名無しさん :2014/01/02(木) 18:56:52.97
いちいち使い分けるのは無意味だな 統一感の方が大事
208 :
デフォルトの名無しさん :2014/01/02(木) 19:01:28.70
>>190 禁止なんかされてない
荒らすな チョーセン人
>>205 そのツッコミの方が話しの筋を追えてない感がある
造船人は「郷に入りては郷『が』従え」だから本当にタチが悪い
214 :
18 :2014/01/02(木) 19:10:11.25
>>210 とかなると、ああ、いつもの人かなって感じ。
ああ、いつもの人か
よし生ポとスマポの統一感のために ポインタの++は禁止な 必ずoperator[]を使うことにしよう
>>160 は安定のQZ
気がふれているのでスルーでお願いします(^_^)
>>208 は安定のQZ
気がふれているのでスルーでお願いします(^_^)
統一感っていうけど for (int i = 0; i < n; ++i) for (vector<baka>::iterator i = container.begin(); i != container.end(); ++i) 統一感なんてどうでもいいくらいに書き方違わね? for (auto &i : container) でおk
>>114 意図や利用場所にもよるんだろうが、ローカルで使うなら
{struct SCOPE ## var { \
…
}} scope_ ## var(var);}
じゃねーの?それに複数使いたい場合とかも微妙なような・・・
>>219 まぁ、イテレータをインクリメントするくらいだから、
そんときイテレータの型はばっちり意識してるわけだしなw
整数で回すときより、抽象度は下がってる。
222 :
デフォルトの名無しさん :2014/01/02(木) 20:03:16.50
>>208 国籍で驕るのは、我が国を衰退させた元凶の1つ
自らの正当性を説きたくば、あくまでコードで語れ
223 :
デフォルトの名無しさん :2014/01/02(木) 20:08:12.54
>>217-218 デタラメな言いがかりは、チョーセン人の遺伝子に組み込まれているようだな
hoge禁止ルールのねつ造は従軍慰安婦ねつ造のそれと同じ思考なのだろう
板全体を荒らし始めやがった
scope以外でいい名前ないかな? 確かに誤解を招く。スコープを出たらデストラクタが 呼ばれるというコードなんで、スコープを局所に絞るのは意味ないかと
225 :
デフォルトの名無しさん :2014/01/02(木) 20:11:32.72
>>222 うんこコードしか書けないQzはチョーセン人以下
id導入まだかよ…
よし、Javaに習って MZC_FINALLY_BEGIN(TYPE,var) ... MZC_FINALLY_END(TYPE,var) にするぞ
Boost.ScopeExit
229 :
デフォルトの名無しさん :2014/01/02(木) 20:24:26.64
hoge厨の相手なんかするからスレが荒れるんだろ レス返してた奴は猛省しろ
年明け早々、あぼーんあぼーんしとるのう。
俺たちは回答したいと思う質問者に回答してるだけ。 質問者がhogeユーザーかどうかは問題ではないし、 hogeユーザーに回答したことによってスレが荒れようが壊滅しようが知ったことじゃない。
232 :
デフォルトの名無しさん :2014/01/02(木) 20:52:26.30
スレのルールに反した書き込みは有用であっても削除依頼を出して消してもらえばいい。 運営に掛け合ってみるといいと思う。 スレ上で戦われると読みづらい。 オッチャンはそう思います。
>>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
おいだれか冷静な住民いたらまとめてくれ どういう構図で戦ってんだこいつら
どっちも頭がおかしいからほっとけばいいhoge
241 :
デフォルトの名無しさん :2014/01/02(木) 21:10:41.08
所詮自作自演で荒らしてるだけなんで、誰も食いつかなければ左右に分かれて 一人で自演してる。 そのうちだれか食いついてくる。 そういうわけなんで、運営に行けってことにすればいい。
>運営に行け 姉妹スレでホゲキチガイがコピペ貼りまくったときに 通報したアンチは涙目だったなwwwww
243 :
デフォルトの名無しさん :2014/01/02(木) 21:13:47.56
244 :
デフォルトの名無しさん :2014/01/02(木) 21:19:17.73
>>239 hoge本で失敗したチョーセン人がhogeに対して恨みを持ち
hoge撲滅を終生の目標と定めてム板を攻撃している
>>239 hoge推進派とhogeアンチが争っていた
hoge推進派は煽りスレを立てて、コピペを多量に投下した
激情したアンチがhoge禁止スレを立てた
hoge推進派は無視してhogeを投下している
争いは続く
つまりhogeを境に二者が互いの主張で争ってんのね? それに加えてまたQZがどうのとかいうやつが紛れ込んでるのね? (QZがどうの、ってやつは宿題スレを長期間荒らしに荒らしまわったので、 こいつについては俺はよく知っている)
>>246 QZはhoge推進派の一人
いつも969か949で(アンチに先にスレを立てられる前に)
禁止ルールを削った次スレを立てようとするが
先日は立て間違えてゴミスレを作ってしまった
hoge推進派なんていねーよ こんなの日本では昔から慣習的に使われていたのに 何故か発狂するキチガイがいるだけ 日本の慣習は全て気に食わない類の人間だろ
249 :
デフォルトの名無しさん :2014/01/02(木) 21:38:55.67
>日本では昔から慣習的に使われていた ほらまた印象操作が始まったw
なるほどそうか。 chige にでもしたかったのか?
251 :
247 :2014/01/02(木) 21:40:14.44
だが壮大なコピペが推進派の仕業なのかアンチの仕業だったのかは 意見の別れるところ
>>245 hoge推進派なんて見たことねーぞ。
連呼してる荒らしはいたがどう解釈してもあれは推進してない。
>>246 禁止ってルールを既成事実に出来ないと発狂しちゃう人が居るだけ。
禁止する理由は「荒れるから」「俺が嫌いだから」「hoge使う奴はアホだから(質問行為全否定)」しか出してない。
hoge許可スレ設置→影も形も無かったhoge連投荒らし発生→禁止すべき発言→話題転換に成功すると荒らし停止→禁止すれば荒れない実績が!(ドヤ顔)
・・・どうみても自演です本当にありがとうございました
253 :
デフォルトの名無しさん :2014/01/02(木) 21:48:19.18
お前ら運営行け。 ここでやるな。
これは根が深い。 お前らの相手を恨むパワーは最大限まで発揮されてるんだな。
255 :
デフォルトの名無しさん :2014/01/02(木) 21:49:53.35
>>252 全て妄想の域を出ない妄言だって自覚はある?
なかったら糖質だから病院行けよ。
>>250 その手の具体的な目標のある行為じゃなく、荒らしたいから荒らしてる類だと思うよ。
hoge使う解説はレベル低いからその影響受けた奴を排除する為にhoge禁止って理屈だから質問スレ自体全否定だな。
>>245 追記: あとから来た俺は、なにやってるんだこいつら?と思って、
hogeと書いたり書かなかったりしている しょうもないことで人を縛るな、俺は知らん
>>256 真に優秀な人間は、2ちゃんには居ない。
ここで答えてくれる奴ならオーライ。五十歩百歩。
あと一応256オメ
>Boost.ScopeExit 初心者に1317行も読ませるのかよ。。。つくづく頭でっかちなライブラリだな
禁止なら禁止でいいから荒れないようにしてくれ。 別にclassみたいなC++では必ず使うようなタームが禁止されるわけじゃないから こちらとしては禁止にしてもらっても問題ない。
参考までに関連スレより
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は無しで
goto禁止やマクロ禁止みたいにそれなりに意味のわかる禁止ならまだしもだがな
>>256 前から思ってるんだけどhoge質問をスルーしたところで
質問者はなんでスルーされたか分からないと思うんだよね
スレ違いの質問にレスつけるのは基本的にアウトだけど
誘導のためなら許されるじゃん?
だからhoge質問にもhogeを使ってない本やホムペで一から勉強しなおせと
一言レスをつけるくらいの余裕はあっていいと思うんだよ
回答はアウトでいいけどその一言くらいはレスさせて欲しい
264 :
デフォルトの名無しさん :2014/01/02(木) 22:09:42.86
じゃあ、おれは foo を使うわ :P
>>260 無駄無駄、スルーしないなら荒らしとか言いながらhogeが出るたびに一々噛み付いたり「スルーしない奴は荒らし」ってコピペ貼って騒いでるから。
自分がスルーしてないのにスルーしない奴は荒らしって書く辺り自分が荒らしだって自覚はあるんじゃねーかな。
コードで語れ。ってスレなのに、hogeにこだわって騒ぐあたり、 実は誰かに召喚された非C++erなんじゃないの?と思ったり。
267 :
デフォルトの名無しさん :2014/01/02(木) 22:23:55.85
>質問者はなんでスルーされたか分からないと思うんだよね これはあるだろうな。 俺の回答欲のせいでスレが荒れるのは避けたいから一応スルーしてるけども。
>>263 勉強しなおせなんて回答がOKな質問スレとか質問スレの意味が無いんだが…
質問スレで勉強不足や資料選択ミスを根拠に門前払いとかナンセンス過ぎる。
禁止理由でスレの目的自体が破綻してしまってるからスレチ以前の問題だよ。
269 :
デフォルトの名無しさん :2014/01/02(木) 22:26:21.61
>>263 アンチhogeのチョーセン人はスルーできない DNAに組み込まれた粘着力
270 :
デフォルトの名無しさん :2014/01/02(木) 22:29:39.01
>>268 門前払い?
テメーの読んでるのは間違った資料だと教えてもらえるんだろうが
ここは相談スレだからな。 「hoge がダメな理由がわかりません。相談に乗ってくれませんか?」は排除できないはず。 ところで、 std::conditional< 0 < 2, int, char>::type nakamura; std::conditional< 0 > 3, int, char>::type kataoka; 後者がエラーにならないコンパイラありませんか?
つまり、こういうことか
・hogeは非推奨です。hogeアンチ、アンチhogeアンチがスレで遊んで困っています。
・hogeアンチ、アンチhogeアンチを構うのも非推奨です。
・てかいいからコードで語れよお前ら。
>>270 原則として、2ちゃんには面白いことを書けって言われただろ
そもそも、このスレは規格書読めない人間は門前払い前提か?
それならそう書かないとだろう
273 :
デフォルトの名無しさん :2014/01/02(木) 22:33:38.10
Win32API質問箱でMSDNを全部読んで理解した奴以外質問禁止って言ってる奴そっくりな奴がいるな
>>274 そんな事言ってる奴はいない。読んで理解できなくて質問するのは全然問題ない
読めばわかる事をわざわざ聞くバカが叩かれる
277 :
デフォルトの名無しさん :2014/01/02(木) 22:44:54.88
hoge質問者はhoge本やhogeサイト見て理解できなかったんだろ? まずは自分のやってきたことを省みろよ
>>275 「規格書を読めばわかる事をわざわざ聞くな」
という「相談室」か。ゴツイな。
俺は2012Draftしか持ってないが。
>>276 std::conditional< (0 > 3), int, char>::type kataoka;
がエラーにならないんじゃなくて、
std::conditional< 0 > 3, int, char>::type bando;
がエラーにならないコンパイラ
>>277 それってある種の初心者排除ってことだよね
でも、初心者歓迎スレにもそれ書いてあるよね
>>278 あほう、MSDNと規格表じゃ全然違う
2chで質問できるという事はMSDNを参照できるという事だ
MSDNって「読み方」ってあるよね 結構暫く溺れてた C++の規格書ってのもちょっと似てる
>>283 >> 272
> そもそも、このスレは規格書読めない人間は門前払い前提か?
に対して、
>>274 > Win32API質問箱でMSDNを全部読んで理解した奴以外質問禁止って言ってる奴 「そっくりな奴」 がいるな
ときて、
>>275 > そんな事言ってる奴はいない。読んで理解できなくて質問するのは全然問題ない
> 読めばわかる事をわざわざ聞くバカが叩かれる
だよ。
つまり「読めば」ってのは規格書のこと
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ではなく初期値じゃないんですか?
> 規格書読めない人間 には規格書を持っていない人間も含まれる 持っていなけりゃ当然読めない
>>288 Javaでもまともなプログラム書けるとは思えぬ
290 :
デフォルトの名無しさん :2014/01/02(木) 23:48:08.60
>>286 発生しないよ
って回答がくれば満足か?
HOGE厨って頭弱いからそれで信用するんだろうなW
>>279 あるかどうか知らないけど、規格的にはそれはエラーになるのが正しい
たぶん14.2.3
>>291 ←自分で過去ログすらチェックできないこれがホゲキチガイの知能レベル。
まだ荒らし続けのか? チョーセン人
昔のことは知らないんだけど、相談室にふさわしい意味のある質疑ってこれまでにあったの?
>>295 チョーセン人だとバレてかなり動揺してるな
多くの人が不快感を持つhogeを平気で使えるなんて、遺伝子レベルでの欠陥があるのだろう
>>265 >「スルーしない奴は荒らし」ってコピペ貼って
アンカー付けてなけりゃ別にいいだろ。
それとも自分に反応したと勘違いしちゃったの?
>>286 初期値だが何か?
いい加減、ホゲ禁止のスレでホゲ嵐を続けるのをやめた方がいいぞキチガイ
存在しない規則をコリエイトして荒らしまくるチョーセン人
何が彼を必死にさせるのだろう?
302 :
デフォルトの名無しさん :2014/01/03(金) 05:21:57.06
全ての規則はそもそも存在しないところに作られたものなんだけどな。 韓国人の間では宇宙創世より前から存在する規則があるのだろうか。
303 :
デフォルトの名無しさん :2014/01/03(金) 05:42:58.29
ほんの数日で300レスとは、C++さすがだな。
C++はネイティ吐けるんだからそりゃ速いだろ インタプリタモドキのC#とはダンチ
305 :
デフォルトの名無しさん :2014/01/03(金) 06:05:08.46
C++のいいところは、あの奇妙なテンプレート。 パズルのようでぴったりはまるとなんだかうれしい。 速度なんか正直どうでもいい。 大切なことだけどどうでもいい。
テンプレートが好きならC++捨ててD言語おすすめ
307 :
デフォルトの名無しさん :2014/01/03(金) 06:54:48.74
なんだそれ?聞いたことねえな。 昔は聞いたことあったのにな。
素人が書いたテンプレートなんてまず使い物にならない
309 :
デフォルトの名無しさん :2014/01/03(金) 07:53:51.03
プロの素人なので大丈夫です。
素人童貞ですねわかります。
>>308 素人の作ったテンプレートツール使ってるよ。
>>293 お前らがほげほげ騒いでるから見落としたんだよ
確かにホゲソースだったけどさ
hogeをNGに入れておけばよい
>>252 うっかり使ってしまう新参者以外で
推進派なんてオマエしかいないだろjk
たぶんオマエがいなければ元から荒れることはないと思うんだQZ
>>314 「うっかり使ってしまう」のを「推進派」と分類するのがオマエの論理性の無さなんだなあ。
周りは苦労するだろう。
誤 推進派 正 hoge荒らし
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
コピペ荒らしはQzのしわざだろ。 自分でスレッドを立てておいて、 レスが700になるまで見てなかった なんてあるわけ無いだろうjk
hoge論争の続き ------初心者88 アンチによるスレ立て「hogeは禁止で (C/C++スレは平和に) ------C++スレ109 アンチによるスレ立て「hogeは禁止で ↓ (hoge変数使用〜hogeは禁止ですコピペ のループ) ↓ ホゲ「アンチは自らのスルールールも守れない馬鹿w ★ アンチ「hogeは禁止。スレのルールには従え ホゲ「そんなルールは存在しない★ ★=Qz
320 :
デフォルトの名無しさん :2014/01/03(金) 12:48:13.94
コピペ荒らしは逆恨みを永久に記憶する遺伝子を持ってるチョーセン人の仕業
>>320 =Qz
700レスもの間、スレが荒れたのを放置したのは
テロに屈しないからですか?
322 :
デフォルトの名無しさん :2014/01/03(金) 13:00:40.27
荒らしといて「止めないのが悪い」 まったくチョーセン人の遺伝子はクズだな
自分でhoge許可の煽りスレを立てて
「コピペ上等だよね
>>1 hoge hoge〜」と自分にレスしてスレを荒らして
700あたりで「おまえら馬鹿めキチガイ」
と開き直ったクズは言うことが違うね
> 「コピペ上等だよね
>>1 hoge hoge〜」と自分にレスしてスレを荒らして
でたー、アイムザッパニーズ チョーセン人の特技、国技
>>324 自己紹介乙
韓国の人って正月もネット掲示板に張り付いてるのか・・・
ここはhogeエヴァンジェリストであるQZさんと それによって被害を被ったアンチさんとの 不毛な争いのスレッドとなりました
327 :
デフォルトの名無しさん :2014/01/03(金) 13:28:08.18
>>315 日本語が理解できないようだね
hoge厨はやっぱり韓国人だったか
エヴァンジェリストって何だ? 福音派?
QZはアンチアンチhogeテロリスト。 アンチhogeに対して「テロには屈しない」といって 執拗な対抗意識を持つお方。 hoge禁止スレを見つけてはhogeを投下して荒らし、 自らの正義を貫いたと考える輩。
332 :
デフォルトの名無しさん :2014/01/03(金) 13:47:51.48
見破られて動揺したチョーセン人が、自分より下のQZ認定する事でごまかそうと画策してる チョーセン人の浅知恵
これだからQは精神科行ってるんだよな こんなキチガイが実社会で生きていけるわけがない
>自分より下のQZ 自分が相手より下なことは認めるんだw
必死でQZ認定を続けるチョーセン人の浅知恵
337 :
デフォルトの名無しさん :2014/01/03(金) 14:48:44.10
338 :
デフォルトの名無しさん :2014/01/03(金) 14:51:07.27
韓国人が「浅知恵」という単語を習得しました。
>>314 >
>>252 > うっかり使ってしまう新参者以外で
> 推進派なんてオマエしかいないだろjk
「新参者はhogeをうっかり使ってしまう。それ以外の推進派なんて・・・」という文章だろ。
推進派という集合の中に新参者が入っているのは明らか。
>>314 の頭の中ではhogeをうっかり使ってしまった新参者もhoge推進者に分類されているのさ。
>>334 つまんねーこと言ってないでなんかネタ振れや!
質問です この流れはいつまで続くのでしょうか?
342 :
デフォルトの名無しさん :2014/01/03(金) 14:59:11.08
チョーセンジンチョーセンジン騒いでるhoge厨が消えるまで。
>>337 おまえが弱いのは日本語だけじゃなくて頭全体のようだな。
C++のネタなんて尽きてしまっているのです。
baka move_helper(baka & qz) { return std::move(qz); } 〜 // 呼び出し(おっと受け取り手がない!) move_helper(qz);
baka&&
swap(baka& b, kuzu& qz);
hogeって書いて何が問題なの?って考えたら見えてくるな。 それに過剰に反応するやつが結局スレ荒らしてるんだな。 hogeなんて何十年もまえからプログラミングの話題にフワフワ乗っかってきてるだけのものなのに。 なぜ今更過剰に反応してるのかが不明。
>>348 だからそういうのは「キチガイ」と言うんだよ
専門用語では「了解不能」と言う
まあhogeなんて今時見る機会も少ないからな。
>>349 お前もいいから煽るなよw
煽られたら相手がどうするしかなくなるかくらい分かるだろう?
展開を固定させてるのはお前にも責任あるよ。
>>351 いやそういうことまで責任を感じる必要はない
キチガイは精神病院に閉じ込めておくべき
>>352 じゃあ俺からはこれ、お願いよ。頼むわw
な、ちょっとでも理性の残ってるほうに働きかけてるつもりだから。
hoge否定派じゃなくて、アンタに俺は話しかけてみてるから。
アンタがコントロールしてこの紛争を収めてくれないか。頼む。
>>353 お断りする
お前がやれ
金くれるというのなら話は別だが
355 :
353 :2014/01/03(金) 17:16:08.34
話しかける相手を間違えたようだ。すまない。 hoge否定派で話聞ける人いる?
あ、ひょっとして否定派っていうのが間違いで、 否定してスレ荒らしてるのは結局たった一人なのかな?
>>345 ところがbakaクラスの定義は以下だった
struct baka {
// 出来損ないのコピコン
baka(baka &other):mem(other.mem){}
// おっと、移動コンストラクターが無い!
};
結果、bakaオブジェクトは逆に増えてしまった
>>348 hoge にもQZにも過剰反応することからも察してやれよ
360 :
348 :2014/01/03(金) 17:29:03.36
またQZ扱いされてなんとなくわかったわw このスレ荒らしてるやつ、宿題スレ荒らしてたやつと一緒かもなw 過去にQZに言い負かされて私怨持っちゃってるんだよ。 その粘着力および見境の無さたるやすごいのなんの。
まあQZに言い負かされたお頭ならばいたしかたあるまい
Qの頭のおかしさをまとめたwikiまであるというのに 言い負かされるとは情けないと思わないのか?
いや、あのwikiを書いたのこそが問題のQZアンチでしょうよw おれあの顛末は宿題スレでリアルタイムに見てたぞw
ここでいつものスローガンを書きたくなったが、C++ に tentative definition の概念はないのであった
〜だな やっぱ〜なのか 某最萌スレの汚物を思い出す言葉尻 なんだろう。別人だとして、自演する人らはだいたいこんな口調になるのかな
>>356 仮に複数だったとしても否定理由をロクに説明もせずに共感できてる辺りでお察し
>>367 ホゲキチガイは今までさんざんスレを荒らしてきたというのに
「禁止する理由など無い」とか良く真顔で言えるものだ
369 :
デフォルトの名無しさん :2014/01/03(金) 18:42:17.51
ほhogeの是非はあるが 少なくともまともな人間ならばこのスレの状況を見てhogeを使おうとは思わんよ
foo, bar 使ってもウザい言われるにょ どうすればいいの?
それがウザいって言われてるのは見たことないが。
「ウザい」じゃなかった。 前スレで「むかつくから使うなよ」って言われたよ
asdやqweが一番楽なのに
シェアードライブラリとか… 思いっきり環境/OS依存なところに持ち込んで爆死扱いですか持ち込まれる方も方だが
お前が書いたんだろ?
377 :
376 :2014/01/03(金) 20:05:32.47
379 :
デフォルトの名無しさん :2014/01/03(金) 20:39:40.38
根拠も何もまともな人はこのスレをさらっと読めばどういう状況か理解できる
>>379 QZへの私怨でスレ荒らしまくりですか?
\ / /. : : : : : : : :ヽ-‐.: :_;. --- .._: : : : : : : :\ \ / _ や 争 _ /, -‐==ミ: : : : _,ィニ-‐……ー-: 、`ヽ、: : : : ヽ、 _ や _ _ め う _ . .:´: : : : : : : ≠: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┬' |
>>379 いえプログラムを扱う職業では統合失調症もどきとパーソナリティ障害を併発しやすいんです。
たぶん3割以上はその手に染まってゆく。なぜならそういう能力が求められている
からである。つまりバカ的(非技術、創作など)な能力はいらないってことです。
QZは統合失調症
C++使いなんて、C#使いやじゃヴぁ使いと違って厨を卒業してものの分かった人たちの集まりだと思ってました。
むしろ執着してるパラノイア系かと
>>373 _ が一番楽だよ。
グローバルスコープでなきゃ自由に使ってOK。
俺はクラスのプライベートメンバは _ にしている。
387 :
デフォルトの名無しさん :2014/01/03(金) 22:31:03.88
プログラミング素人が言語を学んで使えるようになるには どのくらいの期間が必要なん?30時間ぐらいでマスターできる?
↓何をもってマスターというのか定義がどうのこうの言い出すアホ
brainfuckとか数分で言語仕様をマスターできてオススメ
391 :
デフォルトの名無しさん :2014/01/03(金) 23:13:09.04
ネットで学ぶにはどこがおすすめ?hogehogeじゃない教材があると助かる
2chがおすすめ 性格がひん曲がった連中が間違った知識を教えてくれるよ
dotinstall
最初は本がいいんじゃないか? と思った俺はおっさんなのか・・・
>>374 久しぶりに見たけど大笑いしたわ
初笑いだw
すばらしい初笑いですね。
うおーきも
>>387 30時間なら、ぷろぐらみんぐのかんがえかたのきほん
がどうにか身につくくらいかな
マスターがどれくらいを指すのかわからんが
その10倍くらい頑張ればまあひよっこ以上にはなれるんじゃまいか
ヘッダーに静的変数の定義を書きたいんですがどうしたらよかですか?
書かないでください
>>400 ヘッダーというのはコンパイラが提供するものなので
アナタは書かないで下さい
404 :
デフォルトの名無しさん :2014/01/04(土) 03:30:14.07
マスターって初心者と中級者とアルティメットマスタークラスと底辺ドカタ職業マと上級職業マでは指すものが全く違うでしょ <それぞれのイメージしているマスター> ■初心者 Windowsだろうがファイナルファンタジー14だろうが1ヵ月程度でサクッと完成させるネ甲 夏休みの間に友達をアッと言わせるソフトを作りたい ■中級者 自分用のアプリケーションなら必要最小限の作業で思い通りのものが完成させられる 「時間さえあれば〇〇言語で作れないものはない」と豪語し始めるのがこの辺り ■アルティメットマスタークラス コンパイラの特性も含め言語仕様を完全に理解しておりメモリ管理などを完璧に行える アプリケーションの設計や完成させられるかどうかなどについては別腹 ■底辺ドカタ職業マ デスマも残業もせずに仕様書通りに開発し、納期に間に合わせられる 面倒なバグは解決できれば良いが、解決できなくとも上手くごまかしたい ■上級職業マ 企業などでの分業を前提として保守性や拡張性も含めて設計し、コストの見積りができる アンテナを張り巡らせて最新のものをチェックしている
>仕様書通りに開発 そんな当たり前のことができる奴は見たことがないな。 プログラマー=アスペ、コミュ障なので。 所詮は底辺のクズ。
中級者の説明が不適切だな 「一応作りたい物を作るらしいが、他人には理解困難な糞を量産する。 特徴は『ここ汚い』と言われると『時間が無かったので』と キモい笑いをしながら言い訳を始める。 実際には設計能力が欠落しているので 100万年の時間を与えてもマトモな物は作れない」
>>407 それ中級者は一生それ以上にならないって話にならね?
そこはかとなく漂う闇プログラマー臭
くだらねぇ 結局あんたは何を作ったの?ってことだよ
ここにいる連中は何も作れないよ 会社にもいるだろ、言語についてだけはやたら詳しいが全く仕事できないやつ そういうやつって、書籍のサンプルコード片を実行してだけ。
413 :
デフォルトの名無しさん :2014/01/04(土) 07:12:31.04
江添先生の悪口ですか。
お前らはマジで何を作ってるの? 単なる社内システム?
>>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 ???
>>415 確かめるのはいいけど、その処理系ではそうなっているという事しか確認できない
その結果を規格書と照合するところまでやりなよ
Cで作るのなんて子供だけだろjk
シーケンサで組んどきゃ安定感もあるし後々の拡張や組換えも楽なのに 無理からRTOSを制御ループの中に突っ込んで身動きできないシステムを構築してしまうおバカさん多いよね
>>416 4.2段落5にて、クラステンプレートの静的データメンバーには
ODR(One Definition Rule)が適用されると読みとりました。
ODRによって異なる翻訳単位で同一のものを指すことが
保証されると考えとりまする
421 :
18 :2014/01/04(土) 11:57:08.65
>>419 > シーケンサで
PLC のこと?
なら、板違いっすよ。
422 :
415 :2014/01/04(土) 11:58:27.74
>>400 ODRを使います
inline int& fack() {
static int manko = 123;
return manko;
}
int * const p_baka = &fack();
使う側:
cout << (*p_baka)++;
ODR「の例外」を利用します、だろ。
規格4.2の説明はODRではない
>>415 > ???
頭の悪そうなレスですね
ヘッダーとは何か。一度規格を読んでみることを
オススメします
427 :
415 :2014/01/04(土) 13:30:05.36
自分の持ってる2012Draftでは、§3.2(5) と §14.5.1.3 が該当するのかなあ。
そしてそれが外部リンケージを持つことの規定が§3.5(5) なの?
んでboostのプレースホルダは単に無名namespaceに入れてるだけなので、翻訳単位ごとに違う実体になってると。
>>426 すみませんが具体的にどういう点?
428 :
415 :2014/01/04(土) 13:32:05.92
>>426 え-と、わからないのは
>>403 の
>ヘッダーというのはコンパイラが提供するものなので
という言葉の意味。
コンパイラが提供するって何のこと?
おそらくど初心者の寝言
単一の.cppで十分なド素人なんだから.hは不要と言いたいのだろう
431 :
415 :2014/01/04(土) 13:50:44.12
まあでもここの議論によって自作ライブラリのプレースホルダを、 boost方式からODR例外を使う方法に改善することができた。 感謝。
iostreamのようなものがヘッダーで プログラマーが書いたmy.hはヘッダーじゃないってことだろ。 「インスタンスと言ったらテンプレートの話」レベルでは厳密には正しい。 規格上は #include "my.h" はヘッダーでなくソースファイルのインクルード。
>>431 単に
ヘッダー: extern placeholder_t _1st;
cpp: placeholder_t _1st;
とすればいいだけの話です。
糞ブーストの真似をしてすべてをヘッダファイルに突っ込もうとするのはやめてください。
>自分の持ってる2012Draft
>>415 の持ってる規格ドラフトは中華版
435 :
415 :2014/01/04(土) 14:21:05.70
>>432 知らなかった
>>433 cppをそのたび用意するのはちょっと・・・
staticメンバでうまくいくんならいいんじゃない?ダメな点ってありますか?
>>434 どういう意味だよw
シーケンサ hoge この二つは共通性がある (公共の場で何の断りもなく使用することが はばかられる用語という意味で
聞く人の立場になって考えれば
いきなりそんな言葉をだされるのが適切でないのは自明
またスレッドのルールにも反する(
>>1-3 )
キチガイは去れ
440 :
デフォルトの名無しさん :2014/01/04(土) 14:46:14.47
>>2-3 はチョーセン人が付け加えたウソルールなので無視しましょう
>>439 >>261 の経緯を考えれば極めて妥当
というより荒れている原因の半分以上はQZが原因
キチガイはすべてのルールをテンプレでなく1に書かないと
捏造と見なすらしい
443 :
デフォルトの名無しさん :2014/01/04(土) 15:25:08.70
スルー出来ないチョーセン人
>>433 全部ヘッダにつっこんでくれた方がビルドしなくてよくて楽だけどなー
>>442 違うだろ。 hoge を禁止したい奴がその妥当性を主張して合意を得るためにがんばるのがそのスレッド。
大勢の住人の合意が確認できるまでは出てくるんじゃない。
447 :
デフォルトの名無しさん :2014/01/04(土) 15:39:50.60
>>441 1に書いたからってルールとして実効性を持つとも限らない
スルー検定のようにスレの流れそのもので〆ないと
449 :
デフォルトの名無しさん :2014/01/04(土) 15:44:52.76
>>446 hoge禁止に反対してるのはお前とチョーセン人チョーセン人連呼してる韓国系日本人だけ
>>447 自分で
>>445 のhoge専用隔離スレ立てておいて
普通のスレを荒らしに来るな基地外QZ
>1に書いたからってルールとして実効性を持つとも限らない キチガイの荒らしは言うことが違うわ 荒らしを正当化する理由がよくも出てくるものだ
最近、7割くらいあぼーんしてるな。
意見交換が活発だからね
>>453 フィルタに問題なければスレごとあぼーんしたほうがいいと思うよ
>>433 extern不要を唱える誰かには無理だな
457 :
デフォルトの名無しさん :2014/01/04(土) 21:29:29.04
ヘッダーを読み込めるということは、フッターも読み込めますか?
ボインなおねーさんのいる店か?
externは要らない子っ!
そんな大層な問題じゃないから
struct unko { unko(int){} }; struct big { unko mem = 200; big() : mem(100) {} }; 引数200じゃなくて100で1回だけコンストラクタが呼ばれるのですが =200 はどこに行っちゃったんでしょうか?
mem(100) でよんでるから呼ばれない
「初期化付きのメンバーはメンバーイニシャライザー書けない」 とかならまだわかるけど、 どうしてこんな糞仕様になったのか。 unko mem = 200; この変数の宣言は有効でも初期化は コンストラクターの書き方しだいで呼ばれない なんて気がふれているとしか思えない。
基本的に宣言の所で書いた値で初期化されるが、コンストラクタによっては別の値で初期化もできる。 何の違和感も無いな。普通。 精々「書かれたコンストラクタの全てがその値を初期化リストで初期化してる場合」に警告出す程度だな。
>>456 それはC の話、C++ではそもそも tentative definition が無理だから唱えていない
>>464 オレはまだ生まれてなかった。ジジイどもが勝手に醜い仕様を決めた。
>>463 関数のデフォルト引数の仕様も気が触れてるのか?
コンストラクタのボディでconstを初期化できないからと、初期化子なんかひねり出して負けは決まった
>>471 そうさな、例えば
struct PersonName {
string firstName;
string familyName;
PersonName(firstName = "Akira", familyName = "Ikegami") { }
};
で、引数付きの時どうやって共存すんの
宣言の順番と初期化子の順番が違ったらエラーにして欲しい
>>474 struct kuso {
A a{1};
};
>>473 どういう意味?
PersonName pn1("Ryoichi"); //池上遼一(漫画家)
PersonName pn2( , "Maeda"); //前田遼一(ジュビロ磐田)
PersonName pn2("Jhon", "McEnroe"); //ジョン・マッケンロー(アメリカの元男子プロテニス選手)
>>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
悲しいお知らせがあります
>>445 で誘導されたhogeキチガイ専用スレは
スレタイが不適切だったばかりに
削除されてしまいました
チョーセン人の浅知恵が否定された
>>471 変数名を表すクラス
template <typename T>
struct variable {
string name;
typename T type;
variable(name = "hoge") { }
};
×typename ○typedef
>>484 息をするがごとくウソをつくチョーセン人
チョーセン人がそこらじゅうのスレで「hoge禁止」とかいう慰安婦像を設置してるな 荒らすなよ
個人的な思い込みに基づいて"hoge"の使用に過剰な反応をする人がこのスレに住み着いていて、 最近は「hoge禁止」がスレ住人の総意であるかのように見せる工作を繰り返しているようです。 あまり気にしないでやってください。
>>486 わからない。
特に問題なさげなのにね。
493 :
デフォルトの名無しさん :2014/01/05(日) 15:34:16.67
本物のコード晒すアホが湧きかねないってことか
494 :
デフォルトの名無しさん :2014/01/05(日) 15:38:34.24
hoge禁止は総意でない 1人か2人反対しているキチガイがいる
1人か2人のキチガイに気を使ってhogeを禁止する必要はないな
たった一人のhoge狂信キチガイにスレを荒らされても困ります
hoge狂信キチガイなどいない、いるのはアンチhogeのキチガイチョーセン人
こういうショートカットってどう名付ける? どうもネーミング苦手 //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
>>500 確かにremove_cv と remove_reference は思わぬところでハマるな。
自分も同じようなの使ってるけど内部的な使用だけだからちゃんとした名前は付けてない。
503 :
デフォルトの名無しさん :2014/01/05(日) 19:25:44.76
姓名判断も取り入れようよ。
505 :
デフォルトの名無しさん :2014/01/05(日) 20:20:49.31
hoge
N*Nの正方行列の積って皆さんどうやってます? ベタにC[i][j] += A[i][k] *B[k][j]; だと実用に耐えれない速度ですよね 10000*10000をCore i7で1秒を割りたいです。
遅延
SIMDに対応した行列ライブラリ使う
人が作ったものを使うしかできないの?
>>509 性能の良いものがあるのに自作するほど暇じゃない
どうせ遅いんだから気にしない
>>510 それならあなたはなぜ、C++を使ってソフトウェアを書いているのですか?
何でも自分で作るほうがえらいっていうのは 日本のIT業界の悪い習慣
>>512 なんでそういう返しになるのか理解できない
お前はsinとかまで自作するのか?俺は組み込みの仕事でスピードのためにやったことあるけど
普通は既存のライブラリ使う。
C/C++の世界では昔から適切なライブラリを選択して使うのはごく当たり前
最初は既存のライブラリを使うけど どうしても速度が出ない事があるからその場合は自作するしかない
別解、こういうことまで考えることがC++erだろうから、マジレスでいいだろ。
>>509 車輪を自作してみるくらいのことは時間作って当然やるが、
漏れのないライブラリなんてなかなかできない、
数学的に漏れのない完全なテストケース書ける自信はない
>>512 お前が書いてくれないからさ
>>506 は行列の積だけ言ってるけど、行列扱うときは積だけってケースはまずなく
逆行列やら固有値分解etcも必要になってくるだろ?
そんなの全部自作してたら当然時間掛かるし、そんな工数を許してくれないw
学校の課題とかなら別だけど
行列演算はCLAPACK使おう、うん
>>506 積和演算ならAVX2+ml64.exeでDLL作ってリンクすれば相当速くなるぞ
あ、しまった AVX2はHaswell以降だった
目的(ライブラリにない機能を付加/パフォーマンス等)と範囲(和と積と行列式まで等)が 明確にできるなら自作してみるのもいいさ。
積とる目的が3DCGなら4x4固定でGPUでもたたけばいいしな 特徴量抽出みたいなNの大きい次元を扱うなら算術ライブラリがいいし 目的次第だな
それを書いて世の中の為になるのか?
10000x10000か デカイ行列だね
floatとしても行列3つで1GB越え >1秒を割りたいです はて?
10000x10000の正方行列の積をとりたい理由が知りたいな
作ってお金をもらっている職種だし、 まあそれなりに役に立っているんじゃないかな
そういや、clのamd64でインラインアセンブラできなくなったのなんで? 私用でちょいちょいっと書くのには便利だったんだが、、
>>500 is_same_ignoring_cv_ref
comp_typeみたいな名前では判断基準が不明瞭なので役に立たない
若しくはこの比較の具体的用途の名前にする
>>530 ちょっと長いけどそれがいいっすかね・・
is_same_bear とか is_same_naked とかも考えてたけど。
>>531 「is_same_但しトップレベルのconst_volatileと参照は無視」
これが一番間違いがなく、かつポータブル
C++と関係ないインランアセンブラは余所でやってください
>>530 ,532
それでは採用させていただきますm(_ _ )m
C++と関係ないインランアセンブラは余所でやってください キチガイ
>>537 こいつからはhogeアレルギーと同じ匂いを感じる
non-naked が便利だったのに、はて淫乱とな これは深い
適当にうらる貼っておけばお前らがアラを探してくれるからこっちは楽だw
うお、やっぱその頁嘘だったのか…? 要検証
MSDN以外信じるなw
#define BOOST_TRY { try #define BOOST_CATCH(x) catch(x) #define BOOST_REHOGEROW throw; #define BOOST_CATCH_END } BOOSTの例外マクロがこんな感じになっていたのですが BOOST_TRYの{とBOOST_CATCH_ENDの}は何のためにあるのですか
>>543 MSDN(英語版)以外信じるな
更に言えばMSDNも鵜呑みにするな
ふむ、なにより関数コールの時は戻り番地をスタックに積まなきゃならないので、 プロローグ、エピローグ以外でスタックポインタを動かすような操作が禁止され ているというのは明らかなデマだな
こうか? これならまあ普通だな (例)leaveはともかく × プロローグ、エピローグ以外で ○ プロローグ前とエピローグ後で
C++と関係ないインランアセンブラは余所でやってください
C++の規格書に 7.4 The asm declaration がある。全然問題ない
汗もできないC++erなんて といいたいところだが、amd64の勉強が遅れてるんだよな idafreeでamd64も扱ってくれないかなマジで
>>551 『asm(string-literal);
The asm declaration is conditionally-supported;
its meaning is implementation-defined』
これだけしか規定されていないのに
スタックとかエピローグとかは関数呼び出し規約の話は
スレ違いだろう。
こいつアンチhogeってるキチガイだろうな
そろそろasmで荒らし始めるぞ
>>550 C++にはasmが予約語になっているので全然無関係ではない
asmのコピペ爆撃が始まる悪寒
hoge嫌い、汗嫌いときて、次はなんだ attributeあたり? そういや、atlprov最近EEに付かない
C++に限っては仕様的にmain内でreturnを書かなくてもいいというのを どこかで見たが忘れた
C99以降もそうだ
561 :
デフォルトの名無しさん :2014/01/06(月) 18:34:42.83
ペイピッポォ
562 :
デフォルトの名無しさん :2014/01/06(月) 18:56:28.14
企画の始まりの日 トイレの個室の中で 派遣たちの声の遠い残響 独りで聞いた 隠したバグすべて 見えないバグすべて 派遣に押し付けて いまはどこを彷徨い行くの 答えの潜む無数のルーチン 出会わなければ 正社員のままでいられた 不死なるエラーを持つコード 見つからないで 僕のため このデスマするため 生まれてきた 一億と二千行前からバグってる 八千行過ぎた頃からもっとカオスになった 一億と二千行後もバグってる バグがバレたその日から僕の地獄に電話はやまない
加齢臭強烈すぎ
派遣を雇うようなとこってTDDやBDDやるの?
565 :
デフォルトの名無しさん :2014/01/06(月) 22:18:28.23
ギリギリ生活していけるだけの給料しかもらえない派遣って何のために生きてるの?
何かのために生きなきゃいけないの?
畑に戻んべ
ギリギリ生活していけるだけしかもらえないのは賃金や税金の基本 いくら給料があがろうとギリギリである事には変わりない それが食費ぎりぎりなのか、住宅ローンを返すのにぎりぎりなのかという差はあっても 賃金というのはギリギリなのである
徳川三百年か
衣食住と子供がいれば教育費 給与からこれらを差し引いて残るならギリギリとは言わない 具体的には貯金したりプレステ2を買ったりできる余裕があればギリギリとは言わない 毎日3000円のランチ食べてて貯金できない人はどうなるの? とかそういう大人げない質問はやめろ
面白い質問来ないかな
じゃ・・・ 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&& になるみたいです。 なんで?
C++でCスタイルキャスト使う池沼はNG
static_cast 使ったって同じだが?
そのコードのどこで判断できんの
>>576 intの時もstd::stringの時も1回目の呼び出しでは変化してるけど、キャストしてる2回目は変化してないでしょ。
つまり
>>572 の
> 上下どちらの呼び出しでもarg の型は int& なんですが、
は間違ってるんじゃ? っていう意味。
>どちらの呼び出しでもarg の型は int& どう考えても違います
>>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&&に
ところでなんでargumemtでなくparameterにargなんて名前を付けるんだ?
パラメータは与えるものそのもの(実引数的な)を指すニュアンスが強いっぽい気がする argumentは導出の根拠になるものだから別に不自然じゃない
>>580 型が変化した結果、値が変化してない、って言ってるんだよ。
そんくらい理解しろよ。
mainがargc,argvゆえ
最近おもったんですけど、 テンプレートプログラミングって静的に変数定義しなければ オブジェクト指向と両立できますね。
586 :
デフォルトの名無しさん :2014/01/07(火) 13:55:19.63
クラス変数は関係なかろう
最近思ったんですけど、 テンプレートプログラミングってhogeを使わなければ オブジェクト指向と両立できますね。
>>587 別にhogeが悪いんじゃない
ただサンプルとしてhogeが嫌われてるだけだろ
リリースソースにhogeが実装されてたなら死ねと思うけども
>>588 ごめん、馬鹿にもわかるように教えてくれないか?
低能でほんとすまん
hogeを使うようなunkoプログラムは
テンプレートもオブジェクト指向もクソも無い
と言う意味では正しいな。
ただ
>>585 が何を言っているのかよくわからない。
powA = 8.0f; powB = 40.0f; こうしているんですが、なぜかpowAに40.0fが入り、powBに8.0fが入ってしまいます。 ここ以外では変数を使ってないんですが、こういうことってよくあるもんでしょうか?
ワロタ
>>592 そのレベルだと一回自分でトレースしたらいいよ
>>592 よくあったらプログラマーがノイローゼになります
年に3回くらいある
metaについてこんこんと3時間くらい説明してくれる人募集!
>>592 古いCOBOLでならあったな
Displayかまさないと変数代入してくれない現象
>>592 これが不思議と起こる人には良く起こるんだよ
属人性のある呪いみたいな物だよ
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あたりに任せちゃう手も使える場面と使えない場面とあり・・・
>どのようにタイムアウトを設定してますでしょうか? selectでタイムアウトを実現しています
>>572 VCだろ?
>>575 のコードだと i が 12→24→48 って遷移すんだろ?
今すぐ窓から投げ捨てろ
マジレスするとこれはかなり致命的。
『〜ができない』とかいう問題ならどっかで回避コード書いて済むかもしれんが、
あらゆる場所で起きるしコンパイルエラーにもならんし。
>>603 HTTP 1.1なら通信が終わっても鯖側から切るとは限らんぞ
>>605 なるほど。
select でもタイムアウトがガン無視される場合はどうするんですかね?
つか、avast のWebシールド止めても、なぜだかselect のタイムアウトが利かない(涙)
なんなんだろうなぁ。
>>607 だもんだから、やることやっちまったら、こっちからお断りだい、とグレースフルにソケットをぶっ殺そうとしてますが、
良い考えが見当たらないもので、どうしたものかと・・・
>>603 nBytesRecvが「想像通り」か?
printfしてみろ
>>609 調べているんだが・・・
非ブロッキングにするのはよいけど、データの終わりをどう判断してよいやら。
ブロッキングなら、最後はnBytesRecvが0になると思うんだが、吸い込まれてフリーズ
強制終了以外に手は無い・・・ですよ。
>>612 完璧です。
1byteたりとも違いもなく、全く問題も無いです。
ライブラリがいかんのかなぁ、とも思っています。 開発環境:MinGW + ws2_32 + z
>>610 >select でもタイムアウトがガン無視される場合はどうするんですかね?
タイムアウトの指定が間違っているので誤りを見つけて正す
616 :
603 :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関数で止まったままです。
そりゃ、おかしいでしょう?
617 :
592 :2014/01/07(火) 22:12:31.77
>>595 おかげさまでトレースしたところ、原因が判明しました。
for文に問題があったようで、お騒がせしました。
>>616 じゃあselectからrecvまでの流れが間違ってんだろ
>select関数はwhileループの直前 そりゃだめだ
620 :
603 :2014/01/07(火) 22:21:08.55
>>619 なるほど
selectが毎回内容を上書きしてしまう
ってことですね。
ちょっとやってみます。
>>620 >ってことですね
違う
すべてのrecv呼び出しの前に必ずselectしろ
622 :
603 :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);
}
}
>>622 すれ違いなのでそろそろやめたいのだけれど最後に
以下を毎回セットでやれ
FD_ZERO
FD_SET
select
recv
>>622 >select(0, &fds, NULL, NULL, &tv);
> nBytesRecv = recv(sock, buf, sizeof(buf), 0);
selectの結果を見ないんじゃ
selectが役に立ってない死ね
625 :
603 :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でブロッキング(泣)
626 :
603 :2014/01/07(火) 22:44:36.68
>>624 見れないですよ。
selectの結果をみようにも、recvでうんともすんとも動かなくなるんですから。
結果を見る前にrecv関数に入って制御がもどってきません。
>select(0, &fds, NULL, NULL, &tv); この間にコード書けば結果は見れるだろアホか > nBytesRecv = recv(sock, buf, sizeof(buf), 0);
628 :
603 :2014/01/07(火) 22:48:41.42
>>627 あう〜
うまくいきました。
おせわになりましたです。
まさかこれで消える
>>630 f(int &)
f(int &&)
のオーバーロード解決が正しくないのはとても嫌です
ボクのコンパイラーがそんな糞コンパイラーだなんて
耐えられません
耐えがたきをタエ 忍び難きをシノブ
>>630 ある関数があって、
「この関数は右辺値も左辺値も受けます。左辺値を受けたらその値を使い、右辺値だったら内部で確保したコピーを使います。」
「ある変数をそのまま関数に渡してもいいですし、コピーとって右辺値にして渡してもいいです。」
「コピーとって右辺値にする一番手っ取り早い方法は、同一の型にキャストすることです。」
って説明したいのに、最後が嘘になっちゃう。
嘘じゃないな。ほんとは正しいのに結果的に期待通りじゃなくなってしまう。
>>633 すまん
演算子という単語も加えて説明してくれないか
>>635 は?
int a = 10;
func(a);
とやったら、aがfunc内部で参照として使用されます。
キャスト「演算子」を使って
func(static_cast<int>(a));
とやったら、func内部で使われる値はaとは無関係で、aの寿命に依存しなくなります。
でいいのか?
まあ、int とかだったら func(a+0); とすればいいんだけどさ。
>>633 キャストしたらコピーが作られるわけではない。
intの左辺値が右辺値になるだけ。
コピーは仮引数の参照型に実引数をバインドする際に
コンパイラーがやること。
static_cast<int>(a) //ここではコピーは発生しない
int && ref = (基本型のprvalue) //ここでコピーが発生
質問です。 関数へのポインタ型への変換operatorを typedef無しで書くにはどうしたらよいですか? operator void*()() と書くと怒られてしまいます
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()); }
struct unko { static void (*pf)(); operator decltype(unko::pf)(); };
#include <type_traits> // for common_t ype struct unko { operator std::common_type<void (*)()>::type () { std::printf("うんこー\n" ); return nullptr; } };
>>638 何で参照で受けてコピーが発生するんだよ?
キャストした時点で新しいオブジェクトが発生するに決まってるだろ。
>>644 実装上の話をしてるのか形式的な話をしてるのか解らんから堂々巡りになるぜ
>キャストした時点で新しいオブジェクトが発生 規格のどこにそんなことが書いてあるの
金慶珠 「水掛け論になりますから」
どんな実装だろうねぇ 存在するのかねぇ
int a = 1; (double)a; ってやるとdouble型のオブジェクトが新しく発生するの? (int)a; だとどうなの?
もちろん
int a; (double)a; でdouble型の新たな実体が発生しない訳がない。当然だ。 同じ型だとどうなるのか? 規格を見ずにあてずっぽうに答えてみる・・・5.4あたりか?
>>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
まともなコンパイラならどちらも最適化して消えまする
(double)a; これが消えないとかありえないわ
volatileじゃなければ消しても問題ない
存在しない実装を前提に話すのって無意味だよね
>>651 5.4には結果はprvalueとあるけれど
コピーの有無は書かれてない模様
>>659 さいですか。
次からはサンプル書くにもお気をつけあそばせ。
意味が分かんないんで。
>>661 あーそうですか
それは失礼しました
非常に申し訳ない
許さない
問題1 int a; に対し(int)aでコピーが起こるか? 問題2 int&& ref = 100;でコピーは起こるか? 今のところ前者が5.4、後者が8.5.3p5という根拠が示されたが 5.4ではよくわからんとの意見あり
>>662 気にスンナ
ところでその
>>638 って
>>633 に対して言ってるんだけど、そこにある
「この関数は右辺値も左辺値も受けます。左辺値を受けたらその値を使い、右辺値だったら内部で確保したコピーを使います」
ってどういう言う意味だ?そんなことありえるの?
実例で欲しいね
>>665 ふつうはconst参照の時にコピーして右辺値参照の時にそのまま使うのだけれど、
>>633 は何故かその逆の動作をする酔狂な実装の関数オーバーロードを定義しただけ
(int)aでコピーが生成されるかはよ おまえらページ番号暗記しとるやろ
>>667 "const"参照とは言ってない。
せっかく参照で受けてんのに、なんでわざわざコピー作るんだ?
それに右辺値参照だったら、相手はすぐ死んでしまう恐れがあるからコピー作るだろ?
実例は作成中だから少し待て。
>>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 として得られる。
pついてないrvalueって何?右辺値にキャストしたやつ?
>>672 それがVCだとそうならないの?
>>671 のコードで「VCではダメ」って書いてるけど、どういう動きになるの?
>>672 つまり
>>638 のstatic_cast<int>(a)でコピー無しは嘘と言うことだな。
ちなみに (int)a ではどうなの?
同じこと
おまえらの得意な規格のページ出せはよ
コピーが発生するかどうか、リリースビルド覗いて確認しろw 汗出力くらいできんだろ
例え最適化されるとしても文法的な理解としてはコピーになるとしか言いようがないな
なんだよ仕様はこうですと連呼しつつソースが出せんのか
ページ番号を出すのはムズいな
キャストの結論 633>コピーするにはキャスト 638>キャストではコピーされない。 static_castではコピーされない 672>規格ではstatic_castはコピーされる ↓ では(int)aキャストでは? ↓ される ↓ ソースは? ↓ コピーされるとしか言いようがない ↓ ソース出せないのか ↓ 出せません
今思ったんだけど void (*)() ってなんかいやらしいな
C/C++マはそれ書くとき皆中学生のようなトキメキを覚えるのです
'A'==L'A' って常に真になりますか
〜 p4
>>686 ならない
一例として
gcc main.c -fshort-wchar -fwide-exec-charset=UTF16LE
gcc main.c -fshort-wchar -fwide-exec-charset=UTF16BE
>>686 C++は文字コードまで規定してないので真になるとは限らない
でもそうならない環境を知らない
>>689 わざわざワイド文字使いながらローカル表現と違うエンディアン使うって滅多になくね?
と思うけどまあアリか
>>688 5.4p4だと(int)aはstatic_castでなくconst_cast<int>(a)と同じと読めるけど違う?
>>692 違う。 const_cast の変換先に指定できるのはポインタと参照だけだから、その次の static_cast になる。
>>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); // ← これはコンパイルエラー }
ローカルなクラスはテンプレート引数に使えない C++11では使えるようになったのでオプションに-std=c++11を指定するとコンパイルが通るはず
テンプレートに関数ローカルな型を渡せるようになったのはC++11から
>>696 ,697
うほ!即答助かる
そんな事があったのかー
クラスをローカルにしなきゃ回避できるから困ってはいなかったけど
原因が分かってすっきりした!
>>696 -std=c++11を指定したらコンパイルは通った
C++でstdio.h使うばかってなんなの? cstdioにしとけや
stdioでおなかいっぱいです それでいけることにしかつかってない 異論は認める
stdio.hはC++でコンパイルエラーが発生するかもしれない、cstdioは発生しない、 両方とも定義は同じもの
ラッパー書けねーな まいったなこりゃ
作法にだけはこだわる それが無能の特徴
作法にだけこだわる馬鹿 と 作法にこだわる人 の区別がつかない馬鹿
作法はちゃんとしろアホ。手を抜くな
こだわらない馬鹿よりは1gぐらいマシ
unko *p = 0; (unko )*( p);
[](){}();
reinterpret_castはstaic_castではダメだったのか
ダメだからあるんだろ
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みたいなことはできないのでしょうか?
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};
ラムダって便利だよね
OuterとInnerは全く関係ないので無理です Outerで適当にInnerクラス生成する関数でも作ってください
>>715 それC++ではコンポジションに近いからなあ
ただ内部クラスから外部クラスのスコープを参照したいという事は良くあるから気持ちが
分からないでもない
ま、解決策は内部クラスの方をfriend classとして別に宣言してコンポジションにすると
いいかなあ
コンポジションに、近い??
>>700 stdio.hで困った事なんて一度もない
offsetofマクロを使うと内部クラスのメンバへポインタを切り替えられるのは事実だから そういう特殊な用途用としか思えない それ以外はスコープを外したコンポジションでいいんじゃないの?
>>722 Javaのインナークラスは親1に対してインナー多だぞ
アグリゲーションならともかくコンポジションとは違う
>>700 cstdio使ってる奴はむしろ警戒する。リベラルで面倒臭いコード書いてそう
>>715 そもそもなんでnewしたいのか。
Outer o;
Outer::Inner i;
では何故いけないのか。
まともにC++を使いこなせない奴に限ってinclude <cstdio>を警戒するよね。
728 :
715 :2014/01/10(金) 11:50:48.71
>>725 JAVAでボタンが押されたときとかに
Activityのイベントハンドラでサービスを起動するのに
使うようなイメージです
画面から動かされた処理が完了した後に
画面をに結果を出したりしたいです
C++11をふんだんに盛り込むのが使いこなすことだと思ってる輩が多いので困るです
>>728 がJava脳過ぎて、
>>725 の質問に全く答えていないことに笑った。
その
>>725 はC++脳過ぎて、Javaのインナークラスを知らない頓珍漢なのだが。
>>724 iostreamでなくcstdio使う人はむしろ保守派
>>730 JAVA() の時点でお察し
>>722 型変換って知ってるか?
型変換するとアドレスが変わるんだぞ
coutは狙った出力をさせるのが恐しく面倒だし、Google C++スタイルガイドにも printfを使ってくださいと書いてあるのを見てからはiostreamはincludeしなくなった。 もう全部↓これ #include <stdio.h>
iostreamがクソなのは言うまでもないが どうしてcstdioでなくstdio.hになるのか バカなの?
名前空間で囲われただけで本質的な違いが全くないからだろ
std::printfって書けるのがとてもありがたい
>>723 すげえな
再利用の出来ないインナークラスをそんなにたくさん埋め込むのか
Inner ClassはProxy Classを作るのに便利だよ
すみません今から覚えるのにCとC++どっちを学習したら良いでしょうか JAVAとverilogは書いたことあります C++を覚える過程でCがかけるようになるならC++の勉強をしようと思っています
いきなりC++でいいよ Cを含んでるんだから いっぺんに全部を理解するのは無理だから段階的に勉強していけばいい
C++がいいだろうが。 C++にCは含まれるが、不便な部分でCを使わずにかけてしまう可能性があり C言語の学習を飛ばしてしまう可能性がある。
文字列操作、ポインタ操作、printfとかはC言語の初歩だが C++ではより簡単に実現できスルーできてしまう可能性がある。 実用上はC++で、学習的にはCから。
初学者にC/C++を教えるってことは低水準なセンスを叩き込みたいんだろうから まあ学習にはCだな
C言語でmallocとrealloc 使って、 データを積み重ねているんだけど C++で書く場合 vector< unsigned char >::push_back データ積み重ねようとしてるけど これでいい? なんか他にいい方法ある?
それでいい
14のジェネリックlambdaが待ち遠しいんですけど、これってデフォルト引数を与えたりできますかね? あっちのスレは止まってるみたいなんで。
bindでなんとかしろ
>>747 bindをラムダでリプレースしたいからのに・・それじゃ・・・
文法について質問させてください。 以下の★の書き方ですが 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; } };
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; } }; 下側は指定してくれないとなんとも
751 :
749 :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; } };
>>749 class d のデフォルトコンストラクタが private になってるぞ
753 :
749 :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 : こいつらが顔文字に見えて仕方がない
まず ・b この書き方ができるのは自分(d)のみ 自分以外の型は例えばb<int>とb<bool>は 異なる型なので<>の指定が必要 次に ・namespace_name::template b<T> ・b<T> ・typename d::b この辺はカオス。知らん 特にtypename d::bは<T>が無いので 曖昧だとエラー VC++,g++,clangともに挙動が怪しい気がする
世の中には *やらテメーの肛門見て 旭日旗だ こいつは親日派に違いない と感じる人もいるんだし よくあることですよ
unko *p = 0; (unko )*( p);
>>753 文法のことはさておき、a をちゃんとコンストラクタで初期化するのが本筋。
template<typename T>
class b {
public: bool a;
b() : a(true) { }
};
template<typename T>
class d : public b<T> {
d() : b<T>() { }
};
>>746 ラムダのデフォルト引数て何?
具体的に
>>759 [](auto t=※){} のことでは?
>>758 コンストラクタを継承する場合は
template<typename T>
class d : public b<T> {
public:
using b<T>::b; // b<T>::b<T> ?
};
でよい?
>>760 それです。
fn を例えば2変数のファンクタとして、
[&fn](auto x = 8) { return fn(1, x); }; みたいな
最近スレがマトモですね やっぱりhogeが禁止されるとスレも健全になるようです
c++11のatomic_bool型に値を入れるとき operator=だとメモリバリア指定ができないので これははメモリバリア無しという理解は正しいですか?
storeがよばれるのでデフォルトやつが指定されます
禁句「バリアってなんですか?」
構造体を指定するときに、 struct hoge val と宣言しても hoge val と宣言しても問題なさそうなのですが、 「struct」 を付ける意味ってあるの?
構造体ってなんですか?
double baka; struct baka{}; int main() { struct baka i; }
「構造体を指定」とはどのような意味なのか やはりいつものhoge荒らしは日本語が怪しい
Pascal風に言うとスカラーで無いもの
【重要】 hogeは禁止です。使用しないでください。 万が一hogeが書き込まれても、スルーしてください。 相手にするとあなたも荒らしと同じ扱いになります。 ※ テンプレを良く読んで下さい
779 :
763 :2014/01/11(土) 10:54:37.87
>>763 の意味でのデフォルト引数って設定できるようになるんでしょうか?
>>778 test_tmp((typename std::decay<T>::type)x); ?
↑ 「挙動が異なった」というのはVCでの話ね。 ideonでは見ての通り動いてる。
型推測とCスタイルキャストが相性悪いんかな 一回余計にdereferenceしてる
Cスタイルキャストとstatic_castは別のものだが、static_castできるならば同じはずでは? static_cast<T>(x) がコンパイルエラーにならないとき、それは(T)xと同じだと思ってたが。
Cスタイルキャストはstatic_castができないとき reinterpret_cast するというものじゃなかったっけ? やれやれ、また規格の話か。
リテラルのアドレスをmoveするヤツなんかいねーだろと端折ってあって リニア変換してないオフセット付のアドレスが釣れてしまってんじゃネーの?
796 :
デフォルトの名無しさん :2014/01/11(土) 14:13:29.76
またチョーセン人が荒らしてるのか。 とっとと死ねよ
>>743 正直言ってその場合アセンブリ言語を少し齧らせたほうがいい。
ポインタで躓く奴が多すぎるがアセンブリ言語やれば一目瞭然だ。
無論AT&T文法だと面倒だからIntel文法のアセンブリ言語な。
>>794 hogeが嫌いすぎて頭オカシイ人だからほっとけ。
>>778 はVCのバグ
cスタイルのキャストは受けが悪いという点はさておき、
T&& x;
として受けた変数に対する (T&&)x; は問題の発生する余地はない。
Qが使えなくなったコテ外してファビョているのか
チョーセン人がいたるところでhoge禁止の慰安婦像をたてている
hogeに必死で反発してるやつって子供っぽいんだろうなw unokとかbakaとかも見てて恥ずかしいけど、俺は反発しないけどな。 本人がやりたいんならやらせとけ、って感じで傍観しとくけど。
>>802 だよな
必死に反発してる=「自分が絶対で他の価値観を認めない」って事だから、
もろに自己愛性パーソナリティ
チョーセン人っぽいね
めんどくさいから煽るなよ
なんかキャストの話は荒れそうで申し訳ないんだけど、質問です。 テンプレートで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 をみると見境なく噛みついてくる人がいるんで困ってる。
↓良い悪いは誰も聞いてないのに語りだすアホ
Aができるようにしたいという要望がキモイ
Aは未定義動作だけど鼻から悪魔出したいの?
>>809 それじゃconst_castは何でも未定義になると言ってるようなもんだぞ
811 :
デフォルトの名無しさん :2014/01/11(土) 18:18:29.48
チョーセン人チョーセン人言ってる人ってもしかしてリアル韓国人? 日本人を装う韓国人を何度か見たことあるけどそっくり。 「日本人は自分たち韓国人を常に意識して優位に立とうとしてるから、 同じだというレッテルを貼れば悔しがるだろう」 という思考回路だそうな。
リアル朝鮮人で合ってるよ 但し日本国籍を取得してる
あちこちのスレにhoge禁止という慰安婦像を立てて回ってるのはチョーセン人
>>806 いや、逆にconst_castとmutableの両方とも必要だと思うぞ。
>>812 国籍取得つーか韓国系二世とかじゃなかったか?
>>809 ,814
あ、そうだった!
>>808 ここではconst属性はテンプレートパラメータで規定したくて、thisのconst属性には縛られる必要はないんだよ。
>>806 T valをポインターで持つようにする
818 :
603 :2014/01/11(土) 20:20:28.55
いや〜順調順調 ってか、socket っつうのはタイムアウトさせないんだな。 質問した立場であれなんだが、 人の話は聞くモンじゃないって良く分かったわ。
>>818 ブロッキングさせて解決したか。
しかしそれは単にselectの使い方をマスターできなかっただけだ。
ちょっと818が何言ってるかわからない タイムアウトオプションと言う意味なら Windowsでは使ってはいけない類のものだが
>>806 なんかちょっと変だな。
その例でいくと、
yakitori<int> と yakitori<int&> と yakitori<const int&>
の組み合わせならわかる。
yakitori<int> と yakitori<const int> というのは用途がちょっと想像できない。
823 :
806 :2014/01/12(日) 07:36:35.54
>>817 ,822
やっぱポインタ経由が正解ですか。それで試してみる。
>>821 確かに実際発生するのはyakitori<int> と yakitori<int&> と yakitori<const int&>かも。
824 :
821 :2014/01/12(日) 09:31:17.18
>>823 やっぱ<int>と<int&>と<const int&>なんだな。
ポインタ経由が楽だけど、参照へのポインタなんてないぞ。
ポインタを使わず、まともに
「thisのcv属性に依存せず、テンプレートパラメータのcv属性に従う変数を持つクラス」
なんてのを作ろうとしてもかなり難しい。
オレは途中までやって諦めたw
C勉強中なのですがポインタ変数のインクリメント・デクリメントはなぜ挙動が違うのでしょうか
その方が便利だから
827 :
デフォルトの名無しさん :2014/01/12(日) 11:18:30.97
淫クリ?
>>825 別の機能なのに同じ書式に無理やり合わせただけ
829 :
デフォルトの名無しさん :2014/01/12(日) 11:45:13.12
淫クリを?
インクリメントとデクリメントの挙動が違う、 って何言ってるのかさっぱり意味が分からん。 型ごとに違うって意味?
831 :
デフォルトの名無しさん :2014/01/12(日) 12:12:54.38
分かるだろ 淫クリはペロペロしてやると体をピクピクさせるだろうが
832 :
828 :2014/01/12(日) 12:29:38.58
*hoge++が値じゃなくアドレスをインクリメントしてるみたいなので今の段階でそのメリットがわかりません *hoge+1がなら値がインクリメントされるのでなぜこのような仕様にしたのかもわかりません
>>832 それ単純に演算の優先順位の違いや
*(hoge++) (++は*より強い
(*hoge) + 1 (+は*より弱い
836 :
828 :2014/01/12(日) 12:37:38.85
>>833 なるほどーありがとうございますまたひとつ気になったのですが
*hoge++はなぜ構文エラーにならないのでしょうか
なぜ構文エラーになる(べき)と思うの?
838 :
デフォルトの名無しさん :2014/01/12(日) 12:39:49.48
>>836 hogeサイトばっか読んでるからそんなことも分からないんだろ
hogeサイトは読むだけ時間の無駄だと
>>836 が証明してくれた
840 :
デフォルトの名無しさん :2014/01/12(日) 12:42:37.87
>>837 hogeを使ってるような糞本で学習したから間違った知識が身に付いてるだけw
個人的な思い込みに基づいて"hoge"の使用に過剰な反応をする人がこのスレに住み着いていて、 最近は「hoge禁止」がスレ住人の総意であるかのように見せる工作を繰り返しているようです。 あまり気にしないでやってください。
842 :
828 :2014/01/12(日) 12:50:49.84
>>837 アドレスのインクリメントをするのならhage++と書いたほうがすっきりするし
*hage++の*は不要というかあるべきものじゃないと思うので
Statement has no effect と警告文は一応でるのですが、それでいいのかーと思いました
>>824 よかったらどう諦めたのか教えてください。
>>842 不要だと思うなら付けなくていいよw
アドレスのインクリメントをする前のアドレスにアクセスしたいからそう書くんだろ
個人的には見た目で何してるからわからんからそうは書かないけど
(*p)++ *(p++) こう書くようにすればアホでもわかる
【重要】 hogeは禁止です。使用しないでください。 万が一hogeが書き込まれても、スルーしてください。 相手にするとあなたも荒らしと同じ扱いになります。 ※ テンプレを良く読んで下さい
848 :
828 :2014/01/12(日) 13:09:17.40
>>844 ,846
理解しましたありがとうございます
>>828 はさっきからなぜイミフな自演を続けてるんだ?
こうやってhoge本ではまともな知識が得られないと知っても
まだhoge本を読むんだろうな
こういう学習能力のない奴って社会で疎まれるんだけど
>>828 みたいな池沼は気付いてるんだろうか?
>>828 は本当に生きてる価値がない
struct hoge{...}; char c[x]; new(c) hoge[100]; xに必要な大きさを知るにはどうすればいいですか
852 :
828 :2014/01/12(日) 13:22:56.68
hoge病人の発狂が面白くてやめられんわ
828,828,851はいつもの基地外の自演です
訂正 誤 828,828,851はいつもの基地外の自演です 正 825,828,851はいつもの基地外の自演です
hoge撃滅篤志隊以外のみなさまは発作が収まるまでスレに近づかないようにしてください
>>828 は精神病だという自覚がないんだろうな、かわいそうに。
alignas (baka) char[sizeof(baka) * 100];
先頭に要素数を隠し持つんだっけか?
じゃあ alignas(X) char buf[sizeof(X) * 100]; for (auto i=0; i<100;i++) allocator<X>().construct(&buf[sizeof(X) * i], p1,p2,p3);
例外起きたら困るから 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: }
static baffer[1024*1024*32]; 最強
>>862 それやめた方がいい。
言語が確保するメモリ領域を圧迫するから不安定になり得る。
原因不明な「起動できない不具合」になるんかね
「言語が確保するメモリ領域を圧迫するから 不 安 定 に な り 得 る」 ここは笑うところですか?
めんどくさいな 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(このコンパイラおかしくね?);
staticってスタックを使うの!?
厳密に言えばスタックではないと思うが。 OSやコンパイラの制約で、staticを巨大に取ればスタック領域が減らされるんだよ。
プログラムのメモリサイズはls -lで調べます
生配列でいいなら そもそもplacement newする必然性無いんじゃね?
便宜上書いただけだろうに 話が読めないアスペは困る
巨大なのは動的確保して、OS側にメモリ管理を任せた方がいい。 少量ならメモリに乗りっぱなしで速度上の問題はないし、 巨大ならスワップなどして動作は継続できやすい。突然止まるとか起こりにくい。
動的確保はいかなる場合でもfreeしろとキチガイが言いがかりをつけてくる
>>824 >>845 みたいな感じ、もしくはmutable使っていけると思うけど?
ところで、
「thisのcv属性に依存せず、テンプレートパラメータのcv属性に従う変数を持つクラス」って簡潔で当を得てるね。
この表現だけ俺にちょうだい。
コメントにつけるからw
>>836 2 + 3 * 4 が構文エラーになるなら、
*hoge++
は構文エラーになるだろうね
>>878 他人に迷惑をかけるのが好きなんだねぇ
どういう教育受けたらそうなるのか疑問だわ
881 :
デフォルトの名無しさん :2014/01/12(日) 19:25:37.86
>>880 迷惑って何のことか、しばらく「えっ?」てなったぞ
おまえが C++ を使うことのほうが「迷惑」かもな
ホゲを使って荒らし続けてるのって 明らかにたった一人だよな
プログラム技術だのソフトウェア技術だのって結局ハウツーレベルのものなんだなあ。
チョーセン人があいかわらず必死でhogeに言いがかり付けてるのか そんなにイヤなら祖国に帰れよ
>>883 この板のハウツーレベルだけど、実際は経験則でしかソフトウェアは書けない
>>885 「経験がないと書けない」だったらよかったんだけどね。
経験がないと手術はできない
経験則でしか手術はできない
経験がないと飛行機の操縦はできない
経験則でしか飛行機の操縦はできない
>>886 同じものを二度も書いて金が獲られるってのは、ソフトウェア産業であってはならない
純粋仮想デストラクターって 何のためにあるのでしょうか?
継承して使うクラスのために
なくて困る状況を知らない あって良かった状況もこれまでなかった
あれ、使えるんですか? 派生クラスを生成できないですよね?
ベースクラスのデストラクタで何もする必要がない場合って 純粋仮想デストラクタでおk?
コンパイルエラーになるんですけど・・ struct B { virtual ~B() = 0; }; struct D : B { virtual ~D() {} }; int main() { delete new D; }
>>896 定義は必要。
B::~B() { }
マヌケだろ?
897とかぶったすまぬ
>>886 医者やパイロットとくらべて、ひと山いくらの人材で成り立っている業界だと言いたいのか?
大雑把には正しいが、決めつけはよくない。
カテゴリーによるんだ。
理論・学識と教養、それに裏打ちされた経験。
すべてを満たさないとできない高度なプログラミング。
それが、C++なのだ。
>>898 // 気が変わった
ってどういう意味?
= 0;
でなきゃいけない理由と何か関係が?
>>901 気の迷いです忘れて。
Bの生成を抑制するためだけの書き方なのかな。
まじかよ 純粋仮想関数(=0)ってのは定義が無いんじゃなくて 定義が無いかもしれない、継承しないとインスタンス化できない って意味なのか でデストラクタだけは定義が必須と。 C++糞文法すぎるだろ
904 :
デフォルトの名無しさん :2014/01/13(月) 00:19:06.87
嫌なら使うな
医者やパイロットになれなかった人がプログラマになります。
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
>A::pattern0 どこにも定義がない物を使用するのはおかしいな。
911 :
デフォルトの名無しさん :2014/01/13(月) 00:49:20.05
>>906 2つのprivateメンバが仮想関数の場合、コンストラクタ内での呼び出しには
そこはかとない哀愁が漂うでしょう。
913 :
デフォルトの名無しさん :2014/01/13(月) 00:52:06.83
>>912 あの・・・すいません
もう少しわかりやすい解説をお願いします
915 :
デフォルトの名無しさん :2014/01/13(月) 01:04:47.84
>>914 ありがとう
やっぱり独学だと不安なもので・・・
>>912 privateな仮想関数を許す言語仕様が糞なだけだろ
言語仕様が糞だと使用者も糞な思考になるようだな
iostreamのみのインクルードで printfを使用するのはおかしいな。
918 :
デフォルトの名無しさん :2014/01/13(月) 01:20:41.62
>>917 ごめん
Cで書いたのをそのまま持ってきてしまった
正しくはcout <<; です
919 :
デフォルトの名無しさん :2014/01/13(月) 01:21:32.74
この後で「テーブルをstaticにしたいけど書き方がわかりません」 と言うに一票
>>916 ・
>>912 で書いた問題はprivateであることとは全然関係ない
・ privateな仮想関数は template method パターンとかに有用
以上の根拠よりお前には基本的な教養が欠けていることが判明した。
テンプレートメソッドパターンて protectedじゃないのか?
924 :
デフォルトの名無しさん :2014/01/13(月) 02:04:27.13
結局観なかったけども昨年はあまちゃんって映画のせいで倍返しだ!が流行ってて鬱陶しかった
auto rule = LR"(倍返しは禁止です)";
にゃんぱす!
C++はprivateで、C#がprotectedだったかな
言い直す。 C++はprivateから可能だけど、C#だとエラーになるんでprotected以上が必要。
できるかできないかじゃなくて意味的にはprotected
Base <--- Derived という継承関係でvfunc が仮想関数とする this がDerivedオブジェクトの時、 A this->Base::vfunc(); Base::vfunc が呼ばれる B (this->*&Base::vfunc)(); Derived::vfunc が呼ばれる なんだな。 こういうのはるか昔に一度は覚えたけど、使った覚えがない。
privateな仮想関数がどういうときに有用かはわからなくても、 それを禁止なんかしないのがC++らしさといえよう
>>930 意味を考えればわかりそうだけど
( this -> Base::vfunc )()
仮想を無視した固定の呼び出し
( this ->* &Base::vfunc )() Base
普通の呼び出し。呼び出す関数を&Base::vfuncで指定してみた。
たまたまBase::vfuncが仮想だった。
>>932 意味?シンタックスにどう意味づけするの?
ところで実際に使ったことはある?
>>931 そりゃprivate で virtual なんだろ。意図したとおりに動作する。
「直感と違う意図しない動作を引き起こす」んでなければ制約なんかしないよね。
基本クラスのprivateは見る必要がないと思っていて public関数fを定義したら勝手に仮想関数になりました 意図しない関数が呼ばれました privateに依存するのはおかしいと思います
>>935 ヘッダに見えてるんだよ。
virtualって書いてあるんだよ。
継承して同じ関数名付けたのは自分なんだよ。
それは見えない落とし穴じゃなくてフェンスのない崖なんだ。
>>903 関連: 何と書いたら何が吐き出されるかイメージするんだ
たとえばVCなら、 =0; って書くとそこのvtableには__purecall がセットされる
ついでに、__declspec(novtable)ってのも意識しよう
コンパイルエラーになることを落とし穴と思う人間もいるんだな。
前に.hファイルに静的変数を書く話が出てたと思うんだけど、結局結論がよくわからないままだった。 .hファイルに、e1, e2, e3... という変数があり、その.hファイルをincludeするcppファイルから見せる e1, e2, e3を定義するcppファイルは作らない。.hファイルだけ提供する。 e1, e2, e3は e_space という名前空間に入れる。using namespace e_space; とやると裸でアクセスできる。 異なるcppファイル間での同一性を確保(同一のアドレスをもつ)する ということがしたんだけど、ODR例外を使ってどうやればいいの?
__declspec(selectany) でいいだろ
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;//テンプレートはダミー } }
>>941 整数型とそうでないときの扱いが非対称で気持ち悪い。
型によって初期化の方法が違うしから統一できないのはわかる。
>>941 >hone<int, 2>::s1;
なんで同じs1を使い回すんだよw
e1とe2が同じint型の同じ初期値だったら同じ実体かよ
テンプレート引数が違うのでそれぞれの静的メンバは別の実体
初期値と変数の識別がリンクすべきでないという指摘だろ 別の人が同じ番号使っても衝突するし honeにe1,e2,e3を定義すればよいだけでは?
>>937 ただの仮想関数と実体を持つ純粋仮想関数は
コンパイラがコンパイル時にオブジェクト生成を
許すかどうかの違いだけだと思っていたけれど
vtableの定義が違うものなん?
>>940 >__declspec(selectany)
名前から察するに、extern要らない珍説を唱えた
Qz大勝利ということかな
>>944 ,947
>>941 のは、using namespace e_space; とした場合 e1, e2, e3 を裸で使えるってことじゃん?
honeに直接定義すると、常にhone<int, 1>::e1 とアクセスしなきゃなんない。
>>950 namespace e_space {
namespace {
int& e1 = hone<int>::e1;
int& e2 = hone<int>::e2;
int& e3 = hone<int>::e3;
としない理由が良くわからないのだけれど
それに無名名前空間ならヘッダに書いてもよいのでは
>>948 純粋じゃない場合の仮想関数実体を指すテーブルエントリに何が入ってるかって話。
定義が無いんだから無いなりの何かが入ることになる。読んだ瞬間に死ぬゴミかもしれないし、
特定の関数が呼ばれるようになっているかもしれない。
953 :
941 :2014/01/13(月) 17:51:08.77
954 :
デフォルトの名無しさん :2014/01/13(月) 18:04:28.82
ライブラリはC++で作らないほうがよいとこの間どこかで読んだのですが、何かの冗談ですよね? 便利なクラスをライブラリ化とかよくありますよね?
cでライブラリを書いて、c++でラッパーのライブラリを書きます
Unix方面も狙いたいライブラリならCで書く傾向があるかな まあ最近はそーでもないか
外部ライブラリに依存しないC++でライブラリを書いて extern CでABIを用意し C++のラッパクラス経由でライブラリを操る。
QZ大勝利と聞いてやってきました
>>952 何を言ってるのかさっぱりなんだが
A: 普通の仮想関数(=0の指定無し)
B: 関数実体をもつ純粋仮想関数(=0かつ関数定義あり)
C: 関数定義無しの純粋仮想関数(=0で関数定義無し)
なんでBとAでvtableの内容が違うと言い張るの?
便乗させてもらうが、俺はAとBでどう違いが出るのかわからない。 教えて!
>>960 A(の場合のvtable)を使った関数呼び出しは有効。Bを使った関数呼び出しは無効。
うっかり動いたらそれに依存するコード書く奴が出てくるからエラーにする、とかいう考えはあり得るな。
>>962 便乗だが
>Bを使った関数呼び出しは無効
のソースは?
>>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 は使われない。
さあ面白い展開になってきましたw
>>960 の反応が楽しみです
966 :
960 :2014/01/13(月) 20:55:36.36
>>964 なるほど便利になったでござる
>定義のある純粋仮想関数は x.Abstract::PureVirtual() のようにして呼び出すことが
>できるが、この場合は vtable は使われない。
もっとおしろいレスしろやカス
hoge病人
----hoge.h __declspec(selectany) int global_var; externは要らないということですね
【重要】 hogeは禁止です。使用しないでください。 万が一hogeが書き込まれても、スルーしてください。 相手にするとあなたも荒らしと同じ扱いになります。
2つほどお願いします。 ネットワークなのですが、 select の nfds の値ですが、いくつかSOCKETがあるのですが、 その場合、SOCKETをすべて or で演算した結果を放り込もうとしてます。 概ね誤差が1024前後程度におさまるので大したことにはならないと思うのですが、 何か弊害はあるでしょうか? また boost を導入したいのですが、MinGWだとなぜだか、thread だけ明確にdisabled されているのですが、 なにか原因はありますでしょうか? 宜しくお願いします。
selectで1024は尋常じゃないだろ >thread だけ明確にdisabled されているのですが g++4.8でstd::thread使うとエラーになるアレのことか?
973 :
デフォルトの名無しさん :2014/01/13(月) 22:24:01.90
お前ら成人式の日にまでC++談義かw 年に一回の成人式くらい行けよw
俺なんかマメに年に二回は行ってるよ
cygwin、MinGWを避けて、boostを避けて、c++を避けて 成人式へ行けば良かったなんて日が、このスレの人たちにも来るんだろうか?
前の三つは要らないな
>>972 ちょっと待てよ
gcc4.8のどのビルド使ってんだよ
公式MinGWとかじゃないだろうな
あれは糞だぞ
ライブラリの対応が遅くて
だからライブラリの対応が早いTDMかDistroかMinGW-Buildsを使ってるわけよ
>>973 成人式に行っても絡む友人が居ないからc++で遊んでんだろ
>>978 なんで俺に
昨日ウブンコをインスコしてapt-get upgradeしたら
4.8が入ってthreadが無効になってるとかいうエラーで
つまづいたので聞いてみただけ
回避策探すのに30分ぐらいかかったわ
成人式 ヒキヲタDTの俺には縁がないな 友達同士で楽しそうにつるむ奴に囲まれるとか どんな拷問だよ
よう10年前の俺(´・ω・`)
江●添さんチーッス!
あのとき多態性なんかに浮気しないで、一途にカーネルを追っていたらって思うんだ。
何この流れキモイ
986 :
デフォルトの名無しさん :2014/01/13(月) 23:38:39.42
>>985 まぁいいじゃないか
祝日にc++スレに来てるキモい奴同士仲良くしようぜ
>>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"
だそうです。
調べても適切な解が見当たらないです。
エナブレ
えーマジWindowsでgcc? gccが許されるのは小学生までだよね
>>992 ありがとうございます
ところで、
template<typename T> と
template<> と
template
の違いって何ですか?
よーしパパ、ヘッダーでじゃんじゃんstatic使っちゃうぞ〜
staticおじさん
>>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 あのやり方は各スタティックメンバをどう初期化するかって問題の解決にならないんだよね。
おっとこれだと翻訳単位で量産されますかね。
>>997 は見なかったことにして下さい。。
関数はそれぞれODR例外で一つだから動きそうな いいのかこれ? よくわからない
1000 :
デフォルトの名無しさん :2014/01/14(火) 02:00:16.23
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。