1 名前:デフォルトの名無しさん [2015/07/04(土) 09:38:36.75 ID:G5g709D9.net] C++に関する質問やら話題やらはこちらへどうぞ。 ただし質問の前にはFAQに一通り目を通してください。 IDE (VC++など)などの使い方の質問はその開発環境のスレに お願いします。 前スレ C++相談室 part117 peace.2ch.net/test/read.cgi/tech/1431187685/ このスレもよろしくね。 【初心者歓迎】C/C++室 Ver.96【環境依存OK】 peace.2ch.net/test/read.cgi/tech/1433514467/ 次期規格C++1zはこちら C++14/C++1z 20 peace.2ch.net/test/read.cgi/tech/1410382924/ ■長いソースを貼るときはここへ。■ codepad.org/ ideone.com/
2 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 09:39:35.30 ID:G5g709D9.net] STLつかうと一気に実行ファイルサイズが10倍に?! 環境によるだろ。 俺はBorland-C++5.6.2に -D_RTLDLL オプションを指定して、極力 ランタイムを使用するようにして使っているが、例えばstd::vectorを 使っても使わない時と比べ10Kほどしか増えない すげえ。ダイナミックリンクしといてファイルサイズが増えないとかいってるよ。この人。 C1010: プリコンパイル済みヘッダーの検索中に予期しない EOF を検出しました。 とかいうエラーが出るんだけどこれってどうすればいいの? #include <stdafx.h> 後死ね。 言葉が悪いな。それで教えているつもりか。 まぁヒントぐらいにはなったな。 うむごくろう。
3 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 11:37:16.43 ID:QmGdxaUH.net] >>1 乙
4 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 15:51:15.94 ID:l29Ffi6J.net] >>2 って初めて見た時はたまたま最近>>1 が貼ってるネタの類かと思ってたけど、 このスレを象徴するテンプレ級のレスだったんだな
5 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 15:53:15.74 ID:gjELz4/q.net] >>乙 >>2 のはどういう教訓を引き出すべきテンプレか知らんが 答1とそれへの返レスは両方ズレている希ガス…
6 名前:デフォルトの名無しさん [2015/07/04(土) 18:18:39.67 ID:1ZQW+MUi.net] このスレ風の流れの見本だろ
7 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 22:58:06.56 ID:3xWIqk31.net] template<class T,std::size_t N> std::size_t size(T (&)[N]){return N;} int a[] = {1,2,3,4,5,6}; int b[size(a)]; これってなぜ駄目なの?
8 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 23:11:03.30 ID:G5kv+af4.net] >>7 C++は可変長配列使えんよ ideone.com/QiHdwJ
9 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 23:33:26.60 ID:3xWIqk31.net] #define size(A) (sizeof(A)/sizeof(A[0])) でできました。
10 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 23:44:24.79 ID:USmXgrQ3.net] >>9 最初から分かってて意地悪な質問をしたような感じだな >>7 がなぜ駄目なのか分かったからではなく、>>7 とは無関係に Cでも使う普通の方法を使うのか
11 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 01:06:22.59 ID:IOa8X0/v.net] Cなんて知りません。 C++を使う人が皆Cを知っているという前提で物申さないで下さい。
12 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 01:20:49.80 ID:4iikpGtA.net] vectorの要素が変更されたことを知ることはできますか?
13 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 01:50:42.30 ID:keYQv13L.net] >>12 どこかに元のvectorのコピーを持っておいて、帰ってきたvectorとoperator==で比較するしかない 要素が変更されたのをきっかけにイベントを起こす仕組みはない
14 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 02:36:42.89 ID:lCpYuFEl.net] そういうのが必要ならそういう機能を持ったMyVectorを作るんだな std::vectorをラップしてちょこちょこやればいける
15 名前:デフォルトの名無しさん [2015/07/05(日) 02:59:19.97 ID:18u325sL.net] jbbs.shitaraba.net/bbs/read.cgi/study/2246/1279896594/534 ↑ ↑ ↑ ↑ ↑ ↑
16 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 07:14:45.66 ID:3yF620GD.net] c++ってjavaと違いコンパイラが沢山ありますよね?あれって最適化の違いですか?それとも種類によって使えない文法とかもあるんですか?
17 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 07:19:55.65 ID:9bLmxRef.net] まあ大体最適化のアプローチが多少違う程度だけど、 VCみたいにC++への対応が遅れていて一部使えないコードがあるコンパイラもある また、最適化へのアプローチが違うと言ってもそれが原因でトラブルが起きることも
18 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 08:54:13.26 ID:3yF620GD.net] あとc++で配列を第一級オブジェクトとして扱えないと聞いたんですが具体的にどういうことですか?
19 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 09:19:06.17 ID:WGmLmkq6.net] typedef ratio<1, 1000000000000000000LL
20 名前:> atto; typedef ratio<1, 1000000000000000LL> femto; typedef ratio<1, 1000000000000LL> pico; typedef ratio<1, 1000000000> nano; typedef ratio<1, 1000000> micro; typedef ratio<1, 1000> milli; typedef ratio<1, 100> centi; typedef ratio<1, 10> deci; typedef ratio<10, 1> deca; typedef ratio<100, 1> hecto; typedef ratio<1000, 1> kilo; typedef ratio<1000000, 1> mega; typedef ratio<1000000000, 1> giga; typedef ratio<1000000000000LL, 1> tera; typedef ratio<1000000000000000LL, 1> peta; typedef ratio<1000000000000000000LL, 1> exa; [] [ここ壊れてます]
21 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 09:54:14.20 ID:l0m/aJzY.net] std::this_thread::sleep_for(10'000'000ms);
22 名前:デフォルトの名無しさん [2015/07/05(日) 11:58:54.38 ID:HjOooaLz.net] >>7 ダメじゃない constexprが必要ってだけ template<class T,std::size_t N> constexpr std::size_t size(T (&)[N]){return N;}
23 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 12:22:22.12 ID:LZa0Ka3h.net] 定数式じゃないからだめなんです 回避の一つにconstexprを付けることは否定しませんが ダメなものをダメじゃないと嘘をつかないで下さい
24 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 12:25:55.43 ID:3eXf18pA.net] 付けたらokなんだから否定してるじゃん
25 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 12:50:33.76 ID:hu+N86wf.net] このスレは正解を書いても難癖付けて相手のことを否定するスレだから仕方ないw
26 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 14:00:11.59 ID:AEF6+lq2.net] 『ダメじゃない』 どう見ても肯定です
27 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 14:06:32.37 ID:IoTdVT02.net] 「語るに落ちる」という典型的なパターンだな 要するにアホ
28 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 14:21:17.67 ID:4iikpGtA.net] >>14 ちょこちょこやったらできました。
29 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 14:22:59.10 ID:IoTdVT02.net] でも出来た成果をupする事はできない なぜなら作ってないから
30 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 14:38:35.36 ID:9bLmxRef.net] 全力で喧嘩売るスレに改めた方がいいな
31 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 14:45:43.38 ID:xvHHOED3.net] 2ちゃんの流儀みたいなもんだから不要
32 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 17:23:09.95 ID:Nxm9Jx9p.net] >>28 知りたいならお前がしつもんすれば?
33 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 18:22:16.36 ID:iYOevc7g.net] >>31 誰もお前のクソコードなんか見たくないんだが
34 名前:デフォルトの名無しさん [2015/07/05(日) 18:31:19.17 ID:HjOooaLz.net] 成果が欲しければ、「しつもん」ではなく「発注」でしょ 「ちゃっかり」とか「かっぱらう」誰かさんは違うんだろうけど
35 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 18:42:51.27 ID:pEwkWnHA.net] すいません質問です VisualStudioのlong型なんですがなんで4バイトなんでしょうか (ソース:https://msdn.microsoft.com/ja-jp/library/s3f49ktz.aspx) そのうえ、4バイトなのになぜ-2,147,483,648 〜 2,147,483,647の範囲の数を表せるのでしょうか
36 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 18:44:58.75 ID:iTd7v0y0.net] 4バイトなら表せるだろ? 電卓持ってないのか?
37 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 18:48:28.89 ID:pEwkWnHA.net] >>35 すいません2^32計算したら整数の全体数はあってました intとlong 同じ意味ってことですかこれ
38 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 18:52:57.74 ID:7mm8DvHu.net] >>36 >基本型 (C++) >型のサイズに適用される制限を次の表に示します。 これらの制限は、Microsoft の実装に依存しません。 >long long 型 (または long int) は、int 型のサイズ以上の整数型です。 >Microsoft 固有の仕様 >long、unsigned long 4 バイト https://msdn.microsoft.com/ja-jp/library/cc953fe1.aspx
39 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 18:55:12.73 ID:tUkWE3v6.net] intのサイズ以上であればいんだから intとlongが同じサイズでも問題ない
40 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 18:56:21.55 ID:pEwkWnHA.net] なるほどそういうことだったのですか ありまがとうございます!
41 名前:デフォルトの名無しさん [2015/07/05(日) 18:58:53.82 ID:nANRyZZl.net] longの使いどころってどこ?
42 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 19:01:31.49 ID:tUkWE3v6.net] APIがlongを要求するとき
43 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 19:03:18.80 ID:Nxm9Jx9p.net] >>32 ほんなら、やいやい言わんと、黙っとたらええんちゃうんかい。
44 名前:デフォルトの名無しさん [2015/07/05(日) 19:06:09.45 ID:nANRyZZl.net] >>41 APIがlongを使うのはなんで?そこを聞いてるんだけど脳味噌ないのかな
45 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 19:07:29.76 ID:tUkWE3v6.net] 昔はintのサイズが小さかったからだ 覚えとけ脳たりん
46 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 19:08:41.79 ID:FIM2dQbj.net] ないない
47 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 19:16:32.15 ID:7mm8DvHu.net] 脳みそがない奴に聞かないで、自分で調べて考えれば解決する
48 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 19:36:46.37 ID:iBmrqcDD.net] 自分で調べようともしないノータリン
49 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 20:06:24.85 ID:T15n7zzS.net] >>40 最低でも4バイト必要なとき
50 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 20:07:56.72 ID:WGmLmkq6.net] >>43 こういうやつはなにをやってもダメ
51 名前:デフォルトの名無しさん [2015/07/05(日) 20:08:38.50 ID:HjOooaLz.net] [[noreturn]]
52 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 20:13:27.55 ID:k2LZVqRH.net] longの使いどころは?と言ってるんだから、 自分がライブラリやアプリケーションプログムを作る際にどのうな基準でlongを使うべきかを訊いているのだろう。 >>49 のような脳に障害のある人には難しい日本語だったかも知れないな
53 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 20:21:54.86 ID:9bLmxRef.net] 本当に一言多いスレだな
54 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 20:22:06.00 ID:lO585Fc3.net] >>42 あら図星だったの? じゃないとそんなに火病を起こす理由がないよね?
55 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 21:07:43.37 ID:7Pp47qUu.net] >>51 longの使いどころは互換性維持以外には無い。わかったか? ボンクラ。
56 名前:デフォルトの名無しさん [2015/07/05(日) 21:10:40.68 ID:nANRyZZl.net] ありがとうございました
57 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 21:11:29.45 ID:BPlVlNb9.net] shortより大きい整数型が必要な場合に決まっとるだろう
58 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 21:11:49.14 ID:iTd7v0y0.net] intがあるじゃん
59 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 21:14:46.63 ID:X+1MiY1N.net] ノータリン ボンクラ そう言えば昭和時代にそんな言葉があったな。 強烈なカレー臭がする。
60 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 21:16:43.61 ID:xZ75HXO4.net] stdint.hの必要性がよく分かる
61 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 21:46:04.75 ID:WGmLmkq6.net] >>51 のような人間は言葉や概念を安定して操ることができない。 とにかく安定していない。右に行ったり左に行ったりふらふらする。
62 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 21:52:15.67 ID:xZ75HXO4.net] マジレスするとLLP64でぐぐると出てくるんだけどな
63 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 21:54:46.56 ID:7mm8DvHu.net] 昭和かあ。64kBが広大なメモリ空間だった時代ですね
64 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 21:57:33.19 ID:36tqoR8s.net] このスレいちいち刺すか刺されるかの殺伐とした流れになるのはなんでなんだ?
65 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 21:58:53.16 ID:xZ75HXO4.net] >>63 頭のおかしいのが2、3人住み着いてる 前スレからいる
66 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 22:06:02.49 ID:p6ovyGgT.net] >>57 intがshortより大きいか否かは処理系依存なのでshortより大きい整数として常にintで良いわけではない intは多くの場合「ターゲットのアーキテクチャでもっとも自然に扱える整数」だが 処理系依存であることに変わりは無く、アーキテクチャと処理系を指定しない限り絶対視はできない >>43 APIのユーザーがコンパイラを変えたからといって APIをソースからリビルドさせたくない、という場合は intを使うのは避けて、longとかshortとかで型のサイズを明示する 必要がある
67 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 22:09:19.67 ID:p6ovyGgT.net] もっとも、 >APIのユーザーがコンパイラを変えたからといって >APIをソースからリビルドさせたくない、という場合 にとるべき処置の十分性となるとintのサイズだけでなくてABIも固定されるべき あくまで>>65 のは必要条件、
68 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 22:09:52.18 ID:iTd7v0y0.net] >>65 それ言ったらlongもlong longもダメじゃん
69 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 22:10:16.75 ID:ZhayjidG.net] >longとかshortとかで型のサイズを明示する 21世紀にもなって こんな事言うバカがまだいたとは
70 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 22:12:33.02 ID:7mm8DvHu.net] バカでもいいよ。この議論つまらないと思う。
71 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 22:13:57.39 ID:p6ovyGgT.net] >>67 なんで? longは32 bitと決まっている (2の補数表現を使うか否かは実はC89の規格上は処理系依存だったりするが とにかくサイズは決まっているから処理系が決まっていないのに不用意にintを使うよりは確実な設計とできる
72 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 22:16:12.88 ID:iTd7v0y0.net] >>70 いいえ char ≦ short ≦ int ≦ long ≦ long long と決まっています
73 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 22:17:39.76 ID:tUkWE3v6.net] longが32bitに決まってるならgccはどうなるんだよ gccはCコンパイラじゃありませんーんてか
74 名前:デフォルトの名無しさん [2015/07/05(日) 22:18:25.73 ID:HjOooaLz.net] おまえら何も考えず、とりあえずmpz_class使っとけ 以上でfa
75 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 22:18:26.94 ID:KUYLTxCp.net] 70と71は別に矛盾してないぞ
76 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 22:19:24.18 ID:7mm8DvHu.net] >>70 そのうちintが64ビットのコンパイラが出ると思う。
77 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 22:20:47.70 ID:iTd7v0y0.net] intとlongが同じサイズである可能性があるんだら longを否定できないんならintも否定できない 矛盾してる
78 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 22:26:18.41 ID:70VDGlmK.net] >>75 intが2バイトとか4バイトとか8バイトとか気にしないといけないc、c++ってめんどくさい。もうこの際intは16バイトにしてしまえばいい。この先20年は持つだろう。そして文字コードも16バイトにすれば、真のunicodeが実現出来るだろ。
79 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 22:33:26.19 ID:vErDTdf8.net] intの気になる理由は? 1.intが16ビットだとオーバーフローする →それは仕方ないな。気にすると禿げるぞ 2.サイズ変わったら困るだろ →お前のコードが糞なだけ
80 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 22:41:38.28 ID:p6ovyGgT.net] いやスマンたしかにlongが32 bitとは限らないっぽい ISO/IEC 14882:2011の"3.9.1 Fundamental types”のやつ: >There are five standard signed integer types : “signed char”, “short int”, “int”, “long int”, and “long >long int”. In this list, each type provides at least as much storage as those preceding it in the list. >There may also be implementation-defined extended signed integer types. The standard and extended signed >integer types are collectively called signed integer types. Plain ints have the natural size suggested by the >architecture of the execution environment44; the other signed integer types are provided to meet special >needs. (この後にunsignedの記述があるが同様なので略 型のサイズの順序は>>71 の通り。 APIをintで規定するかshortやlongを使うかはAPI設計者の気まぐれで決めていいってことらしい で、APIが決まったら呼び出す側はABIレベルでそれに合わせなければ動かないので >2.サイズ変わったら困るだろ という状況は往々にして発生する、
81 名前:デフォルトの名無しさん [2015/07/05(日) 22:42:14.82 ID:HjOooaLz.net] >>75 docs.cray.com/books/004-2179-001/html-004-2179-001/rvc5mrwh.html
82 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 22:49:26.99 ID:X6bGJd3k.net] >>79 ISO/IEC 14882:2011は廃版となった文書で現在有効な版ではありません 有効ではない文書を持ち出さないで下さい
83 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 22:55:03.29 ID:X+1MiY1N.net] >>79 は4バイト固定のAPIでvoid f(int*)とかvoid f(long*)とか書いてるの? 馬鹿なの?死ぬの?
84 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 22:59:30.40 ID:GVA9tcoa.net] 間違ったことをドヤ顔で語り、指摘されると誰もが知っている常識をひっぱり出してきてドヤ顔をし 自分の発想力のなさをドヤ顔で語る。救いようがないですね。
85 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 23:00:36.63 ID:p6ovyGgT.net] >>81 ようわからんがISO/IEC 14882:2014は有料っぽい 手元に無い >>82 APIのユーザーなのでAPIの仕様とかヘッダファイルといったものに従うYO〜ヽ(´ー`)ノ
86 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 23:36:01.47 ID:uqg5FaOT.net] 何かbreakが正しくありません。って言うエラーがかなり出るんだけど。サンプルソースコピペでも。 IDEはMVS2013使ってる。
87 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 23:37:49.50 ID:HWgaAZQC.net] チラシの裏の日記は遠慮願おう ここはお前のつぶやきクソレスを投下する場所じゃない
88 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 23:39:36.86 ID:uqg5FaOT.net] 問題のソース #include "DxLib.h" int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPInst, LPSTR pCmdLine, int showCmd){ ChangeWindowMode(TRUE);//ウィンドウモード /*DXライブラリ初期化*/ if (DxLib_Init() == -1)return -1; SetDrawScreen(DX_SCREEN_BACK);//裏画面に描画する設定 int handle = LoadGraph("test.png");//画像読み込み while (true){ if (ClearDrawScreen() != 0) break;//画面消去。×が押されたら終了 /*処理開始*/ DrawGraph(0, 0, handle, TRUE); /*処理終了*/ ScreenFlip();//裏画面を表画面に表示 if (ProcessMessage() != 0) break;//×が押されたら終了 } DxLib_End(); // DXライブラリ使用の終了処理 return 0; // ソフトの終了 }
89 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 23:52:50.94 ID:X+1MiY1N.net] >>87 コミュ障アスペはツイッターでつぶやいてた方がいい。
90 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 23:57:02.70 ID:rJa9PlHM.net] >>87 やーいアスペ(´・ω・`)
91 名前:デフォルトの名無しさん [2015/07/06(月) 00:00:51.94 ID:wXTEEwMe.net] >>89 やーいカナー
92 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 00:08:19.10 ID:EWqBVBeG.net] IDE再起動したら何故かエラー出なくなりました。
93 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 05:23:24.61 ID:/2XvxtWm.net] iyo.jpn.ph/psobb/ プログラミングばかりじゃなくてたまにはネトゲもやりな
94 名前:デフォルトの名無しさん [2015/07/06(月) 06:56:52.03 ID:HQEeqqbB.net] >>91 どういたしまして
95 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 14:08:37.47 ID:KifmszY9.net] intのサイズがどうとか、規格がどうとか言う奴って決まって仕事できないよな。
96 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 15:21:40.18 ID:obJwiAn/.net] >>94 働く場所によるかな こだわる人はお役所仕事に向いてる
97 名前:デフォルトの名無しさん [2015/07/06(月) 15:43:43.15 ID:wXTEEwMe.net] >>94 なるほど、おまえが言うと説得力すごいなw
98 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 19:23:23.80 ID:XVuvh5SP.net] 今日もゴロツキ同士のいちゃもんのつけ合いが熱い
99 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 19:29:22.82 ID:zKW
] [ここ壊れてます]
100 名前:cKKso.net mailto: 規格を軽視するやつはクロスプラットフォームで動くソースを書けないイメージ [] [ここ壊れてます]
101 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 19:33:12.64 ID:6JtYBPJH.net] 書けないと言うより 「ボクの環境では動いたんだもん!」 です。
102 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 20:10:03.27 ID:mF5KS667.net] 規格なんかどうでもいいとか言ってる奴はどうせVSしか使ってないんだろ
103 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 20:10:45.49 ID:FfofpD2W.net] ビッグエンディアンを完全に無視したキャストとかはするね
104 名前:デフォルトの名無しさん [2015/07/06(月) 21:51:58.54 ID:wXTEEwMe.net] >>101 キャストにエンディアンは関係するか?
105 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 21:57:23.34 ID:LeTT1hT8.net] もろちん。
106 名前:デフォルトの名無しさん [2015/07/06(月) 22:08:04.06 ID:wXTEEwMe.net] long unko = 0x12345678; short* legs; legs = (short *)&unko; if(*legs == 0x1234) { こういうことするってか? }
107 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 23:12:03.49 ID:6TyMU/GS.net] 規格、規格言ってる奴って、数十行程度のものしか書いたことことがない奴が多いよな。
108 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 00:02:14.63 ID:KY4bh5nL.net] それは同意しかねるな
109 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 00:06:45.01 ID:HrqpQBKo.net] >>105 お前禿をディスってんの?
110 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 00:14:55.44 ID:5sz5+104.net] >>104 解ってて書いてるのかもしれんがstrict aliasing ruleで未定義動作
111 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 07:28:16.85 ID:kwUNJVp6.net] この無限ループ、一体いつまで続くんだろう
112 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 07:28:48.85 ID:j2UeKJHs.net] いや禿クラスになるとちょう賢いマクロを数十行書いてCFront一丁上がり、 ぐらいとかじゃないの
113 名前:デフォルトの名無しさん [2015/07/07(火) 07:32:35.11 ID:V0LXAxWh.net] 別にループしてないだろ 一人だけ飛び抜けたバカが一つ覚えの煽りをぶつぶつ言ってるだけで
114 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 07:33:04.88 ID:Lcbl26q7.net] >>108 は会話のできないアスペ
115 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 07:50:15.06 ID:5sz5+104.net] char以外の型のポインタを他のchar以外の型にcastする癖付けない方がいいぞ Debugビルドだとちゃんと動くんだけどReleaseビルドだと動かないって事になる
116 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 07:53:49.92 ID:3TtiP8pN.net] この世の全ての人がVisual C++を使っているという前提でレスすんなボケ
117 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 07:56:38.13 ID:5sz5+104.net] >>114 誰に言ってんの?
118 名前:デフォルトの名無しさん [2015/07/07(火) 08:40:39.16 ID:V0LXAxWh.net] Releaseビルドで通じない坊やは引っ込んでてね
119 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 16:29:52.07 ID:LVu0aBhB.net] 話を蒸し返して悪いが一応 unsigned long が2^32-1以上あることは保証されてるのね
120 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 17:45:43.48 ID:PteeYs0T.net] >>117 29以上を保証とか何の冗談か unsigned longは4'294'967'295が表現できることが保証されている
121 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 18:20:58.42 ID:VUtcYV9e.net] >>116 俺用語を説明無く使う低能は引っ込んでて下さい スレが汚れます
122 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 18:48:55.47 ID:fH4ebICw.net] c++って自分より下にある関数はプロトタイプ宣言しないと使えないのかよ。
123 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 18:49:12.72 ID:4Dd6qTUR.net] Cもそうだよ
124 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 18:51:01.54 ID:fH4ebICw.net] javaに比べると色々面倒。c#はどうなんだろうか?
125 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 18:51:50.21 ID:4Dd6qTUR.net] C#は無くても使える
126 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 18:52:13.81 ID:+MACP1k1.net] めんどうだったらメンバ関数にすりゃええねん
127 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 18:56:54.25 ID:fH4ebICw.net] ランタイム必要なくてexeを公式で作成できたらjavaがかなりいいのに。 ランタイムのインストールが原因で一般公開用デスクトップアプリケーション作ってもあれだし。
128 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 19:03:59.77 ID:b3eSLhoQ.net] >>125 J2C
129 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 19:10:05.41 ID:4Dd6qTUR.net] >>125 sunが文句言わなければjavaがランタイムなしで動いたかもな
130 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 19:14:16.40 ID:CmuTGJh9.net] pemakeやcmakeでも普通に使われてる用語を俺用語て
131 名前:デフォルトの名無しさん [2015/07/07(火) 20:39:38.70 ID:V0LXAxWh.net] >>128 マジになるなよ かわいそうだろ
132 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 21:27:48.88 ID:3sOsoiob.net] >>120 そんなことないですよ struct unko { auto f() { this->g(); } void g() {} };
133 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 23:03:13.50 ID:fH4ebICw.net] コンストラクタの先頭でthis();ってできないの?
134 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 23:05:16.66 ID:4Dd6qTUR.net] (*this)()ならできるんじゃね
135 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 23:53:57.99 ID:Cqe/2PN/.net] おちんちんの先端で->*ってできないの?
136 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 23:58:36.94 ID:oR9xV2kd.net] C/C++からheaderファイルが不要になれば、C/C++プログラマーの生産性は倍くらい向上するだろうなあ。
137 名前:デフォルトの名無しさん [2015/07/08(水) 00:00:30.59 ID:GN6CG05m.net] ただしビルドで死ぬ
138 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 00:12:19.54 ID:ac7mf5QU.net] >>128 XCodeでも普通につかわれてるしな VC++以外はコンパイラ直接使って1行で出来るようなビルドしかしたことないんだろうよ
139 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 07:14:21.66 ID:DSOQ/tPy.net] >>134 テンプレートでメタプログラミングしてる種族の生産性が壊滅する 彼らにJavaやC#でい`と言ったら死ぬ C++のテンプレートに関しては、分割コンパイルすら人類は成功していない (ごく一部に実装が存在するが、複雑になりすぎたのか何かで普及には至っていない 最新のC++規格にもあるのか知らんが、exportキーワードはその名残 ヘッダファイル有理
140 名前:デフォルトの名無しさん [2015/07/08(水) 07:46:57.82 ID:9UDndsjQ.net] >>134 クラス定義がどんなスコープを持つことになれば生産性が向上すると思う?
141 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 20:00:10.55 ID:5560VoR0.net] >>137 >人類は成功していない >存在するが (中略) 普及には至っていない へー、で、どっちなの
142 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 20:09:00.29 ID:5560VoR0.net] >>131 クラス名() と書けばできる
143 名前:デフォルトの名無しさん [2015/07/08(水) 21:14:04.20 ID:9UDndsjQ.net] >>132 それは operator()() にしかならんぞ
144 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 21:45:32.60 ID:DSOQ/tPy.net] テンプレートの分割コンパイルの話、 ttp://cpplover.blogspot.jp/2013/12/odr.html
145 名前:デフォルトの名無しさん [2015/07/08(水) 22:16:59.64 ID:9UDndsjQ.net] 第二のtentativeだね
146 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 23:38:23.42 ID:DWS04a/X.net] 俺、C++ほとんどわからんから聞くけど、 Cなら、普通にヘッダ(.h)と実装(.c)に分けるけど C++でテンプレート使ったのってヘッダ(.h)と実装(.cpp)って分けないのか? 分けないで、全てヘッダ(.h)に書くのが常識?
147 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 23:40:10.81 ID:NfKsq5Yv.net] 常識
148 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 23:41:05.66 ID:C7UKQtvB.net] >>144 実体化のタイミングがわからなければそれが無難
149 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 23:50:17.97 ID:ubVhJlyJ.net] >>144 仕事でやってるけどおおまかにクラスつくるときとかはCと同じくcppに実装してるよ 数行で終わるgetterとかsetterならそのままヘッダに書いてもOK
150 名前:デフォルトの名無しさん [2015/07/09(木) 00:22:18.69 ID:vNs+rDa3.net] >>147 テンプレート使ってと書いてあるが?
151 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 00:39:03.48 ID:0cZHnh39.net] 使い方しだいじゃねーの? complex<double>みたいなのだったら ライブラリ提供者が実体化してやってもいいだろうし、 tupleみたいなのだったら無理だし
152 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 02:47:38.02 ID:KuBEloYJ.net] ちょっと聞きたいのですがよろしくおねがいします。 class Human{
153 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 03:18:00.26 ID:ZAdtCeGT.net] };
154 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 07:42:58.50 ID:fXPNF1O6.net] // 実体は秘密です // Tがfloat ,double以外だとリンクエラーになります(^^) template<typename T> T sper_transform(T);
155 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 17:54:52.12 ID:cE1ZmiC1.net] 引数で抽出クラスを受け取る事はできますか? javaなら例えば引数でListインターフェ-スを受け取るようにしArrayListでもLinkedListでも受け取るようにすることができますがc++では純粋仮想関数を含む抽出クラスを引数で受け取ろうとするとエラーになります。
156 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 18:00:12.88 ID:deXGtrLg.net] ちゃんとポインタ変数で受け取るようにしてるか?
157 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 18:04:59.89 ID:VxETAF0f.net] 抽出クラスじゃなくて抽象クラスじゃないか
158 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 18:22:20.70 ID:cE1ZmiC1.net] >>154 ポインタじゃないといけないの忘れてた。 javaだと基本データ型以外は全て参照だからつい忘れてしまう。 >>155 恥ずかしい・・・間違って覚えてた。
159 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 18:32:38.46 ID:4uSMepiF.net] 参照になるものならないもの、って区別は有用なの?
160 名前:デフォルトの名無しさん [2015/07/09(木) 18:55:34.70 ID:f4LCPN1X.net] 抽象クラスのテンポラリを要求する文脈はNGだろ
161 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 18:56:13.48 ID:cE1ZmiC1.net] >>140 抽象クラスなのでできません
162 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 22:16:12.21 ID:hqeOwCaH.net] >>159 何の問題も無いようだが struct unko { unko(){} unko(int) : unko() {} virtual void f() = 0; };
163 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 22:18:31.65 ID:G8eHbxF5.net] 参照で受けても問題なく動くはずだが
164 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 22:27:02.80 ID:X2gXpyuo.net] このスレの特徴的な、噛み合わないレスの応酬
165 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 22:45:17.36 ID:cE1ZmiC1.net] >>160 struct unko { unko(){} unko(int){ unko(); } virtual void f() = 0; }; と思っていました。定数の初期化と同じように書くんですね。
166 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 23:19:55.82 ID:qxOKYccv.net] >>145-146 アリがトン。
167 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 00:32:28.35 ID:fqxu7G37.net] //グローバル変数 ClassA a; ClassB b; void funcA(){ a = ClassA(1); b = ClassB(2); } funcAを呼んだ時にClassA()で生成されたインスタンスが解放されてからClassB()が呼ばれる保証ってあるのでしょうか? 環境によってはfuncAが終了するときにまとめて解放されるということもあるのでしょうか?
168 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 00:41:19.73 ID:ScSjzKiE.net] 「ClassA()で生成されたインスタンス」って一時オブジェクトのことを言ってるの?
169 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 00:41:49.21 ID:Vu40u84A.net] >>165 > funcAを呼んだ時にClassA()で生成されたインスタンスが解放されてからClassB()が呼ばれる保証ってあるのでしょうか? あるよ。 > 環境によってはfuncAが終了するときにまとめて解放されるということもあるのでしょうか? ないよ。 12.2 [class.temporary] p3 > ... Temporary objects are destroyed as the last step > in evaluating the full-expression (1.9) that (lexically) contains > the point where they were created. ...
170 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 02:46:38.83 ID:umpdDMDJ.net] 関数の引数でポインタと参照を使うのって、書き方以外になにか違いって出るの? 一応呼出元の見た目で分かるから関数内部で変更するものはポインタ受け取って、 変更しないものはconst参照で受け取るようにしてるんだけど。
171 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 03:12:31.04 ID:9iV+XuX6.net] ゲームのオンラインランキング機能であるPHPにURL引数を送信したいのですがjavaのように高レベルなネットワーク関数は
172 名前:ないのでしょうか? [] [ここ壊れてます]
173 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 03:17:03.39 ID:28a5Cf3U.net] ありません
174 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 03:44:10.53 ID:DCa/3nZ3.net] wininet winhttp
175 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 04:55:37.28 ID:of7j/nXD.net] >>168 参照はnullを受け付けない 参照を受け取る側は領域開放の責務を負うことがない 参照は「次の参照」や「前の参照」の存在を想定しない
176 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 06:39:51.57 ID:D243EEr/.net] >>165 ClassA() などという記述は存在しませんが何を言っているのですか
177 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 06:41:23.02 ID:D243EEr/.net] >>172 nullとは何ですか 脳内用語を使わないで下さい
178 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 07:11:12.48 ID:BJKUYG8c.net] ガッ!
179 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 08:50:14.65 ID:1RZQ9b8R.net] >>166 そういうことです >>167 ありがとうございます
180 名前:デフォルトの名無しさん [2015/07/10(金) 08:53:56.55 ID:TdNPXwtE.net] どういたしまして
181 名前:デフォルトの名無しさん [2015/07/10(金) 09:08:54.96 ID:99yaLJY4.net] void hage(int&); void hoge(int* ptr = nullptr) { hage(*ptr); }
182 名前:デフォルトの名無しさん [2015/07/10(金) 12:26:24.39 ID:G6Ce1pVX.net] int *は値の読み書きができるということは int*のoperator*は intじゃなくてint&型を返すということですか?
183 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 12:40:13.90 ID:HCOP/Ozo.net] >>179 違う。 型:int (int*ではない) 値のカテゴリー:左辺値
184 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 12:42:17.77 ID:HCOP/Ozo.net] ちょっと訂正 型:int (int&ではない) 値のカテゴリー:左辺値
185 名前:デフォルトの名無しさん [2015/07/10(金) 12:54:51.81 ID:G6Ce1pVX.net] ポインターはフォアワードイテレーターでもあり フォアワードイテレーターの戻り値の型はT&なんです
186 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 13:14:29.60 ID:VQFJkr0h.net] >>182 ポインターがフォアワードイテレーターであるというソースは?
187 名前:デフォルトの名無しさん [2015/07/10(金) 14:08:19.38 ID:99yaLJY4.net] >>183 24.2.1 In general のパラグラフ2あたりじゃね?
188 名前:183 mailto:sage [2015/07/10(金) 15:00:37.96 ID:vs0Lih+Y.net] >>184 「イテレーターのセマンティクスはポインターの殆どのセマンティクスを一般化するもの これによりイテレーターを受け取る関数テンプレートはポインターでも動く」 と超意訳で読みとったけどポインターがフォワードイテレーターである保証になってなくない? 少なくとも24.2.2のTable 106の戻り値のセマンティクス(戻りの型が参照)に反する
189 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 15:22:44.62 ID:5MMAFF1O.net] enumてstaticとか付けなくてもいいのでしょうか インスタンス生成ごとにenumも生成されているのではないかと心配です
190 名前:デフォルトの名無しさん [2015/07/10(金) 15:52:53.72 ID:99yaLJY4.net] >>185 ++rがlvalueを返すって書いてあるな ということは++r++が通るのか すっげー変だけど
191 名前:デフォルトの名無しさん [2015/07/10(金) 15:53:21.71 ID:99yaLJY4.net] あ、違う ++++r
192 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 15:55:39.62 ID:s2VLkszy.net] enumの宣言にstaticなんて付けられないよ enumの性格を考えれば「インスタンスごとに生成される」なんて意味不明だろ enum型の変数であればインスタンスごとに生成されるし、必要であればstatic付けられるけど
193 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 15:58:23.16 ID:umpdDMDJ.net] >>172 なるほど じゃあ必要なければ参照を使う方が良いのかな
194 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 16:02:49.09 ID:A0a/W1Ov.net] >>187 ほうほう、それは規格のどこの何行目に書いてあるのですか
195 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 16:27:23.59 ID:ZYjvDCYH.net] enum classとenum structは同じですか?
196 名前:デフォルトの名無しさん [2015/07/10(金) 16:35:11.06 ID:G6Ce1pVX.net] traitsの型はtraitsクラスでまとめてあるけれど これをusingを使ってtypenameを付けなくていいように バラバラにするのはよくないことですか?
197 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 17:20:33.61 ID:9iV+XuX6.net] PC用ゲームならc++よりc#のほうがいいのかな?一週間c++してみたけど難しい。。 ただ将来の事を考えるとc++も勉強しておいたほうがいいし。
198 名前:デフォルトの名無しさん [2015/07/10(金) 18:00:18.67 ID:99yaLJY4.net] >>191 24.2.2のTable 106
199 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 19:45:39.21 ID:s2VLkszy.net] ここはややこしいところだけど ++iはlvalue i++はrvalue ++i++は優先度により++(i++)と同じで許されない (++i)++は許される どうしてそうなるかはググってみて
200 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 19:46:13.73 ID:sTUHS+6h.net] >>195 『++r』『Return type』『X&』 どこにもlvalueを返すなとど書かれていないのですが 文盲ですかそれとも左辺値と参照の区別がついていないのですか
201 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 20:06:57.22 ID:s2VLkszy.net] ++iがlvalueだって書かれてるのは5.3.2-1だよ
202 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 20:27:35.36 ID:5MMAFF1O.net] そんなわかりにくいコード書いて混乱させる奴は無能
203 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 21:07:55.01 ID:lXMOVUZF.net] >>186 みたいな質問するやつがわかりにくいって言ってもな…
204 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 21:09:39.79 ID:8F/yuAYp.net] 発言者のレベルでなく発言内容で語れよ低能
205 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 21:51:17.30 ID:K4glOt0x.net] >>198 んなこたー誰でも知っている × ++r は左辺値を返す ○ 式 ++r は左辺値である
206 名前:デフォルトの名無しさん [2015/07/10(金) 22:00:44.39 ID:99yaLJY4.net] >>197 X& を何という?
207 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 22:21:54.56 ID:B8Qq+pYN.net] このスレ、いきなり飛び出して噛みついてくる野犬が数匹出るから…
208 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 22:31:42.01 ID:HCOP/Ozo.net] だがそれがいいw
209 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 23:58:16.18 ID:zGDdAzP5.net] >>203 おまえのオツムでは int&& r = 0; std::move( r ); の2回目のrがint&になってしまうんだろうな 右辺値参照型の左辺値だぞ
210 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 00:18:35.11 ID:D8ydCTaI.net] >>193 template<typename T> struct my_traits { using value_type = T; using pointer_type = T *; }; ↓ これのこと? template<typename T> using my_value_t = typename my_traits<T>::value_type; template<typename T> using my_pointer_t = typename my_traits<T>::pointer_type; たくさん書くのは気分的に気持ち悪いが 関数内とか局所的に使うならアリかも知れない。
211 名前:デフォルトの名無しさん [2015/07/11(土) 00:39:53.43 ID:uVdwPrZl.net] >>206 質問に答えてね
212 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 01:08:06.06 ID:LG4oyu+6.net] static enum type {A, B, C} g; enum定義と変数の宣言を同時に行う文法がクソすぎ 間違えやすいだろ
213 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 01:22:30.98 ID:Cjelx8CW.net] それ使うときはtypeは書かないな
214 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 08:24:53.54 ID:7t+v17HQ.net] >>210 お前の馬鹿さを自慢されても
215 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 08:34:12.46 ID:pX7vv4D2.net] >>211 どうしたん? 大丈夫?
216 名前:デフォルトの名無しさん [2015/07/11(土) 08:35:23.91 ID:uVdwPrZl.net] type だけじゃなく static も書かないだろ g の存在期間を static にする必要性がある特殊な場面ならともかく
217 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 08:56:58.71 ID:UVKLlR0j.net] >>213 日本語も読めない池沼は帰って オナニーでもしてろよ
218 名前:デフォルトの名無しさん [2015/07/11(土) 09:58:36.19 ID:uVdwPrZl.net] 214=211
219 名前:デフォルトの名無しさん [2015/07/11(土) 09:59:09.02 ID:qG2jeSuO.net] バトルプログラマータナカによると、同時に宣言できると3秒短縮できます。
220 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 11:27:22.29 ID:YV9UXyxm.net] バトルプログラマーシラセしか知らない
221 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 12:46:56.14 ID:W1ayzlr1.net] その副次的効果として>>186 のようなレスが生み出された
222 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 12:52:13.58 ID:2karzrOj.net] 勝手に逆ギレする>>209 みたいのは放置 型と変数を同時に宣言できるのはclassやstructだって同じなんだが知らないみたいだなw 俺もこれをやるときは型名はつけないな 型名付けるなら別々に宣言する
223 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 13:15:29.71 ID:iS7jybTT.net] >>219 おめー、頭悪いぞ。 同様なclassやstructがクソじゃないとは誰も言っていない。
224 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 13:21:11.96 ID:W1ayzlr1.net] 「文法クソすぎ」 「おれは別に宣言する(放置したつもりドャッ)」 こういうことです
225 名前:デフォルトの名無しさん [2015/07/11(土) 13:33:33.15 ID:HDTdm+Tv.net] >>220 219は型と変数を同時に宣言するのはヘボ臭いと言っているだけで classやstructやお前の頭がクソかどうかは問題にしてない それを勘違いして報復攻撃してる誰かさんの頭が悪いのは確かそうだが
226 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 13:43:58.10 ID:2karzrOj.net] >>222 いやちょっと違う 俺だって型と変数を同時に宣言することはあるけど、それはわざわざ型名を 付けるのがクドいと感じる様な場合 それが出来るのがC/C++の良い所の一つだと思う >>221 放置できなくてごめんなさいね総括厨さん
227 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 13:52:53.44 ID:CwoQBM67.net] レスの内容について指摘をされると 自分の人格者を攻撃されたと錯覚して 攻撃された!と宣うのがチョンの思考パターン こういう人はマトモな議論ができませんね
228 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 14:14:05.19 ID:Zdz7Qars.net] Cで型の定義と変数の宣言を同時にできるのは ダム端末でも編集しやすいようにという配慮 かどうかは知らんが何か裏事情があったのでは、と思う
229 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 14:54:05.81 ID:XTEF7nLK.net] くっせぇなぁそれにしてもこのうんこ
230 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 15:05:36.35 ID:iS7jybTT.net] >>222 「だけ」ではなくて > 型と変数を同時に宣言できるのはclassやstructだって同じなんだが知らないみたいだなw とも、言ってるぞ。バカには見えないのか?
231 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 15:27:49.78 ID:iW45GXJ2.net] 無名のクラスや共用体は定義と同時に宣言できないと困るな
232 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 16:21:00.01 ID:Zdz7Qars.net] 困るっけ? 少なくともC89以降は構造体 or 共用体タグ名も型名も定義したスコープ内のみで有効だから 無名にせねばならないシチュエーションがもはや無いのでは… K&Rの頃のは知らん
233 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 16:31:51.26 ID:iS7jybTT.net] 名前考えるの面倒だろ。特に入れ子になってるのとか。
234 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 16:39:50.19 ID:OROQmvPq.net] それよりボイラープレートなコード書くのがメンドいんだけど 記述をもっと減らせ
235 名前:ないかね =defaultみたいな [] [ここ壊れてます]
236 名前:デフォルトの名無しさん [2015/07/11(土) 16:50:39.31 ID:HDTdm+Tv.net] そういえば無名の共用体がC11にもないね 頑なに拒む理由でもあるのかね
237 名前:デフォルトの名無しさん [2015/07/11(土) 17:46:14.11 ID:ZUJOyZ+W.net] en.cppreference.com/w/cpp/concept これはなんのためにあるのでありんすか?
238 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 20:04:46.34 ID:OROQmvPq.net] >>232 そうなの? ISO/IEC 9899:2011の6.7.2.1でidentifierがoptになっているので 無名共用体はありかと思っていたが
239 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 20:36:23.13 ID:2karzrOj.net] 少なくとも手持ちのGCC(4.9.2)では--std=c++11か--std=c++14なら 無名共用体は問題なく通るよ --std付けないとstatic無しの無名class、union変数はwarningが出る
240 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 20:36:31.28 ID:iS7jybTT.net] >>234 それじゃ無いから。わからないなら参加しなくて良い。
241 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 20:44:28.77 ID:2karzrOj.net] >>236 なんで「それじゃ無い」なの?わかってないのはお前さんでは? www.buildinsider.net/language/clang/03 en.cppreference.com/w/c/language/union
242 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 20:50:51.96 ID:iS7jybTT.net] >>237 c11に無名共用体が無いとは言ってない。 >>234 が違うと言っている。
243 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 20:52:57.86 ID:Xgowho1I.net] その後、>>236 から「ボクの考える無名共用体とは何か」 が説明されることは無いのであった。
244 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 21:00:34.40 ID:iS7jybTT.net] >>239 教えてやろうか? 構造体や共用体のタグが省略されたもの > identifierがoptになっているので が匿名構造体/共用体で、これはずーっと以前からある。 An unnamed member whose type specifier is a structure specifier with no tag is called an anonymous structure; an unnamed member whose type specifier is a union specifier with no tag is called an anonymous union. The members of an anonymous structure or union are considered to be members of the containing structure or union. This applies recursively if the containing structure or union is also anonymous.
245 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 21:05:09.12 ID:iS7jybTT.net] 貼り付けた英語の部分が無名メンバーでC11から入った。 これを無名共用体と説明してる場合が多い。 >>237 のリンク先とか。 元はMSの拡張でMS用語では無名共用体と呼ばれてた気がする。多分これを使ってるのだろう。ソースは探してくれ。
246 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 21:07:13.16 ID:2karzrOj.net] >>238 何言ってるんだか >>232 はC11の事を話していて>>234 は完全に正しいだろ
247 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 21:08:17.20 ID:iS7jybTT.net] 頭悪いID:2karzrOjは理解できましたか?
248 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 21:20:00.58 ID:Xgowho1I.net] >>243 232の意図したものが無名メンバーの話であると決めつけた根拠は? おまえの説明だと無名の型名も無名メンバー名もC11に有るんだろう?
249 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 21:22:43.10 ID:iS7jybTT.net] >>242 > ISO/IEC 9899:2011の6.7.2.1でidentifierがoptになっているので に、該当するのは、 struct-or-union identifier opt { struct-declaration-list } しかなくて、それはタグ名が省略された匿名構造体/共用体の事なのだよ。それはC99にはあった。多分K&Rの頃からある。 お前はC11で強化されたと>>237 でリンクしたんだろ。矛盾してるぞ。 お前頭悪いんだから後10年ROMってろ。
250 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 21:29:46.81 ID:iS7jybTT.net] >>244 C99以前からある匿名構造体を「無いね」などと言い出すバカはそんなに多く無い。 存在するとしたら、かなり頭が悪い事が判明してるID:2karzrOjと、 こんな簡単な推論も出来無いお前くらいだよ。
251 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 21:31:16.17 ID:FdAid2Wa.net] 君ら、百済無い議論する暇が或るん奈良、 プログラム書けよ。だからプログラミング能力が上達せず煮、百済無い議論に明け暮れるんだよ。
252 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 21:38:38.09 ID:D8ydCTaI.net] >>246 C11で強化された機能を「C11にない」「頑なに拒む」と言う人はもっと少ないだろ 推論になってないぞアスペなの?
253 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 21:44:00.67 ID:2karzrOj.net] >>245 なんか無闇に混乱してるな 頭悪い連呼するよりも御自分の頭の心配したほうがいいんじゃないか >>232 は「無名の共用体」って書いてるんだが?
254 名前: ◆QZaw55cn4c mailto:sage [2015/07/11(土) 21:44:13.63 ID:JDB4xEHW.net] C++11 で何が強化されたの?
255 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 22:07:56.81 ID:Zdz7Qars.net] ちょっと待って欲しい>>245 のは単なる構造体タグの省略であって、無名共用体(構造体)では無いのでは… もちろんそんなのはK&Rからできてる 無名共用体(構造体)っていうのはこんな奴。 struct tagFoo { union tagBar { int x; int y; }; // <-- ここに何も無い int z; }; で、 struct tagFoo foo; foo.x = 10; と書けたらいいナア、みたいな、
256 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 22:15:09.60 ID:iS7jybTT.net] >>251 オレが言い出したんじゃねーよ。>>234 が言い出した > ISO/IEC 9899:2011の6.7.2.1でidentifierがoptになっているので > 無名共用体はありかと思っていたが が>>245 の事。 だらか、知らないなら引っ込んでろと言った(>>236 )
257 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 22:15:50.35 ID:2karzrOj.net] ああ確かに>>232 に対するレスとしての>>234 の「ISO/IEC 9899:2011の6.7.2.1でidentifierがoptになっている」は変だね それは認める 「無名共用体」って言葉が曖昧なのがあるけど www.buildinsider.net/language/clang/03 ”「無名」という言葉は、構造体/unionの識別子(いわゆるタグ名)が省略されていること(リスト1の(1))、メンバー名が省略されていること(リスト1の(2))の両方を指している。”
258 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 22:22:27.55 ID:2karzrOj.net] 234は「ISO/IEC 9899:2011の6.7.2.1ではidentifierの省略も無名メンバも許されてる」とか書けば 良かったんだな
259 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 22:23:08.33 ID:iS7jybTT.net] >>249 お前バカなんだから後10年ROMってろ。 > >>232 は「無名の共用体」って書いてるんだが? 「無名の共用体」はMSの用語だと言っただろ。 確認で出来るだけでVS2003には既にある。もっと前からあったはず。 https://msdn.microsoft.com/library/y9zewe0d(v=vs.71).aspx struct str { int a, b; union / * Unnamed union */ <==== 無名の共用体 { char c[4]; long l; float f; }; char c_array[10]; } my_str; my_str.l == 0L; /* A reference to a field in the my_str union */
260 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 22:29:05.80 ID:2karzrOj.net] >>255 ずいぶんいきり立ってるけど>>232 は「無名の共用体」がMS用語だなんて書いてないし その意味での無名の共用体はC11から認められたというのは本当だし
261 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 22:33:06.20 ID:iS7jybTT.net] >>253 そんなどこの馬の骨かわからん奴の「ボクの考える無名共用体とは何か」by >>239 を根拠にすんな。 > ああ確かに>>232 に対するレスとしての>>>234 の「ISO/IEC 9899:2011の6.7.2.1でidentifierがoptになっている」は変だね > それは認める これを認めるなら、これまでのお前のおバカ発言も全部撤回ってことだな。 自分がどれほど頭悪かったか理解できましたか?
262 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 22:35:36.33 ID:2karzrOj.net] >>257 はいはいそれでいいよ 議論の厳密さでは貴方様にはかないませんわ
263 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 22:38:20.21 ID:iS7jybTT.net] >>256 本当にバカなんだな。 「C11に無い」と思い込んでるのだから、C11で定義された用語として使って無いのは明白なわけだ。 それでは何をさしているかいうと、独自拡張として先に実装していた、MSのそれしかないわけ。
264 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 22:45:48.04 ID:2karzrOj.net] >>259 「MSのそれしかない」って言うけどGCCだって拡張としてC11以前からサポートしてるよ どっちが早かったかは調べてないけど
265 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 22:49:23.93 ID:D8ydCTaI.net] 「C11に無名共用体がない」と言った>>232 を 「(MSの無名共用体がC11に入ったけど名前が無名共用体じゃないから) C11に無名共用体がない。頑なに拒んでいる」 と解釈した>>259 はガイキチさんに相違ない
266 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 23:00:17.09 ID:2karzrOj.net] ちょっと調べたけどgcc 3.1.1(2002年)にはUnnamed struct/union fields within structs/unionsあるね https://gcc.gnu.org/onlinedocs/gcc-3.1.1/gcc/Unnamed-Fields.html#Unnamed%20Fields
267 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 23:13:59.67 ID:iS7jybTT.net] >>260 はいはい。「MSが始めたソレ」ね。ツツシンデ訂正します。 >>262 無駄な努力続けたいならどーぞ。visual studio 6.0(1998) https://msdn.microsoft.com/en-us/library/aa243791(v=vs.60).aspx Microsoft Specific —> Nested unions can be declared anonymously when they are members of another structure or union. This is an example of a nameless union: struct str { int a, b; union / * Unnamed union */
268 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 23:22:16.12 ID:iS7jybTT.net] >>261 思い込むには「勘違い」、「知らなかった」… とかいろいろ理由は考えられるわけだが、 オレが > 「(MSの無名共用体がC11に入ったけど名前が無名共用体じゃないから) > C11に無名共用体がない。頑なに拒んでいる」 と想像したに違いない、と妄想してしまった>>261 はキチガイ病院に入院が必要なレベル。 統合失調症かなり進行してるんじゃない?
269 名前:デフォルトの名無しさん mailto:sage [2015/07/12(日) 00:15:41.62 ID:7uvF/txa.net] >>263 へえVS6.0からあったんだ 別にこだわってるわけじゃないんだけど、無名共用体/構造体はMSが最初に取り入れたって確実な証拠あるの?
270 名前:デフォルトの名無しさん mailto:sage [2015/07/12(日) 00:25:03.35 ID:HbO31IQZ.net] ノラ犬にエサをあげないでくださいって貼り紙書いた方がいいな、これ
271 名前:デフォルトの名無しさん mailto:sage [2015/07/12(日) 00:42:27.83 ID:D5o3Ook3.net] >>265 さあね、ボーランドからパクった可能性はあるけど、証拠突きつけられれば、 「ボーランドからパクった、MSのソレ」とツツシンデ訂正してあげるよ。
272 名前:デフォルトの名無しさん [2015/07/12(日) 00:49:14.71 ID:wWInxoH0.net] 無名の共用体はcfront 1.xにあったが?
273 名前:デフォルトの名無しさん mailto:sage [2015/07/12(日) 00:58:20.78 ID:ocuS5rc4.net] ID導入されてからこういうくだらない議論ごっこばっか まともな人がいなくなったから仕方ないことなんだろうな
274 名前:デフォルトの名無しさん mailto:sage [2015/07/12(日) 01:04:19.59 ID:wUBcw7SV.net] 以前はマトモな人が居たのか?
275 名前:デフォルトの名無しさん mailto:sage [2015/07/12(日) 07:37:12.06 ID:j3Z4ixjm.net] C++には人間を狂わせる魔力があるとしか思えぬ
276 名前:デフォルトの名無しさん mailto:sage [2015/07/12(日) 08:38:40.35 ID:9dz26AJO.net] C++の仕様は複雑だから、「仕様をどれだけ理解しているか自慢」をしたくなるのもわかる。
277 名前:デフォルトの名無しさん mailto:sage [2015/07/12(日) 08:40:15.37 ID:D5o3Ook3.net] >>268 cfrontなんて伝説でしか聞いたことないや。ALTOとかMacintoshとかと同類。 で、再びVisual Studio 6.0 https://msdn.microsoft.com/en-us/library/aa245257(v=vs.60).aspx C++の方にはMS specificとないので、 「C++からパクった、MSのソレ」にツツシンデ訂正させていただきます。
278 名前: ◆QZaw55cn4c mailto:sage [2015/07/12(日) 09:02:42.39 ID:0rRLNK9E.net] >>269 IDを失敗という奴の数は限られている ドカタのコピペ乱発はもうやめたのか?
279 名前:デフォルトの名無しさん mailto:sage [2015/07/12(日) 10:48:29.02 ID:HbO31IQZ.net] っつーか、IDが導入されるとスーパー基地外の規格ドッジボールが増えるって なんだそのつながりの見えない関係
280 名前:デフォルトの名無しさん mailto:sage [2015/07/12(日) 11:31:26.53 ID:hKFInxhR.net] >>274 ホゲ荒らしはもうやめたのか?
281 名前:デフォルトの名無しさん mailto:sage [2015/07/12(日) 12:29:12.69 ID:ahQPxZ3Y.net] スーパーサイヤ人の規格ドッジボールが始まると聞いてやってきました 「フッ、それは12.8の30段落目あたりのwhen〜に書いてあるな。98からの仕様だ
282 名前:デフォルトの名無しさん mailto:sage [2015/07/12(日) 13:36:00.48 ID:D5o3Ook3.net] 最初から勝敗が決まってちゃドッジボールにならない。 バカなんだから引っ込んでりゃ良いのに敗北を自認した後も粘着した挙句、再度一蹴。 こんなにバカだと生きるの大変だろうな。
283 名前:デフォルトの名無しさん [2015/07/12(日) 13:56:02.22 ID:wWInxoH0.net] 外野うるせえ
284 名前:デフォルトの名無しさん mailto:sage [2015/07/12(日) 15:04:22.77 ID:hIX2p4J2.net] なんでこいつら会話出来ないの? キチガイ?
285 名前:デフォルトの名無しさん mailto:sage [2015/07/12(日) 15:50:00.15 ID:/HjU8Jh8.net] イエス 互いに自分のカタコト主張を垂れ流して 互いに都合の悪い指摘はスルーして 互いに勝った気になるスレです
286 名前:デフォルトの名無しさん mailto:sage [2015/07/12(日) 17:23:47.85 ID:YXldfm4k.net] >互いに勝った気になるスレです win-win関係やな
287 名前:デフォルトの名無しさん [2015/07/12(日) 17:30:29.82 ID:2WHYr8c9.net] すんません。おしえてください。 言っている意味がわからないかもしれません。。。。 関数Aの中にダブルポインタ(B)でうけとる関数Cがあり、関数Cで変更された Bの値を間数Aの呼び出し元に反映させるにはこれでよいでしょうか。関数Cの インターフェースは変更できません。。。。。 main(){ int *B; 関数A(&B); Bには間数Cで変更された値がある } 関数A(int** B){ 関数C(&B); } 関数C(int**B)・・・・・・
288 名前:デフォルトの名無しさん mailto:sage [2015/07/12(日) 17:50:45.31 ID:dtQ6554v.net] >関数C(&B); まずコンパイルが通るコードを貼ったらどうだ?
289 名前:デフォルトの名無しさん mailto:sage [2015/07/12(日) 18:03:53.38 ID:ahQPxZ3Y.net] >>283 こうする ideone.com/eXAvkn
290 名前:デフォルトの名無しさん mailto:sage [2015/07/12(日) 18:13:53.05 ID:SSPswhFP.net] >>283 main( ) に反映させるならそれでいい
291 名前:デフォルトの名無しさん mailto:sage [2015/07/12(日) 18:26:32.10 ID:D5o3Ook3.net] 正解(>>285 )が出てるのに、ウソ教えるバカ(>>286 )って何がしたいんだろう?
292 名前:283 [2015/07/12(日) 18:57:18.45 ID:2WHYr8c9.net] 間違ってamp;を書いてしまってました。 ありがとうございますmポインタのポインタがわかったような気がしますmmm
293 名前:デフォルトの名無しさん mailto:sage [2015/07/12(日) 22:23:47.18 ID:Huyl4KsG.net] mは始めて見たな ひっくり返したら 「ありがとうございますwポインタのポインタがわかったような気がしますwww」
294 名前:デフォルトの名無しさん mailto:sage [2015/07/14(火) 12:34:06.93 ID:UtKLctm2.net] mapで全てのkey, valueを取得するには std::map<std::string, int> mp for(auto itr = mp.begin(); itr != mp.end(); ++itr) { std::cout << "key = " << itr->first << "\n"; std::cout << "val = " << itr->second << "\n"; } みたいにやると思いますが、これを for(int i=0; ... ){ } のようにindexでやる方法を教えて蹴れ!!!
295 名前:デフォルトの名無しさん [2015/07/14(火) 12:47:51.17 ID:rNlP6Nu0.net] 何故かインデックスでやることの是非を語りだすアホ
296 名前:デフォルトの名無しさん mailto:sage [2015/07/14(火) 12:52:54.24 ID:UtKLctm2.net] >>291 > 何故かインデックスでやることの是非を語りだすアホ あんたが話をそっちに振っているだがや。そんな議論はいらんからインデックスでやる方法を 教えて蹴れ!早く!
297 名前:デフォルトの名無しさん mailto:sage [2015/07/14(火) 12:55:08.21 ID:e62MolP3.net] インデックス使ったほうが直感的だしな むしろイテレータ使うとなんかいい事あるんかな?
298 名前:デフォルトの名無しさん [2015/07/14(火) 12:57:41.56 ID:FsEQiXKO.net] >>290 キーに数字を一対一に対応させればいいんだよ その対応させるのにまたmapを使うかそういう関数を定義するかすればいい
299 名前:デフォルトの名無しさん [2015/07/14(火) 12:57:47.01 ID:dhQIKVsL.net] イテレータをループで進めます。
300 名前:デフォルトの名無しさん [2015/07/14(火) 13:28:14.24 ID:mvkEOiYD.net] vectorに変換する関数を作ればいい。 ideone.com/noP3Ul
301 名前:デフォルトの名無しさん [2015/07/14(火) 13:37:03.79 ID:rkpz8f5t.net] deque<pair<string, int>> afo; for(auto e : mp) afo.emplace_back(e);
302 名前:デフォルトの名無しさん mailto:sage [2015/07/14(火) 13:41:06.37 ID:UtKLctm2.net] >>296 >>297 さんきゅう。どっちも上手く行ったよ。やっぱりループはindexだよな。
303 名前:デフォルトの名無しさん mailto:sage [2015/07/14(火) 14:13:17.11 ID:SKd+PiL5.net] 普通にrange based forでええやん
304 名前:デフォルトの名無しさん [2015/07/14(火) 15:22:28.11 ID:lfdsryMV.net] >>299 それ結局イテレータ使ってる。
305 名前:デフォルトの名無しさん mailto:sage [2015/07/14(火) 18:15:32.99 ID:INp5lnz1.net] for (auto i=0;…) { auto itr = m.begin(); std::advance(itr, i); }
306 名前:デフォルトの名無しさん mailto:sage [2015/07/14(火) 18:18:24.65 ID:2KYZ+h7+.net] 無駄ムダ無駄無駄ぁーー
307 名前:デフォルトの名無しさん [2015/07/15(水) 00:03:29.85 ID:dGdv/3vm.net] QZの糞コードはすべてが無駄
308 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 03:26:56.03 ID:SlthSPBG.net] オラオラですか?
309 名前:デフォルトの名無しさん mailto:sage [2015/07/16(木) 17:17:26.07 ID:U0IY41MX.net] いいえ、オレオレです 俺俺、俺だよ 金貸してくれよ
310 名前:デフォルトの名無しさん [2015/07/16(木) 17:32:25.87 ID:2j8ZSm1w.net] OLE2?
311 名前:デフォルトの名無しさん [2015/07/16(木) 17:33:51.93 ID:PAzV5X9d.net] アプリのバグかOSのバグか当ててみな
312 名前:デフォルトの名無しさん mailto:sage [2015/07/16(木) 22:05:42.82 ID:2mi9CUdR.net] つーか、インデックスでアクセスしたいのか、 アクセスする毎にインデックスに相当する順繰りに増える数字が欲しいのかはっきりせんと。 全てを端から端まで読むのであれば、イテレータ使ったループに整数のカウンタいれとけばいいだけだし、 ランダムアクセスしたいならadvance使うしかないしな。
313 名前:デフォルトの名無しさん mailto:sage [2015/07/16(木) 22:22:06.70 ID:EbXSssCX.net] >>297 は標準ライブラリを組み合わせて目的を達成した 一方>>308 は思考停止してadvanceしかないと言い出した これが一般人とアスペの差
314 名前:デフォルトの名無しさん mailto:sage [2015/07/16(木) 22:27:22.78 ID:2mi9CUdR.net] >>309 >>297 はmapをインデックスでアクセスしているわけではないのだが…
315 名前:デフォルトの名無しさん mailto:sage [2015/07/16(木) 22:38:24.50 ID:TjbeLhY1.net] >>297 は冗談かと思ってた
316 名前:デフォルトの名無しさん mailto:sage [2015/07/16(木) 22:45:11.63 ID:QLbygVn7.net] 変数がafoな時点で冗談だろうけど 一度構築した内容が不変で何度もランダムアクセスするケースなら アクセスの度にadvanceするよりはましじゃないか
317 名前:デフォルトの名無しさん mailto:sage [2015/07/16(木) 22:55:46.57 ID:TjbeLhY1.net] それにしたってコピーなんか作んないだろ それになんでdequeなんだよvectorの方が速いだろ
318 名前:デフォルトの名無しさん mailto:sage [2015/07/16(木) 23:15:52.61 ID:2mi9CUdR.net] >>312 そもそもmapである必要がない用途だろ、それ
319 名前:デフォルトの名無しさん mailto:sage [2015/07/16(木) 23:25:00.35 ID:TjbeLhY1.net] キーでもアクセスしたいが「何番目」の要素にもアクセスしたいということはままある >>290 はそういうケースじゃないみたいだな
320 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 00:37:45.63 ID:bXkQK0Wm.net] 急な出費でお困りの方キャッシング・カードローンまとめをぜひご活用下さい。 komattarasoudan.seesaa.net/article/422452476.html 最近髪でお悩みの方悩まずはこちらをご参考だて下さい。 kaminokehahaeru.seesaa.net/article/422482791.html
321 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 01:25:06.78 ID:C9mRWQ9x.net] mapのindexとはmapのキーのことじゃないの
322 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 08:28:48.25 ID:FO1R/6hT.net] 元の質問者が「インデックス(何番目の要素かを表す整数)」 と言えばよかったと? はいそうですね
323 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 12:33:03.69 ID:HougiqwY.net] 質問者がunorderd_mapを使ってたら、 もっと混乱していたかもしれないな
324 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 20:38:06.22 ID:qgsB8yVY.net] unorderd_mapの場合、イテレーション上の何番目なんて意味ないだろ ソート順なのか追加順なのかをはっきりさせないと
325 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 23:29:57.05 ID:K75kCcLe.net] せ、線形探索でいいじゃんハアハア; 線形探索で遅杉ならインデックスをvalue_typeとするstd::map<キーの型, インデックスの型>とstd::vectorの2本立てで
326 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 00:21:56.23 ID:TrlsMEs4.net] >>319 言ってるそばから>>320 のような奴が出てくるという
327 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 11:08:08.07 ID:2JMou2zW.net] mapにkeyでなくiterator順のindexを用いてランダムアクセスしようとする要求自体がナンセンス
328 名前:デフォルトの名無しさん [2015/07/18(土) 11:14:33.17 ID:phVJrBHZ.net] それは問題にしてない
329 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 11:50:02.74 ID:IZxdPzJ7.net] >>319 質問者の俺としては、単純に for(int i=0; で全要素のkey、valueが取り出せれば良かったので、それ以外は関心ない。 やっぱりループはindexが基本だよなあ。
330 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 11:52:36.17 ID:n8k6dcHe.net] boost::flat_mapでいいんじゃないの?
331 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 13:40:55.48 ID:o/QnrV3k.net] >>325 全要素のkey、valueが取り出せればいいのに 何故、ループをイテレータじゃなくiでやりたくなるのか訳がわからない
332 名前:デフォルトの名無しさん [2015/07/18(土) 13:41:48.09 ID:phVJrBHZ.net] 誰も理由なんて問題にしてない
333 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 13:43:07.70 ID:o/QnrV3k.net] >>323 mapの場合、ランダムアクセスしたくなるのはナンセンスではない 質問者はランダムアクセスしたいわけじゃなさそうだけどね
334 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 13:44:24.34 ID:o/QnrV3k.net] >>328 俺が不思議に思ってるんだけど
335 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 13:57:18.13 ID:1dCgaP/A.net] 好みの問題だろ
336 名前:デフォルトの名無しさん mailto:sage [2015/07/18
] [ここ壊れてます]
337 名前:(土) 14:17:41.42 ID:v2f9qsff.net mailto: キーに順序の概念がある以上、整数インデックスでアクセスしたくなっても不思議はない 何番目のキーかがわかってる場合に定時間でアクセスしたいんだろう ループ中に2つ前を取り出すときに auto i2 = itr; advance(i2, -2); i2->second; より mappu[idx-2] でできた方がわかりやすい [] [ここ壊れてます]
338 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 15:38:37.11 ID:ivP/XGGx.net] >>325 なんだただのバカか
339 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 15:39:47.77 ID:ivP/XGGx.net] >>332 理由は関係ないとバカ本人が言っているのだから、 理由をあれこれ詮索して提示する必要はない。 単にイテレータは気持わるくて配列風アクセスじゃないと落ち着かないだけだろ。
340 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 16:22:28.64 ID:VoP8WSFF.net] イテレータってどうにも直感的な概念じゃねえからな 実世界だと何に例えればいいんだろう
341 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 16:29:36.89 ID:SXIUB1xX.net] ポインタはしっくりくるの?
342 名前:デフォルトの名無しさん [2015/07/18(土) 16:33:24.92 ID:+74fO+KQ.net] >>335 掃除当番のローテーションみたいなもんだ
343 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 16:34:51.98 ID:tBunyjTH.net] 例えなくていい コンテナーとアルゴリズムとを繋ぐインターフェース
344 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 18:03:37.84 ID:IZxdPzJ7.net] >>336 問題ないよ
345 名前:デフォルトの名無しさん [2015/07/19(日) 01:55:49.92 ID:9jrGPvmx.net] あるライブラリにデータを読み込ますために,ストリームのシーク位置を偽装したいのですが,そのシーク位置の制御が分かりません 例えば100MBの独立した2枚の画像("a.jpg"と"b.jpg")が200MBの1つのファイル("bin")に結合されているときに あたかも個別のファイルを扱っているようなstd::ifstreamを作りたいと考えています たとえばseekg(0, ios::beg)と記述したとき,実質seekg(100MiB, ios::beg);を呼ぶようなものにしたいと考えています 仮想関数であるfilebuf::seekoffの中でオフセット値を変えた実装は書いてみたのですが,バッファにデータを読み出そうとしても 何も読み出せませんでした
346 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 04:57:21.27 ID:9cfOAbCj.net] iostreamのカスタマイズはまあ、労多くして益が少ないのでほどほどにがんばってください 個人的には、常識的なストリームの抽象化(読み出し元・書き込み先デバイスの差異の吸収を主眼とする)の階層で 1ファイルを複数ファイルに見せるみたいな変態ファイルシステムを実現するのはiostreamの設計思想に反している気が… (iostreamとその下に居るファイルシステムの間に一発wrapperをかますといった環境依存な改造になるべき事案なのでは…
347 名前:デフォルトの名無しさん [2015/07/19(日) 06:29:05.39 ID:F7g9AAKV.net] ライブラリの入出力を改造するか、OSレベルでマウントのような方法で連結ファイルを別々にするとかか?
348 名前:デフォルトの名無しさん [2015/07/19(日) 06:35:36.57 ID:F7g9AAKV.net] これは、OSレベルで個別ファイルとみなせるが。どうやってるのか知らず、ゼロから作るのは手間かと。 archivemountについて archivemountというFUSE用ファイルシステムを使用することで、圧縮された.tar.bz2やcpioなどの形式のファイルをマウントして、 その中身に「透過的」にアクセスできる。 データの書き込みもサポートしているが、大事なデータを含む圧縮ファイルで使用することはおすすめできない。 d.hatena.ne.jp/kakurasan/20080204/p1
349 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 09:05:33.78 ID:8Q24h1bH.net] >>340 メモリに一つのファイル全部読んでそれから一つのストリーム作ってライブラリに渡すんじゃだめなんか 実際に100MBのjpgなんて使わないだろ?
350 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 09:09:13.04 ID:+kGtCzuo.net] >>340 そんな小細工せずに普通に一個ずつやれば良いだろ?
351 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 11:24:04.06 ID:8DYvkgGZ.net] jbbs.shitaraba.net/netgame/14889/ このゲームのコードを一緒に解析しよう
352 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 12:10:26.34 ID:Ae5UOFVT.net] >>340 streambufを適切に実装すればできると思うけど。 というか同じようなものを昔作った記憶がある。(ファイル中の指定領域を1つのファイルに見せかけるもの) streambuf実装を手助けするようなboostのクラス使った気がするけど、今はどうなんだろう。
353 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 13:35:01.73 ID:NoforBXG.net] C++スタンダードライブラリ利用って事は、ソース提供のライブラリでしょ。 苦労して騙す価値がわからない。
354 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 13:40:45.54 ID:isiihInr.net] 釣りはいいです
355 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 13:52:03.80 ID:AxVShlkv.net] iostreamは「なんかアレできそう」と改造に着手すると、改造目的から逸れた所でいらん苦労が噴出して、 四苦八苦するうちに目的を達するのかもしれんが、最終的にメンテ不可能なコードが出来上がる iostreamはあれで完成品であって、追加のカスタマイズの余地がほとんどないものとして扱うべき
356 名前:340 mailto:sage [2015/07/19(日) 21:12:37.60 ID:9jrGPvmx.net] いろいろ参考になりました やはり思ったよりも面倒だったので別の解決策で考えてみたいと思います
357 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 22:53:49.59 ID:6v13rUs0.net] 簡単にできそうな気がするが…
358 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 23:50:34.28 ID:9jrGPvmx.net] 追記。データの読み込みができなかったので質問しましたが実は別の箇所の凡ミスが原因でした(悲 別の原因を考えて実装が泥沼化していましたが,単準にシーク値にオフセット値を加えてごまかすだけで正常に動作するようです どうもすみませんでした
359 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 23:59:27.38 ID:ghbDym72.net] C++ってメモリを破壊すると聞いたのですがそれは自分のプロセスのメモリだけですか?それとも別プロセスやOSのメモリを破壊する可能性もあるのでしょうか?
360 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 00:01:19.99 ID:1Qy7XHWg.net] >>354 可能性はある。
361 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 00:01:44.85 ID:it9iY6xG.net] >>354 ある
362 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 00:10:19.45 ID:0qCQdItO.net] ↑↑ ご覧ください これがアスペです!!
363 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 00:17:48.27 ID:vFwEMAwX.net] >>355 配列のインデックスを間違ったらメモリを破壊しないように例外で緊急停止する方法はないですかね?
364 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 00:20:08.09 ID:1Qy7XHWg.net] >>358 間違ってもメモリ破壊しないように 必要な大きさの10倍くらい確保しておけ。
365 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 00:20:36.45 ID:vFwEMAwX.net] 少しggったらwinはメモリ保護機能を持ってるから少し間違ってもPCが壊れる事はないみたいです。 安心しました。
366 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 01:20:52.86 ID:2qlObTex.net] もう終わった?話題だけど,たとえば template < class _Type > class array{ private: _Type* m_item; unsigned int m_size; public: // コンストラクタとか各種セマンティックスとか _Type& operator[](unsigned int i) { if( i < 0 || i >= m_size ) { throw std::out_of_range{ "what" }; } return m_size[i]; } const _Type& operator[]( unsigned int i )以下同様 }; のようにラッパーをつくる,または継承を利用し, template < class _Type > class Vector : private std::vector < _Type >{ using size_type = typename std::vector < _Type >::size_type; using std::vector < _Type >::vector; // コンストラクタの継承 _Type& operator[]( size_type i ) { return this->at(i); } const _Type& operator[]( size_type i )以下同様 }; のようにカスタマイズすると例外を送出させることは可能.
367 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 01:24:22.33 ID:HS03ITz9.net] >>361 予約識別子やめとこう。
368 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 01:27:45.85 ID:CWd6lbGb.net] >>362 まじか……。どれが予約ですか? そして符号無しなのにマイナスチェックしてる……
369 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 01:36:47.26 ID:UX3o5Q0t.net] _の次に大文字は予約されている
370 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 01:41:30.26 ID:/EsSmyHW.net] 普通にTにすればいいのに
371 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 02:04:07.94 ID:HM9xj7SI.net] std::vectorかstd::array でいい
372 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 02:17:04.67 ID:CWd6lbGb.net] なんだ、一般論のことか。 STLの中身読んでたときの名残です >_Type
373 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 02:22:59.65 ID:/EsSmyHW.net] 一般論じゃない _大文字で始まるのはアプリ側では一切使ってはいけない 他にも禁止事項があるからチェックした方がいいよ
374 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 02:24:49.85 ID:UX3o5Q0t.net] 標準ライブラリは予約されてる識別子を使ってもいいが お前は使っちゃダメだろう
375 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 02:29:47.72 ID:V78BNVdD.net] STLは標準ライブラリじゃないだろう
376 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 02:37:49.16 ID:CWd6lbGb.net] visual Cでは動くんですが規格で未定義動作になってるようですね、気を付けます。
377 名前:デフォルトの名無しさん [2015/07/20(月) 02:56:49.66 ID:vG0VnJUE.net] >>358 つvector::at
378 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 11:35:59.80 ID:P/gUAIjL.net] とりあえずタダで入手できるn3337.pdf(2011年のやつ)に基づき話するが、 >17.6.4.3.2 Global names [global.names] >1 Certain sets of names and function signatures are always reserved to the implementation: > -- Each name that contains a double underscore _ _ or begins with an underscore followed by an uppercase >letter (2.12) is reserved to the implementation for any use. > -- Each name that begins with an underscore is reserved to the implementation for use as a name in the >global namespace. とあって、 - アンスコ+アンスコかアンスコ+大文字で始まる名前(識別子 or マクロ)は実装のために名前空間を問わなず予約されている - アンスコで始まる名前は実装のためのグローバルネームスペースにおいて予約されている ということのようであるらしい、 17章はC++標準ライブラリの章なので、実装というのはライブラリの実装のみを指すのだと思うが、 ひょっとしたらアプリの実装も含むのかは知らん…
379 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 11:44:36.52 ID:P/gUAIjL.net] いままでアンダースコアつきの名前は ソースファイルやヘッダファイルのファイル名ぐらいでしか許されないと誤解してて窮屈さを強いられていたが、 規格を見たら思ったより緩い規制のようなので、 これからは規格の許す範囲でもっと積極的にアンダースコアで始まる名前を使っていこうと思う。
380 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 12:00:00.21 ID:/EsSmyHW.net] 例えばクラスのメンバ変数名に_小文字で始まるのを使うのは問題ない _大文字で始まるのはアプリ側ではどんな場合でもダメ絶対
381 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 12:01:37.60 ID:OwOq1DU3.net] そんなこと言わずに先っちょだけ
382 名前:デフォルトの名無しさん [2015/07/20(月) 12:02:13.40 ID:cpPuTL8o.net] メイヤーズだかハーブサッターだかがめんどくさいからアンダースコアで始まる識別子はどんな場合でも使うなって言ってた
383 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 12:12:07.44 ID:P/gUAIjL.net] 使うなと言われると標準ライブラリもアンダースコアで始まる識別子を使ってないか精査しないと使えなくなってしまい困る
384 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 12:38:48.74 ID:HS03ITz9.net] >>378 標準ライブラリはいいんだよ。そのための予約なんだから。
385 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 12:40:05.58 ID:so4ttUjf.net] 予約されてるものを使いたいとは思わんな どうせ自分の首絞めるだけなんだから
386 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 12:44:07.72 ID:/EsSmyHW.net] >377 俺はprivateなメンバ変数には_小文字で始まるのを使うようにしてる これIDEの補完機能上便利なんだよね C#世界じゃほぼ標準的な流儀になってるし C++世界ではprivateメンバ変数に_をサフィックスとして付ける流儀があるけど これは汚いし(個人的意見)便利じゃない m_は汚すぎて絶対使いたくない
387 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 12:52:43.12 ID:1Qy7XHWg.net] >>381 >m_は汚すぎて絶対使いたくない どのへんが汚く思うのか説明して欲しい。 俺は m_ 派なので。
388 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 12:54:00.43 ID:P/gUAIjL.net] >>379 ちょっ「どんな場合でも」「使うな」と書いてあるんやで
389 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 12:55:55.64 ID:P/gUAIjL.net] >>382 個人的には1文字か2文字のメンバ変数(x, yとか)にm_とか付け出すとさすがに気になってくる _ならまだ目立たないから良い
390 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 12:57:09.68 ID:jdL+tw0r.net] プレフィックスじゃないとソートしたとき分類できんからなぁ… あとm_はキャメルケースルール下だとやっぱ汚いと思うよ
391 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 12:59:58.26 ID:1Qy7XHWg.net] >>384 >個人的には1文字か2文字のメンバ変数(x, yとか)にm_とか付け出すとさすがに気になってくる そういうもんか。俺は気にならんが。 >_ならまだ目立たないから良い m_は確かに目立つけど、メンバ変数だとすぐ分かるから目立っていいと俺は思っているよ。
392 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 13:00:36.46 ID:HS03ITz9.net] >>383 17.6.4 は標準ライブラリを使う側のプログラムへの要求だよ。 17.6.4.1 [constraints.overview] > This section describes restrictions on C++ programs that use the facilities of the C++ standard library.
393 名前:デフォルトの名無しさん [2015/07/20(月) 13:32:43.78 ID:vG0VnJUE.net] つーことは、今後新設されるキーワードは _Thread_local みたいな 超だっせーのになるってことか? やだなあ...
394 名前:デフォルトの名無しさん [2015/07/20(月) 13:32:51.51 ID:EgeIk5gC.net] usingを使わなければ ダブルアンダースコア+ローワーケースレターまでは許され スタンダードライブラリーをつかわなければ全てがゆるされるというこったな
395 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 13:33:58.16 ID:UX3o5Q0t.net] >>388 _Generic、_Boolの悪口はやめろ
396 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 13:39:20.78 ID:HS03ITz9.net] >>388 C はそっちの方針だけど、 C++ は thread_local やら noexcept やら、それまで予約されてなかった キーワードも規格改定でぶちこんできてる。
397 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 13:41:28.54 ID:HS03ITz9.net] >>389 ダブルアンダースコアは先頭でも途中でも、後続の文字も関係なしに、含んだ時点でアウト。 標準ライブラリを使わなくても処理系独自キーワードとかぶる可能性があったりする。 ギリギリの線を攻める意味も無いんだから、やめとこう。
398 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 14:08:32.66 ID:/EsSmyHW.net] >>388 C++にはnamespaceがあるからCとは状況が違う
399 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 14:11:19.29 ID:/EsSmyHW.net] 処理系用に予約されている命名パターンをアプリ側で使う上で本当やばいのは そういう名前を処理系側では#defineでも使えるってこと これにぶつかっちゃったらエライことになる
400 名前:デフォルトの名無しさん [2015/07/20(月) 15:23:42.19 ID:vG0VnJUE.net] >>393 はい??
401 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 15:24:38.78 ID:CPoN3U++.net] 初心者スレと同じメンツかよ >>392 スネークケースそのものが駄目って事? 意味不明っす
402 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 15:29:20.21 ID:0xEKvDHz.net] ダブルアンダースコアって書いてるじゃん
403 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 15:34:30.10 ID:CPoN3U++.net] 話の流れ的にそういう事なのかと 処理系依存のキーワードなんてandとかorとかもあるし
404 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 17:02:34.09 ID:theP84i7.net] and orが処理系依存? 初耳です
405 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 17:22:52.28 ID:3GP2WUWh.net] 明確に規定されてるんだから「ギリギリ」も「スレスレ」もないよ。
406 名前:デフォルトの名無しさん [2015/07/20(月) 19:38:43.04 ID:EgeIk5gC.net] 俗にいうコンセプトでLvalueってのががついているやつって constと非constの違いをまとめてなんで一つのLvalueだけなんだ
407 名前:デフォルトの名無しさん [2015/07/20(月) 19:56:49.05 ID:EgeIk5gC.net] >>401 たぶん前もって決まっているんだと思う
408 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 20:10:32.75 ID:theP84i7.net] へー、
409 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 23:42:04.76 ID:theP84i7.net] さてVisual Studio 2015でもインスコしてくるか 変数テンプレートが実装されなかったのが残念
410 名前:デフォルトの名無しさん mailto:sage [2015/07/21(火) 00:19:31.75 ID:xbZldfZG.net] >>399 初めて知ったが、規格上処理系依存ではないんだな 実装されてなさすぎワロタ
411 名前:デフォルトの名無しさん mailto:sage [2015/07/21(火) 00:39:02.34 ID:66nchpml.net] >>405 実装されてない処理系を知らんのだけど、たとえばどのコンパイラのこと言ってるの?
412 名前:デフォルトの名無しさん mailto:sage [2015/07/21(火) 03:03:52.41 ID:xbZldfZG.net] >>406 VCとICCが標準で使えない 前者は非互換になるオプション(Ze)がいる
413 名前:デフォルトの名無しさん mailto:sage [2015/07/21(火) 03:08:18.38 ID:xbZldfZG.net] これじゃ説明が足りんかも VCは標準互換のオプション使うと無効化される だから規格にないと思ってた
414 名前:デフォルトの名無しさん mailto:sage [2015/07/21(火) 06:43:45.08 ID:dIWzDdsc.net] >>408 ちゃんとciso646をincludeしてる?
415 名前:デフォルトの名無しさん mailto:sage [2015/07/21(火) 07:17:08.16 ID:2lvOHioe.net] いえ、そんなもの要りません
416 名前:デフォルトの名無しさん mailto:sage [2015/07/21(火) 07:32:32.88 ID:66nchpml.net] >>407-408 ありがと。 でも、オプションは逆じゃない? 拡張を無効にする /Za をつけると有効になるみたいだよ。 (これつけずに使うことがほとんど無かったから知らんかった。)
417 名前:デフォルトの名無しさん mailto:sage [2015/07/21(火) 19:36:50.33 ID:v140k6px.net] 逆だな 拡張を無効にしたら使い物にならないのに 拡張を無効にしないとand orが使えなかったり (int)int_var が左辺値になったり copy elision発生時にアクセスチェックまで省略されたり
418 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 00:51:56.44 ID:/YfM4MQS.net] いまいちC++とCの違いが分からないのですが classとかあればC++でしょうけど struct a{}; int main(){return 0;} ってどっちですか?
419 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 01:24:22.01 ID:EPGeDhPM.net] Cコンパイラを使うならC C++コンパイラを使うならC++
420 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 12:41:33.94 ID:3A7pwT7M.net] I was careless because I haven't have any problem by ejaculation out of the vagina for many years.
421 名前:デフォルトの名無しさん [2015/07/23(木) 13:25:31.50 ID:gy7efRcB.net] 夏だねぇ
422 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 16:41:56.03 ID:kJODPirD.net] >>426 そんな人の感情によることをいわれても共感できん
423 名前:デフォルトの名無しさん [2015/07/23(木) 17:03:04.56 ID:gy7efRcB.net] シングルトンのデストラクターが呼ばれないというけれど グローバルな静的オブジェクトは明示的にデストラクターを呼ぶ しかないですか?
424 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 17:20:10.95 ID:XEXujvvo.net] プログラム終了時に呼ばれるよ
425 名前:デフォルトの名無しさん [2015/07/23(木) 17:21:38.38 ID:gy7efRcB.net] 残念呼ばれませんでした ローカルな静的オブジェクトなら呼ばれますが
426 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 17:23:21.48 ID:P0N6qRSq.net] シングルトンって聞くと、中野浩一と死闘を繰り広げた奴思い浮かぶよな?
427 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 17:24:26.72 ID:xZrbYjHT.net] >>417 前方参照で言いがかりつけるな。
428 名前: ◆QZaw55cn4c mailto:sage [2015/07/23(木) 17:31:34.58 ID:C1/pAh/x.net] >>420 何をもって「呼ばれていない」と判断したのか? codepad.org/ghjuffa9
429 名前:デフォルトの名無しさん [2015/07/23(木) 17:42:08.38 ID:gy7efRcB.net] >>423 #include <iostream> class C { private: int k; public: static C* obj; C() { k = 234; } ~C() {std::cout << k << std::endl; } void f() { k = 567; } }; C* C::obj=0; int main() { C::obj=new C{}; C::obj->f(); return 0; } 呼ばれませんが?
430 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 17:54:30.63 ID:0bQVjowK.net] >>424 codepad.org/I1lt6293
431 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 17:59:38.71 ID:SDUt2RZC.net] >>424 だってdeleteしてないじゃん 勝手に呼んで欲しいんならstd::unique_ptrにでも入れとけ
432 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 17:59:42.90 ID:snSKADQv.net] >>424 それって静的なポインタに収められた動的なオブジェクトじゃね?
433 名前:デフォルトの名無しさん [2015/07/23(木) 18:02:43.93 ID:gy7efRcB.net] >>425 動的初期化はことなる翻訳単位の初期化の順序が決まってないから駄目でしょ
434 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 18:03:15.80 ID:SDUt2RZC.net] >>424 ideone.com/62fuNk こうでもしとけ
435 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 18:07:12.28 ID:Yxc4xF6u.net] ヒープストレージにあるインスタンスだからそのインスタンスをプログラマが明示的に削除しない限りデストラクタ呼ばれないに決まってるだろ
436 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 18:08:51.73 ID:Yxc4xF6u.net] あと0じゃなくてnullptr使った方が型安全だし互換性がある。 世の中rawな表現でnullptr != reinterpret_cast<void*>(0)な処理系がよくあるからな。
437 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 18:09:11.29 ID:C1/pAh/x.net] >>424 new したものはどんな場合でも delete しなければならない. >>424 の場合,delete してはじめてデストラクタを呼ぶ この場合は静的かどうかは関係ない codepad.org/QeTLK3Og >>429 スマートポインタって便利‥
438 名前: [] [ここ壊れてます]
439 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 18:11:02.65 ID:QCXWa6Cu.net] 0との比較なら内部表現が0と違おうがコンパイラがよしなにしてくれる
440 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 18:13:03.46 ID:Yxc4xF6u.net] エンバグしたいんだったら話は別だけど、グローバル領域にある生ポインタにローカルスコープからnewするのはやめた方がいい 生成と削除に対称性がない 対称性がないときは所有権が曖昧だから特定の束縛に属さない所有権を管理するshared_ptrを使おう グローバル領域で初期化するなら、unique_ptrが該当する
441 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 18:13:57.75 ID:Mh+gXEsD.net] そもそも静的オブジェクトが何たるかを わかってなかったのが原因みたいですね. >>428 静的オブジェクトのコンストラクタ呼び出し順序が 明確に定義されていないことは>>425 では問題ないと思います. giftserver.dip.jp/anotherproject/html_l5/develop/pgmemo/static_constructor.htm
442 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 18:28:06.86 ID:W0UhYhAM.net] Qが先日の汚名を挽回するため昨日から自演を繰り返していると聞いてやってきました >>425 >>435 がQですね?
443 名前:デフォルトの名無しさん [2015/07/23(木) 18:32:08.59 ID:gy7efRcB.net] 釣り針が2つも付いてますね
444 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 18:42:52.87 ID:7r9E6oO2.net] >>428 具体的にお前の書いた方法と比べて何が駄目なのか理解してるか?
445 名前:デフォルトの名無しさん [2015/07/23(木) 18:53:54.67 ID:gy7efRcB.net] パーフェクトに理解していることは間違いない
446 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 18:54:05.71 ID:KRR5x924.net] >>435 >静的オブジェクトのコンストラクタ呼び出し順序が明確に定義されていない ほうほう、そのようなことが規格のどこに書かれているのですか?
447 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 19:00:10.65 ID:7r9E6oO2.net] >>439 あっそ 何も言うこと無いわ
448 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 19:29:02.58 ID:KRR5x924.net] >>428 のような文面のレスをする人が >>425 を本気で理解できないとは考えにくい はて、どこに落とし穴を用意されたか
449 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 20:18:37.91 ID:C1/pAh/x.net] >>433 今日は伸びないね‥
450 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 20:57:29.13 ID:1XDLBSdo.net] >>440 オブジェクトのコンストラクタってなに?
451 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 21:26:48.61 ID:R0aGjqJ4.net] 土方
452 名前:デフォルトの名無しさん [2015/07/23(木) 21:35:59.33 ID:xZrbYjHT.net] >>440 ヴァカの一つ覚えの炎上学習法をまだやってんのか。 お前、規格読む能力が欠如してる。隔離スレに引っ込んでろ。
453 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 21:40:23.78 ID:/YfM4MQS.net] 規格厨 キタ━━━━━━(゚∀゚)━━━━━━ !!
454 名前:デフォルトの名無しさん [2015/07/23(木) 21:46:18.82 ID:xZrbYjHT.net] >>447 知能指数が80切ってる奴は養護教室に行きなさい。
455 名前:デフォルトの名無しさん [2015/07/23(木) 22:02:00.32 ID:b7PmeWYZ.net] 京大霊長類研究所よ、野放しが過ぎるぞ
456 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 22:42:54.17 ID:hSpOI8hk.net] 規格は読んでないけど,実際に分割コンパイルなんかで翻訳単位が異なると 静的オブジェクトのコンストラクタが呼び出される順番にクセがあって, 結果が変わることがあるよ. ヘッダ https://ideone.com/cuhP7T ヘッダの実装 https://ideone.com/n3Gq50 メイン関数:グローバル版とローカル版で結果が異なる https://ideone.com/V1vXF5 ローカル版だと期待通りだけど,グローバル版だと 最後に静的オブジェクトが作られるから0になっちゃう. でも 「静的オブジェクトのコンストラクタ呼び出しが明確に〜」 って書き方は変・・・なのかな? 静的オブジェクトの定義もグローバルに書いてるから, 確実に最後に処理されるメイン処理が予想通りなのは当たり前で, むしろグローバルなとこにBの変数書くのがおかしい,みたいな.
457 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 23:17:49.03 ID:/YfM4MQS.net] 分割コンパイルなんて20年ぶりに聞いたw ソースファイルが1つしかないなんてことあるのか?
458 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 23:19:06.74 ID:0DWDuODu.net] コンストラクタ中でメンバ関数使えないので、 コンストラクタでメンバ変数の初期化を書いてて、 Reset()見たいなメンバ関数作ってそこでも同じような初期化書いたりしてるんですが、 何かいい方法ないですかね。
459 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 23:20:40.93 ID:hmbuKdpM.net] >コンストラクタ中でメンバ関数使えないので、 これは仮想メンバ関数?
460 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 23:21:04.73 ID:OfB5opuk.net] >>451 あるかないかと言われたら、そりゃあるよ ちょっとしたフィルタを書いたりすることもあるから
461 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 23:23:05.40 ID:kZB85tZc.net] >>450 そもそもcout使える保証もないよね。
462 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 23:44:18.96 ID:0bQVjowK.net] >>442 お前ちょっとそれっぽい話聞かされるとすぐ騙されるタイプだろ 関数内のstatic変数はその関数で初めて使用されるときに生成されるから翻訳単位とか関係ねえよ
463 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 23:46:51.81 ID:hSpOI8hk.net] 観測用に設置したcoutが使えるかどうかは本題にまったく関係ないんですけど・・・ ていうかそれ言い出したら標準ライブラリ自体,自立処理系で 使えるヤツしか使えなくなります. <cstddef> <cfloat> <limits> <climits> <cstdint> 以下略
464 名前:デフォルトの名無しさん mailto:sage [2015/07/24(金) 00:48:11.13 ID:8Vtn8iZT.net] >>456 >関数内のstatic変数はその関数で初めて使用されるときに生成される ファッ!?
465 名前:デフォルトの名無しさん mailto:sage [2015/07/24(金) 01:27:57.27 ID:8Vtn8iZT.net] 確認したらホンマや、制御フローくるまで初期化されない 初期化は関数がコールされた時だと思ってたわ よく出来てるなあ
466 名前:デフォルトの名無しさん mailto:sage [2015/07/24(金) 02:20:29.25 ID:y3WFLvSD.net] 関数内static変数はマルチスレッド下で面倒臭かったんだよな 規格では処理系側で排他するようになった筈だけどVS2015は対応した?
467 名前:デフォルトの名無しさん mailto:sage [2015/07/24(金) 07:36:21.51 ID:PsNEGn77.net] 同じ翻訳単位内でもstatic変数は初期化順が入れ替わることがあるから注意しろよ
468 名前:デフォルトの名無しさん mailto:sage [2015/07/24(金) 07:50:50.38 ID:fsLS4MwQ.net] >>460 した MSはこれをmagic staticと呼んでいる
469 名前:デフォルトの名無しさん [2015/07/24(金) 08:21:38.90 ID:BQJ0D8B6.net] magicだあ?どうせろくでもないもんなんだろ
470 名前:デフォルトの名無しさん mailto:sage [2015/07/24(金) 08:55:37.00 ID:2SZcvTss.net] >>462-463 だいたいこんなもん。 https://goo.gl/98Isbx よくできてると思うよ。
471 名前:デフォルトの名無しさん mailto:sage [2015/07/24(金) 08:58:08.82 ID:2SZcvTss.net] >>461 ローカル(関数内)の場合とテンプレートの場合、ぐらいかな? 非ローカルでテンプレートでもないものは翻訳単位内での定義順になってくれる。 ほかにもあったっけ?
472 名前:デフォルトの名無しさん mailto:sage [2015/07/24(金) 12:17:34.74 ID:PsNEGn77.net] >>465 もっと単純な場合でも起こる。3.6.2 Initialization of non-local variablesのp3 Noteにコード例が載ってる。
473 名前:デフォルトの名無しさん mailto:sage [2015/07/24(金) 12:30:58.68 ID:eSxPkpdj.net] どっかのバカが「externさえ使わなければ3.6.2の問題は起きない」 と言い出しそうだな
474 名前:デフォルトの名無しさん mailto:sage [2015/07/24(金) 12:43:52.52 ID:8Vtn8iZT.net] Qzって割と規格に詳しい癖にになんでこんなにコードが糞なん?
475 名前:デフォルトの名無しさん mailto:sage [2015/07/24(金) 15:41:14.72 ID:6QVy5hKS.net] C言語とC++って同じですか? CとかC++とかC#とかはC言語の中の種類みたいな認識であってますか?
476 名前:デフォルトの名無しさん mailto:sage [2015/07/24(金) 15:49:34.18 ID:otR8/vJ5.net] 別
477 名前:デフォルトの名無しさん mailto:sage [2015/07/24(金) 15:49:51.64 ID:8468n2WQ.net] C++、C#はCの派生と思えば良い CでできることはおおよそC++でも可能 逆は不可能
478 名前:デフォルトの名無しさん mailto:sage [2015/07/24(金) 15:51:23.82 ID:6QVy5hKS.net] なるほどーありがとうございます ではプログラミングを始めるならはC++から学ぶといいですかね?
479 名前:デフォルトの名無しさん [2015/07/24(金) 16:08:23.46 ID:l4UkmRbf.net] スタート地点がどこだか分からないと、答えにくい
480 名前:デフォルトの名無しさん mailto:sage [2015/07/24(金) 16:09:41.45 ID:otR8/vJ5.net] 何から始めるか、そんなのはあなたのお好きになさって結構ですのよ?
481 名前:デフォルトの名無しさん mailto:sage [2015/07/24(金) 17:15:33.91 ID:y3WFLvSD.net] C++が分かればCやC#を理解するのは簡単だということは言える でも俺としてはそれで済むならC#から始めることをお勧めするな C++からだと不要にトリッキーなプログラミングをする癖がつきやすい
482 名前:デフォルトの名無しさん mailto:sage [2015/07/24(金) 17:39:32.54 ID:Revko7nN.net] プログラミングを学ぶのに不向きなのがC++ 後発の言語の方がおかしな所が見直されてるからな
483 名前:デフォルトの名無しさん mailto:sage [2015/07/24(金) 17:40:42.39 ID:+CDH8aof.net] 俺はvb、c、c#、c++、js、php、python、って感じ。2年くらいで。 誰も聞いていないか…
484 名前:デフォルトの名無しさん mailto:sage [2015/07/24(金) 18:29:26.56 ID:diT8B+xd.net] >>468 「勉強ができる」と「仕事ができる」は同義じゃないっていう無慈悲な事実
485 名前:デフォルトの名無しさん mailto:sage [2015/07/24(金) 18:41:00.52 ID:NJH5MAPw.net] Qの自演が激しいな
486 名前:デフォルトの名無しさん mailto:sage [2015/07/24(金) 18:54:00.87 ID:8CeE8Pkw.net] >>472 C, C++, C# の全てを使う必要があるなら C からやった方がいい C# から入って C とかやるはめになったら、なんでこんな面倒なコード書かなきゃダメなんだよ... って終始イライラするはめになるぞ w
487 名前:デフォルトの名無しさん mailto:sage [2015/07/24(金) 19:03:38.85 ID:otR8/vJ5.net] >>480 それってさ、C#を通るつもりなら順序関係なくついて回るイライラじゃね?
488 名前:デフォルトの名無しさん mailto:sage [2015/07/24(金) 19:03:54.37 ID:6QVy5hKS.net] 色々意見ありがとうございました 色んな意見があるみたいですが C言語から初めてみようと思います プログラムで使うソフトはVisual Studio無料版で大丈夫ですか?
489 名前:デフォルトの名無しさん mailto:sage [2015/07/24(金) 19:40:33.89 ID:4dRSof9v.net] >C# から入って C とかやるはめになったら、なんでこんな面倒なコード書かなきゃダメなんだよ... >って終始イライラするはめになるぞ w それはやむを得ない最低限のコスト
490 名前:デフォルトの名無しさん mailto:sage [2015/07/24(金) 19:41:43.22 ID:+CDH8aof.net] Cイライラと言います。
491 名前:デフォルトの名無しさん mailto:sage [2015/07/24(金) 19:53:30.63 ID:/F2avD0E.net] javaしたあとゲーム作るにはjavaは向いてないと言われて1週間c++したけどヘッダファイル書くのが面倒で諦めた。 そのあとはc#で落ち着いてる。
492 名前:デフォルトの名無しさん mailto:sage [2015/07/24(金) 20:10:06.58 ID:NJH5MAPw.net] >>480 だからお前はちゃんとクソコテ付けろと言ってるのに
493 名前:デフォルトの名無しさん mailto:sage [2015/07/24(金) 21:05:29.52 ID:8CeE8Pkw.net] >>481 , >>483 いや、C しか知らなきゃ面倒だとは思ってもイライラはしないよ C# ならこんなことしなくても、とか思わないからな まあ、C なんてやらずにすむのが一番いいけど >>486 見境なく噛みつく基地害かよ そのまま逝っとけ
494 名前:デフォルトの名無しさん mailto:sage [2015/07/24(金) 23:30:08.68 ID:509tizNI.net] Qのくせに生意気だぞこのウンコ
495 名前:デフォルトの名無しさん mailto:sage [2015/07/25(土) 00:20:59.50 ID:yG8XW9tg.net] >>480 Cから始めたらそのイライラが最初に来るだけに思うが。
496 名前:デフォルトの名無しさん mailto:sage [2015/07/25(土) 02:06:45.82 ID:WJLexyQm.net] この漫画の続きが気になる i.imgur.com/1eeEjgC.jpg
497 名前:デフォルトの名無しさん mailto:sage [2015/07/25(土) 02:30:52.04 ID:+c/GPg8S.net] まずはスクリプト言語でプログラミングの基礎を知っておくのがオススメ 次にC(C++でも可)でC言語でプログラミングとメモリの関連を理解する そしてC++のSTLのコンテナをちょっと使い,その便利さに感動する その頃には力がついているだろうから,他の高級言語にも触れてみて いかにC++がいかにクソ面倒な言語だったかを知るといい
498 名前:デフォルトの名無しさん mailto:sage [2015/07/25(土) 08:59:56.13 ID:SkX3Z7YG.net] スクリプトの次は Java or C# だ コンパイル型とはなんぞやをすっ飛ばすのもダメだからな 次は Dだ そうすれば C/C++ は不要だと気づkうわなにをすr
499 名前:デフォルトの名無しさん mailto:sage [2015/07/25(土) 09:06:35.44 ID:4YIeOEp8.net] いいからクソコテつけろよ ぱっと見てQであることがわかるようにしないと 初心者が間違えてレス読んじゃうだろ
500 名前:デフォルトの名無しさん mailto:sage [2015/07/25(土) 12:26:39.13 ID:aklrBB2J.net] スプリクト言語とかストレスしか溜まらんやろ・・・
501 名前:デフォルトの名無しさん mailto:sage [2015/07/25(土) 14:00:54.67 ID:9sBkx8wS.net] >>489 C# 知らなきゃ羨むこともない 羨むことがなければイライラもしない >>488 , >>493 基地害乙
502 名前:デフォルトの名無しさん mailto:sage [2015/07/25(土) 15:31:58.00 ID:M81ZVCG0.net] 俺疲れてるんだろうか… スクリプト言語をクリトリス言語って読んだ…
503 名前:デフォルトの名無しさん [2015/07/25(土) 16:25:39.93 ID:BWHqIEpS.net] 溜まってるんだろ 夜中に疲れるようなことはしてなさそうだし
504 名前:デフォルトの名無しさん mailto:sage [2015/07/25(土) 16:58:43.29 ID:HsoHLuhx.net] >>496 それを日本語で叫んでいるからでは?
505 名前:デフォルトの名無しさん [2015/07/25(土) 17:22:58.00 ID:nLnyX4/G.net] VisualStudio6.0 VC++でビルドできていたソースを VisualStudio2003 VC++に変換し、ビルドしたら以下のエラーがでたんですが、 何をすればよいのですか? とっかかりがわからないので誰か助けて下さい。 c:\****.h(32) : warning C4002: マクロ 'W2A' に指定された実引数の数が多すぎます。 c:\****.h(32) : error C2143: 構文エラー : ')' が '=' の前にありません。 c:\****.h(32) : error C2334: ':' の前に予期しないトークンがありました。関数の本体は無視されます c:\****.h(32) : error C2760: 構文エラー : '{' でなければなりませんが、';' が使われています。 c:\****.h(33) : error C2144: 構文エラー : 'int' は '}' によって先行されなければなりません。 c:\****.h(33) : error C2226: 構文エラー : 'BOOL' 型指定子の前あるいは内部で構文エラーが発生しました。 c:\****.h(33) : error C2238: ';' の前に無効なトークンがあります。
506 名前:デフォルトの名無しさん mailto:sage [2015/07/25(土) 17:25:14.32 ID:bLirGUmg.net] その***.hをここに貼れば?
507 名前:デフォルトの名無しさん [2015/07/25(土) 18:06:55.55 ID:nLnyX4/G.net] c:\Souce\func.h です。
508 名前:デフォルトの名無しさん mailto:sage [2015/07/25(土) 18:10:04.16 ID:bLirGUmg.net] >>501 貼るのは中身に決まってるだろ! ファイル名書いてどうすんだよ!
509 名前:デフォルトの名無しさん [2015/07/25(土) 18:18:38.46 ID:KYYL09mI.net] c:\Souce\func.hをアドレスバーに入力してメモ帳で開けばいいよ
510 名前:デフォルトの名無しさん [2015/07/25(土) 18:25:42.26 ID:Vn8b7tdb.net] ファイルが見つかりませんでした /c:/Souce/func.h にはファイルが見つかりませんでした。 って出ました。どうすればいいですか
511 名前:デフォルトの名無しさん mailto:sage [2015/07/25(土) 18:30:49.41 ID:bLirGUmg.net] >>504 id変わっとるぞ 偽物かよw
512 名前:デフォルトの名無しさん mailto:sage [2015/07/25(土) 18:38:24.27 ID:LiaI99xy.net] >>501 電車の中なのに笑わせんなw恥ずかしい・・・
513 名前:デフォルトの名無しさん mailto:sage [2015/07/25(土) 18:43:44.81 ID:gam3Nnrg.net] 漫才ワロタ
514 名前:デフォルトの名無しさん mailto:sage [2015/07/25(土) 19:16:49.46 ID:JrsaQ9nu.net] >>504 はいつもの荒らしQZ
515 名前:デフォルトの名無しさん [2015/07/25(土) 19:40:55.54 ID:nLnyX4/G.net] 失礼しました。 どうぞお知恵を下さい。
516 名前:デフォルトの名無しさん [2015/07/25(土) 19:43:35.92 ID:nLnyX4/G.net] #ifndef __FUNC_H__ #define __FUNC_H__ class CGfunc { public: CGfunc(); ~CGfunc(); static void GetModuleDir( CString& strDir ); static BOOL DW2AH(BYTE* pbyTo, DWORD dwFrom, int nSize); static BOOL B2Z(BYTE* pbyTo, WORD wFrom, int nSize); static BOOL CheckAndCreateDirectory(LPCSTR szCheckDirectory, BOOL bCreate, BOOL bShowMsg = FALSE ); static DWORD PassTime(DWORD StartTime, DWORD EndTime); static LONG StringToLong( LPCTSTR lpszText, BOOL *pBool, int nBase ); static BOOL B2A(BYTE* pbyTo, WORD wFrom, int nSize); static BOOL A2B(BYTE* pbyTo, BYTE* pbyFrom, int nSize); static BOOL W2A(BYTE* pbyTo, WORD wFrom, int nSize); static BOOL W2Z(BYTE* pbyTo, WORD wFrom, int nSize); static BOOL A2W(WORD* pwTo, BYTE* pbyFrom, int nSize); static BOOL A2DWH(DWORD* pdwTo, BYTE* pbyForm, int nSize);
517 名前:デフォルトの名無しさん mailto:sage [2015/07/25(土) 20:03:37.77 ID:309x+t0o.net] >>499 下の方のエラーは、上の方のエラーの影響で、 連鎖的にエラーになっているだけかも知れないので、 一番上のエラーから、一つずつ解決していく warning は後でもよいので、 まず、error C2143 から修正してビルドする。 すると、それより下のエラーが無くなるかも
518 名前:デフォルトの名無しさん mailto:sage [2015/07/25(土) 20:05:53.70 ID:yG8XW9tg.net] W2Aって自作の関数か。 MFCに同名のマクロがあるからそれとかちあってるんだろう。
519 名前:デフォルトの名無しさん mailto:sage [2015/07/25(土) 20:11:20.10 ID:bLirGUmg.net] >>510 >BOOL bShowMsg = FALSE ); このデフォルト引数の書き方、これで良かったっけ? 最近c#、jsやってばかりなのでc++文法忘れたw
520 名前:デフォルトの名無しさん mailto:sage [2015/07/25(土) 20:21:15.04 ID:gam3Nnrg.net] >>513 問題ないと思うけど。
521 名前:デフォルトの名無しさん mailto:sage [2015/07/25(土) 20:21:43.52 ID:9SEykvB/.net] C#も同じだろ
522 名前:デフォルトの名無しさん mailto:sage [2015/07/25(土) 20:23:09.46 ID:bLirGUmg.net] >>514 あっそう。ならいいか。おいらの勘違い。 optional付けるのは何だっけ?
523 名前:デフォルトの名無しさん [2015/07/25(土) 21:02:49.41 ID:nLnyX4/G.net] >>512 解決しました! ありがとうございます!!
524 名前:デフォルトの名無しさん mailto:sage [2015/07/25(土) 21:06:33.90 ID:bLirGUmg.net] >>512 なかなかやるなあ。
525 名前:デフォルトの名無しさん mailto:sage [2015/07/25(土) 21:24:02.27 ID:OlGyUGGN.net] gccはなんでがんばらないんだ?
526 名前:デフォルトの名無しさん mailto:sage [2015/07/25(土) 21:27:15.25 ID:9sBkx8wS.net] >>516 VBA 廚が来るスレじゃないよ
527 名前:デフォルトの名無しさん mailto:sage [2015/07/25(土) 21:31:39.12 ID:bLirGUmg.net] >>520 ああvbか。へへへ
528 名前:デフォルトの名無しさん mailto:sage [2015/07/26(日) 01:14:02.10 ID:crh35aQy.net] >#ifndef __FUNC_H__ なんだこの糞コードは
529 名前:デフォルトの名無しさん mailto:sage [2015/07/26(日) 01:17:02.51 ID:gbPhG/q3.net] 多重読み込み防止だろ。onceが使えないコンパイラがあるか知らんが
530 名前:デフォルトの名無しさん mailto:sage [2015/07/26(日) 01:19:21.34 ID:b9Te7oyV.net] >>522 古典的なインクルードガードだよ
531 名前:デフォルトの名無しさん mailto:sage [2015/07/26(日) 01:33:01.27 ID:gbPhG/q3.net] 俺がガキのころは変態的なマシン語すら挑む奴も少なくなかったのに。 俺にとってはマシンを買うので精一杯。どうすればマシン語を学べるかも分からんかった。 javaにしろC#にしろGUIの統合開発環境がタダで手に入る。しかし本格的なC/C++開発環境は高い…
532 名前:デフォルトの名無しさん [2015/07/26(日) 02:06:15.51 ID:MbDtouES.net] むかしほどマシン語、アセンブラだろ。
533 名前:デフォルトの名無しさん mailto:sage [2015/07/26(日) 05:39:55.53 ID:lHuPUw3L.net] 妙な物でも欲しがらなければいただき物のライブラリと自前でなんとかできないことも… ダメだめんどくせえ
534 名前:デフォルトの名無しさん mailto:sage [2015/07/26(日) 09:21:43.15 ID:dpaqhCLa.net] >>525 ワシはトランジスタとかハードに興味があってそこからCPUの内部構成とか本を読み進めていったから、 パソコン手にいれてBASIC遅い、いきなりハンドアセンブルだったけど。 中身がわかっていればなんとかなる。 ブラックボックスだとどうにもならん。
535 名前:デフォルトの名無しさん mailto:sage [2015/07/26(日) 09:37:04.43 ID:Cv7bqKbx.net] >しかし本格的なC/C++開発環境は高い… visual studio有るやん?
536 名前:デフォルトの名無しさん mailto:sage [2015/07/26(日) 09:55:40.41 ID:d9clz1q1.net] >しかし本格的なC/C++開発環境は高い… Visual Studio 2013 communityをダウソして幸せ タダなのにPGOも使える…!
537 名前:デフォルトの名無しさん mailto:sage [2015/07/26(日) 09:58:00.05 ID:d9clz1q1.net] 個人的にはやってないが、Eclipse + CDTでもウィンドーズプログラミングがタダでやれる環境一式が タダで入手できる、 ttp://monoist.atmarkit.co.jp/mn/articles/0709/26/news119.html
538 名前:デフォルトの名無しさん mailto:sage [2015/07/26(日) 09:58:51.80 ID:Cv7bqKbx.net] >>530 pgoって何やネン?きーたことないぞ。 有名なのか?
539 名前:デフォルトの名無しさん mailto:sage [2015/07/26(日) 10:00:08.82 ID:Cv7bqKbx.net] >>531 わざわざそんなの使うメリットって何? visualstudioでええやん?
540 名前:デフォルトの名無しさん mailto:sage [2015/07/26(日) 10:03:55.03 ID:d9clz1q1.net] >>532 ガイド付き最適化。実行時プロファイルに基づく最適化のキッツイやつハアハア; ttps://msdn.microsoft.com/ja-jp/library/e7k32f4k.aspx >>533 Eclipse + CDTに馴染んどくとアンド○イドやNi○sとかが姦れる、
541 名前:デフォルトの名無しさん mailto:sage [2015/07/26(日) 10:06:36.07 ID:dpaqhCLa.net] ポトペタでGUI作りたいというならQt Creatorでええやん 言語拡張がキモいが
542 名前:デフォルトの名無しさん mailto:sage [2015/07/26(日) 10:09:47.65 ID:Cv7bqKbx.net] >>534 >>>532 >ガイド付き最適化。実行時プロファイルに基づく最適化のキッツイやつハアハア; url見たが難しそうな機能だな。君は優秀なのか。どんなアプリでこんな機能が役立つんだ? >>>533 >Eclipse + CDTに馴染んどくとアンド○イドやNi○sとかが姦れる、 なるほど。でも android studioじゃあダメなん?
543 名前:デフォルトの名無しさん mailto:sage [2015/07/26(日) 10:51:02.38 ID:d9clz1q1.net] >>536 別に >>536 童貞なのでわかりません詳しく教えてください
544 名前:デフォルトの名無しさん mailto:sage [2015/07/26(日) 12:39:30.77 ID:FhhlC2CC.net] 530はそろそろVisual Studio 2015入れた方がいいぞ
545 名前:デフォルトの名無しさん mailto:sage [2015/07/26(日) 13:12:42.26 ID:lHuPUw3L.net] そしてあふれ出すエラー とりあえず今作っているソフトの開発が終わるまでは今のバージョンを使った方がいいかもしれない
546 名前:デフォルトの名無しさん mailto:sage [2015/07/26(日) 13:29:53.12 ID:FhhlC2CC.net] 確かにウンコ盛りにエラーが出たので何かと思ったら 拡張抑制/Zaになってたな
547 名前:デフォルトの名無しさん [2015/07/26(日) 21:47:29.71 ID:gjPv3y4Y.net] 何だウンコ盛りって 300tくらいあったのか?
548 名前:デフォルトの名無しさん mailto:sage [2015/07/27(月) 11:29:38.12 ID:CNZagTjD.net] >>523 ,524 アンスコから始まるの予約されてるだろバーカ
549 名前:デフォルトの名無しさん mailto:sage [2015/07/27(月) 13:08:08.96 ID:6aCEZs+0.net] さらに、出現場所を問わず連続するアンスコも予約されている
550 名前:デフォルトの名無しさん mailto:sage [2015/07/27(月) 13:20:26.27 ID:B/9oklNt.net] IDEが自動生成するインクルードガードがよくそうなってるな
551 名前:デフォルトの名無しさん mailto:sage [2015/07/27(月) 15:16:43.50 ID:BydnIZC/.net] アンダースコアといえばこれ MOST BRILLIANTEST C++ XML CREATION LIBRARY www.mr-edd.co.uk/code/xsmell
552 名前:デフォルトの名無しさん [2015/07/28
] [ここ壊れてます]
553 名前:(火) 09:53:48.98 ID:bQaTHCYN.net mailto: 関数、ラムダ式は引数でしか関数に渡せない これをテンプレート引数で渡す方法は 関数、ラムダ式をクラスでラッピングして渡す以外 ありませんね [] [ここ壊れてます]
554 名前:デフォルトの名無しさん [2015/07/28(火) 10:06:02.18 ID:dTDCCqO3.net] int* hoge=new int[3]; int* hage=new int[3](); hogeの中身は不定ですがhageの中身は0になります。 この動作は規格で定められているのですか?
555 名前:デフォルトの名無しさん [2015/07/28(火) 10:07:38.29 ID:bQaTHCYN.net] #include <iostream> using namespace std; auto f(){cout<<"a"<<endl;} struct F{ auto operator()(){f();} }; template<typename T> struct G:public T{ auto f(){ T::operator()();} }; int main() { G<F> g; g.f(); return 0; } これがラッピングしなければならないときの例ですね
556 名前:デフォルトの名無しさん mailto:sage [2015/07/28(火) 10:27:21.35 ID:/loMUuqp.net] >>547 はい。 5.3.4 [expr.new] p17 → 8.5 [dcl.init]
557 名前:デフォルトの名無しさん mailto:sage [2015/07/28(火) 10:31:51.77 ID:/loMUuqp.net] >>546 , template<void (&F)()> void f() { F(); } void g(); int main() { f<g>(); } ラムダ式じゃなければふつうに渡せる。 非 static メンバ関数だともう少し面倒。 ラムダ式の場合は >548 の形でもできないでしょ。
558 名前:デフォルトの名無しさん [2015/07/28(火) 11:38:28.77 ID:bQaTHCYN.net] #include <iostream> using namespace std; auto f=[](){cout<<"a"<<endl;}; struct F{ auto operator()(){f();} }; template<typename T> struct G:public T{ auto f(){ T::operator()();} }; int main() { G<F> g; g.f(); return 0; } ラムダ式のときもできる
559 名前:デフォルトの名無しさん mailto:sage [2015/07/28(火) 21:25:18.87 ID:SNZ52Jzu.net] ラムダは何の問題もなくラッピングせずに渡せるようだが ideone.com/NtuGx8
560 名前:デフォルトの名無しさん mailto:sage [2015/07/29(水) 02:42:43.53 ID:NQzSGNNc.net] onceもなしに自動的に多重読み込み禁止する仕様にならないのかな?
561 名前:デフォルトの名無しさん mailto:sage [2015/07/29(水) 07:13:39.09 ID:rk6LjJd2.net] >>553 まれに必要になるのでそんなクソ仕様はノーサンクス
562 名前:デフォルトの名無しさん mailto:sage [2015/07/29(水) 12:32:57.50 ID:28u7IK/+.net] デフォルトでは多重インクルード禁止にして、多重インクルードしたいときは明示的に指定する、みたいな仕様だったらよかったのに。
563 名前:デフォルトの名無しさん mailto:sage [2015/07/29(水) 13:06:15.18 ID:bvg/9GfF.net] 今更どうでもいいわ
564 名前:デフォルトの名無しさん mailto:sage [2015/07/29(水) 13:48:15.68 ID:c3o2n8R7.net] c、c++にヘッダーファイルが有る限り プログラマのヘッドはイライラで薄くなる。cヘッダーの法則。
565 名前:デフォルトの名無しさん mailto:sage [2015/07/29(水) 13:57:38.20 ID:X1QI8uU6.net] もっとムカつく仕様他にあるだろ
566 名前:デフォルトの名無しさん [2015/07/29(水) 16:41:18.43 ID:Ksre1ZX7.net] スキルに応じてむかつきの届く範囲が決まる
567 名前:デフォルトの名無しさん mailto:sage [2015/07/29(水) 17:23:22.00 ID:cLTEarjr.net] 最近の開発環境ではまず間違いなくヘッダの最初にpragma onceが書き込まれているのに、 多重インクルードがどうのこうのってヘッダに一体何をしているのよ まあ、この方法で防げない多重インクルードもあるにはあるけど…
568 名前:デフォルトの名無しさん mailto:sage [2015/07/29(水) 17:39:59.57 ID:pbVhTscn.net] ヘッダファイル自体がムカつくとか?
569 名前:デフォルトの名無しさん mailto:sage [2015/07/29(水) 17:58:43.44 ID:3D4kyBnd.net] 実装のほとんどをヘッダに書いてしまう俺は ヘッダファイルが無くなったら死んでしまう
570 名前:デフォルトの名無しさん [2015/07/29(水) 18:58:20.34 ID:rGYq8vhn.net] doubleをクラステンプレートにコンパイル時に渡すにはどうしたらいいでしょうか?
571 名前:デフォルトの名無しさん mailto:sage [2015/07/29(水) 19:44:04.54 ID:i9R3N92y.net] は?何を質問してるのか分からない MyClass<double>じゃだめなのか?
572 名前:デフォルトの名無しさん mailto:sage [2015/07/29(水) 20:29:02.57 ID:Lqhf3GERA] ほとんどをヘッダで実装するのってコツとかあるの c++でそれやってるやつがソース書くの異次元に速くて 試作段階でヘッダだけの実装できると便利そうだから 真似したいんだけど依存関係で憤死する
573 名前:デフォルトの名無しさん [2015/07/29(水) 20:25:25.14 ID:rGYq8vhn.net] MyClass<1.011011101111>
574 名前:デフォルトの名無しさん mailto:sage [2015/07/29(水) 21:10:06.80 ID:JV2gkNFI.net] >>563 ideone.com/xk6OYu
575 名前:デフォルトの名無しさん mailto:sage [2015/07/29(水) 21:34:36.21 ID:c3o2n8R7.net] >>567 こういうのやる場合に いちいちstructやstaticを使わなくちゃ いけないc++が嫌いなのよね、私。 別に566さんに文句言ってる訳じゃ無いから誤解しちゃ嫌よ。
576 名前:デフォルトの名無しさん mailto:sage [2015/07/29(水) 22:47:54.13 ID:i9R3N92y.net] はあ値の話か それなら分子/分母にするとかratio使えば良い 面倒くさいけどしかるべき理由があってそういう仕様になってるんだからしょうがない
577 名前:デフォルトの名無しさん mailto:sage [2015/07/29(水) 23:01:52.16 ID:8ufoHAW9.net] >分子/分母にするとかratio使えば良い いやほんと、キチガイってどうしようもないですね
578 名前:デフォルトの名無しさん mailto:sage [2015/07/30(木) 01:07:46.86 ID:1osdJ7bT.net] いや、そいつの言ってることは合ってるぞ
579 名前:デフォルトの名無しさん [2015/07/30(木) 07:21:57.53 ID:IRhOhEU9.net] #include <iostream> using namespace std; struct A{ A(double x){}; }; struct T{ static auto Create(){return A{3.14159265359};} }; template<typename A,typename T> struct Singleton{ static Singleton& Instance(){ if(pInstance=nullptr) pInstance=new Singleton(T::Create());; return *pInstance; } private: static Singleton *pInstance; Singleton(A a){}; }; template<typename A,typename T> Singleton<A,T> *Singleton<A,T>::pInstance=nullptr; int main(){ Singleton<A,T> singleton=Singleton<A,T>::Instance(); return 0; } doubleのテンプレート引数が使えないから こんな風にハードコーディングする以外ないのかwwww
580 名前:デフォルトの名無しさん mailto:sage [2015/07/30(木) 07:43:02.31 ID:1osdJ7bT.net] どうしてもdoubleが欲しいなら、整数2つ取って割ればいいだけだろと 浮動小数点演算での桁落ちなどで、 齟齬が出るを防ぐための仕様なんだから仕方がない
581 名前:デフォルトの名無しさん mailto:sage [2015/07/30(木) 11:47:53.96 ID:6YSUOc3O.net] 質問です。friend関数内でstd::map型の変数を参照しようとすると 何故かエラーが出てしまうのですが、その原因が分かりません……。 どこを修正すればいいのでしょうか? https://ideone.com/I20AFB
582 名前:573 mailto:sage [2015/07/30(木) 11:53:53.15 ID:6YSUOc3O.net] >>574 に追記: 特に訳が分からないのは、friend関数内で > if (sample.data.find("test") == sample.data.end()) { > return false; > } と書いてもエラーが出ず正常に処理されるのに、同じように中を覗くだけな > if(sample.data["test"] == 4){ > return true; > } が弾かれるところです……
583 名前:デフォルトの名無しさん [2015/07/30(木) 12:08:38.71 ID:zBiabvhV.net] const取ったらいけた
584 名前:デフォルトの名無しさん mailto:sage [2015/07/30(木) 12:12:54.34 ID:6YSUOc3O.net] >>576 試しにconstを外すと出来ましたが、どうしてなんでしょう……?
585 名前:デフォルトの名無しさん [2015/07/30(木) 12:15:04.02 ID:zBiabvhV.net] しらんけどmapの[]は挿入もするからじゃないの
586 名前:デフォルトの名無しさん mailto:sage [2015/07/30(木) 12:32:30.19 ID:LVZCxL2Z.net] mapのoperator[]にはconstなのは無いからというだけだよ operator[]は存在しないキーを渡された時は新しいエントリ作るし constな操作だけするならatを使うべき
587 名前:デフォルトの名無しさん mailto:sage [2015/07/30(木) 12:37:51.70 ID:6YSUOc3O.net] >>579 atにしたら直りました!ありがとうございます!
588 名前:デフォルトの名無しさん [2015/07/30(木) 21:28:46.56 ID:LvAxRdyw.net] boost::graphの 内部プロパティーマップの実装方法わかる人教えてください ソース見ても複雑すぎてわかりませんでした
589 名前:デフォルトの名無しさん mailto:sage [2015/07/30(木) 23:56:55.97 ID:iTgfG7Xg.net] auto& get() { static int a[5]; return a; } この場合get()の戻り値はint[5]型の参照となるのですが これを型推論を使わずに書くことは不可能ですか?
590 名前:デフォルトの名無しさん mailto:sage [2015/07/30(木) 23:59:49.55 ID:hqLCb8yH.net] 普通に書けばいい
591 名前:デフォルトの名無しさん mailto:sage [2015/07/31(金) 00:06:41.94 ID:M0+dayZb.net] >>582 ideone.com/xs3vL5
592 名前:デフォルトの名無しさん mailto:sage [2015/07/31(金) 05:23:54.49 ID:f3sd0Tcl.net] 今画面四隅に四つ画像を配置していてそれを時計回りに移動する課題で右上と左下の動きは一致しているのに左上と右下の動きが一致しない原因分かりますか?if else文の条件は全て同じで画像座標はIGraphicsとCTextureを使用してます
593 名前:デフォルトの名無しさん mailto:sage [2015/07/31(金) 06:18:29.17 ID:bf3zool5.net] 先生に聞け
594 名前:デフォルトの名無しさん mailto:sage [2015/07/31(金) 07:15:26.39 ID:17HtGFaS.net] 原因はあなたのプログラムが間違っているから
595 名前:デフォルトの名無しさん mailto:sage [2015/07/31(金) 08:50:46.77 ID:qbq3o/Dl.net] >>584 ありがとうございます
596 名前:デフォルトの名無しさん mailto:sage [2015/07/31(金) 22:51:25.50 ID:vfuWUfRE.net] >>587 ここまで来ると逆に清々しいくらい適当でワラタ ソースのバグに関しての質問はバグっているソースを貼らないと誰も答えてくれない 誰も 覚えておくといいよぉ
597 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 09:38:28.09 ID:gbSDlwF+.net] この情報で求める答えが得られると 思っている質問者はヤバい 少なくともプログラマには致命的に向いていないな
598 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 09:48:31.86 ID:UaSYqc/x.net] 釣りに反応するのはエサを与えるようなもの
599 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 13:32:10.45 ID:Ly9Q7gw0.net] >>585 が釣りにはとても見えないな 質問の仕方が雑すぎるけど ソースもないのにどうやってバグを特定するんだよ、ここはエスパースレと違うぞ
600 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 13:37:20.81 ID:ocangCve.net] まず釣りでは無いだろうがいつまでもアホに構う必要もない
601 名前:デフォルトの名無しさん [2015/08/02(日) 20:17:59.13 ID:RMQu1Gga.net] #include <iostream> using namespace std; struct C{ auto c(){cout<<"a"<<endl;} }; template<typename C> struct B{ auto b(){C c;c.c();} }; template<typename C,template <typename >typename B> struct A:public B<C>{ A(){B<C> b;b.b();} }; int main() { A<C,B> a; return 0; } このコードで 構造体Aのテンプレート引数でCとBは直行してるといえますか? ここでCはcというメンバー関数を持っているというポリシーです
602 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 20:52:36.42 ID:r9zgY4sL.net] ではまず直交とやらの定義を伺おうか
603 名前:デフォルトの名無しさん [2015/08/02(日) 21:16:23.04 ID:ZDA5sqpG.net] それがわかれば質問しないじゃないですか?
604 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 22:25:19.92 ID:7ExdGetO.net] 言わないと思うけど
605 名前:デフォルトの名無しさん [2015/08/03(月) 22:17:35.15 ID:UgmbvDew.net] 素で「直交」を知らないんじゃね?
606 名前:デフォルトの名無しさん mailto:sage [2015/08/03(月) 23:17:32.86 ID:D/39CxMZ.net] よく読め 「直行」だぞ
607 名前:デフォルトの名無しさん mailto:sage [2015/08/03(月) 23:40:04.63 ID:DQ3lQWy0.net] クラスが表現している概念も無しに形だけ見て クラスに直交とか直行といった観念はない
608 名前:デフォルトの名無しさん mailto:sage [2015/08/04(火) 00:02:23.92 ID:nNiIe3QQ.net] >>599 直行って感じじゃないよな、なんか経由必死って感じのコードだよな
609 名前:デフォルトの名無しさん mailto:sage [2015/08/04(火) 01:45:27.67 ID:k1baIV71.net] 直交性は簡単にいうと独立性の比喩表現みたい。 アルゴリズムとコンテナの関係。 modern C++ designは必読だな。
610 名前:デフォルトの名無しさん mailto:sage [2015/08/04(火) 22:45:49.46 ID:82G3IUDB.net] アルゴリズムとコンテナの独立性を高めたら vectorの要素削除が糞仕様になりました
611 名前:デフォルトの名無しさん mailto:sage [2015/08/04(火) 23:11:24.46 ID:Oq1k1GNA.net] 配列形式のデータ構造で削除や挿入をやろうとする性根が腐っているだけ
612 名前:デフォルトの名無しさん mailto:sage [2015/08/04(火) 23:19:27.90 ID:QQEluM3y.net] vectorの要素削除はどうかしてるよな… まぁ、使うないう事なんだろうけど。
613 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 01:18:54.80 ID:4nkCM5Wj.net] しかし可変長配列とはそういう物なのではないのかという気もする ただ後から追加して要素数を変えられるだけの配列ならそんなに使いたいとは思わないかなと
614 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 02:46:20.84 ID:1AXGWxrj.net] www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4273.htm > // <experimental/vector> > template <class T, class A, class Predicate> > void erase_if(vector<T, A>& c, Predicate pred); > template <class T, class A, class U> > void erase(vector<T, A>& c, const U& value);
615 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 08:05:12.93 ID:BwGFdpHz.net] vectorでeraseが頻発するって状況がおかしいだろ。達磨落としが趣味なのか? 効率の良いpop_backやresize使った削除はキレイに書けるし
616 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 08:13:44.75 ID:V1JL2leZ.net] >>608 どうしたいきなり スレ違いか?
617 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 12:31:45.91 ID:XWi/Xegl.net] >>609 え、>>603 以降の流れってそういう話じゃねえの>vectorで要素削除の効率が悪い
618 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 12:33:31.84 ID:CufRLk0m.net] >>603 は「糞仕様」って言ってるだけの糞発言だからスルーすべきだった
619 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 18:12:46.55 ID:tC4jP87n.net] 効率悪いのは独立性と関係ないだろ remove-eraseの書き方が面倒ってことじゃね
620 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 19:27:29.19 ID:bXDjutxr.net] タプルの仕様(std::getとか)が気持ち悪いです。
621 名前:デフォルトの名無しさん [2015/08/05(水) 19:35:44.57 ID:mBnDCgiD.net] std::getはタプル専用というわけではなく 静的に配列の番号がわかるものなら何でもget出来るのよ もし自由関数じゃなくメソッドなら配列の要素を出したり出来ないでしょ
622 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 19:40:28.35 ID:CufRLk0m.net] ここは相談室であってC++の規格に対して糞、気持ち悪いなどの意味不明なケチをつけるスレではない
623 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 19:46:34.55 ID:0Qsn+5C2.net] どう見ても後者は「気持ち悪いです」「どうしたらキレイに書けますか?」「他にいい方法ありませんか?」 という相談だろうに 意味不明なケチをつけていると決めつけるなんてちょっと残念な人ですね
624 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 20:09:58.55 ID:BwGFdpHz.net] >>615 その話題を除外すると ここのレス半分ぐらいになりそうだな
625 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 20:11:44.53 ID:ulvngql4.net] >>614 ソースは?
626 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 20:21:42.15 ID:4nkCM5Wj.net] >>616 そこまで行くと邪推の領域だと思う ただ主観で生理的に嫌などという感想を言ってるだけの輩はこのスレでは珍しくもないのに、 それを見てそんな想像をしちゃいかん
627 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 20:45:38.21 ID:0Qsn+5C2.net] ホント残念な人ですねぇ このスレは主観で感想言ってるだけの輩が多い →まあそうかも知れない 612もそうに違いない →そう思うのは個人の勝手だけど 612はケチをつけるだけのレスである →決めつけちゃだめ 612が相談であると思うことはいけないことだ →病んでますね
628 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 23:00:55.20 ID:4nkCM5Wj.net] ふと思ったけど、彼は常にこんな調子なんだろうか
629 名前:デフォルトの名無しさん mailto:sage [2015/08/06(木) 17:59:59.91 ID:Q19F5Urp.net] 質問です 一時オブジェクトは大抵スタックに生成されて消滅するようなのですが、 スタック領域を超えるような大きな一時オブジェクトを生成するとスタックオーバーフローで 停止してしまいます こういう場合スタック領域を増やさないでやり過ごすには、スマポにnewして入れるしか ないでしょうか?
630 名前:デフォルトの名無しさん mailto:sage [2015/08/06(木) 18:26:22.90 ID:z5Vn6nJg.net] >>622 オブジェクトが一つでいいなら、staticでとってplacement new
631 名前:デフォルトの名無しさん mailto:sage [2015/08/06(木) 18:27:01.97 ID:btF+6/4c.net] ひねくれたやつがお好みなら vector<Hage> hage(1);
632 名前:デフォルトの名無しさん mailto:sage [2015/08/06(木) 20:54:33.76 ID:0BWHDdz7.net] >>622 ラッパーを作る ideone.com/DleBDC
633 名前:デフォルトの名無しさん mailto:sage [2015/08/06(木) 22:00:26.80 ID:WErVN1hR.net] 動的型言語戦争になるけど >>625 のahoみたいにintを返す関数なのに返り値をautoにした関数定義ってC++的には良くない書き方だよね
634 名前:デフォルトの名無しさん mailto:sage [2015/08/06(木) 22:14:25.19 ID:+xc9fZpc.net] static typingのC++と動的型言語に何か関係が?
635 名前:デフォルトの名無しさん [2015/08/06(木) 22:45:53.80 ID:4i9YhdqX.net] 型は出来るだけ型推論に任せて自分で書かないほうがいいんだよ その方がメンテナンスのとき少しの変更だけで済むだろ
636 名前:デフォルトの名無しさん mailto:sage [2015/08/06(木) 23:10:16.07 ID:WErVN1hR.net] スマソ 何か勘違いした
637 名前:デフォルトの名無しさん mailto:sage [2015/08/06(木) 23:53:49.31 ID:YtIxgi9m.net] autoで怖いのが&の付け忘れ
638 名前:デフォルトの名無しさん mailto:sage [2015/08/07(金) 04:25:21.44 ID:2DYolGPs.net] >>630 なんてタイムリーな話だ、つい先程&つけ忘れのバグを潰したぞ range forで失敗するとダングリングポインタになってわかりにくい
639 名前:デフォルトの名無しさん [2015/08/07(金) 09:19:18.16 ID:VAWnCwHi.net] まさか参照返しのとき戻り値の型をauto&にしているって話じゃないだろうな? ただしくはdecltype(auto)だぞ
640 名前:デフォルトの名無しさん mailto:sage [2015/08/07(金) 17:24:18.68 ID:VLC7VD9U.net] C++は好きだけど業務では絶対やりたくないな 他人のコード読むのつらそう
641 名前:デフォルトの名無しさん [2015/08/07(金) 17:33:03.54 ID:huwnU3aC.net] #ifでintが4バイトの時と8バイトの時で 処理を分けたいのですがどうやって書けばいいですか #if sizeof int > 4 が使えません
642 名前:デフォルトの名無しさん [2015/08/07(金) 18:08:42.14 ID:VAWnCwHi.net] sizeof(int)でわける
643 名前:デフォルトの名無しさん mailto:sage [2015/08/07(金) 18:19:18.12 ID:A3RA+LXU.net] sizeof(int)==8の処理系って今現在どんなのがあんの?
644 名前:デフォルトの名無しさん mailto:sage [2015/08/07(金) 19:33:14.47 ID:Wf7UnCAa.net] >>634 完全じゃないけど INT_MAX で場合分けすれば実用上問題ないでしょ
645 名前:デフォルトの名無しさん mailto:sage [2015/08/07(金) 20:11:49.21 ID:FU68L4Np.net] >>634 sizeof typeは文法エラーsizeof(type)にしなきゃならない。 でも、プリプロセッサは定数と解釈してくれないのでダメ。 C++スレなのでテンプレート使えば? template<int> hoge(); template<> hoge<4>() {} template<> hoge<8>() {} hoge<sizeof(int)>();
646 名前:デフォルトの名無しさん mailto:sage [2015/08/07(金) 22:56:57.06 ID:dfH8XGN0.net] >>632 auto&がどう正しくないのか詳しく お前の脳内ルールと照らし合わせてNGってのは無しで
647 名前:デフォルトの名無しさん [2015/08/07(金) 23:22:24.81 ID:MOuyBS4E.net] >>630 それはautoの間違った使い方 考えるのを放棄するフリをしながら特定の答えを 期待し厳しく要求する乙女チックな使い方をすべきautoを 童貞が使うようなものだ
648 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 01:45:28.44 ID:mAU+OpWx.net] また面倒くさい人が来てる
649 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 07:27:54.62 ID:rDuvbo6u.net] autoとdecltyte(auto)の違いを参照が落ちるか保存されるか ぐらいにしか思ってないバカには難しかったかもな 使い分けが必要 ideone.com/oXWCe3
650 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 07:39:15.95 ID:rDuvbo6u.net] autoの方に&忘れた まあ、なんでもdecltyte(auto)にすればいいってわけじゃないってことで
651 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 08:51:22.03 ID:FxpuX4lE.net] c++バリバリに出来るけど javascriptなんて見たことも触った事も無いって言う人の割合はc++バリバリさんの何パーセントくらいでしょうか?
652 名前:デフォルトの名無しさん [2015/08/08(土) 08:58:52.28 ID:cTv9rgDe.net] ほぼいない どっかで触れてる
653 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 09:22:45.99 ID:CVdJzgpn.net] >>642 ミミズ程度の知能しかない俺には役に立った
654 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 12:10:31.97 ID:Mc/f/Gdi.net] >>644 業務レベルバリバリと黒魔術バリバリでほぼ別の生き物だから
655 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 19:33:00.54 ID:OIdneV3L.net] >>647 どっちが黒魔術でどっちが業務レベル?
656 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 21:02:12.54 ID:mAU+OpWx.net] >>642-643 クソ笑ったw自分がつけ忘れてんじゃねーかw
657 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 21:03:50.34 ID:mAU+OpWx.net] そもそもこれ受け手じゃなくて関数の宣言じゃないか range based forの話じゃなかったのか?
658 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 01:24:19.04 ID:TigXZj7I.net] >>648 は会話のできないアスペ
659 名前:デフォルトの名無しさん [2015/08/09(日) 04:50:31.44 ID:ofrSttk1.net] ふっかーつ
660 名前:デフォルトの名無しさん mailto:sage [2015/08/12(水) 21:11:12.97 ID:HTmqsBor.net] 重い処理終了時に予め登録しておいたコールバック関数が呼ばれるように実装したいのですが、以下の方法だとどれが今時ですか? もしくはもっといい方法ありますか? 関数ポインタ std:function winAPIメッセージループ
661 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/08/12(水) 21:28:28.08 ID:VQCZ0+hx.net] >>653 マルチスレッドを使う方法がある
662 名前:デフォルトの名無しさん mailto:sage [2015/08/12(水) 21:56:25.98 ID:P16Kw9k7.net] クラスA内でクラスB引数の関数を定義して クラスB内でクラスA引数の関数を定義したいのですが可能でしょうか
663 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/08/12(水) 22:00:16.78 ID:VQCZ0+hx.net] >>655 設計が論理的に間違っている
664 名前:デフォルトの名無しさん mailto:sage [2015/08/12(水) 22:00:43.84 ID:Hhw23eoj.net] ていうか普通は他のスレッドに何らかのイベント(この場合は「重い処理」の終了というイベント)を知らせるためにコールバック関数を呼ぶのでは… 故に、コールバック関数呼び出しそのものを、「重い処理」と別スレッドにする理由がわからん…
665 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/08/12(水) 22:01:22.63 ID:VQCZ0+hx.net] >>655 ポインターか参照であれば可能
666 名前:デフォルトの名無しさん mailto:sage [2015/08/12(水) 22:22:45.63 ID:4UQwQDGc.net] >>655 可能です
667 名前:デフォルトの名無しさん mailto:sage [2015/08/12(水) 22:40:59.04 ID:p+j059KJ.net] >>655 ほれ ideone.com/1Jddcc
668 名前:デフォルトの名無しさん mailto:sage [2015/08/12(水) 22:49:57.76 ID:Hhw23eoj.net] >>655 クラスの前方宣言で逝ける…んだけど >>660 ちょっテンプレート使ってるじゃないですかヤダー 普通は>>658 の通りのはず…
669 名前:654 mailto:sage [2015/08/12(水) 22:54:48.53 ID:P16Kw9k7.net] やろうとしていることに近い例ですがimcomplete typeエラーなどで上手くいきません (public:, 通常コンストラクタ等省略) class polar{ //極座標 double r,theta; (ここに コンストラクタ polar(cartes c){r=・・;theta=・・;}を入れたい) }; class cartes{ //直交座標 double x,y; cartes(polar p){ x=p.r*cos(p.theta); y=p.r*sin(p.theta); } };
670 名前:デフォルトの名無しさん mailto:sage [2015/08/12(水) 23:00:59.57 ID:bbP305l/.net] class cartes; class polar{ public: polar(const cartes& c){...} }; class cartes{ };
671 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/08/12(水) 23:01:11.35 ID:VQCZ0+hx.net] >>662 class polar{ double r,theta; polar(const cartes& c); }; class cartes{ double x,y; cartes(const polar& p); }; //ここに書く。 polar::polar(const cartes& c){...} cartes::cartes(const polar& p){...}
672 名前:デフォルトの名無しさん mailto:sage [2015/08/12(水) 23:02:43.03 ID:VQCZ0+hx.net] >>664 最初に前方参照 class cartes; を忘れてた
673 名前:デフォルトの名無しさん mailto:sage [2015/08/12(水) 23:12:31.63 ID:p+j059KJ.net] inlineぐらい付けとけ ideone.com/jampCR ムーブコンストラクターが要るかどうか迷ったけど 高々16バイト程度ならコピーコンストラクターだけのほうが良さそうだ
674 名前:654 mailto:sage [2015/08/12(水) 23:12:52.75 ID:P16Kw9k7.net] >>664-665 上手く行きました ありがとうございます
675 名前:デフォルトの名無しさん mailto:sage [2015/08/12(水) 23:17:03.69 ID:Hhw23eoj.net] >>662 動くやつ、 ttp://ideone.com/d2Mail >polar(cartes c){r=・・;theta=・・;} の引数cが参照でもポインタでも無いから、そこだけ参照に直した 参照が嫌なら>>660 みたいなテンプレートを使ったテクニックを使わないと_
676 名前:654 mailto:sage [2015/08/13(木) 01:52:36.39 ID:/Z+Jtv+K.net] ポインタ、template、move等を使った場合も動作しました、ありがとうございました 実行速度を見てどれを採用するか決める予定
677 名前:デフォルトの名無しさん mailto:sage [2015/08/13(木) 04:09:20.02 ID:F7Hm2emV.net] >>665 名前も忘れてんぞ
678 名前:デフォルトの名無しさん mailto:sage [2015/08/13(木) 06:41:53.30 ID:PyJxPq3u.net] あるテンプレートクラスに登録した二つの関数AとBがあり AがTを返し,Bはそれを受け取るstd::function<void(T)>型にしてB(A())のようにしたいのですが Tがvoidの場合にコンパイルが通りません 何かヒントをください
679 名前:デフォルトの名無しさん mailto:sage [2015/08/13(木) 07:24:26.81 ID:PyJxPq3u.net] ideone.com/GfTvM2 南無三
680 名前:デフォルトの名無しさん mailto:sage [2015/08/13(木) 13:53:32.12 ID:GwnFP/ps.net] >>672 ideone.com/WmR5RC こうしないと駄目なんと違うん?テンプレート第一パラメータがvoidだとtが既にintなので マッチしないし それとContの中のaとbが逆だよ
681 名前:デフォルトの名無しさん mailto:sage [2015/08/13(木) 14:27:09.33 ID:PyJxPq3u.net] >>673 ありがとう。そしてごめんなさい,寝ぼけていたのか即席のテストクラスの使い方を間違えていました ideone.com/oTjdre テンプレート関数の書き方が悪いのでしょうか、コメントアウト部分が使えませんでした
682 名前:デフォルトの名無しさん mailto:sage [2015/08/13(木) 14:56:37.22 ID:QR/Fxlyk.net] >>674 >コメントアウト部分が使えませんでした そりゃオーバーロードする所だからね ideone.com/ff3wrd
683 名前:デフォルトの名無しさん mailto:sage [2015/08/13(木) 15:33:13.54 ID:uOcZA4Uz.net] どうしてもインスタンスを一個にしたいのなら少しトリッキーになるけどこう書くか ideone.com/4eqftS 基本的にパターンマッチだからね
684 名前:デフォルトの名無しさん mailto:sage [2015/08/13(木) 15:49:48.70 ID:lem+RsNM.net] でも本当のtemplateの意味から言うと呼び出し先のクラスのメンバ関数が既に (このような組み合わせで呼び出されるな・・・)と知ってるのはちょっと変なんだけどね それでもCondがテンプレートパラメータを2つ取るのだから仕方がないんだけど Testのインスタンスに初めからパラメータを2つ持たせればメンバ関数にパラメータを 持たせる必要はなくなる
685 名前:デフォルトの名無しさん mailto:sage [2015/08/13(木) 16:35:55.46 ID:PyJxPq3u.net] >>675 その通りです(爆 ありがとうございました
686 名前:デフォルトの名無しさん mailto:sage [2015/08/13(木) 16:54:26.11 ID:ruil8mE8.net] >>678 <int, int>の組み合わせはいいけど<int, void>の組み合わせでエラーが出る Tは同じ型なので型が違うラムダ式を渡すとエラーになっちゃうわけだ もう分かってると思うけどね
687 名前:デフォルトの名無しさん mailto:sage [2015/08/13(木) 17:10:47.49 ID:ruil8mE8.net] >>677 今回の例はテンプレートの特殊化の練習じゃないの? 実験のような感じがする
688 名前:デフォルトの名無しさん [2015/08/14(金) 18:32:32.97 ID:UBi1qBHf.net] #include <iostream> using namespace std; struct B{ template<int a> static auto f(int x){return x==a;} }; template<typename T> struct A{ auto f(){return T::f<10>(10);} }; int main() { A<B> a; a.f(); return 0; } エラーの原因がわかりません 教えてください
689 名前:デフォルトの名無しさん mailto:sage [2015/08/14(金) 18:50:44.25 ID:E8ryMIBu.net] >>681 > auto f(){return T::f<10>(10);} < auto f(){return T::template f<10>(10);} templateをつけないと、コンパイラは operator< と解釈してしまう template disambiguator とか呼ばれているっぽいけど、 正式な用語とか定義されていないんだろうか?
690 名前:デフォルトの名無しさん [2015/08/14(金) 18:54:52.75 ID:UBi1qBHf.net] >>682 ありがとうございます 勉強になりました
691 名前:デフォルトの名無しさん [2015/08/14(金) 20:28:00.61 ID:UBi1qBHf.net] クラステンプレートのなかで static constexpr int a=10; と書くとリンカエラーでundefined reference toになるんです クラステンプレートのそとにも static constexpr int a; と同じ意味のものを書くとイニシャライザーが必要って出るんです 外にもイニシャライザーをまたかくと すでにイニシャライザーがあるってでるんですけど どうしたらいいですか?
692 名前:デフォルトの名無しさん mailto:sage [2015/08/14(金) 20:28:11.62 ID:V7l5dQlh.net] 質問です。 現在、バックグラウンドで動くコンソールプログラムを作成したのですが、 そのプログラムから、例えばメモ帳やブラウザの現在の文字カーソルの位置に文字入力できないでしょうか? ファイルとして出力するならば簡単なのですがそうではなく、感覚としてはキーボードから直接入力する感じです。
693 名前:デフォルトの名無しさん [2015/08/14(金) 20:32:31.49 ID:UBi1qBHf.net] 自己解決しました 質問内容が間違ってました 正解は以下の物です クラステンプレートのなかで static constexpr auto a=10; と書くとリンカエラーでundefined reference toになるんです クラステンプレートのそとにも static constexpr auto a; と同じ意味のものを書くとイニシャライザーが必要って出るんです 外にもイニシャライザーをまたかくと すでにイニシャライザーがあるってでるんですけど どうしたらいいですか? 外に書いたやつの型がわからないからエラーになったのだと思います
694 名前:デフォルトの名無しさん mailto:sage [2015/08/14(金) 20:42:10.33 ID:VNoblIJk.net] >>685 OSのAPI使えばいけるだろ でもおそらくほんとにやりたいことは別のことだと思うので、それを書いたほうがいい
695 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/08/14(金) 20:45:17.96 ID:qMkXaiUF.net] constexpr auto A<123>::a = 9.11;
696 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/08/14(金) 20:48:41.25 ID:qMkXaiUF.net] template <int n> constexpr auto A<n>::a = 9.11;
697 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/08/14(金) 20:54:53.70 ID:qMkXaiUF.net] >>685 keybd_event SendInput
698 名前:デフォルトの名無しさん mailto:sage [2015/08/14(金) 21:46:00.58 ID:V7l5dQlh.net] >>690 ありがとうございました!
699 名前:デフォルトの名無しさん mailto:sage [2015/08/14(金) 22:19:16.22 ID:InteHfYn.net] >>686 2回目の定義では初期化子を書けないのでautoが使えない ideone.com/gtO54H
700 名前:デフォルトの名無しさん mailto:sage [2015/08/14(金) 23:53:14.30 ID:mKm8Tjx+.net] >>688 祖国に帰れよ低能 少なくとも日本語でレスが出来るようになってから出直せ
701 名前:デフォルトの名無しさん [2015/08/15(土) 00:16:52.17 ID:TMOiMK6s.net] 最近のC++の仕様をきちんと勉強したいんですが、 何か良い本はないでしょうか? 昔、ストラウストラップの「プログラミング言語C++」と 「C++標準ライブラリ チュートリアル&リファレンス」 でC++を勉強しましたが、さすがにもう古いですよね? UNIX(AIX)の仕事で使用するのでWindows寄りじゃない 本が良いです。
702 名前:デフォルトの名無しさん mailto:sage [2015/08/15(土) 00:20:39.85 ID:67jzqQav.net] >>694 そうだな まず江添のアレでも読んどけ それからスコット何とかさんの何とかという本
703 名前:デフォルトの名無しさん mailto:sage [2015/08/15(土) 00:30:16.98 ID:TMOiMK6s.net] >>695 アレとかなんとかじゃ、わからんw C++11/14 コア言語 江添 亮 これが9月発売。 ちょっと間に合わないな・・。 スコット何とかさんは、スコット・メイヤーズのEffective C++シリーズかな。 2014年に第3版が出てるから、これ良いですかね?
704 名前:デフォルトの名無しさん mailto:sage [2015/08/15(土) 00:46:34.49 ID:uB3kk6ME.net] >>696 >2014年に第3版 それ違う 「Effective Modern C++」の方 江添氏の方は本人が既に無償で公開してる筈 https://github.com/EzoeRyou/cpp-book
705 名前:デフォルトの名無しさん mailto:sage [2015/08/15(土) 00:47:35.50 ID:uB3kk6ME.net] おやID変わったけど>>695 =>>697
706 名前:デフォルトの名無しさん mailto:sage [2015/08/15(土) 06:23:13.54 ID:mDjSt+FJ.net] AIXってそんな高機能使えたっけ
707 名前:デフォルトの名無しさん [2015/08/15(土) 07:12:35.85 ID:mKb3k0OH.net] 2014のeffective C++は再販のことだろ modern effectiveのほうは新しいことしか書いてないから向いてない
708 名前:デフォルトの名無しさん mailto:sage [2015/08/15(土) 10:00:51.74 ID:TMOiMK6s.net] >>699 最新の機能は使うつもりないですね。 気になっているのが既存ソースがtry-catchを全然使ってないので、 STL使ったときに想定外の例外が発生しないかくらいです。 newだとエラー時に例外発生で、mallocだと例外発生しない 認識でいいんだっけ? いまのソースはC++なのに、全部mallocでやってんだよね。 Effective modern C++面白そうだけど、英語版は読むのに 時間かかるからな〜
709 名前:デフォルトの名無しさん [2015/08/15(土) 10:04:45.67 ID:mKb3k0OH.net] おれは1日で読んだけど
710 名前:デフォルトの名無しさん mailto:sage [2015/08/15(土) 11:23:10.06 ID:fL/PzS3/.net] 無理無理
711 名前:デフォルトの名無しさん mailto:sage [2015/08/15(土) 11:26:54.75 ID:6al8NFWf.net] めくるだけなら10分で
712 名前:デフォルトの名無しさん [2015/08/15(土) 11:28:02.42 ID:mKb3k0OH.net] 間違えた、3日だった マルチメソッドのところは英語が難しいというより 内容が難しいかったから読んでないが
713 名前:デフォルトの名無しさん [2015/08/15(土) 11:47:36.70 ID:mKb3k0OH.net] メソッドじゃなくてスレッドだった(核爆)
714 名前:デフォルトの名無しさん mailto:sage [2015/08/15(土) 12:16:12.74 ID:PnSP7g2H.net] >>706 (核爆)とか久しぶりに見たな……
715 名前:デフォルトの名無しさん mailto:sage [2015/08/15(土) 14:03:23.22 ID:VSTuSd2d.net] そのおっちょこちょいぶりから推察して 読んだつもりになってるだけだとみた
716 名前:デフォルトの名無しさん [2015/08/15(土) 16:20:56.58 ID:mKb3k0OH.net] ちゃんと読んだよ その証拠にお前が読めないeffective modernがあったら 一瞬で翻訳してやるよ
717 名前:デフォルトの名無しさん [2015/08/15(土) 16:27:45.86 ID:mKb3k0OH.net] あと10分だけまつ それを超えたらもう時間切れだから
718 名前:デフォルトの名無しさん [2015/08/15(土) 16:34:02.67 ID:B2JCrRr+.net] >>701 もしかしてセグフォをcatchで捕獲できると思っているのか?
719 名前:デフォルトの名無しさん mailto:sage [2015/08/15(土) 16:35:47.69 ID:VSTuSd2d.net] 無意味に気張りなさんな 英語が読めるのなんて当たり前だから
720 名前:デフォルトの名無しさん [2015/08/15(土) 16:37:47.79 ID:mKb3k0OH.net] はい時間切れ これで読めたと証明したわけだ 英語を読めるのは当たり前じゃない ほとんどが読めないのが現実
721 名前:デフォルトの名無しさん [2015/08/15(土) 16:38:39.48 ID:mKb3k0OH.net] 俺は一週間に2冊は読んでるからな そんなに読んでるやつこのスレはいないでしょ
722 名前:デフォルトの名無しさん mailto:sage [2015/08/15(土) 16:40:59.09 ID:VSTuSd2d.net] でもマルチスレッドのところは難しくて読めなかったんでしょw そんな奴がいくら「読んだ」って言ってもねw
723 名前:デフォルトの名無しさん [2015/08/15(土) 16:48:38.17 ID:mKb3k0OH.net] あそこはマルチスレッドの知識がある人向けに書かれた内容だからな 読んでみればわかるよ
724 名前:デフォルトの名無しさん mailto:sage [2015/08/15(土) 17:04:50.79 ID:2OOBHwX9.net] なんとなく伝説の騎士ブロントさんを思い出した
725 名前:デフォルトの名無しさん mailto:sage [2015/08/15(土) 17:48:10.75 ID:QmFGhXkn.net] >>694 「きちんと」の程度によるだろうけど、規格を読むのがいいんじゃないの?(ドラフトが pdf で読めるし。) 古いC++でいいならJIS(日本語)もある。
726 名前:デフォルトの名無しさん mailto:sage [2015/08/15(土) 17:56:19.62 ID:5NXImCFo.net] >これで読めたと証明したわけだ あ…、お察し…
727 名前:デフォルトの名無しさん mailto:sage [2015/08/15(土) 17:59:36.46 ID:U2H5mvyM.net] もしかして、触っちゃいけないシリーズに、新たなキャラが出てきたのか?
728 名前:デフォルトの名無しさん [2015/08/15(土) 18:10:07.84 ID:mKb3k0OH.net] 3日で読んだというのが気に障ったらしいな ごめんごめん、本当は4日掛ったよ
729 名前:デフォルトの名無しさん mailto:sage [2015/08/15(土) 18:55:27.92 ID:BX+QymuF.net] >>720 触るべきでないのはQとお前くらいなのだが 二人でシリーズとはこれ如何に
730 名前:デフォルトの名無しさん mailto:sage [2015/08/15(土) 23:32:13.52 ID:2OOBHwX9.net] 前から突然誰彼構わず食ってかかる明らかにやばいのがいる そう、ずばり…やめとこう
731 名前:デフォルトの名無しさん mailto:sage [2015/08/15(土) 23:44:14.87 ID:TMOiMK6s.net] >>711 さすがにそれはないw 本来、異常ログを出力して終了すべきところで 通知なしで終了とかが怖い。 サーバ処理だから人間が見てないので。 core吐く事例は想定しない動作なので、関係なし。
732 名前:デフォルトの名無しさん mailto:sage [2015/08/16(日) 01:58:51.06 ID:GzpEZ0Rv.net] 例外=ログ出して異常終了すべき状況と思ってる低能がサーバー処理だなんて世も末だな
733 名前:デフォルトの名無しさん mailto:sage [2015/08/16(日) 02:50:33.36 ID:L1HFKl91.net] でたよ
734 名前:デフォルトの名無しさん mailto:sage [2015/08/16(日) 17:09:50.66 ID:AGuGQXW7.net] >>716 俺、低脳趣味プだから良く分からんが C++をそれなりに使う奴がマルチスレッド分からんって、なんか低脳って感じがするが C++でマルチスレッド使っている奴は少ないのか
735 名前:デフォルトの名無しさん [2015/08/16(日) 17:16:12.49 ID:nKpFA13z.net] C++ではstd::threadが使えるようになったのは最近だからな std::asyncを使うなという風潮さえある
736 名前:デフォルトの名無しさん mailto:sage [2015/08/16(日) 19:05:37.55 ID:eaf0lK3p.net] C++の知識とマルチスレッドの知識は全く別 >>727 みたいな「C++をそれなりに使える(俺)=マルチスレッドも知ってる」 と勘違いしているのが一番の困り者
737 名前:デフォルトの名無しさん mailto:sage [2015/08/16(日) 19:42:15.91 ID:AGuGQXW7.net] >>728 WinAPI、pthread、boostを使ったマルチスレッドはC++11以前からあるだろ C++を使う奴はC++11以前はマルチスレッドをどうしてたんだ? C++の言語でサポートしていないから使ってなかったのかな >>729 笑った。俺、俺自身がそれなりにC++が使えるなんて言ってないが
738 名前:デフォルトの名無しさん mailto:sage [2015/08/16(日) 19:59:46.36 ID:wimXGjKn.net] まあ今時マルチスレッドのプログラムも書けなくてそれなりに使えるなんて言う方が疑わしいわな
739 名前:デフォルトの名無しさん [2015/08/16(日) 20:12:06.67 ID:nKpFA13z.net] >>730 俺は標準ライブラリーしか使わない主義なんでね
740 名前:デフォルトの名無しさん mailto:sage [2015/08/16(日) 20:20:28.09 ID:AGuGQXW7.net] >>732 C++の標準ライブラリーのみってすげーな
741 名前:デフォルトの名無しさん mailto:sage [2015/08/16(日) 20:20:59.19 ID:wimXGjKn.net] 標準ライブラリだけで何作ってんのか気になるわ
742 名前:デフォルトの名無しさん [2015/08/16(日) 20:41:24.76 ID:PU+PJKYp.net] つまりアセンブラも使わないってことか タイマー割り込みとか標準だけじゃ絶対無理だし
743 名前:デフォルトの名無しさん [2015/08/16(日) 21:12:50.79 ID:5vUfdwLX.net] スレッドは意外と難しいんだよ。
744 名前:デフォルトの名無しさん mailto:sage [2015/08/16(日) 21:16:05.37 ID:cKTHR7T1.net] >>725 処理用の子プロセスなら別に構わんけど
745 名前:デフォルトの名無しさん mailto:sage [2015/08/16(日) 21:35:17.02 ID:oHa5zlZB.net] 標準ライブラリしか使わない人はWindowsのManualResetEventによる通知も スコットメイヤー尊師の教えに従ってfutureで実装しちゃってるわけ?
746 名前:デフォルトの名無しさん [2015/08/16(日) 21:37:56.88 ID:IZlmw+Gb.net] お前ら小学生みたいなこと言ってるな
747 名前:デフォルトの名無しさん mailto:sage [2015/08/16(日) 22:42:25.70 ID:Dc+2ts/N.net] 俺はboostは極力使わない。 regexくらいだな。
748 名前:デフォルトの名無しさん mailto:sage [2015/08/16(日) 22:46:37.24 ID:AMMcDK29.net] 聞こうと思って忘れてたことを思い出したんだけど C++を使ったクロスプラットフォームなファイル・フォルダ操作って 標準ライブラリか、boostか、あるいは他にあります?
749 名前:デフォルトの名無しさん mailto:sage [2015/08/16(日) 22:51:07.29 ID:Dc+2ts/N.net] >>741 クロスプラットフォーム対応にしても実際はwindowsでしか動かさないんじゃないか?
750 名前:デフォルトの名無しさん mailto:sage [2015/08/16(日) 22:53:23.80 ID:mucOKkH4.net] >>741 filesystem …がc++17以降に入る予定…
751 名前:デフォルトの名無しさん mailto:sage [2015/08/16(日) 22:54:28.42 ID:AMMcDK29.net] >>742 なんで? >>743 今自分で実装してるけど、それしかないか
752 名前:デフォルトの名無しさん mailto:sage [2015/08/16(日) 23:01:31.13 ID:Dc+2ts/N.net] >>744 >>>742 >なんで? 俺の場合。
753 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 01:19:03.88 ID:oEljV4gs.net] >>744 boost::filesystem あと使いやすいとは思わなかったけどPOCOライブラリにも似たようなものがあった
754 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 02:07:56.87 ID:EwR31uEA.net] >>744 visual studio で良ければ tr1 名前空間にfilesystem入ってるよ。
755 名前:デフォルトの名無しさん [2015/08/17(月) 03:11:21.79 ID:B8+eSc37.net] Qtはどうですかね。 OSによって設定の保存場所、一時ファイルの保存場所など、いろいろ違うわけですが、 そういうのも吸収することが出来ます。
756 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 04:47:46.68 ID:QqxAFP9p.net] >>747 それクロスプラットフォームにならないしboost.filesystem v2ベースで入る予定のとちと違うからオススメしない
757 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 18:50:39.10 ID:hmLPPIku.net] まぁVSだからクロスプラットフォームにならないのは当たり前な気もするが
758 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 20:33:12.10 ID:EwR31uEA.net] まぁ、標準候補なんだから選択肢としてはありじゃね? boost入れられるならboostでもいいと思うけど。
759 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 00:38:42.96 ID:pejHXbhH.net] 俺はboost使わないよ
760 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 16:36:17.65 ID:yiwfDlnb.net] effective C++の7章と8章が難しすぎてつらいです。 どうしたらわかるようになりますか。
761 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 18:20:04.40 ID:wa5ujMFC.net] >>753 7章はEffective諦めて、エーブラバムのテンプレートのやつ読む 8章は理解する必要なし
762 名前:デフォルトの名無しさん [2015/08/19(水) 00:28:20.99 ID:RbJYGKEh.net] 油ハム
763 名前:デフォルトの名無しさん mailto:sage [2015/08/19(水) 11:35:47.88 ID:Ed0MCdtX.net] C++全く知らないんですが、 C++ではmallocじゃなくてnewでメモリを動的確保するって書いてあったのですが 構造体配列の動的確保で検索してもmallocを使う方法ばかり出てきて newを使った方法は見つけられませんでした。mallocでも問題無いんですか? vectorは全く分かりません。
764 名前:デフォルトの名無しさん mailto:sage [2015/08/19(水) 11:41:53.16 ID:1OgygsP2.net] mallocだとコンストラクタが呼ばれません あと人間工学的にmallocとnewが混在してるとfreeかdeleteかわからなくなるため newで統一しましょう
765 名前:デフォルトの名無しさん [2015/08/19(水) 11:45:36.42 ID:mLYOSkJZ.net] mallocもnewも出来る限り使わない。 stringかvectorで確保が安定。
766 名前:デフォルトの名無しさん mailto:sage [2015/08/19(水) 11:49:15.60 ID:Ed0MCdtX.net] 回答ありがとうございました。 C++の本1ページも読んだこと無いですが、なんとかvectorの使い方覚えてみます…。
767 名前:デフォルトの名無しさん mailto:sage [2015/08/19(水) 12:13:48.67 ID:Tpp3AqDY.net] プログラミング初心者です C++の入門書を二冊終えたんですけど、コマンドライン上のCUI以外のものってどうやって作るんでしょうか アプリケーションを作るならVBが良いと勧められたのですが、C++ではコマンドライン上のプログラムしか作れないということですか?
768 名前:デフォルトの名無しさん mailto:sage [2015/08/19(水) 12:16:37.62 ID:1OgygsP2.net] 原理的にはOSが提供するGUIのAPIを叩くことになる 実践的には適当なC++のGUIライブラリを使う
769 名前:デフォルトの名無しさん mailto:sage [2015/08/19(水) 12:35:21.66 ID:Ed0MCdtX.net] >>760 Cしか知らないけど、「猫でも分かるWindowsプログラミング」って本読みながら VisualStudioでWindowsアプリ作ってるけど、C++でもこんな感じじゃないのかな。 この本だとCの記述しか書いてないけど。
770 名前:デフォルトの名無しさん mailto:sage [2015/08/19(水) 13:43:26.97 ID:N/B9ROLw.net] >>759 最低でも名前空間と クラスとコンストラクタ/デストラクタと多態と テンプレートの基礎を理解してからにしろ あとなるべく例外処理も
771 名前:デフォルトの名無しさん mailto:sage [2015/08/19(水) 13:44:13.92 ID:N/B9ROLw.net] あと参照も追加
772 名前:デフォルトの名無しさん mailto:sage [2015/08/19(水) 16:07:55.34 ID:Tpp3AqDY.net] >>761 ありがとうございます OSが提供しているということはOSを製作している会社が出している仕様を確認すればよいのでしょうか? >>762 ありがとうございます Cもコマンドライン上での使い方は理解しているのですがアプリケーションが作れるということは初めて知りました C++でもアプリケーションが作れてそういう本が出ているのでしょうか?
773 名前:759 mailto:sage [2015/08/19(水) 16:14:03.02 ID:Tpp3AqDY.net] すいません、聞き方が漠然としすぎていたかもしれません 例えばwindowsに最初から入っているソリティアをアプリケーションの例として想像しているんですけど、cinやcoutがああいうものになる感じはしないのでC++はそういうものが作れる言語ではないのかな?と疑問に思っています
774 名前:デフォルトの名無しさん [2015/08/19(水) 16:24:39.98 ID:zh/OeKTd.net] iostreamに似たようなもので guiをつくるやつみたいなのとかあるのよ
775 名前:デフォルトの名無しさん mailto:sage [2015/08/19(水) 16:49:57.24 ID:2K7U76I6.net] >>766 GUIを作るためにはそのOS専用の関数(API)をインクルードして使う 例えばwindowsなら#include <windows.h>するとCreateWindow()が使える C++に限らず、有名な一つ言語を学べばどんなアプリも作ることができるけど 適材適所という言葉があるように、簡単なGUIを作りたいときはVBやC#が便利だと思う
776 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/08/19(水) 17:18:27.05 ID:A1hsfM0s.net] StringAssortに重要な修正があります。 お使いの方は必ず更新して下さい。 https://github.com/katahiromz/StringAssort
777 名前:デフォルトの名無しさん mailto:sage [2015/08/19(水) 18:42:30.82 ID:mkbXhhzN.net] >>769 荒らしは去れ
778 名前:デフォルトの名無しさん mailto:sage [2015/08/19(水) 20:33:55.03 ID:Tpp3AqDY.net] >>767 >>768 ありがとうございます iostream以外のライブラリを使えばiostreamで定義したコマンドラインへの出力とは異なるグラフィカルな出力が可能ということですね アプリケーションを作ること自体というよりはデジタルの知識を
779 名前:レ的なのでとりあえずC++で頑張ってみようと思います [] [ここ壊れてます]
780 名前:デフォルトの名無しさん mailto:sage [2015/08/19(水) 21:03:59.14 ID:N/B9ROLw.net] 蛇足ながら Java なら GUI まで標準ライブラリ(と仮想マシン)でカバーしてるから スムーズにつながる
781 名前:デフォルトの名無しさん mailto:sage [2015/08/19(水) 21:24:22.33 ID:d+F9SOqy.net] >>760 C++でも作れるんだけど、いろいろとめっちゃめんどい。 特別な理由がない限りオススメしないなー。
782 名前:デフォルトの名無しさん mailto:sage [2015/08/19(水) 21:25:34.30 ID:d+F9SOqy.net] >>763 構造体格納用の配列代わりに使用する用途なら、その知識はいらないでしょ。。。
783 名前:デフォルトの名無しさん mailto:sage [2015/08/19(水) 22:41:38.78 ID:zYApVtu3.net] どうしてもc++でやりたくて、業務用アプリとか作りたいのでなければ、Siv3Dとかがいいかも。
784 名前:デフォルトの名無しさん mailto:sage [2015/08/20(木) 01:13:10.43 ID:8uVFN1sp.net] >>758 stringもvectorも内部のメモリ管理がブラックボックスだから、 ちょっと怖い。 なんかいい方法ないのかな。
785 名前:デフォルトの名無しさん mailto:sage [2015/08/20(木) 01:30:15.81 ID:4YEicUsl.net] >>776 コード読めるのにブラックボックス?
786 名前:デフォルトの名無しさん mailto:sage [2015/08/20(木) 01:50:17.05 ID:0zSVnc38.net] >>776 malloc() が裏で何やってるか全部分かってるわけでもないだろうに。何を心配しているのか。
787 名前:デフォルトの名無しさん mailto:sage [2015/08/20(木) 04:33:04.53 ID:+gOJo4Iu.net] >>756 malloc が嫌なら 構造体配列 動的確保 -malloc で検索すればいいだけだろ... >>776 > stringもvectorも内部のメモリ管理がブラックボックスだから、 そう言うレベルの奴こそ string や vector を使うべき お前さんより確実に C++ をよく知ってる奴等が作ってるんだから
788 名前:デフォルトの名無しさん mailto:sage [2015/08/20(木) 04:38:38.81 ID:oHxFq6mf.net] そんでvectorの要素のアドレスとか取っておいてエンバグするんだよなw
789 名前:デフォルトの名無しさん [2015/08/20(木) 08:42:12.67 ID:cJrH9wyy.net] >>776 は巨大な嘘にやっと気づきかけているんじゃないかな
790 名前:『佳子様』の『秘密』を『暴露』 mailto:age [2015/08/20(木) 16:04:27.96 ID:fLsNMaUN.net] . Σ(Д・;)"プチエンジェル事件"!(小学生売春事件) ▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼ プチエンジェル事件に隠された日本の闇を暴露する! ■実は、『女性皇族』の『男遊び』と、 女性皇族がおこなったハニートラップだった!! ■その『男遊び』と『トラップ』を誤魔化す為の、 『プチエンジェル事件』が真相だったのだ!! ■闇に包まれた真相を、私が『暴露』する!! ※知る覚悟はできていますか? 下記を『Google』か『Yahoo』で検索して下さい。 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 検索⇒『佳子様 真子さま kare氏』 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 ※上記で検索しますと、1ページ目の5番目以内に、 【懇約〕秋篠宮家の佳子様と・・・・・・・ ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑が表示されます。 ※世の中、知らない方が良い事もあるんです・・・。 ▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲ http://matome.naver.jp/odai/2143960880970769001 .
791 名前:デフォルトの名無しさん mailto:sage [2015/08/20(木) 16:25:08.00 ID:PV11qe8C.net] >>782 chon運営ネイバー氏ね
792 名前:デフォルトの名無しさん mailto:sage [2015/08/20(木) 18:19:51.83 ID:XcRG7QGC.net] vectorのメモリ管理は明確だな 指定されたアロケーターに従うだけ ブラックボックスで言語仕様の不具合と指摘されているのが new []式のメモリ確保
793 名前:デフォルトの名無しさん mailto:sage [2015/08/20(木) 21:32:28.93 ID:fQhwI7c5.net] 本物のプログラマーは malloc new vector のどれを使うんですか?
794 名前:デフォルトの名無しさん mailto:sage [2015/08/20(木) 21:36:00.89 ID:oHxFq6mf.net] スマポとvector
795 名前:デフォルトの名無しさん mailto:sage [2015/08/20(木) 22:05:29.06 ID:7/PYSFe/.net] >>785 > 本物のプログラマーは グローバル変数しか使わん 動的確保なんてガキが使うもんだ
796 名前:デフォルトの名無しさん mailto:sage [2015/08/20(木) 22:14:22.62 ID:q4vIrycP.net] 本物のプログラマは神様のごとくすべての事を把握しているから、 実行時までサイズが不定ということは、ないんだ すべて分かってるから、すべて固定長で処理する ファイルは1つだし、バックスペースキーは真っ白
797 名前:デフォルトの名無しさん mailto:sage [2015/08/20(木) 23:29:45.60 ID:6O+Kgyz2.net] 「本物のプログラマーはグローバル変数を恐れない」って 40年前ぐらいに流行ったやつ?
798 名前:デフォルトの名無しさん mailto:sage [2015/08/20(木) 23:47:58.09 ID:eAPsaJbN.net] c++でmalloc使う場面ってある?
799 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 00:02:17.00 ID:9PM+ePh4.net] アロケータを自分で実装するとき
800 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 00:13:43.07 ID:qjzhcGKV.net] >>789 >>787 渾身のギャグにつっこむのはやめろ!
801 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 00:24:04.11 ID:mTBLNmRC.net] >>791 なにそれこわい
802 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 01:30:15.07 ID:bxb9HIzi.net] >>790 デバック用に operator new の実装に使ってるよ。
803 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 02:03:48.28 ID:ewwJ+kN3.net] ない
804 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 02:11:55.83 ID:fj2TBOwf.net] A *a1,*a2; a1 = a2; // A Aのようなポインタ演算で演算子オーバーロードができないかと思い 下記のようなプログラムを書いてみたのですが呼び出せませんでした。 左側がポインタの演算子オーバーロードは定義できないものなのでしょうか? void A::operator=(A *a){ cout << "called." << endl; }
805 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 02:15:43.83 ID:f5f66q8p.net] >>796 はい
806 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 02:32:56.97 ID:twatgs4l.net] namespace Foo { namespace Bar { namespace Baz { // なんちゃら } } } って感じのが多いんだけど、なんかスマートな記述方法ない?
807 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 04:25:39.48 ID:02HHuEF9.net] >>798 C++17から namespace Foo::Bar::Baz { } って書けるようになる予定だから待つしかない
808 名前:デフォルトの名無しさん [2015/08/21(金) 06:15:36.39 ID:+IcpCWtO.net] class Foo { class Bar { class Baz { // なんちゃら }; }; }; 上ととnamespaceで出来ることは変わらなくないですか?
809 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 07:10:19.74 ID:RcluoQUw.net] >>792 渾身は >>788 だろ 滑ってるけど
810 名前:デフォルトの名無しさん [2015/08/21(金) 08:23:40.22 ID:4Z8Mt89I.net] operator new のデバッグに malloc が何の役に立つんだ?
811 名前:デフォルトの名無しさん [2015/08/21(金) 08:26:11.08 ID:E5L2ZBIK.net] ログ取ったりカウントしたり
812 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 08:40:46.72 ID:JFe3Ml2I.net] >>802 operator new のデバッグじゃなくて、デバッグ目的でoperator newをオーバーロードするってことね。 まさに>>803 の通り。 俺が自演したのかと思ったぜ。
813 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 09:20:54.88 ID:BlDTYlt7.net] mallocでログを取るのは某QZがやってなかったか
814 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 11:04:19.93 ID:RwXqV507.net] ツールかライブラリ使えばいいのになんでそんな無駄な事を
815 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 11:07:25.95 ID:9PM+ePh4.net] よろしげなライブラリあったら教えて下さい
816 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 11:27:46.72 ID:02HHuEF9.net] gperftools
817 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 21:00:17.09 ID:ALerSfbe.net] 全ての環境に理想的なツールやライブラリが揃ってるわけではない そしてそれらをインストールすることが許可されない環境とかある
818 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 21:30:57.28 ID:sHjAdKxZ.net] vsなら各種ツールが標準で使えるやん
819 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 22:00:16.40 ID:ALerSfbe.net] Windowsスレか
820 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 23:11:21.65 ID:efFDPChC.net] >>809 開発効率も考えない糞な現場があるってことがどうかしたん?
821 名前:デフォルトの名無しさん [2015/08/21(金) 23:15:54.47 ID:XWi2OaDt.net] VSなんて存在しない環境なんて山ほどあるけど Windowsアプリしか作ったことないの?
822 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 23:22:07.67 ID:qqfWoXP/.net] 話、噛み合ってる?
823 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 23:25:22.05 ID:NEaqZUwT.net] みんな言いたい事だけ言ってる
824 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 23:31:02.04 ID:ENucIhJC.net] 噛みつきあってます
825 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 23:34:13.00 ID:WXHpGDQN.net] z/OSですが参加していいですか
826 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 00:15:33.08 ID:OQgdhBkf.net] アンカー付けてない奴は誰に言ってんのかすらわからんしな。
827 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 04:59:47.99 ID:50TgdakN.net] >>A£A?A¢A£A?A3A£A?A≪A£A?A?A?A≫A?A£A?A?A£A?A|A£A?AaA£A?A?A\A\A´A£ A?A ̄A¨AaA°A£A?A≪A¨A¨AA£A?A£A£A?A|A£A?A?A£A?ARA£A?A?A£A?A?A£A?A?A£A?A?A£A?A?A£A?A?A£A?A?A£A?A?A £A?AaA£AA? A£A?A≫A£A?A?A£A?A¨A£A?A?A£A?A?A£AA? a?≫a??a?¨a??a??a?
828 名前:デフォルトの名無しさん [2015/08/22(土) 17:58:15.34 ID:YIhcmBww.net] 使いどころがわからないと思っていた CRTPの使いどころがやっとわかったので 発表してもいいですか?
829 名前:デフォルトの名無しさん [2015/08/22(土) 18:09:03.96 ID:YIhcmBww.net] 駄目なようなので止めますね ありがとうございました
830 名前:デフォルトの名無しさん [2015/08/22(土) 18:55:46.35 ID:YIhcmBww.net] テンプレートの関数定義をクラスの外部に書くと全部の パラメータを書かないといけないから糞長くなるな かといって外側でエイリアス定義するとカプセル化が壊れるからな
831 名前:デフォルトの名無しさん [2015/08/23(日) 00:13:56.66 ID:cE4E7c5e.net] 符号あり整数の型から値の最大値をコンパイル時に求める方法を教えて下さい max<int>::value == 0x7fffffff max<short>::value == 0x7fff みたいな
832 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 00:32:30.85 ID:9aqT3FI6.net] へぼいけど webkaru.net/clang/limits-header/
833 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 00:37:54.31 ID:9aqT3FI6.net] C++的には std::numeric_limits<int>::max() すきなのどうぞ
834 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 10:27:25.76 ID:6ms/2Czf.net] numeric_limits<T>::max() == 0x7fffffff この比較って安全? 型不明のリテラルと比較するのが気持ち悪いんだけど
835 名前:デフォルトの名無しさん [2015/08/23(日) 10:31:31.03 ID:NrGPu3iT.net] #include <iostream> #include<utility> using namespace std; struct A{ int i; int * a; A():i{0}{} A(A&& x) : i{x.i},a{x.a} { x.a=nullptr; cout<<"move"<<endl; } auto f(){ ++i; return move(*this); } }; int main() { A a; a.a=new int[1]; A b=a.f(); a.f(); return 0; } 2回目のfがコンストラクトしてないのにムーブコンストラクタが呼ばれるのが納得できません そうしたらポインターを消すことができなくなります コピーした相手がポインターを消せるときだけムーブコンストラクターを呼びたいです
836 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 10:38:28.91 ID:P//TMFNX.net] >>826 max()をリテラルと比較する必要性が見出せない
837 名前:826 [2015/08/23(日) 10:41:25.48 ID:NrGPu3iT.net] ポインターが消せると蚊の問題じゃなくて int * aがnullptrになってしまうことが問題でした
838 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 10:45:45.52 ID:JQjk+2hP.net] >>829 自分でクリアしておいてわがままな奴だな 参照でも返すようにしとけ
839 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 10:54:22.51 ID:Nt/W7ZYs.net] >>827 突っ込みどころが多すぎる
840 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 10:56:41.91 ID:pq0DEhMn.net] どうせまたQ渾身の炎上学習法だろ
841 名前:デフォルトの名無しさん [2015/08/23(日) 12:00:41.35 ID:rz9Nyde6.net] >>828 例としてだしただけなので必要性は関係ないです そんなこともわからないんですか
842 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 12:30:02.22 ID:P//TMFNX.net] 例も何もnumeric_limits<T>::max()のTに型名を入れるんだからmax()を呼び出す段階では型が決まってるだろ? 問題はconstexprとリテラルを比較する意味だ
843 名前:デフォルトの名無しさん [2015/08/23(日) 12:36:34.24 ID:rz9Nyde6.net] >>834 なんで同じ事言わないといけないんですか。 例に出したコードに意味はないです この値が返るのを望んでいるという事をわかりやすく書いただけで 得られる動作に意味なんてないです。脳味噌ないんですか
844 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 15:39:24.02 ID:dERNPP1W.net] >>835 脳みそがないのはそっちの方です
845 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 15:53:08.92 ID:Rmxdvxky.net] 意味がないとか言う低能は if (sizeof(int) >= 4) みたいなコードも意味がないとか言っちゃうわけ?
846 名前:デフォルトの名無しさん [2015/08/23(日) 16:04:24.53 ID:rz9Nyde6.net] >>837 少しは脳味噌を使ったらどうですか そうやって意味をつけたコードと 説明の為の無意味な一例を比較する馬鹿いますか
847 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 17:31:13.82 ID:wtabsgY2.net] >>838 まあ落ち着け 意味が無いとか言い張り出したお前の脳みそが沸騰してるだけだから
848 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 19:02:24.77 ID:2+jwKIuc.net] 触っちゃいけない人が暴れだしてるだけでしょ
849 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 19:47:17.40 ID:jdIAA1rP.net] ・constexprとリテラルの比較に意味がない派 ・constexprとリテラルの比較にも意味はある派 ・説明のためのコードに意味を求めんな派 今日もキチガイ共が湧いてるな
850 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 20:39:02.23 ID:npr8vrNT.net] Effective C++ 第3版 37頁 11行目 【ところが、仮想関数が全くないクラスでも、「仮想でないデストラクタ」で問題が起こることがあります。】 という一文があるのですが、どうにも理解するのが難しく 下記のように読み替えると正しい意味になるのかな、と予想しました。 【つまり、仮想関数が全くないクラスでは、「仮想でないデストラクタ」で問題が起こるのです。】 問題ないでしょうか。 間違っていたらすみません。
851 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 20:45:37.46 ID:RkLv6vuw.net] 間違ってます 何故ならば、仮想関数が全くないクラスで、「仮想でないデストラクタ」で問題が起きない場合もある
852 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 21:09:29.71 ID:wtabsgY2.net] >>841 ・constexprとリテラルの比較にも意味はある の何がおかしいのか言ってみろ ひたすら上から目線の総括キチガイ君
853 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 21:56:20.61 ID:M8PQmWuI.net] 2chと繋がったまま上から目上で罵られて 頭がフットーしそうだよ
854 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 21:56:28.07 ID:wDslJmRu.net] まず先に >【仮想関数を含むクラスでは、「仮想でないデストラクタ」で問題が起こることがあります。】 ・・・(1) という言明でも無いと、>>842 の >【ところが、仮想関数が全くないクラスでも、「仮想でないデストラクタ」で問題が起こることがあります。】 ・・・(2) という文((1)の裏が真ならずということを強調する文)につながらないと思うんだけども、 (1)で言う「問題」ってなんじゃ…? それとも原文には(1)ではないもっと異様なことが書いてあるのか…
855 名前:845 mailto:sage [2015/08/23(日) 22:06:08.53 ID:wDslJmRu.net] スマンわからないのは(2)だった; (1)はポリモーフィズムやったとき基底クラスの仮想でないデストラクタが呼ばれないことなんでワカル (2)がわからん… 仮想でない、仮想関数が全く無いクラスを継承したクラスでおもむろにポリモーフィズムしようとした場合に 基底クラスの仮想でないデストラクタが呼ばれない問題のこと?
856 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 22:06:23.69 ID:MaJZaRGO.net] >>842 要するに仮想デストラクタが宣言されていないクラスAを継承したクラスを書いたりすると、 クラスAが完全な具象クラスだったとしても未定義な動作を引き起こすよという話 まとめると継承されることを期待してるかクラスなのかどうかはデストラクタがvirtualかどうかで判断しましょう 逆に言うとあなたの書いたクラスも同じ基準で判断されるから気をつけるのよ って感じの項だった記憶 出先なので見当違いだったらすまん
857 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 22:16:31.85 ID:ZKG2IY6j.net] 「継承されることを期待してるかクラスなのかどうかはデストラクタがvirtualかどうかで判断しましょう」 →そういうスタイルを推奨するのはわかる 「あなたの書いたクラスも同じ基準で判断されるから気をつけるのよ」 →お前の脳内ルールを押しつけるな低能 結論:スコットメイヤーの糞本は読んではいけない
858 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 22:17:41.15 ID:RkLv6vuw.net] どっかのコンパイラでdynamic_castが使えるかどうかがその判断だった気がする
859 名前:841 mailto:sage [2015/08/23(日) 22:32:26.99 ID:npr8vrNT.net] 説明足らずですみません。前後の文を引用すると以下のようになります。 ▼引用ここから 結論を言うと、「理由もなくすべてのデストラクタを仮想にするのは、 すべてのデストラクタを非仮想にするのと同様に誤り」ということです。 そこで、多くの人は、次のように言います:クラスが仮想関数を保つ場合、デストラクタを仮想にせよ、と。 ところが、仮想関数が全くないクラスでも、「仮想でないデストラクタ」で問題が起こることがあります。 たとえば、標準のstringは仮想関数を持っていません。 しかし、よく理解していないプログラマが、stringを基底クラスに使うことがあるかもしれません。 ▲ここまで 一見自然な文章に見えるのですが、【ところが】というところが不自然な感じがして 【つまり】に変えて読んでみたら意味が通るような気がしたのですが 正しく内容を理解できているのか不安になったので
860 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 22:38:33.53 ID:npr8vrNT.net] 保つ場合→持つ場合
861 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 22:39:33.02 ID:F9/N0IWT.net] c++って何でこんなにごちゃごちゃしてるの?デストラクタなんて気にしなくても自動的に上手い事やってくれる仕組みって無いの?
862 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 22:40:35.65 ID:RkLv6vuw.net] ところがであってるよ つまりにすると意味がとぶ
863 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 22:44:12.82 ID:HkRU0Alf.net] >>851 『クラスが仮想関数を保つ場合、デストラクタを仮想にせよ』 →デストラクターを仮想にするかはクラスが仮想関数を持つかで判断せよ →そのルールに従うと、仮想関数を持たないクラスはデストラクターを仮想にしないことになる どう考えても自然な繋がりなのだが
864 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 23:58:58.30 ID:JQjk+2hP.net] >>850 そんな規格を無視したうんこコンパイラーは早く捨てた方がいい
865 名前:デフォルトの名無しさん mailto:sage [2015/08/24(月) 04:57:30.96 ID:IoI82vF0.net] >>853 効率厨だから うまいこと勝手にやってくれるのがお好みならそういう言語使えばいい
866 名前:デフォルトの名無しさん [2015/08/24(月) 11:50:51.90 ID:1RhzDVi9.net] >>853 自動的に上手い事やってもらっても請求書は回ってくるんだよ お値段を確認しない殿様商売のための言語ではないってこと
867 名前:デフォルトの名無しさん mailto:sage [2015/08/24(月) 12:03:10.29 ID:v68vlkfs.net] >>847 「ポリモーフィズムやったとき」だの「おもむろにポリモーフィズムしようとした場合」だの、感覚的で不明瞭な議論はよろしくない。
868 名前:デフォルトの名無しさん [2015/08/24(月) 15:40:34.39 ID:1RhzDVi9.net] template <typename T> void try_delete(T* ptr) { if(std::has_virtual_destructor<T>::value) delete ptr; else throw std::logic_error((__FILE__ + std::to_string(__LINE__) + typeid(T).name()).c_str()); }
869 名前:デフォルトの名無しさん mailto:sage [2015/08/24(月) 15:48:56.90 ID:Z3r2pcb6.net] >>853 車検の時自分で手続きをすれば車検屋に代行させる時より安くできます しかし、いちいち手続きに行くのは手間がかかります この言語を使うのに適した人はこの手間を惜しまない人です なお、それによりいかなるトラブルや実質的な無駄が生じたとしても 一切の責任は自分にありますのであしからず
870 名前:デフォルトの名無しさん [2015/08/24(月) 20:32:14.69 ID:I3jEHQOy.net] float型やdouble型と同じサイズの整数型を取得する方法を教えて下さい type<float>::value_type hoge = 0xffffffff; type<double>::value_type hoge = 0xffffffffffffffff; みたいな
871 名前:デフォルトの名無しさん mailto:sage [2015/08/24(月) 21:02:39.87 ID:XuY4b73w.net] >>862 signedとunsignedがあるわけだが
872 名前:デフォルトの名無しさん mailto:sage [2015/08/24(月) 22:16:11.35 ID:JrXODGxo.net] 独習C++(参考書)の演習の質問なんですけど、いいですか?
873 名前:デフォルトの名無しさん [2015/08/24(月) 22:21:11.78 ID:tqErFzDo.net] >>863 浮動小数点は全て符号付きだね 浮動小数点を符号なしに写像する必要性でも普遍的な問題としてあるならともかく
874 名前:デフォルトの名無しさん mailto:sage [2015/08/24(月) 22:32:06.62 ID:Ix1J5gUn.net] >>862 やっつけで作った ideone.com/PZAcuP
875 名前:デフォルトの名無しさん mailto:sage [2015/08/24(月) 22:46:10.23 ID:JrXODGxo.net] ideone.com/Svrr5J 教科書の共用体の説明のコードなんだが、 このコードが何をしているのか 共用体の存在意義 の二つがわからなくて先に進めないから教えて欲しいです・・・
876 名前:デフォルトの名無しさん mailto:sage [2015/08/24(月) 22:50:06.05 ID:00lt0PIh.net] >>865 浮動小数点と同じサイズの整数型を取得したいと言ってる時に 浮動小数点での値を変換後の整数型でも維持すると思っちゃうほどお前はあほなの?
877 名前:デフォルトの名無しさん [2015/08/24(月) 22:52:45.16 ID:I3jEHQOy.net] >>866 なんとなく方向性は見えました
878 名前:デフォルトの名無しさん mailto:sage [2015/08/24(月) 23:01:51.71 ID:OjRQ25eS.net] >>867 共用体は、メンバ同士が文字通り、同じメモリ領域を共用する >このコードが何をしているのか doubleで初期化した値を、unsigned charで読み取って、ビット列を表示しているだけ キャストしても同じことができる auto p = (unsigned char *)&d; p[i]; これと同じことを共用体のテクニックでやってるだけ >共用体の存在意義 おおよそ、構造体内に排他的なメンバが有る場合に、メモリをケチりつつ、キャストを避ける場合に、使われることが多い
879 名前:デフォルトの名無しさん mailto:sage [2015/08/24(月) 23:41:27.97 ID:XuY4b73w.net] >>865 type<T>::value_type を何らかのテクニックを使って導出しようにも、 たとえばtype<float>::value_type を int にすべきかunsigned int にすべきか 一意に決められないけどどう考えるの? っていう意味だ。
880 名前:デフォルトの名無しさん mailto:sage [2015/08/24(月) 23:57:58.01 ID:OjRQ25eS.net] でさもー 一体何をしたいのか興味が有るよね floatをintに突っ込んでも、比較演算ぐらいしか出来んし まー突っ込むかどうかは知らんが
881 名前:デフォルトの名無しさん mailto:sage [2015/08/25(火) 02:39:07.09 ID:78QHcoVO.net] >>870 ありがとうございます わかりました 共用体は同じメモリを共用するため、double値で読み取った値がchar値でも表示・使用可能 という解釈でよろしいでしょうか?
882 名前:デフォルトの名無しさん mailto:sage [2015/08/25(火) 10:18:24.68 ID:deVB+W3l.net] constと非constの両インターフェースを持つクラスにも共用体は
883 名前:使えるかな 自分は使わないけど [] [ここ壊れてます]
884 名前:デフォルトの名無しさん mailto:sage [2015/08/25(火) 10:29:17.74 ID:6WPRpMK4.net] MS-DOSの頃は、割り込み使う際のレジスタ値設定や取得で使ってたな。 XウィンドウシステムだとXEvent共用体使って互いのやり取りしているし。
885 名前:デフォルトの名無しさん [2015/08/25(火) 12:58:52.53 ID:VbhGZ0/9.net] >>862 hoge厨は消えろよ お前知能障害だろ
886 名前:デフォルトの名無しさん mailto:sage [2015/08/25(火) 13:46:34.03 ID:JhzK86b2.net] hage()
887 名前:デフォルトの名無しさん [2015/08/25(火) 15:20:44.98 ID:qN0CS00N.net] >>868 写像で通じないあほさんは何が言いたいんだい? >>871 どっちでもよくね? make_signedとmake_unsignedでどうにでもなるやん
888 名前:デフォルトの名無しさん mailto:sage [2015/08/25(火) 16:53:47.14 ID:bwlYR2I5.net] バカは黙ってて
889 名前:デフォルトの名無しさん [2015/08/25(火) 18:30:57.92 ID:qN0CS00N.net] つまりID:bwlYR2I5は見納めってことか なんでdelete this;したんだろw
890 名前:デフォルトの名無しさん [2015/08/25(火) 20:50:05.91 ID:XTyF6ymz.net] #include <iostream> using namespace std; template<typename T> struct A{ template<char c> static void a(){}; }; template<typename T> template<> inline void A<T>:: a<'a'>(){} int main() { A<int>::a<'a'>(); return 0; } お願いします エラーが直りません
891 名前:デフォルトの名無しさん [2015/08/25(火) 20:53:15.30 ID:XTyF6ymz.net] 直りました ありがとうございました
892 名前:デフォルトの名無しさん mailto:sage [2015/08/25(火) 21:08:49.04 ID:fH+tecmU.net] >>878 そりゃどっちでもいいけど、intとlongが同じサイズでも一意になるようにって考えると面倒そうだ。
893 名前:デフォルトの名無しさん mailto:sage [2015/08/25(火) 21:09:35.25 ID:fH+tecmU.net] enable_if で簡単にできるかな?と思ってやってみたけどダメだった。
894 名前:デフォルトの名無しさん mailto:sage [2015/08/25(火) 21:20:05.41 ID:jNMAhtm9.net] >>878 写像を考えるならそれこそ、浮動小数点型が符号ありだから整数型も符号つきに、と 決まるもんじゃないと思うが。
895 名前:デフォルトの名無しさん mailto:sage [2015/08/25(火) 21:25:51.36 ID:6dsqbHXE.net] >>882 お、おう
896 名前:デフォルトの名無しさん mailto:sage [2015/08/25(火) 21:26:09.66 ID:HUvc3tRo.net] >>881 いや直らなねーだろそれ どうやったんだ?
897 名前:デフォルトの名無しさん [2015/08/25(火) 21:26:19.55 ID:dXA4WVNa.net] >>882 どういたしまして
898 名前:デフォルトの名無しさん [2015/08/25(火) 22:32:30.49 ID:x/KQ4zM5.net] template<> template<> inline void A<int>:: a<'a'>(){} 直りました ありがとうございました
899 名前:デフォルトの名無しさん mailto:sage [2015/08/25(火) 22:54:03.10 ID:HUvc3tRo.net] >>889 それだとA<long>::a<'a'>が特殊化されないままだぞ まあ不満が無いならいいけど
900 名前:デフォルトの名無しさん mailto:sage [2015/08/26(水) 18:15:46.41 ID:T7byp7v6.net] ちょっと聞きたいんだけど、みんなどうやって勉強してるんだ? ガリガリ書いてれば詳しくなれるのか、専門書読み漁ってるのか・・・ スレチだったらすまん
901 名前:デフォルトの名無しさん [2015/08/26(水) 18:40:48.46 ID:XR0u/yGZ.net] 洋書を読みまくるしかない それ以外に方法は無い
902 名前:デフォルトの名無しさん mailto:sage [2015/08/26(水) 19:01:49.43 ID:xtEnIajl.net] ISOの規格しか呼んだことありません 正しい言語知識は身に付きますが、あまり役には立ちません
903 名前:デフォルトの名無しさん [2015/08/26(水) 19:03:25.25 ID:+CCB3yUl.net] ガリガリ書くし専門書も読むし他人のコードも読む
904 名前:デフォルトの名無しさん mailto:sage [2015/08/26(水) 19:03:54.52 ID:41WE1uen.net] 1.入門書を買って試す(入門サイトはサボりやすい) 2.サンプルサイトを片っ端から理解するまで試す 3.市販の簡単なソフトを真似て作る 4.古いオープンソースの脆弱性を探す 独学ならこんなんで良いんじゃない?
905 名前:デフォルトの名無しさん mailto:sage [2015/08/26(水) 19:07:19.95 ID:41WE1uen.net] ごめん市販縛りは脳内削除で
906 名前:デフォルトの名無しさん mailto:sage [2015/08/26(水) 19:37:56.60 ID:8NpsUOma.net] まず具体的なソフト作成の目標をつくる。 ほしいアプリやツールなど、とにかく自分が使いたいものが良いかな。 実現する為にggりまくる、本を探す。 コピペでも汚くてもいいから作り切る。 作る過程でわからない事や問題が起こるので、その時は本気でとことん勉強する。 最初はこんな感じ。 慣れてくると、より良い方法や便利な機能を模索する事にシフトしていく感じかなー。
907 名前:デフォルトの名無しさん mailto:sage [2015/08/26(水) 20:10:05.30 ID:B+gFkObw.net] bitsetでrange based forを使いたいです。
908 名前:デフォルトの名無しさん mailto:sage [2015/08/26(水) 21:21:24.32 ID:fdBJ5NPL.net] C++4th本は評判いいね
909 名前:デフォルトの名無しさん [2015/08/27(木) 09:00:39.94 ID:MQwOwGL7.net] 2nd以外、ずっと安心のブランド
910 名前:デフォルトの名無しさん mailto:sage [2015/08/27(木) 12:13:03.20 ID:dowPTGl5.net] 簡単なパズルを解くプログラムなんてどおかしら?
911 名前:デフォルトの名無しさん mailto:sage [2015/08/27(木) 13:11:45.12 ID:R1PXfvA4.net] ぷろぐらむを使わずにどうやったら現できるかをひたすら考えるのが一番大事
912 名前:デフォルトの名無しさん mailto:sage [2015/08/27(木) 14:05:04.45 ID:oVACUZkQ.net] 自分は仕事でとあるOSSに関わったのがC++をガチで勉強するきっかけだった ただの趣味や自己研鑽でやるのは自分には荷が重すぎたw
913 名前:デフォルトの名無しさん mailto:sage [2015/08/27(木) 21:01:28.37 ID:PWCfSW2r.net] それやらないと金くれないってんならそりゃあやるだろうな 逆に別にやらなくてもいいならやる人は少ない 人間そんなもん
914 名前:デフォルトの名無しさん mailto:sage [2015/08/27(木) 21:23:58.32 ID:dowPTGl5.net] C++は難しいから好きみたいなw
915 名前:デフォルトの名無しさん mailto:sage [2015/08/27(木) 21:56:14.29 ID:oVACUZkQ.net] >>904 まぁね 今では嬉々としてc++本を買い漁ってるから、機会をくれた仕事に感謝だわ 最初の山場を超えれば世界が開けて楽しくなるんだけど、そこに行くまでがね
916 名前:デフォルトの名無しさん mailto:sage [2015/08/27(木) 22:25:05.87 ID:/f0HtdnV.net] c++の最初の山場って何? 世界が開けるって何?
917 名前:デフォルトの名無しさん mailto:sage [2015/08/27(木) 22:29:59.58 ID:58eRNtwY.net] virtualがCの関数ポインタで実装できると気づいた時
918 名前:デフォルトの名無しさん mailto:sage [2015/08/27(木) 22:35:38.99 ID:/F/l5AUe.net] >>908 それC知ってれはすぐ解るよね
919 名前:デフォルトの名無しさん mailto:sage [2015/08/27(木) 22:41:22.29 ID:dowPTGl5.net] 結局 クラスを作って使ってプログラミングをして行く事に気付いたってとこかな。 そのクラスの設計と実装の形と流れが見えた時みたいな。 あまり難しい事やろうとするとハゲるので気を付けてます。 ん 脳がウニになるんだっけ?
920 名前:デフォルトの名無しさん [2015/08/27(木) 22:42:33.50 ID:syh25Qiw.net] C++を一生懸命勉強しても意味ないと気がついた時
921 名前:デフォルトの名無しさん [2015/08/27(木) 22:43:54.41 ID:1aXFvZlX.net] C++上でJavaと同じことが出来るようになったとき
922 名前:デフォルトの名無しさん mailto:sage [2015/08/27(木) 22:50:15.71 ID:Tu/gvc/8.net] 他の言語の方がC++を使うより圧倒的に簡単に実装できてしまうのに気付いたとき
923 名前:デフォルトの名無しさん mailto:sage [2015/08/27(木) 23:08:58.91 ID:AjywBnNd.net] Eigenを使いたくて15年ぶりくらいにc++に触ってます。 といってもswiftをグルーコードにして、インターフェース部分をobjective c++で書いているんですが。 正直何がなんだか分からない状態で使っています。 XCTTestが使えるので検証コード書きながらやってるんですが、 どうせなら純粋なc++コードにして他の環境でも使えるようにしたいと 欲が出て来ました。 swiftとかobjective-cとの差分みたいな形でc++の最新仕様がわかる資料ってありませんか?
924 名前:デフォルトの名無しさん mailto:sage [2015/08/27(木) 23:46:06.44 ID:oqQcnINP.net] JavaはJ2CというツールでC++に変換できる。C++でできることはJavaでもできる。 JavaはC++よりも安全でクロスプラットフォーム。 以上の論点からJavaを選ばないでC++を選んだ地点で敗北決定。それではさよーなら。
925 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 00:02:12.62 ID:mMYa0hvl.net] EigenってLAPACKより優れてるとこあるの?
926 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 00:34:25.90 ID:63U9kYe8.net] >>915 一行目の論理がおかしくないか
927 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 01:10:52.80 ID:A+JHoXIT.net] JavaはJ2CというツールでC++に変換できる。JavaでできることはC++でもできる。
928 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 01:12:21.97 ID:wpTXwtIN.net] >>915
929 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 01:22:19.92 ID:a+CTalcE.net] 逆ならまあ同意するかは置いといて言わんとしてること解るけど
930 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 02:08:15.73 ID:HduK2qso.net] オイラはboostとか使い始めてからすげぇ楽しくなった
931 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 02:25:28.96 ID:pUxJGj7r.net] boost使うとビルドで警告が沢山出ないか?w3かw4の設定の場合に。
932 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 03:12:59.90 ID:P24Er3Kn.net] Javaよく知らんけどC++のようなメタプログラミングできるの?
933 名前:デフォルトの名無しさん [2015/08/28(金) 03:38:13.03 ID:uCcB2afg.net] 詳しくはないが、そもそもC/C++は設計思想からして、メタプログラミングには不向きで 性能が落ちないギリギリの線で無理やりメタプログラミングなどの機能を追加していってるとおもうんだが。 Javaとか動的言語とか比較的新規の言語のほうが向いてるはず。こんなのあったけど。 [Groovy、Grails]メタプログラミング - Qiita qiita.com/saba1024/items/531c620e1462a4a3b344 私がScalaを選んだ理由 (1/4):CodeZine(コードジン) codezine.jp/article/detail/2464
934 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 09:15:53.36 ID:63U9kYe8.net] boostってコンパイルが遅いのはどうでもいいけど、 実行速度はどうなの?
935 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 17:01:56.30 ID:ODiyhaIZ.net] そんな大雑把に聞かれても答えられないじゃん
936 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 18:43:43.73 ID:WxHFBL7U.net] メタプロにハマると IDE で気持よくなれないかも
937 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 21:44:19.71 ID:0sa/SPkb.net] >>905 正直少しはあるな
938 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 22:11:56.96 ID:k07is2fO.net] 普通に使う分には、C++はそんなに難しくないと思うがなぁ むしろC#の方が難しい、というか、なんか煩雑に感じるぐらい 俺的にC++使う理由は、やっぱ ネーティブコードが吐けて、インラインアセンブラでSSEとか使えて、 C/C++用ライブラリが一杯有る、ところかなぁ ネイティブコードが吐ける言語は、実質C/C++がデファクトなんで、 ハブられる心配が無いというか、 どんなライブラリでも、大体公式にC/C++用が用意してあるんで、 移植する必要が無いし、安心
939 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 22:29:20.31 ID:63U9kYe8.net] linux鯖屋としては、シェルで出来る事はそれで流すけど、APIがCなのでやぱC/C++は王様ですよ。 修正とマングリは必要だけど、Cソースをg++でコンパイルすればそのまま使えるしね。
940 名前:デフォルトの名無しさん [2015/08/28(金) 22:32:03.03 ID:ipR9oyH6.net] >>929 C#はどちらかというとCよりもJavaに近いだろ
941 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 22:36:36.86 ID:xCExyn/V.net] >>931 インフラ屋さんがc++つかうのん? 俺の知ってるインフラ屋さんと違う
942 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 22:51:01.27 ID:tV50qkIq.net] linux鯖屋ってC++が多いのか? なんかjavaを使ったもののほうが多いって感じだが
943 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 22:53:14.52 ID:8YxskuwN.net] 鯖屋はプログラミングなんてドカタ仕事はしません
944 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 22:53:24.73 ID:pUxJGj7r.net] vc++使うひとはUnicode設定にして wchar_t wstring L"文字列" MessageBoxW()などW関数 を使うのか?
945 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 22:55:11.41 ID:bBNOiFa3.net] >>934 せいぜいWordPressを設置したりだよね。
946 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 00:14:12.12 ID:vFUHBOp8.net] >>934 シェルスクリプトぐらい組むでしょ
947 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 00:30:56.15 ID:3TP8HIZh.net] >>912 ソースコードを書いている人が、 読みやすく書いているとは限らないから、 基本的にソースコードは読めないもの 誰でも言っていることだが、 ソースコードを書くよりも、読む方が数倍難しい だから仕様書で、図解して議論する。 仕様書で議論しないと、膨大な時間をムダにする A(){ aa(){} } B() C() また読むときは、A,B,Cの説明を読むだけで、 aa()のような中を追いかけては見ない これをブラックボックステストと言って、中を見ない。 入出力さえあっていればよろしい 入出力が間違っていれば、そこで初めてaa()の中を見る。 このように、エラーが無い場合には、 中を見ない・追いかけない。つまり飛ばす
948 名前:937 mailto:sage [2015/08/29(土) 00:34:42.00 ID:3TP8HIZh.net] >938 誤爆
949 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 00:36:04.15 ID:haT66cVy.net] >>938 > ソースコードを書いている人が、 > 読みやすく書いているとは限らないから、 > 基本的にソースコードは読めないもの それってコードに問題がある場合 どうするの? 脆弱性があっても 読めないんでしょう?
950 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 00:45:20.64 ID:T5cLaa3h.net] もう条件反射で突っかかってるよなw
951 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 00:47:56.90 ID:haT66cVy.net] そこにネタがあるからな
952 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 00:53:16.47 ID:1aUf6etT.net] C++だからこそ実現できたって言えるようなアプリケーションって世の中にどれくらいあるでしょうか? 今はほぼ趣味でやってるけど、そういうの知れたらやる気が高まります
953 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 00:57:10.98 ID:g5UyIGYz.net] 各種OSがそうです ほぼCかC++かアセンブリで出来ています
954 名前:デフォルトの名無しさん [2015/08/29(土) 00:57:39.17 ID:nNggqP3N.net] リッチなゲームなんかはC++じゃないと処理速度が出なかったりする
955 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 01:27:14.84 ID:Rh77Dwzm.net] そんなんなら言語云々じゃなくて ぷろぐらむとはなんぞや から学ぶべき
956 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 01:36:22.28 ID:NAM/3beS.net] UE4触ってたらc++触りたくなるかな。 日本だとやっぱりコンソールゲーム作ってる人がc/c++を使っているイメージ 最近死んだ任天堂の社長とかはc/c++使ってたのかな
957 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 02:29:51.93 ID:1aUf6etT.net] >>944 OSってC++でこってこてなテンプレートメタプログラミングを駆使したりはしないですよね? やはりゲームなのかな
958 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 02:34:03.64 ID:g5UyIGYz.net] テンプレートコテコテではないですが、 Windowsには沢山のC++コードが含まれている、たぶん、COMとかも
959 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 03:21:26.19 ID:zEqMSaU0.net] C/C++でなければならなかった物は多いけれども テンプレートを駆使しなければできなかったものなんて存在しない
960 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 08:35:02.00 ID:NAM/3beS.net] 設計にこだわりはじめるとメタプログラミングがあった方がらくできることが多い。 Goはメタプログラミングに弱いから作ってもツール止まりで中規模以上のコードが書きたくない。
961 名前:デフォルトの名無しさん [2015/08/29(土) 11:54:40.37 ID:nNggqP3N.net] intmax_t型ってC++11から導入されたんですか?
962 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 12:51:19.50 ID:HLdP7G1m.net] yes
963 名前:デフォルトの名無しさん [2015/08/29(土) 20:53:02.11 ID:KZHxi9qE.net] 動的な型宣言もどきの、静的な型宣言にすぎないものだからね
964 名前:デフォルトの名無しさん mailto:sage [2015/08/30(日) 21:47:02.43 ID:nQZgpkK3.net] class CResourceImageManager { public: static RESOURCE_IMAGE* GetResource(int resourceNumber); static void Release(int resourceNumber); static void ReleaseAll(void); private: CResourceImageManager() {}; static std::map<int, RESOURCE_IMAGE*> m_resources; }; 画像のリソースを管理するクラスを作ろうと思って上記のようにしました このクラスはリソースのポインタに番号を付けて所有していますが リソースの確保と開放は別のクラスに分けて行った方が良いでしょうか?
965 名前:デフォルトの名無しさん mailto:sage [2015/08/30(日) 21:58:05.64 ID:cH+1CeIL.net] リソースマネージャーという名前のクラスからリソースの解放処理を追い出すとな
966 名前:デフォルトの名無しさん mailto:sage [2015/08/30(日) 22:01:47.18 ID:Pa3SXzfv.net] >>955 質問と関係ないけどなんでintなん?整数にしたら何か良いことあんの?
967 名前:デフォルトの名無しさん mailto:sage [2015/08/30(日) 22:10:21.13 ID:P+7GNFUS.net] むしろintのどこに違和感を覚えたのか
968 名前:デフォルトの名無しさん mailto:sage [2015/08/30(日) 22:30:14.32 ID:Pa3SXzfv.net] >>958 リソースはファイルから読み込むだろ?ファイル名は文字列だろ? ファイルに対してユニークになるよう整数を割り当ててまでintにする意味は?
969 名前:デフォルトの名無しさん [2015/08/30(日) 22:33:37.96 ID:U1akemkg.net] リソースに対してユニークなIDを振ったヘッダを吐き出すパターンも多いだろ
970 名前:NAS6 ◆n3AmnVhjwc [2015/08/30(日) 23:01:15.78 ID:AMlzbaWO.net] private: CResourceImageManager() {}; ↑のほうが違和感、これ、コンストラクタどう呼ばれるん?
971 名前:NAS6 ◆n3AmnVhjwc [2015/08/30(日) 23:06:09.45 ID:AMlzbaWO.net] >>961 でfatal error吐かないとそのコンパイラは使えないよ
972 名前:デフォルトの名無しさん mailto:sage [2015/08/30(日) 23:11:58.65 ID:qwg10Zcl.net] お前は何を言っているんだ? 端からインスタンス作るつもりないだろ。これ
973 名前:デフォルトの名無しさん mailto:sage [2015/08/30(日) 23:16:43.90 ID:9cBHMzmD.net] >>957 整数の方が文字列より比較が早いんじゃね
974 名前:NAS6 ◆n3AmnVhjwc [2015/08/30(日) 23:17:49.92 ID:AMlzbaWO.net] インスタンス禁止は、結局、面倒だし シングルトンとか、忘れたなぁ 結局、つまり静的に1個、持たせるんじゃなかったっけ? おひとり様プログラムには要らないものだった気がする
975 名前:NAS6 ◆n3AmnVhjwc [2015/08/30(日) 23:21:30.07 ID:AMlzbaWO.net] おひとり様プログラムにシングルトンって ものすごく無駄なオーバースペックでゲンナリしたんだよ
976 名前:デフォルトの名無しさん [2015/08/30(日) 23:27:03.91 ID:eLi9SMSd.net] >>963 CResourceImageManager() = delete; でもないんだよね、これ。 そんくらい嫁って気持ちは俺も同感だが、 なぜあえて? という一抹の疑問が残る。
977 名前:NAS6 ◆n3AmnVhjwc [2015/08/30(日) 23:40:28.88 ID:AMlzbaWO.net] static hoge g_inst; で大体、十分で、シングルトンまで使う必要がないんだよね そこまでやってるとミカン星人になっちゃう
978 名前:デフォルトの名無しさん mailto:sage [2015/08/30(日) 23:47:49.92 ID:3qQgE1+2.net] >>955 既存のスマートポインタで使えるように、特に理由が無い限りはふつうに delete できるようにしといてほしい。
979 名前:デフォルトの名無しさん mailto:sage [2015/08/30(日) 23:57:36.66 ID:5WlSK8Ue.net] シングルトンは甘え、 >>961 ていうか>>955 のは見えてる限り全メソッドstaticなので、 実はCResourceImageManager::Release(i)みたいな呼び出し方しかしない (インスタンス非生成)なつもりだったりして…
980 名前:NAS6 ◆n3AmnVhjwc [2015/08/31(月) 00:45:55.59 ID:zbEcK4vV.net] ttp://nas6.main.jp/secret/ContainerPtr.htm おらが作ったコンテナポインタとツリーコレクション コンテナポインタを試しにCLIにしてみたけど 演算子オーバーロードが使いにくくなるし ジェネリックはアドレス演算子ができないからなー どうしようかと普通の関数にしたらショボーン
981 名前:NAS6 ◆n3AmnVhjwc [2015/08/31(月) 00:50:36.90 ID:zbEcK4vV.net] メモリ管理でC++なら>>971 のリンクが使えるかと思うよ
982 名前:NAS6 ◆n3AmnVhjwc [2015/08/31(月) 01:09:10.32 ID:zbEcK4vV.net] と思ったらツリーコレクションのほうは 複数作ったら1個しか破棄されてないな むー
983 名前:NAS6 ◆n3AmnVhjwc [2015/08/31(月) 01:20:22.49 ID:zbEcK4vV.net] ツリーコレクションを修正した
984 名前:デフォルトの名無しさん mailto:sage [2015/08/31(月) 01:21:59.60 ID:5EC/KDqw.net] void method()throw() にすると例外吐かないんですよね? 例外吐かないって実際どういうことなんですか? 関数内でthrowを使っているAPIを呼び出しても自動でcatchするってことですか?
985 名前:デフォルトの名無しさん mailto:sage [2015/08/31(月) 01:22:04.44 ID:4zTsoFnu.net] シングルトンじゃなくてモノステートじゃ
986 名前:NAS6 ◆n3AmnVhjwc [2015/08/31(月) 02:43:57.87 ID:zbEcK4vV.net] モノステートは、static boolなクラスメンバで挟み撃ちにすればなんとなくできる その場合で、>>973 で失敗したけど、 複数オブジェクトの時、1個のみで1個に1回じゃない それだけじゃあ、単純過ぎるセマフォだけどね
987 名前:NAS6 ◆n3AmnVhjwc [2015/08/31(月) 02:47:11.82 ID:zbEcK4vV.net] 1個づつに1回づつじゃない
988 名前:NAS6 ◆n3AmnVhjwc [2015/08/31(月) 02:57:50.88 ID:zbEcK4vV.net] 複数オブジェクトの時、1個づつに1回づつのセマフォを簡単に作れないかな? ttp://nas6.main.jp/NAS6_tree_clct.h のvirtual bool isDestructing();で一応できたんだけど マルチスレッドとかになるとtmpファイル作って お互いに参照しあいじゃないとダメかな
989 名前:NAS6 ◆n3AmnVhjwc [2015/08/31(月) 03:20:31.93 ID:zbEcK4vV.net] void lock(string fname){ ofstream fout; fout.open(fname.c_str(),ios::out|ios::trunc); if(!fout) return; fout<<1; fout.close(); } void unlock(string fname){ ofstream fout; fout.open(fname.c_str(),ios::out|ios::trunc); if(!fout) return; fout<<0; fout.close(); } bool islock(string fname){ char ch; ifstream fin; fin.open(fname.c_str(),ios::in); if(!fin) return false; fin.get(ch); fin.close(); return ch; } マルチスレッドの場合こんな感じで良かったっけな・・・
990 名前:NAS6 ◆n3AmnVhjwc [2015/08/31(月) 03:39:06.54 ID:zbEcK4vV.net] コンパイラ通してないから知らんけどios::binaryがなきゃダメか
991 名前:デフォルトの名無しさん mailto:sage [2015/08/31(月) 05:13:34.46 ID:aG7+P1+O.net] >>975 throwがその関数外に出そうになったときに自動でstd::unexpectedが呼ばれます。 デフォルトの挙動では std::unexpected std::terminate std::abort と呼ばれるのでプログラムはそこで終了します
992 名前:デフォルトの名無しさん mailto:sage [2015/08/31(月) 08:16:24.52 ID:SWBaMMdR.net] >>975 例外を止める機能じゃないよ 例外は吐きませんって言う意思表明
993 名前:デフォルトの名無しさん mailto:sage [2015/08/31(月) 08:21:40.49 ID:y4ZEqKRh.net] 例外を止める機能なのかどうかは訊いていない。 例外がスローされうるのかを聞いている。 日本語も読めない低能は去れ。
994 名前:デフォルトの名無しさん mailto:sage [2015/08/31(月) 08:21:47.23 ID:UOSubx+k.net] 例外送出権を放棄しそれに伴う無駄な処理を削減
995 名前:デフォルトの名無しさん mailto:sage [2015/08/31(月) 09:36:51.17 ID:dlg5gx9C.net] 次スレお願い
996 名前:デフォルトの名無しさん mailto:sage [2015/08/31(月) 11:12:53.08 ID:4UR705Ml.net] >>955 のコードは、リソースに整数値を
997 名前:値なのにmapにする意味は何ですか? vectorではダメなんですか? 割り当てる整数値が、無茶苦茶大きくなる事があって、メモリ効率が悪いってことですか? でも、はじめから、そんな大きな整数値を、割り当てないようにすれば良いだけでは? それとも、ポインタを整数値にキャストしたものを、値として使っているってことですか? それなら始めからポインタを使えばよいのでは? [] [ここ壊れてます]
998 名前:デフォルトの名無しさん mailto:sage [2015/08/31(月) 11:31:07.85 ID:uuYY3mX1.net] 普通に考えれば、解放される順序が固定的じゃないからだろ
999 名前:デフォルトの名無しさん mailto:sage [2015/08/31(月) 11:40:13.09 ID:4UR705Ml.net] 開放される順が固定じゃないのは普通ですが、 それでなんでmapにする必要があるんですか?
1000 名前:デフォルトの名無しさん mailto:sage [2015/08/31(月) 11:51:16.53 ID:jP9ITZzN.net] お前の知ったことじゃない
1001 名前:デフォルトの名無しさん mailto:sage [2015/08/31(月) 11:56:51.24 ID:uuYY3mX1.net] インデクスで管理されてるから途中のが解放されても並び替えできないのは自明 歯抜けを解消するには確保する前に空場所を探す手間を入れる必要が出てくる で、なんやかんやあるから、だったら最初からmapでいい
1002 名前:デフォルトの名無しさん mailto:sage [2015/08/31(月) 12:00:24.33 ID:LIRnTqik.net] 離散値になりうるのにvectorにする意味は何ですか? mapではダメなんですか? 割り当てる領域が、大量アクセスされる事があって、実行効率が悪いってことですか? でも、はじめから、そんな頻度のアクセスを、行わないようにすれば良いだけでは? それとも、割り当てたものを、開放しないってことですか? それなら始めから定数値を使えばよいのでは?
1003 名前:デフォルトの名無しさん mailto:sage [2015/08/31(月) 12:06:22.68 ID:4UR705Ml.net] >歯抜けを解消するには確保する前に空場所を探す手間を入れる必要が出てくる べつに、したらいいじゃないですか 手間が、実行時間の意味でしたら、フリーリストを用意すればよいですし、 そこのコストがあったとしても、配列の方が数値→ポインタの変換が速いのは明白ですし 手間が、コーディングの意味でしたら、そもそも、整数値に置き換えずポインタでいいですし
1004 名前:デフォルトの名無しさん [2015/08/31(月) 12:20:08.13 ID:bNeWtd/x.net] リソースナンバーはインデックスとは限らなくね
1005 名前:デフォルトの名無しさん mailto:sage [2015/08/31(月) 12:47:49.24 ID:LIRnTqik.net] >>993 1. ポインタの取得なので速度に拘る意味が全くない 2. 整数IDを自分が好きに設定できるとは限らない 3. 自分で管理する際のコードの複雑化、コスト、バグを考えていない スパゲッティを作るのは調理場だけにしておけ
1006 名前:デフォルトの名無しさん mailto:sage [2015/08/31(月) 13:03:45.70 ID:4UR705Ml.net] 特に、 >2. 整数IDを自分が好きに設定できるとは限らない これが意味わからないですね 他人がIDを設定して、自分でIDを好きに設定できない状況なら、 他人がID→ポインタの変換を実装すべきで、 自分でID→ポインタのマップを持つ意味は? 通常、ID→ポインタの変換テーブルを持っている人が、 IDを割り振るのでは?
1007 名前:デフォルトの名無しさん mailto:sage [2015/08/31(月) 13:04:55.71 ID:4UR705Ml.net] >1. ポインタの取得なので速度に拘る意味が全くない これも良く分からないですね
1008 名前:デフォルトの名無しさん mailto:sage [2015/08/31(月) 13:05:10.05 ID:IAsev/aT.net] 冷静に慎重に
1009 名前:デフォルトの名無しさん mailto:sage [2015/08/31(月) 14:13:50.22 ID:LIRnTqik.net] >>996 速度がいるのはポインタの取得でなく、ポインタからのデータ取得 IDは作るのが非プログラマの場合、ツールの場合、既存のものの場合、 または今後そう変更する場合もある そういう拘りは、速度が要件になってから固執しろ
1010 名前:デフォルトの名無しさん [2015/08/31(月) 17:15:14.78 ID:w0l476Lg.net] 固執しなくても、何となく気になるのは、大事な資質だ 「富豪的プログラミング」を洗脳的に刷り込まれたやつが書くコードが 世の中をどんなに減速しているか、わかってからでは遅いしね
1011 名前:デフォルトの名無しさん mailto:sage [2015/08/31(月) 17:20:24.18 ID:l/+TTZEK.net] お遊びはそこまでだ
1012 名前:1001 [Over 1000 Thread.net] このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。
1013 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています