1 名前:デフォルトの名無しさん mailto:sage [2016/02/21(日) 16:36:27.08 ID:jZESqUY+.net] C++に関する質問やら話題やらはこちらへどうぞ。 ただし質問の前にはFAQに一通り目を通してください。 IDE (VC++など)などの使い方の質問はその開発環境のスレに お願いします。 前スレ C++相談室 part122 peace.2ch.net/test/read.cgi/tech/1453557975/ このスレもよろしくね。 【初心者歓迎】C/C++室 Ver.97【環境依存OK】 peace.2ch.net/test/read.cgi/tech/1439849418/ ■長いソースを貼るときはここへ。■ codepad.org/ ideone.com/
2 名前:デフォルトの名無しさん mailto:sage [2016/02/21(日) 16:37:13.72 ID:jZESqUY+.net] [C++ FAQ] https://isocpp.org/wiki/faq/ www.bohyoh.com/CandCPP/FAQ/ (日本語)
3 名前:デフォルトの名無しさん mailto:sage [2016/02/21(日) 16:38:18.90 ID:jZESqUY+.net] STLつかうと一気に実行ファイルサイズが10倍に?! 環境によるだろ。 俺はBorland-C++5.6.2に -D_RTLDLL オプションを指定して、極力 ランタイムを使用するようにして使っているが、例えばstd::vectorを 使っても使わない時と比べ10Kほどしか増えない すげえ。ダイナミックリンクしといてファイルサイズが増えないとかいってるよ。この人。 C1010: プリコンパイル済みヘッダーの検索中に予期しない EOF を検出しました。 とかいうエラーが出るんだけどこれってどうすればいいの? #include <stdafx.h> 後死ね。 言葉が悪いな。それで教えているつもりか。 まぁヒントぐらいにはなったな。 うむごくろう。
4 名前:デフォルトの名無しさん mailto:sage [2016/02/21(日) 16:39:22.97 ID:jZESqUY+.net] ---- テンプレ ここまで ----
5 名前:デフォルトの名無しさん [2016/02/21(日) 16:42:58.92 ID:x0ZK9w0e.net] codepad.org/rwLzrPX4 何故cは0になるのですか
6 名前:デフォルトの名無しさん mailto:sage [2016/02/21(日) 16:44:46.98 ID:BYiGM6la.net] >前スレ994 >externは引き続く識別子が外部シンボル(!=ファイルスコープ)であることを明示するためのもの んなこたーない
7 名前:デフォルトの名無しさん [2016/02/21(日) 16:44:54.68 ID:toLQNscP.net] 471 デフォルトの名無しさん[sage] 2016/02/09(火) 08:07:47.87 ID:GGDlYrLi Windowsでエクスプローラその他殆どのアプリがメモリ不足死んだ状態でも生き残らななきゃ いけないシステム監視ソフトを書いたことがある俺に言わせるとそれほど難しいことじゃない Windowsの場合、メモリアロケーションに失敗する前にPostMessageが失敗するようになるから その辺に対応するのがコツ
8 名前:デフォルトの名無しさん mailto:sage [2016/02/21(日) 16:48:35.85 ID:2IuYSi1y.net] >>5 初期値が設定されないまま読み出されているので未定義動作。 0 が読み出されたように動くこともあるというだけ。
9 名前:デフォルトの名無しさん mailto:sage [2016/02/21(日) 16:51:01.47 ID:BYiGM6la.net] んなこたーない
10 名前:デフォルトの名無しさん mailto:sage [2016/02/21(日) 17:10:56.91 ID:hql2OPnW.net] >>5 偶然だ,頼ってはいけない
11 名前:デフォルトの名無しさん mailto:sage [2016/02/21(日) 17:16:20.23 ID:BYiGM6la.net] よく見たらデフォルトコンストラクターが有った そんなことあった失礼>>8
12 名前:デフォルトの名無しさん mailto:sage [2016/02/21(日) 17:21:25.25 ID:m+BXwdHb.net] 偶然は余計だ 規格上未定義動作というレスで十分
13 名前:デフォルトの名無しさん [2016/02/21(日) 17:34:03.41 ID:toLQNscP.net] このスレでは文法に関するレスは規格書と一言一句一致している事が要求されているので、素人さんは要注意
14 名前:デフォルトの名無しさん mailto:sage [2016/02/21(日) 17:55:01.74 ID:UzPMPT/j.net] なんか混乱させたけど、 1.ore.cppにも#include "ore.h"を入れる。 2.classやstructの宣言、定義も普通にore.hで行う。 3.インスタンスとして生成するものにはexternつける。 4.グローバル変数等も同様。 5.それらはore.cpp内で初期値与えたりなんか色々。 ちゃんと動作させようとするならこんな感じ? あとwifeの複数形は使ったことなくて知りません。
15 名前:デフォルトの名無しさん mailto:sage [2016/02/21(日) 18:06:28.24 ID:jZESqUY+.net] 定数だとconstexprで済ませちゃう。
16 名前:片山博文MZ ◆T6xkBnTXz7B0 [2016/02/21(日) 21:02:00.64 ID:mZ9I4pVL.net] C++でリスト操作を行うプログラムを作ったよ。 katahiromz.web.fc2.com/mathai/list_process.zip 感想を聞かせて欲しい。
17 名前: ◆tAo.kQ2STk mailto:sage [2016/02/21(日) 22:01:06.41 ID:S7h+0zbS.net] >>16 prologで良いじゃんっていう感想はあり? fgetsの第二引数にsizeofを使いたい コメント少なめ 1関数100行超え当たり前をどうにかしたい 他
18 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/02/21(日) 22:18:23.20 ID:mZ9I4pVL.net] >>17 Prologかぁ。ありがとう、参考になった。
19 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/02/21(日) 22:40:14.68 ID:mZ9I4pVL.net] >>17 Prologでリスト方程式を解くプログラムを作って欲しいんだが、可能だろうか?
20 名前:デフォルトの名無しさん mailto:sage [2016/02/21(日) 23:39:26.02 ID:BYiGM6la.net] 前スレ994に一応補足しておくか externはリンケージの内部・外部とあまり関係無い static void f(); const int g; extern void f(); //内部リンケージ extern int g; //内部リンケージ
21 名前:デフォルトの名無しさん [2016/02/22(月) 01:21:52.17 ID:x/uM3a1P.net] 「あまり」とか、曖昧な用語でしか説明できないならするな。 sssp://o.8ch.net/85c5.png
22 名前: ◆tAo.kQ2STk mailto:sage [2016/02/22(月) 08:16:49.84 ID:/YQF/sqY.net] >>19 チューリング完全である以上は可能だろうけど、リスト方程式とは?
23 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/02/22(月) 14:25:58.02 ID:C/gFN+RL.net] >>22 リスト(ここでは動的配列みたいなもの)に対する基本操作を関数で表し、 リスト変数と関数からなる等式によって2個以上の リスト変数の関係を表すとき、その式に含まれるあるリスト変数はどのように表せるか。 という問題なんだけど。
24 名前: ◆tAo.kQ2STk mailto:sage [2016/02/22(月) 16:55:47.45 ID:PefQFuu/.net] >>23 用語の厳密な定義か任意の言語による実装例を望むんだけど リスト変数ってのは 1. N次元ベクトルを格納するリスト型の変数の事(std::list<int> list;)? 2. それとも環境に束縛されている変数を記述するリストの事(std::list<std::pair<std::function<int()>, std::function<void(int)>>> values;)? 3. それとも式を名前や演算子のリストとして表現した物(std::list<Token> expr;)? 4. それとも構文解析済みの式を格納した木の事(struct L {std::list<L> left, right; Token token;}; std::list<L> ast;)? あとは 3番だと仮定して、入力されるリスト表現された式は主加法標準形のように何らかの標準化がされていると仮定しても良い? 数学的な意味での「変数」は複数存在しうる? 人力でなら代数的に解ける?つまり、注目している変数の次数は高々4次だと仮定しても良い? 関係が複数の組に対して定義されている時で、かつ、注目している変数について解いた結果として独立な式が得られた場合、 つまり関係式に十分なランクがある場合に、どう動作するべき?
25 名前:デフォルトの名無しさん [2016/02/22(月) 18:01:13.58 ID:2E9mhUXS.net] struct hoge { hoge( int ){} }; hoge h[ 8 ] = {}; 初期化の値を省略した場合はゼロで初期化されるといろんなサイトに書いてあるのに初期化されません 何故ですか
26 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/02/22(月) 18:02:19.08 ID:C/gFN+RL.net] ここではリストは、タプルとかstd::list<int>だと考えてかまわない。 4個の項1,2,3,4を順番に並べたリストを<1,2,3,4>と表す。 リストXの第(h+1)項をX[h]と表す。<1,2,3,4>[1]==2である。 リストXとYを連結した結果をAPPENDLIST(X,Y)と表す。 リストXに項yを追加した結果をAPPENDITEM(X,y)と表す。 リストXから項X[h]を取り除いた結果をERASEITEM(X,h)と表す。
27 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/02/22(月) 18:10:53.22 ID:C/gFN+RL.net] リストXの項X[h]の直前に項yを挿入した結果をINSERTITEM(X,h,y)と表す。 ここでZ=INSERTITEM(X,h,y)と仮定すると、X=ERASEITEM(Z,h)と書ける。 これは方程式Z=INSERTITEM(X,h,y)のXについての解であると言える。 一方、Z=ERASEITEM(X,h)と仮定するとX=INSERTITEM(Z,X[h])と書ける。ただ、XのうちでX[h]は未知数として残る。 私は数学者ではないので未知の項目があるときにどのように扱えばいいかはわからない。
28 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/02/22(月) 18:30:37.05 ID:C/gFN+RL.net] >>25 主語が抜けてるよ。「メンバー変数」がゼロクリアされるんだよ。 そのhoge構造体にはメンバー変数がない。
29 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/02/22(月) 18:55:08.21 ID:C/gFN+RL.net] なぜこんなことを考えているかと言うと、 リストを操作して別のリストを作り出すという変換器Cに対して Cが基本操作c_1,...,c_nの合成で表せたなら、Cの逆変換器C^(-1)は それらの逆変換器c_n^(-1),...,c_1^(-1)の合成で表せる。 つまり、あるプロセッサから逆の動作を行う別のプロセッサを作れるわけです。
30 名前: ◆tAo.kQ2STk mailto:sage [2016/02/22(月) 18:58:18.98 ID:PefQFuu/.net] >>27 ideone.com/H9X9nS こういう感じ?
31 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/02/22(月) 19:10:56.66 ID:C/gFN+RL.net] >>30 いい感じ。残念ながら私はまだPrologを習得していないので必要なら勉強するつもり。 「SOLVE FOR X: 方程式」みたいな表現で方程式を解けると有り難い。 メールでAmazonギフト券5000円差し上げます。メルアド教えて。
32 名前: ◆tAo.kQ2STk mailto:sage [2016/02/22(月) 19:23:11.74 ID:PefQFuu/.net] >>31 5000円券くれるのん?ありがとう。 himajinn13sei@gmail.com prologは全探索すれば解けて、パターンマッチングとして記述できる問題を書くのには向いてるけど、 本質的に繰り返しを含むアルゴリズム、例えばニュートン法なんかを書くには向いてないですよ。 prologで解く典型的な問題としては N-Queensとか4色問題とか、あとは条件付きスケジューリングなんかが挙げられるです。
33 名前:デフォルトの名無しさん mailto:sage [2016/02/22(月) 19:31:42.90 ID:Sq52s7+O.net] >>25 コンパイルが通らないからです
34 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/02/22(月) 19:59:40.54 ID:C/gFN+RL.net] >>32 メール送ったよ
35 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/02/22(月) 20:05:18.22 ID:C/gFN+RL.net] 今回の謝礼の件は経歴書に書いても構いません。続きはPrologのスレでやります。 【論理】Prolog【初心者】 peace.2ch.net/test/read.cgi/tech/1289016056/
36 名前:デフォルトの名無しさん [2016/02/22(月) 20:45:46.28 ID:yZnaoS7H.net] >>33 ゼロで初期化されるなら hoge h[8] = { hoge(0), hoge(0), hoge(0), hoge(0), hoge(0), hoge(0), hoge(0), hoge(0) }; となるんじゃないんですか
37 名前:デフォルトの名無しさん mailto:sage [2016/02/22(月) 22:22:03.27 ID:v1Wohs7h.net] いやそうじゃない ゼロ初期化はコンストラクタ引数にゼロを渡すのとはまったくちがう struct hoge { int baka; }; hoge h[ 8 ] = {}; ならh[0].baka〜h[7].bakaはゼロ初期化される っていうか初心者歓迎スレに行け
38 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/02/22(月) 22:22:33.71 ID:C/gFN+RL.net] メンバー変数がなければデータを格納できない。
39 名前:デフォルトの名無しさん mailto:sage [2016/02/22(月) 22:56:49.91 ID:/YQF/sqY.net] >>36 「ゼロ初期化」っていう訳語の専門用語と、「ゼロで初期化する事」は意味が違う。 zero initializationでググると良いよ。
40 名前: ◆tAo.kQ2STk mailto:sage [2016/02/22(月) 22:57:46.65 ID:/YQF/sqY.net] >>>34 メール受け取ったよ
41 名前:デフォルトの名無しさん [2016/02/22(月) 22:58:23.84 ID:yZnaoS7H.net] >>37 struct hoge { hoge(){} int baka; }; ならbakaは不定です。 ほんとにゼロ初期化されるのがルールなんですか
42 名前:デフォルトの名無しさん [2016/02/22(月) 23:00:01.44 ID:yZnaoS7H.net] >>39 大抵のサイトは値を省略すると「ゼロで初期化される」と書いてあります。 正確なところを教えてください。値を省略すると何が起こるのですか
43 名前:デフォルトの名無しさん mailto:sage [2016/02/22(月) 23:33:38.04 ID:/YQF/sqY.net] >>42 n3690から抜粋すると 8.5.17:The semantics of initializers are as follows. The destination type is the type of the object or reference being initialized and the source type is the type of the initializer expression. If the initializer is not a single (possibly parenthesized) expression, the source type is not defined. — If the initializer is a (non-parenthesized) braced-init-list, the object or reference is list-initialized 8.5.4.3: List-initialization of an object or reference of type T is defined as follows: if the initializer list has no elements and T is a class type with a default constructor, the object is value-initialized. 8.5.8: To value-initialize an object of type T means: — if T is a (possibly cv-qualified) class type (Clause 9) with either no default constructor (12.1) or a default constructor that is user-provided or deleted, then the object is default-initialized 8.5.7: To default-initialize an object of type T means: — if T is a (possibly cv-qualified) class type (Clause 9), the default constructor (12.1) for T is called つまりこの場合に限ると ・リストで初期化するとlist-initializeされる。 ・リストが空の場合、list-initializeはvalue-initializeになる。 ・デフォルトコンストラクタが削除されてたり、ユーザ定義されてる場合はvalue-initializeはdefault-initializeになる。 ・default-initializeはデフォルトコンストラクタを呼び出す ・hoge::hoge()は何も実行しない→hoge::bakaは未定義のままになる といった具合。 解決するには、 hoge() : baka(0) {return;} みたいにちゃんと初期化コードを書かなきゃ駄目。
44 名前:デフォルトの名無しさん mailto:sage [2016/02/22(月) 23:37:52.25 ID:/YQF/sqY.net] ちなみにhoge::hoge()を定義しない場合、暗黙のデフォルトコンストラクタが定義されて その場合はvalue-initializeはzero-initializeになるですよー
45 名前:デフォルトの名無しさん mailto:sage [2016/02/22(月) 23:59:33.96 ID:ANT1CVM2.net] 面倒だ struct hage { hage() = default; hage( int ){} }; これでOK
46 名前:デフォルトの名無しさん mailto:sage [2016/02/23(火) 02:18:04.37 ID:gGx+alPj.net] 前スレでラムダ式を気軽に使っていいか?という質問をした者ですが、 以下のようにforの中に定義を書いてしまった場合、forのループの度に ラムダ式のオブジェクトを生成したりするんでしょうか? そうだとするとforの外に出しておいたほうがいいんでしょうか? for { 〜ウン十行ある〜 auto func = [](){}; // ラムダ式を使う場所の近くで定義を書きたい(把握しやすいように) if { func(); } else { func(); } }
47 名前:デフォルトの名無しさん mailto:sage [2016/02/23(火) 02:42:27.72 ID:0Gk/RmeS.net] 2chに書き込む暇が有ったら測定してみろ
48 名前:デフォルトの名無しさん mailto:sage [2016/02/23(火) 07:59:59.43 ID:ltvQNGjy.net] >>41 以下だと、int baka; を、{ }で囲んでいないから、初期化できていない struct hoge { hoge(){} int baka; }; 上記を以下のようにすればよい。>>37 に書いてある struct hoge { int baka; }; hoge h = {}; ちゃんと本を読め。初心者歓迎スレに行け
49 名前:デフォルトの名無しさん mailto:sage [2016/02/23(火) 08:04:39.95 ID:ltvQNGjy.net] >>46 ループ毎に、処理が変わらないのなら、forの外に書く ループ毎に、処理が変わるのなら、forの内に書く
50 名前:デフォルトの名無しさん [2016/02/23(火) 08:18:48.42 ID:UeUvEN3+.net] >>48 bakaをゼロで初期化する方法は最初から聞いてません 初期化の値を省略した場合の挙動を聞いているのです デフォルトコンストラクタが呼ばれるならそう書けばいいのにどこもゼロで初期化されるとしかかいてませんでした
51 名前:デフォルトの名無しさん mailto:sage [2016/02/23(火) 08:31:58.63 ID:xDQTJcBy.net] まあ>>50 が予想された結果だ >>43 の後に>>48 はいろいろとマヌケすぎる
52 名前:デフォルトの名無しさん mailto:sage [2016/02/23(火) 11:21:56.71 ID:ltvQNGjy.net] >>43 みたいに、複雑な判定が必要なら、 そもそも必ず明示的に初期化すべき 多くのコーディング規則でも、 初期化していない値を使ってはならないと書いてあるだろ 未初期化の場合、初期化し忘れたのか、 故意にやっているのか、意図がわからないから困る もし、各コンパイラで挙動が異なったら、 こんなバグや意図を突き止めて、修正するのは大変
53 名前:デフォルトの名無しさん mailto:sage [2016/02/23(火) 13:35:15.59 ID:aFHEViKg.net] >>50 素人が適当なウソを無責任に書き散らしているサイトが多いが、 「どこでも」と言うなら、Cの構造体の初期化について書いてあったんだろう。 要約するとお前が間抜け
54 名前:デフォルトの名無しさん mailto:sage [2016/02/23(火) 14:05:39.64 ID:4c1IOC2x.net] >>50 C++の文脈でPODと非PODの違いにも触れずに={}で一律にゼロ初期化されるなんて 書いてるバカなサイトなんて見たことないんだが? どこでもっていうなら3つくらいは挙げてくれ
55 名前:デフォルトの名無しさん [2016/02/23(火) 14:15:32.01 ID:UeUvEN3+.net] >>54 列挙しても特に意味ないので 意味があるならやりますけど
56 名前:デフォルトの名無しさん mailto:sage [2016/02/23(火) 14:24:32.35 ID:4c1IOC2x.net] もうお前はいいよ相手にしちゃいかんやつだ
57 名前:デフォルトの名無しさん [2016/02/23(火) 14:37:12.48 ID:UeUvEN3+.net] 突然絡んできてもういいよとは何が何やらわかりません どうしてしまったんですか
58 名前:デフォルトの名無しさん mailto:sage [2016/02/23(火) 20:17:07.10 ID:bPGlp/ev.net] >>55 意味ならあるだろ >>54 は={}でゼロ初期化されるなんて書かれているサイトは見たこと無いって主張していて、 君はその逆に、どのサイトを見ても={}でゼロ初期化されるって書いてあると主張している。 どちらが正しいか証明したければ 君が知ってるサイトを片っ端から挙げるべきなのは分かるね? 逆に君がそうしない、又は出来ないというのなら君が単に嘘ついて炎上学習したって事になる。
59 名前:デフォルトの名無しさん [2016/02/23(火) 20:24:46.11 ID:MF5ot8kL.net] >>58 嘘もついてないですし自分の正しさを証明する必要も意味もないので 貼るなら正しい仕様を理解するための参考になるサイトを貼ってくれる方がいいですね ダメなサイトを貼る意味ってあります?
60 名前:デフォルトの名無しさん mailto:sage [2016/02/23(火) 20:34:32.34 ID:xDQTJcBy.net] >>59 興味があるので、ゼロ初期化と書いてあるサイトを教えていただけませんか? 今回だけ特別に教えて欲しいです。 代わりに参考になるサイトを紹介します www.open-std.org/ →WG21→papers N4567がオススメです
61 名前:デフォルトの名無しさん [2016/02/23(火) 20:48:31.49 ID:MF5ot8kL.net] >>60 そこは知ってるので別の所お願いします
62 名前:デフォルトの名無しさん mailto:sage [2016/02/23(火) 23:03:35.63 ID:bPGlp/ev.net] >>59 背理法って知ってる?
63 名前:デフォルトの名無しさん [2016/02/24(水) 06:55:08.54 ID:iraD9m85.net] >>62 熱膨張的な物言いでカッコいいですね
64 名前:デフォルトの名無しさん mailto:sage [2016/02/24(水) 07:00:00.19 ID:iS9soXkB.net] ボク自身も熱で膨張しそうです
65 名前:デフォルトの名無しさん mailto:sage [2016/02/24(水) 08:48:53.60 ID:qiLj0DES.net] 熱くたぎる怒張がどうしたって?
66 名前:デフォルトの名無しさん mailto:sage [2016/02/24(水) 12:21:03.69 ID:CiZ4HRqF.net] >>62 ム板じゃないところに来てるかと思って板名見なおしたぞ
67 名前:デフォルトの名無しさん mailto:sage [2016/02/24(水) 14:23:42.94 ID:4ZA9ynQM.net] >片桐 はいり(かたぎり はいり、1963年1月18日 - )は、日本の女優。 >本名、片桐 由美(かたぎり ゆみ)。東京都大田区出身。 >スターダストプロモーション芸能1部所属。
68 名前:デフォルトの名無しさん mailto:sage [2016/02/24(水) 20:35:27.44 ID:qiLj0DES.net] はいりはいりふれはいりほー
69 名前:デフォルトの名無しさん [2016/02/24(水) 21:23:02.15 ID:wSKjAMnV.net] int a = int(); a = int(); のint()はどういう意味ですか 一行目と二行目のint()に違いはありますか
70 名前:デフォルトの名無しさん mailto:sage [2016/02/24(水) 21:27:07.75 ID:f7gTsPBB.net] 一行目、aをコンストラクトする。 二行目、コンストラクトした一時オブジェクトをaに代入する。
71 名前:デフォルトの名無しさん [2016/02/24(水) 21:31:59.33 ID:iraD9m85.net] 一行目は一時オブジェクトは作成されないのですか
72 名前:デフォルトの名無しさん mailto:sage [2016/02/24(水) 21:44:13.38 ID:t5G9cIIP.net] qiita.com/hmito/items/9f4bdc8442b6f6b3c7bc 結構面白かったです。
73 名前:デフォルトの名無しさん mailto:sage [2016/02/24(水) 22:14:05.66 ID:ZvNmPlpt.net] >>71 知ってるくせに
74 名前:デフォルトの名無しさん [2016/02/25(木) 09:45:38.74 ID:pcAVTpJw.net] int(); と int(0); は何が違うんですか
75 名前:デフォルトの名無しさん mailto:sage [2016/02/25(木) 09:50:39.66 ID:pDSMfAMl.net] int(0)の方が1文字多い。そしてより明示的 だけどよっぽどの偏屈者じゃない限りint()とかint(0)とか書かない
76 名前:デフォルトの名無しさん mailto:sage [2016/02/25(木) 20:29:55.94 ID:/tM+b5YW.net] int()はint型の値初期化によって得られる値 int(0)は0をintにconst_castした結果
77 名前:デフォルトの名無しさん mailto:sage [2016/02/25(木) 23:46:46.50 ID:Y3PURJ2y.net] auto i = int{}; はフツーだろ? auto j = int{0}; は変人
78 名前:デフォルトの名無しさん mailto:sage [2016/02/26(金) 00:43:33.92 ID:VN+AWD5G.net] いやいやフツーはint i = 0;だろw
79 名前:デフォルトの名無しさん mailto:sage [2016/02/26(金) 02:27:23.53 ID:JkkprwN3.net] int i {0}; // だろ
80 名前:デフォルトの名無しさん mailto:sage [2016/02/26(金) 02:57:45.65 ID:sByuqtKs.net] 宣言と初期化に関して、いろんな表記が有りすぎて笑えないレベルだな コンストラクタなのかキャストなのかも分かりにくいし 最高です
81 名前:デフォルトの名無しさん mailto:sage [2016/02/26(金) 06:59:41.78 ID:L7RTVb9K.net] しかしnewでクラス作成時にメンバを全ゼロ初期化する方法がないんだな
82 名前:デフォルトの名無しさん mailto:sage [2016/02/26(金) 07:10:06.43 ID:FbdyjvxV.net] ちょっと何言ってるかわからない
83 名前:デフォルトの名無しさん mailto:sage [2016/02/26(金) 07:44:52.80 ID:L7RTVb9K.net] しかしnewでクラス作成時コンストラクタ呼出し前にメンバを全ゼロ初期化する方法がないんだな
84 名前:デフォルトの名無しさん mailto:sage [2016/02/26(金) 07:48:12.67 ID:L7RTVb9K.net] DelphiとかBCBだとTObject派生物はゼロ初期化されるが 標準C++規格でのやり方では聞いたことが無い
85 名前:デフォルトの名無しさん mailto:sage [2016/02/26(金) 08:01:04.93 ID:Pw5RFD2X.net] 自分が知らない、聞いたことがないことを 方法が無いと断定する低能には難しいだろうな
86 名前:デフォルトの名無しさん mailto:sage [2016/02/26(金) 08:04:28.09 ID:tJ1gUyHd.net] 初期化はコンストラクタでやるもんだと思うが、なぜコンストラクタ呼び出し前に そんなことやる必要があるんだろうか。
87 名前:デフォルトの名無しさん [2016/02/26(金) 08:28:20.75 ID:ouDcFdqg.net] char p[sizeof hoge]={}; new(p) hoge(); で
88 名前:デフォルトの名無しさん mailto:sage [2016/02/26(金) 08:53:49.35 ID:L7RTVb9K.net] >>86 初期値がゼロのメンバ変数はいちいち初期化する面倒が不要になる
89 名前:デフォルトの名無しさん mailto:sage [2016/02/26(金) 10:15:10.11 ID:OlJixx6H.net] struct X { int a, b, c; } X *x = new X({0, 0, 0}); これを簡略化したいってことか?
90 名前:デフォルトの名無しさん mailto:sage [2016/02/26(金) 12:19:06.42 ID:h1q56VEq.net] new X() で済む話だよね。
91 名前:デフォルトの名無しさん mailto:sage [2016/02/26(金) 18:27:57.97 ID:Pw5RFD2X.net] これでおk struct baka { int p; baka() = default; baka(int p) : baka{}, p{p} { } };
92 名前:デフォルトの名無しさん mailto:sage [2016/02/26(金) 18:43:51.81 ID:AYRtcLu9.net] struct baka { int a=0; bool b=true; baka() = default; }; でええやん
93 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/02/26(金) 18:45:56.98 ID:6Zondczs.net] struct tensai { int a=0; bool b=true; };
94 名前:デフォルトの名無しさん mailto:sage [2016/02/26(金) 19:38:43.59 ID:VKP1Cmo0.net] 0で初期化すれば安心って、それ自体が間違ってる気がする。
95 名前:デフォルトの名無しさん mailto:sage [2016/02/26(金) 20:27:08.19 ID:5826a3fE.net] PostMessageを監視すべし
96 名前:デフォルトの名無しさん [2016/02/26(金) 23:25:03.72 ID:yiTr60/V.net] double型の行列とcomplex<double>型の行列演算結果がcomplex<double> 型になるように型拡張を行うには何のテクニック使ったらいい? あ、単純な演算子のオーバーロード使うと結構大変だから(できんわけではないが) テンプレートテクニックとかうまく使えないかな。
97 名前:デフォルトの名無しさん mailto:sage [2016/02/26(金) 23:45:09.61 ID:zaiZLpHx.net] 演算子のオーバーロードが一番いい
98 名前:デフォルトの名無しさん mailto:sage [2016/02/27(土) 00:58:43.79 ID:e3stW6O/.net] なにをいってるかわからんな 行列の個々の要素ごとにdoubleとcomplex<double>で四則演算するなら 結果は自動的にcomplex<double>になるだろ
99 名前:デフォルトの名無しさん mailto:sage [2016/02/27(土) 01:54:26.55 ID:pvHfkl8D.net] complex<double>をベクトルとみなして、doubleをスカラとみなすのか そういう演算はC++では普通標準で用意しないから自分でオーバーロードすればいいじゃん
100 名前:デフォルトの名無しさん [2016/02/27(土) 01:57:02.77 ID:C/ecoBXH.net] TVアニメ『NEW GAME!』というのを知り、漫画を読みました。 無職5年目ですが、ぷろぐらむ(C++)Win32 アプリケーションを使い ゲームを製作(勉強)したいと思いました。 お勧めの参考書籍やサイトが有りましたら教えて下さい
101 名前:デフォルトの名無しさん mailto:sage [2016/02/27(土) 02:32:29.58 ID:wxfsuIHK.net] >>96 行列クラス自分で作るつもりなら当然行列どうしや行列とスカラーの演算子も定義しなきゃいかんわな 俺ならそんなもの自作しないで既存の行列演算ライブラリ(例えばeigenとか)使うけど ちなみに>>98 が言ってるようにdouble型とcomplex<double>型のスカラー演算結果は標準でcomplex<double>になるよ