【初心者歓迎】C/C++室 Ver.91【環境依存OK】
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2014/05/18(日) 15:33:57.11ID:IT3mOY35ただしその場合、質問者は必ず環境を書きましょう。
※sage禁止です(と代々スレに書いてありますが自己判断で)。
◆ソースのインデントについて
半角空白やTABでのインデントはスレに貼ると無くなります。
そのため、アップローダーに上げるのも手ですが直接貼る場合は、
全角空白か に置換すると見栄えだけはよくなります。
【初心者歓迎】C/C++室 Ver.90【環境依存OK】
http://toro.2ch.net/test/read.cgi/tech/1395675954/
【アップローダー】(質問が長い時はココ使うと便利)
http://codepad.org/ (コンパイルもできるし出力結果も得られる[]privateをチェック)
http://ideone.com/ (時間帯によってはcodepadが重い事があるのでここも利用)
hogeは禁止します、使用しないでください。
万が一hogeが書き込まれても、スルーしてください。
相手にするとあなたも荒らしと同じ扱いになります。
なお、hogeはNGワードに追加しておくことが強く推奨されています。
0002デフォルトの名無しさん
2014/05/18(日) 15:36:26.38ID:IT3mOY35↓いつものホゲボット出現に注意してね
0003デフォルトの名無しさん
2014/05/19(月) 22:12:23.53ID:8TpwFkzG0004デフォルトの名無しさん
2014/05/21(水) 00:49:19.55ID:7hPk5/6F0005デフォルトの名無しさん
2014/05/21(水) 01:12:34.29ID:zsbHBSNKどうしてもhoge禁止って書きたいなら>>2へ書けや!
0006デフォルトの名無しさん
2014/05/21(水) 01:33:36.62ID:g8mAFBUR俺もそれ思ったけど、そもそも>>1が荒らしなワケで追及は野暮かなと思ってる
0007デフォルトの名無しさん
2014/05/21(水) 11:15:20.32ID:t9OqPpuoチョーセン人のチョーセン脳のチョーセンルールをテンプレにいれてるお前はチョーセン人か?
死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。
0008デフォルトの名無しさん
2014/05/21(水) 11:52:36.29ID:fwt+X/HjクラスPが定義されてます。
pのハッシュを計算するとき
int a=hash((int *)&p , p.p.size());
みたいなことはできますか?
0009デフォルトの名無しさん
2014/05/21(水) 11:59:00.32ID:8iD7h9lx0010デフォルトの名無しさん
2014/05/21(水) 12:01:37.73ID:fwt+X/Hj0011デフォルトの名無しさん
2014/05/21(水) 12:06:32.55ID:8iD7h9lx0012デフォルトの名無しさん
2014/05/21(水) 12:09:30.56ID:fwt+X/Hj0013デフォルトの名無しさん
2014/05/21(水) 12:14:51.01ID:nGNzK1pap のハッシュって 環境依存だろうけど vtable も込みでとっちゃうのか
わっかんね
0014デフォルトの名無しさん
2014/05/21(水) 14:32:05.31ID:pXfK4nWY0015デフォルトの名無しさん
2014/05/21(水) 15:32:27.38ID:nGNzK1pa常に p.p.size() <= sizeof(P) ならば、ハッシュ値を求めることは出来る
が、求まった値が役立つ数字になるかは、用途によるだろうな
# p.p.size() > sizeof(P) は p の器の大きさを突破するので論外
0016デフォルトの名無しさん
2014/05/21(水) 17:06:30.68ID:mq1dIck6マトモな結果が得られるという思想がクレイジー。
あと任意のバイナリデータをintとして解釈して妥当な値域に収まる保証が無いんじゃないの?
0017デフォルトの名無しさん
2014/05/21(水) 20:19:35.24ID:AzCE/Sikほんとうの荒らしは>>1だからな。
0018デフォルトの名無しさん
2014/05/21(水) 20:23:17.80ID:atu2MY7eいつものキチガイQ
0019デフォルトの名無しさん
2014/05/21(水) 21:11:17.23ID:Rtlj0b94必ずエラーで落ちてくれる?
0020デフォルトの名無しさん
2014/05/21(水) 21:16:22.33ID:39Oa8/rNいいえ
アナタはC++に剥かないようなので
他の言語をオヌヌメします
0021デフォルトの名無しさん
2014/05/21(水) 21:23:58.26ID:GgA/fGkQそのクラスにハッシュ出力関数くっつけちゃ駄目なの?
0022デフォルトの名無しさん
2014/05/21(水) 21:29:06.74ID:x8uzOYYWoperater new と delete を宣言してその中でお好きなようにすれば?
0023デフォルトの名無しさん
2014/05/21(水) 22:36:56.59ID:QrOytk9h0024片山博文MZ悪魔崇拝 ◆T6xkBnTXz7B0
2014/05/21(水) 23:51:35.25ID:Bu7MBEQj002519
2014/05/22(木) 13:36:42.98ID:448z5NbEnew で生成したものじゃないものを delete した時
どのような動作をするの?
関係ないものを解放しているの?
0026デフォルトの名無しさん
2014/05/22(木) 13:45:35.84ID:1pePKowy> どのような動作をするの?
この時点でなにがしたいの?と言われるだけですが
0027デフォルトの名無しさん
2014/05/22(木) 14:03:13.60ID:jxaWow30公開・保障されていない範囲だから知らないうちにある日突然変わるかも知れない
どうしても知りたいならソースを追え
0028デフォルトの名無しさん
2014/05/22(木) 14:07:23.35ID:BQfkUUHc0029デフォルトの名無しさん
2014/05/22(木) 17:27:21.39ID:GrRXoNBX与えられるのはポインタだけで、
順次デストラクタを呼ぶ機構をどうやってやってるのか考えると禿げてくる
0030デフォルトの名無しさん
2014/05/22(木) 19:01:15.75ID:jxaWow300031デフォルトの名無しさん
2014/05/22(木) 20:33:23.58ID:f9nw6pOHそのへんはXawで鍛えられた
003225
2014/05/22(木) 21:01:49.17ID:m4yPgbOU強制終了しないんだろ?
ならどういう現象がおこっているのか知らないとエラー潰せないじゃん
0033デフォルトの名無しさん
2014/05/22(木) 21:23:50.27ID:FK/no5gc設計ミスです
0034デフォルトの名無しさん
2014/05/22(木) 21:27:22.18ID:zYQWrZOj0035デフォルトの名無しさん
2014/05/22(木) 21:27:46.00ID:BQfkUUHc0036デフォルトの名無しさん
2014/05/22(木) 21:37:10.09ID:WnJxxNfY>>19
・規格上の動作
未定義。
不正終了したり、何も起きなかったり、他の変数が書き換わったり、
実行し続けた一ヶ月後に突然a=a+10の結果がa=a+20になったり
画面に「おちんぽじゅぽじゅぽ」と表示されても文句は言えない
・実際に起こる可能性の高い動作
不正終了
アサートエラー表示が出る など
0037デフォルトの名無しさん
2014/05/23(金) 19:17:48.25ID:iUaEOHFY本番用とテスト用でデータベースが違う場合、どのようにしたら一番スマートだと思いますか?
接続するデータベースは決まっていて、プロジェクト側で接続文字列を指定しなくても良いように現在各サーバー毎に『Open本番用』と『Openテスト用』で2つメソッドを作って
切り替えるたびにソース内の呼び出しをいちいち置換しています。
それまではソース単位でプロジェクトごとにソースファイルとヘッダファイルをコピーしていたのですが、
面倒ですし、なにか変更があった場合統一して置きたいってのもありライブラリにしようと思いました。
皆さんの実装方法やいい方法があればご教授ください。
0038デフォルトの名無しさん
2014/05/24(土) 15:34:47.97ID:HkjKqa9B以下のように書きたいのですが、当然コンパイルは通りません。
(クラス名などは例です)
http://ideone.com/k7bfmh
これを解決する方法はありますか?
0039デフォルトの名無しさん
2014/05/24(土) 18:06:43.44ID:rvrMfwzJ0040デフォルトの名無しさん
2014/05/24(土) 18:46:45.68ID:sAh2CAr90041デフォルトの名無しさん
2014/05/24(土) 19:15:38.52ID:HkjKqa9B設計からやり直すことにします
0042デフォルトの名無しさん
2014/05/24(土) 19:16:58.51ID:xralQL+20043デフォルトの名無しさん
2014/05/24(土) 19:38:13.28ID:HkjKqa9B外に出しても結局テンプレート構造体になるので
問題が変化しませんでした
というか、これって要するに
typedef SomeFunc<type_a> type_b;
typedef SomeFunc<type_b> type_a;
をしようとしていることになるので
「あ、これ無理じゃね」って感覚が一気に強くなりました
どうもお騒がせしました
0044デフォルトの名無しさん
2014/05/24(土) 19:42:46.21ID:7oIc/1MI0045デフォルトの名無しさん
2014/05/24(土) 20:03:50.62ID:xralQL+2ん? 最初の2行言ってる意味がよくわからん
template<typename T>
struct Item {
int id;
T t;
};
typedef SomeFunc<Item<type_item> > type a;
typedef SomeWrapper<Item<type_item> > type b;
になるんじゃないかと思っただけなんだが
省略部分が関係してる?
0046デフォルトの名無しさん
2014/05/24(土) 20:59:31.89ID:HkjKqa9Bああ、なるほどItem<T>をSomeWrapperの型引数にするってことですか
確かにそれなら問題ないですね
何か勘違いしていました・・・
現状、実際のコードにおけるSomeWrapper::Itemにあたるクラスが
SomeWrapper内の非public要素にアクセスしまくっているため
安直に外に出すと言うことはできないのですが
(というかこの設計が一番問題な気がしてきた・・・)
教えていただいた方法を踏まえて落としどころを考えてみます
ありがとうございます
0047デフォルトの名無しさん
2014/05/24(土) 21:00:27.08ID:trY52c2m接続するデータベースの名前を環境変数で持つとか、プロジェクトの設定で持つとか、設定ファイルで持つとか、
なんとでもなりそうな気がするんだが。
0048デフォルトの名無しさん
2014/05/24(土) 21:30:07.45ID:u0AnFpgF知識不足で申し訳ありません。
プロジェクトの設定で持つっていうのは具体的にどうすればいいのでしょうか?
メソッドの引数をプロジェクトの設定で変えることが可能なのですか?
0049デフォルトの名無しさん
2014/05/24(土) 22:12:01.24ID:trY52c2mMFCを使っているということは、VisualStudioを使っているということだよな。
ファイル名で言うと、拡張子がvcprojというファイルがあるんだが、それがプロジェクトの設定だ。
それを使って、defineシンボルを定義できる。
0050デフォルトの名無しさん
2014/05/25(日) 23:40:42.06ID:m1aGdXHS>プロジェクト側で接続文字列を指定しなくても良いように
まずその腐った非常識な設計を見直す
0051デフォルトの名無しさん
2014/05/25(日) 23:57:17.36ID:4PeYCUt90052デフォルトの名無しさん
2014/05/26(月) 11:46:22.33ID:l0k3Jdk0WCHAR
wchar_t
UINT
uInt
u_int
UINT32
unsigned int
のように同じ型がたくさんありますが、どれを使うかは自分の好みですか?
いつも適当に使っているので、いろんなのが混じって混乱します。
上級者の人はどういうのを使うのでしょうか?
0053デフォルトの名無しさん
2014/05/26(月) 11:54:42.55ID:fNjo4Ias0054デフォルトの名無しさん
2014/05/26(月) 12:11:34.18ID:ptXAqcmg0055デフォルトの名無しさん
2014/05/26(月) 12:28:15.07ID:Dg6ioEfBunsigned int
などどこにでもついてるやつでいいだろ。
0056デフォルトの名無しさん
2014/05/26(月) 13:16:36.74ID:yHJImmyi仕事なら現場のルールに従う
個人なら自分でルールを決めて使う
適当に混在させるのはよくないが
入門レベルならまずそれを超えてから
size_tとはなんぞや?などと考えればいい
Cプログラマーを目指すなら最低限、
それぞれの型定義がどこ由来なのかを把握するクセをつけるべき
C言語汎用 / C++ / WindowsAPI / MFCとかどこかのライブラリ などなど
0057デフォルトの名無しさん
2014/05/26(月) 14:12:54.68ID:JWjgxHbr使用するWinAPIに合わせる
0058デフォルトの名無しさん
2014/05/26(月) 14:37:34.86ID:2JzRM12hwchar_t ← ほぼ標準
UINT ← Win32API 由来なので避ける
uInt ← ほとんど見ないんだけど
u_int ← ほとんど見ないんだけど
UINT32 ← Win32API 由来なので避ける
unsigned int ← ほぼ標準
uint32_t ← これじゃない?
u_int32_t ← こっちだったっけ?
0059デフォルトの名無しさん
2014/05/26(月) 14:54:04.78ID:OBwWisynint32_t 32bit幅の整数(C++11以降)。ただし実装しなくても良い
・_・)<規格票では以上でしたっけ?
0060デフォルトの名無しさん
2014/05/26(月) 15:04:46.92ID:2JzRM12h0061デフォルトの名無しさん
2014/05/26(月) 15:25:08.06ID:Pt2kiZ/o最低限、intとかdoubleとかのようにサイズが処理系依存で決まる型と
uint32_tとかのようにサイズが決まっている型の区別は付けといた方がいい
(同じことはunsignedとsignedにも言えるが)
APIとかでWCHARのような型があったりするのはそれ用のサイズであることを
仕様上指定する必要があるため(32bit幅あるべきなのに16bit幅しか無いんじゃ困る、みたいな)
だからこそchar型の符号にはよく悩まされるんだけどね……
std::stringの中身が「char」であって「unsigned char」じゃないから、
半角カナを突っ込んで比較とかするのが面倒で面倒で
0062デフォルトの名無しさん
2014/05/26(月) 16:03:33.53ID:LnM16LwK0063デフォルトの名無しさん
2014/05/26(月) 16:13:04.61ID:Pt2kiZ/oだから余計に面倒なのよ……
0064デフォルトの名無しさん
2014/05/26(月) 16:15:48.54ID:fNjo4Ias0065デフォルトの名無しさん
2014/05/26(月) 16:17:25.94ID:2JzRM12h0066デフォルトの名無しさん
2014/05/26(月) 16:25:17.66ID:4UfKpyVP0067デフォルトの名無しさん
2014/05/26(月) 16:25:50.01ID:Pt2kiZ/oVC++2013で'。'としてuint32_t型に突っ込んだらどうも処理結果がおかしいから
調べたらどう考えても負数扱いしているとしか思えない……
ソース→http://codepad.org/X2RKMIT5
結果→http://i.imgur.com/zYRq8H0.png
0068デフォルトの名無しさん
2014/05/26(月) 16:27:49.05ID:4UfKpyVPUTF32にシフトチェンジするらしい・・・
0069デフォルトの名無しさん
2014/05/26(月) 16:29:09.81ID:Pt2kiZ/oUTF-16にしても結果はShiftJISと同じ。
(EUCやUTF-8だと上3つがそれぞれ「36513」「8471969」に)
0070デフォルトの名無しさん
2014/05/26(月) 17:10:49.29ID:g2+Lv9f2UTF16だと日本語ですら固定長ではないようだな。
0071デフォルトの名無しさん
2014/05/26(月) 17:16:23.67ID:8q0+XjUd条件分岐を使わずに作りたいですが、作り方がよくわかりません。
y = 3の場合
x値 出力
-4 2
-3 0
-2 1
-1 2
0 0
1 1
2 2
3 0
4 1
5 2
0072デフォルトの名無しさん
2014/05/26(月) 17:40:43.69ID:LnM16LwKxの値域が分かっていないと条件分岐なしは難しい。
仮に、x > -y * N なら、(x + y * N) % y でいい。
0073デフォルトの名無しさん
2014/05/26(月) 17:46:01.50ID:8q0+XjUdx = -2,147,483,648〜2,147,483,647
y = 0〜2,147,483,647
を想定しています。
基本的にyは固定値、xは可変値です。
少し語弊がありました。
x値を0〜yに丸め込み、はみ出る分はループした値を返す関数です。
0074デフォルトの名無しさん
2014/05/26(月) 17:48:14.98ID:8q0+XjUdあ、これだとy = 0の時におかしくなりますね。y = 1〜2,147,483,647です。
0075デフォルトの名無しさん
2014/05/26(月) 17:56:31.29ID:8Gntpxgvreturn x % y;
でいいんじゃねーの?
0076デフォルトの名無しさん
2014/05/26(月) 18:00:44.78ID:NEODZvbEy進数にするって事か
0077デフォルトの名無しさん
2014/05/26(月) 18:01:47.44ID:8q0+XjUdxが負数の時におかしくなってしまいます。
x = -1の場合、出力も-1になってしまいます。
x = -1の場合、出力は y - 1 (>>71 の場合、2)になってほしいのです。
0078デフォルトの名無しさん
2014/05/26(月) 18:04:02.34ID:9FSRxe5k0079デフォルトの名無しさん
2014/05/26(月) 18:09:45.13ID:LnM16LwKxが全域なら、条件分岐なしは難しい。
下手に小細工するより、条件分岐した方がいい。
>>75>>77
だから、>72なのよ。
0080デフォルトの名無しさん
2014/05/26(月) 18:16:02.85ID:8Gntpxgvttp://codepad.org/0tgqjXFM
0081デフォルトの名無しさん
2014/05/26(月) 18:16:10.04ID:OBwWisyn0082デフォルトの名無しさん
2014/05/26(月) 18:23:40.04ID:DE2joRto4以外は?
俺解(もっと簡単にできるかもしれん)
printf("%d, %d\n", x%y, (int)(((long long)x-INT_MIN+(-INT_MIN)%y) % y));
0083デフォルトの名無しさん
2014/05/26(月) 18:24:11.39ID:8Gntpxgv負の数含みで条件分岐なしってメンドクサイね
0084デフォルトの名無しさん
2014/05/26(月) 18:34:36.35ID:4UfKpyVP0085デフォルトの名無しさん
2014/05/26(月) 18:52:31.12ID:DE2joRto0086デフォルトの名無しさん
2014/05/26(月) 18:55:35.81ID:8Gntpxgvhttp://codepad.org/mGaqnhWY
0087デフォルトの名無しさん
2014/05/26(月) 19:06:11.70ID:4UfKpyVPhttp://codepad.org/JX8n5tWb
0088デフォルトの名無しさん
2014/05/26(月) 19:10:11.67ID:8Gntpxgvそれxが負の時「x % (int)y」の部分が処理系依存だよ
codepadだと普通にループしてくれるみたいだから気がつかない
0089デフォルトの名無しさん
2014/05/26(月) 19:18:02.64ID:4UfKpyVP0090デフォルトの名無しさん
2014/05/27(火) 00:13:39.24ID:i4hxiTa4>xが負の時「x % (int)y」の部分が処理系依存
処理系依存とは具体的に
どのような結果の違いが発生しうる?
0091デフォルトの名無しさん
2014/05/27(火) 00:44:25.21ID:jH6wT1ov0092デフォルトの名無しさん
2014/05/27(火) 01:05:28.21ID:hIi+Wv6Jすまん、負数の剰余が処理系依存なのはC89までだったらしい
>>89
long longはC99で規格に入ってるから
>86を境界値で試したら…orz
ttp://codepad.org/LXv7f5EE
0093デフォルトの名無しさん
2014/05/27(火) 04:25:39.53ID:gYlifBZGつ http://codepad.org/2zaDCj6L
0094デフォルトの名無しさん
2014/05/27(火) 06:45:03.12ID:zuChiLjAつーか、C99以前は処理系依存だろ。
0095デフォルトの名無しさん
2014/05/27(火) 06:50:13.55ID:zuChiLjA0096デフォルトの名無しさん
2014/05/27(火) 06:58:43.49ID:CUHkYygvコードは書くべきじゃない。
0097デフォルトの名無しさん
2014/05/27(火) 08:02:25.09ID:IggqKLQQしかしこのc99の新規格(商を常に0方向に丸める)は俺は好かん。
整数論的には正数yでの剰余は常に0〜x-1とした方がはるかに使いやすい。
現状のCPUの仕様に合わせたんだろうけど、それ作った奴に説教してやりたい。
0098デフォルトの名無しさん
2014/05/27(火) 08:39:38.04ID:zuChiLjA0099デフォルトの名無しさん
2014/05/27(火) 08:49:17.46ID:IggqKLQQ0100デフォルトの名無しさん
2014/05/27(火) 12:37:40.64ID:exNyWoak((unsigned int)x - (unsigned int)INT_MIN - ((unsigned int)INT_MIN % y)) % y
0101デフォルトの名無しさん
2014/05/27(火) 13:36:23.34ID:gYlifBZGクロック数かなり食いそうな提案だな
0102デフォルトの名無しさん
2014/05/27(火) 17:50:36.77ID:W5J/W8/q0103デフォルトの名無しさん
2014/05/27(火) 18:12:49.07ID:tpLo0YfLでも見たことは無い。
0104デフォルトの名無しさん
2014/05/27(火) 18:16:26.13ID:Q08YOzUU0105デフォルトの名無しさん
2014/05/27(火) 18:26:28.83ID:2wmi7VyAほんのちょっと実現可能性が高いかな
0106デフォルトの名無しさん
2014/05/27(火) 18:30:17.31ID:hUdGWYajDLLをそのままつかえ。
0107デフォルトの名無しさん
2014/05/27(火) 18:45:16.15ID:tpLo0YfL0108デフォルトの名無しさん
2014/05/27(火) 19:28:26.62ID:xPg1oxv6以下のソースではint**型の変数と、int*をtypedefしたPINTのポインタ変数
を使用してるのですが、これらは同じ意味になっておりますでしょうか?
ttp://codepad.org/BXO76fMg
実行結果はエラーも無く同じ結果となっていますが、特に領域確保の
この部分、
*(n + i) = (int*)malloc(sizeof(int) * ncount);
*(pn + i) = (int*)malloc(sizeof(int) * ncount);
と各要素へアクセスするこの部分、
*(*(n + i) + j) = i * 10 + j;
*(*(pn + i) + j) = i * 100 + j;
について、int**とtypedefしたPINT*の表記が同じであることが非常に疑問で
ございます。
ちょっと頭が禿げそう、つかもう禿げてるんで是非ともよろしくお願いします。
0109デフォルトの名無しさん
2014/05/27(火) 20:02:45.46ID:cal2qzHPゴミのようなソースを出すな
質問したい事項が明確になる最小限のコードを出せ
0110デフォルトの名無しさん
2014/05/27(火) 20:27:09.10ID:gGML8YGyなぜ同じだとおかしいと思うの?
nもpnもintへのポインタのポインタでしょ
0111デフォルトの名無しさん
2014/05/27(火) 20:48:03.93ID:xPg1oxv6はい、まったくその通りで何もおかしいところはありませんですた。
ありがとうございますた。
0112デフォルトの名無しさん
2014/05/28(水) 07:11:01.56ID:BOTVCIcqこんなのでよければ
ttp://codepad.org/wNN6We3f
0113デフォルトの名無しさん
2014/06/04(水) 06:46:22.55ID:rksyc3N1int main() {
int ary[] = { 0,0,0 };
int *ary_p;
ary_p = ary;
int a = 10;
*ary_p = a;
ary_p++;
*ary_p = a;
printf("ary[0] = %d\n" , ary_p[0]);
printf("ary[1] = %d\n" , ary_p[1]);
printf("ary[2] = %d\n" , ary_p[2]);
return 0;
}
を実行した所
ary[0] = 10
ary[1] = 0
ary[2] = 10
と表示されました。
10,10,0と表示されないのは何故でしょうか?
0114デフォルトの名無しさん
2014/06/04(水) 06:52:06.64ID:82OCHhy20115デフォルトの名無しさん
2014/06/04(水) 06:56:04.57ID:1DioknP3アホか
>>113
ary_pは++した時点でポインタがaryとずれてるから
ary_p[2]が10なのは偶然
0116KUSO KOTE ◆unko./w.Osri
2014/06/04(水) 06:57:49.24ID:fbm8dwovこれ?
printf("ary[0] = %d\n" , ary_p[0]);
↓
printf("ary[0] = %d\n" , ary[0]);
0117デフォルトの名無しさん
2014/06/04(水) 07:02:57.65ID:82OCHhy20118デフォルトの名無しさん
2014/06/04(水) 09:05:20.65ID:QXXP3HR30119デフォルトの名無しさん
2014/06/04(水) 10:29:05.25ID:A1bPGZBI*ary_p = a; → ary_p[0] = a; → ary[0] = a と等価
ary_p++; → ary_p = ary + 1;
*ary_p = a; → ary_p[0] = a; → ary[1] = a と等価
printf("ary[0] = %d\n" , ary_p[0]); → ary[1] を表示
printf("ary[1] = %d\n" , ary_p[1]); → ary[2] を表示
printf("ary[2] = %d\n" , ary_p[2]); → ary[3] (配列範囲外)を表示
0120デフォルトの名無しさん
2014/06/04(水) 11:25:37.32ID:XUprANj40121デフォルトの名無しさん
2014/06/04(水) 12:48:19.60ID:Ku3qa5kCary[0] = 10
ary[1] = 10
ary[2] = 0
a = 10
の順に並んでるんだろうな
0122デフォルトの名無しさん
2014/06/04(水) 13:26:36.73ID:XUprANj40123デフォルトの名無しさん
2014/06/04(水) 19:18:27.10ID:ctaWLLIcせめてary[2] =が10でなければ…
0124デフォルトの名無しさん
2014/06/04(水) 20:39:11.21ID:3xpANYL+読んでわかる必用はない
デバッガーで追えばアホでもわかる
0125デフォルトの名無しさん
2014/06/04(水) 21:01:21.04ID:XUprANj40126デフォルトの名無しさん
2014/06/04(水) 21:10:48.61ID:EBZlr/6Dああ、
「こうあって欲しい」
と思いつめると見えてくるってアレねw
STAP細胞みたいに
0127デフォルトの名無しさん
2014/06/04(水) 21:47:35.58ID:aJQcKH5J/ .| | .\
/____| |__ \
/ ___ ___ \
| / (●)|_|(●) \ |
| | .(__人__) | | スタアアアップ!!
| | |::::::| | |
.\| l;;;;;;l | /
/. `ー´ \
/ ヽ
0128デフォルトの名無しさん
2014/06/04(水) 22:51:18.18ID:N3/jHtbVary_p はどこへ行ったんだよ (w
0129デフォルトの名無しさん
2014/06/04(水) 23:27:02.67ID:82OCHhy20130デフォルトの名無しさん
2014/06/05(木) 00:52:27.93ID:a7PnX2WK0131デフォルトの名無しさん
2014/06/05(木) 00:56:08.64ID:lhgzDk/P0132デフォルトの名無しさん
2014/06/05(木) 09:23:38.33ID:bFFkHpFA「printf("%u\n", sizeof(double));
が0と表示されました。8じゃないの?」
0133片山博文MZ悪魔崇拝 ◆T6xkBnTXz7B0
2014/06/05(木) 11:06:47.15ID:FT9x6v61これは64ビットでバグる。sizeofは64ビットになる可能性あり
0134デフォルトの名無しさん
2014/06/05(木) 11:39:01.48ID:3xT5pKKM0135デフォルトの名無しさん
2014/06/05(木) 12:23:44.65ID:CbdkWkFK0136デフォルトの名無しさん
2014/06/05(木) 13:26:11.17ID:lhgzDk/P0137デフォルトの名無しさん
2014/06/05(木) 13:27:36.37ID:kiXIjqkAprintf の中の人が喰おうとする値の器の大きさと
printf へ渡した値の器の大きさが不一致で発生
リトルエンディアン/ビッグエンディアンのどちらかですり抜けるかもしれない
# が、 "%u %d\n", sizeof(double), 1); のように、複数フィールドある場合2フィールド目(%d)で狂う
そういや size_t を受けることを前提としたフォーマット型指示子ってないのかな?
0138デフォルトの名無しさん
2014/06/05(木) 13:32:02.00ID:tqfyzk9C>そういや size_t を受けることを前提としたフォーマット型指示子ってないのかな?
あるよ。printf("%zu\n", sizeof(double))
0139デフォルトの名無しさん
2014/06/05(木) 16:49:50.86ID:Pu0yHHt10140デフォルトの名無しさん
2014/06/05(木) 16:53:35.57ID:bRshLiwB0141デフォルトの名無しさん
2014/06/05(木) 16:57:52.53ID:ztA5Pqkb0142デフォルトの名無しさん
2014/06/05(木) 17:01:02.87ID:ztA5Pqkb>>135しかない
Cなら(unsigned)sizof(double)
0143デフォルトの名無しさん
2014/06/05(木) 17:05:47.44ID:xElV2ONh0144デフォルトの名無しさん
2014/06/05(木) 19:54:48.10ID:6la2onTR0145デフォルトの名無しさん
2014/06/05(木) 20:00:32.49ID:9QuXPsv6ネットで他人を攻撃か風俗(本番系)でストレス発散と相場が決まっている
0146デフォルトの名無しさん
2014/06/05(木) 20:50:47.70ID:HyLJ1E4jアジャイルプラクティスって本によるとプログラマはみんな上から目線のてんこ盛りだそうだ・_・
0147デフォルトの名無しさん
2014/06/05(木) 23:26:42.15ID:lhgzDk/P若い時はちょっと上手くいくと、ふふふ俺は天才だぜ
とか思うし。
0148デフォルトの名無しさん
2014/06/06(金) 00:40:07.89ID:U2iGg+lK0149デフォルトの名無しさん
2014/06/06(金) 00:49:17.21ID:9n5gWYtb>>146のようなアニヲタが多い
つまりヒエルキラーの底辺
0150デフォルトの名無しさん
2014/06/06(金) 00:50:47.29ID:nCXyhCgmヒエラルキー
0151デフォルトの名無しさん
2014/06/06(金) 00:53:20.86ID:chhWQ5VX0152デフォルトの名無しさん
2014/06/06(金) 01:24:36.80ID:4c1lIHTZ馬鹿じゃねーのw
0153デフォルトの名無しさん
2014/06/06(金) 08:29:47.43ID:JaXrM7TVreturn Multiply(x, x);
}
int Multiply(int x, int y) {
return x * y;
}
int main() {
printf("%d\n", Squared(5));
}
こんなコードがあって、VC++、gcc、codepadのどれもコンパイルは通るのですが
clangだけエラーになってしまいます。仕様的にはどちらが正しいのでしょうか?
0154デフォルトの名無しさん
2014/06/06(金) 08:34:47.12ID:JaXrM7TV0155デフォルトの名無しさん
2014/06/06(金) 08:53:05.40ID:DTdJKogB0156デフォルトの名無しさん
2014/06/06(金) 09:59:47.54ID:R+Edbt39手元にあるclang 3.5でもエラーにはならない。-Weverythingにすれば警告は出る。
言語仕様的にも関数宣言のない関数呼び出しは引数int、返り値intで暗黙定義され
るので、エラーではない。
0157デフォルトの名無しさん
2014/06/06(金) 10:06:09.06ID:zxHkOkkG暗黙定義なんてされないよ。
Cの暗黙宣言を勘違いしてるにしても、引数型がintになるなんてことはない。
>>153
引数依存の式の名前解決はテンプレート実体化の場所で改めて行われる。
エラーにならないってことで正しいよ。
https://www.google.co.jp/search?q=two+phase+name+lookup
0158デフォルトの名無しさん
2014/06/06(金) 10:28:33.35ID:R+Edbt39テンプレート実体化の場所とは翻訳単位の最後だったのかあ。
0159デフォルトの名無しさん
2014/06/06(金) 10:58:45.44ID:DTdJKogB_name 参照してないから詐欺だよな
0160デフォルトの名無しさん
2014/06/06(金) 11:22:41.57ID:zxHkOkkG翻訳単位の最後だっけ?使ってるところじゃなくて?それどこに書いてあった?
・・・と思って調べてたら、そもそもintを含めてADLの動かない型だと
テンプレート定義時点で見えてないとダメだったみたい。ごめん。
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=29131
0161デフォルトの名無しさん
2014/06/06(金) 11:25:15.51ID:zxHkOkkGhttp://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#197
0162デフォルトの名無しさん
2014/06/06(金) 11:35:17.16ID:R+Edbt39★に定義があればコンパイルは通り、なければMultiplyが未定義でエラー
☆が実体化の場所ではないようだ
仕様上のどこに該当するのかはわからない
template <typename T> T Squared(T x) {
return Multiply(x, x);
}
int main() {
printf("%d\n", Squared(5)); // ☆
}
int Multiply(int x, int y); // ★
0163KUSO KOTE ◆unko./w.Osri
2014/06/06(金) 18:42:25.21ID:cSJUuqCn14.7.1p3
『Unless a function template specialization has been explicitly
instantiated or explicitly specialized, the function
template specialization is
implicitly instantiated when the specialization is referenced in a context that requires a function definition to exist』
実体が存在しなければならないことが確定した時点でインスタンス化されるので
>>162は☆だと思うのだけれど
0164デフォルトの名無しさん
2014/06/06(金) 18:45:22.00ID:F0jN0mKa0165デフォルトの名無しさん
2014/06/06(金) 23:14:22.72ID:JaXrM7TV後出しですいません。バージョンはVC++が2012、gccは4.1.1、clangは3.3でした。
エラーじゃない方が正しい旨了解しました。
0166デフォルトの名無しさん
2014/06/07(土) 10:36:02.64ID:ZltTq0Ow>ADLの動かない型だとテンプレート定義時点で見えてないと
ついていけないので補足たのむ。
ここでは「ADLの動かない型」がTに指定されただけであって
Multiply(x, x)は引数依存な式であって
テンプレート定義時に見えていなくても良いのでは?
0167デフォルトの名無しさん
2014/06/07(土) 13:34:36.41ID:pxDSBXnu14.6.4 [temp.dep.res]
"In resolving dependent names, names from the following sources are considered:
- Declarations that are visible at the point of definition of the template.
- Declarations from namespaces associated with the types of the function
arguments both from the instantiation context (14.6.4.1) and from the
definition context."
引数依存な名前 Multiply を解決するにあたって上記のとおり定義時・実体化時の
2つの文脈で見えている宣言が考慮されるんことになってるんだけど、実は後者は
与えられた実引数に「関連する名前空間」の宣言しか考慮しないことになっている。
組み込み型である int には「関連する名前空間」が無い(= ADL は動かない)
ので、前者の定義時の文脈で見えてる宣言しか考慮しない。
無駄にややこしいのでそもそも後者のこの縛りは意図されたものなのか?という
Issue は作られたが、その後11年ほど放置されたので、現状で良しとなっている。
http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_closed.html#225
0168デフォルトの名無しさん
2014/06/07(土) 13:36:32.90ID:AfyymoHz0169デフォルトの名無しさん
2014/06/07(土) 13:37:15.46ID:pxDSBXnu0170デフォルトの名無しさん
2014/06/07(土) 13:43:28.28ID:pxDSBXnuん、「後者」が実体化時、というのは正しくないな。
後者は正しくは「定義時・実体化時の両方での、実引数の型に関連する名前空間での宣言」で。
結論は変わらないけど。
0171166
2014/06/07(土) 14:51:46.46ID:80HFvxmhようやく理解したサンクス。
visible/associatedの説明は14.6.4.2にあって
普通?(3.4.1/3.4.3)とADL(3.4.2)のことと理解した
0172デフォルトの名無しさん
2014/06/07(土) 19:30:16.30ID:3IE/9PdEerror LNK1169: 1 つ以上の複数回定義されているシンボルが見つかりました。
で悩まされているのですが、そこで質問です。
宣言と実装を.hと.cppに分けずにhppファイルに実装を書いた場合でも、
上手にインクルードガードすれば、上記のエラーは回避できるのでしょうか?
をれとも、原理的に回避できない場合があるなら.hppではなく
.hと.cppに分けて地道にインクルードガードして解決したいと思います。
0173デフォルトの名無しさん
2014/06/07(土) 19:33:29.54ID:TTAmplth0174デフォルトの名無しさん
2014/06/07(土) 19:35:39.77ID:Xb2xGj4X今問題は、複数の翻訳単位に一つづつ定義が現れてしまって、リンクする時点で複数回定義が問題になってる
0175片山博文MZ悪魔崇拝 ◆T6xkBnTXz7B0
2014/06/07(土) 19:37:18.45ID:3R8CEA88ヘッダに書くのは宣言。定義はヘッダ以外のソースに書け。
基本的にヘッダの中の変数宣言にはexternをつける。
インクルードガードしても別のコンパイル単位でstaticでない定義が重複する
0176デフォルトの名無しさん
2014/06/07(土) 19:37:56.21ID:TTAmplthBというプログラムかLIBかOBJでも同じ関数の実装を組み込んだら衝突する。
実装はコンパイルしないか、最終的に1ファイルであるかのようにビルドされるならいい。
0177デフォルトの名無しさん
2014/06/07(土) 19:47:49.80ID:SxbAzKvi>上手にインクルードガードすれば
インクルードガードで定義済みを判断して
定義済みだったら extern を付けると良いよ
0178デフォルトの名無しさん
2014/06/07(土) 20:25:44.99ID:3IE/9PdE.hppはやめて、.hと.cppに宣言と定義を書く方式にします。
今回問題になったのは変数名ではなく関数名なのですが、
最初は関数の前にstaticを付けると問題は回避できたのですが、
それだと同じ関数が複数個作られるんですよね?
それは嫌なので、.hと.cppに分けて地道にインクルードガード
する方式にしたら上手く行きました。
0179デフォルトの名無しさん
2014/06/07(土) 23:04:40.79ID:jBtwYmah当たり前のことをさも大変だったかのように言われても。
0180デフォルトの名無しさん
2014/06/08(日) 07:06:28.91ID:WQSrHXS4でかいソースってわけじゃないだろうし、一度コマンドラインでコンパイルとリンク分けて処理してみたら?
0181デフォルトの名無しさん
2014/06/08(日) 07:13:05.10ID:deHViVaYんなこたーない
0182デフォルトの名無しさん
2014/06/08(日) 07:16:18.97ID:397riybvstatic おじさん大歓迎だ
0183デフォルトの名無しさん
2014/06/08(日) 07:54:05.70ID:b9obj5lEC++なら名前空間分離できるからstatic関数/変数の必要性も少ないし
処理速度も上がってるからコンパイル時間を気にする必要も無い
0184デフォルトの名無しさん
2014/06/08(日) 11:19:10.68ID:ZMHijgj2各翻訳単位にばらまく作業をはようはよう
0185デフォルトの名無しさん
2014/06/08(日) 12:02:02.19ID:N1ken61t付けなくても動くのがよいデザインであることってホント?
0186デフォルトの名無しさん
2014/06/08(日) 12:11:41.62ID:WsLrHXAO0187デフォルトの名無しさん
2014/06/08(日) 12:19:22.41ID:b9obj5lEダメな土台の上に何を建ててもダメ
0188デフォルトの名無しさん
2014/06/08(日) 13:12:45.26ID:81o4BWeL理想的にはそうであることを頭に入れつつも
だが現実はそこまで甘くない
0189デフォルトの名無しさん
2014/06/08(日) 14:22:51.92ID:WsIQvM8s0190デフォルトの名無しさん
2014/06/08(日) 16:44:48.56ID:DTpplEG3正しい書き方を教えていただけませんか
//a.h
namespace AA{
struct ST{ static const char* str; };
};
//a.cpp
#include "a.h"
namespace AA{ const char* ST::str = "string";};
//main.cpp
#include "a.h"
#include <stdio.h>
int main(){
printf("%s\n",AA::ST::str);
return 0;
}
0191デフォルトの名無しさん
2014/06/08(日) 16:48:50.11ID:VTLGPPW/問題ないけど
a.cppがリンクされてないんじゃね
0192デフォルトの名無しさん
2014/06/08(日) 17:02:19.66ID:DTpplEG30193デフォルトの名無しさん
2014/06/08(日) 17:39:03.55ID:WsIQvM8s0194デフォルトの名無しさん
2014/06/08(日) 21:02:12.81ID:9wWepqG80195デフォルトの名無しさん
2014/06/08(日) 21:09:55.95ID:qc9K162VAPIデザインの極意
とかかな。
読んだ事ないけど。
0196デフォルトの名無しさん
2014/06/08(日) 21:13:18.11ID:9wWepqG80197デフォルトの名無しさん
2014/06/08(日) 21:14:59.21ID:Sdh9/TPU0198デフォルトの名無しさん
2014/06/08(日) 21:19:15.40ID:9wWepqG80199デフォルトの名無しさん
2014/06/08(日) 21:19:59.29ID:9wWepqG80200デフォルトの名無しさん
2014/06/08(日) 22:10:28.14ID:lWOSGito0201デフォルトの名無しさん
2014/06/09(月) 00:07:58.15ID:SojYRJUc最近のvisual studio(C++)だとsprintfやfopenがエラーになり_sをつけたのを使えと言われてしまいます。
でも同じようなソースをmacのxcodeでも使いたいので_sを使わずに書きたいのですが、
設定などでエラーが出ないようにできないでしょうか?
0202デフォルトの名無しさん
2014/06/09(月) 00:11:53.41ID:0bWhWxWJ0203デフォルトの名無しさん
2014/06/09(月) 00:16:32.77ID:SojYRJUcありがとうごさいます
明日やってみます
0204デフォルトの名無しさん
2014/06/09(月) 00:16:59.57ID:KVOF4terhttp://msdn.microsoft.com/ja-jp/library/jj161081.aspx
昔は単なる警告だったのに今はエラーらしいね
警告は意味わかるけどどうして非標準のsprintf_s使えってのがエラー扱いになるのか…
Microsoftの考えは理解できん…
0205デフォルトの名無しさん
2014/06/09(月) 00:18:52.15ID:0bWhWxWJ0206デフォルトの名無しさん
2014/06/09(月) 04:05:39.98ID:ALbP+Rtr0207デフォルトの名無しさん
2014/06/09(月) 07:00:36.72ID:h9TCUEkZんなこたーない
警告回避のプラグマを入れてもコンパイルエラーになる執拗さ
0208デフォルトの名無しさん
2014/06/09(月) 07:27:50.76ID:z9pC5xMW違うと言うなら、現象が発生するソースと環境さらしなよ
0209デフォルトの名無しさん
2014/06/09(月) 07:47:51.06ID:NzkmwWkTVCは捨てろ
0210デフォルトの名無しさん
2014/06/09(月) 08:00:25.48ID:3klKh/2e・Windows 7/8をインスコ
・Visual Studio 2013 Express Desktopをインスコ
・コンソールアプリのソリューションを作成。設定はデフォルト
・strcpyを書く
これで再現
0211デフォルトの名無しさん
2014/06/09(月) 09:27:47.26ID:j0LvVAAE他のコンパイラ用にUTF-8に統一してるもので
0212デフォルトの名無しさん
2014/06/09(月) 11:26:09.21ID:v4Ko1KtV再現しねー
C4996 の警告にしかならないし、#pragma warning(disable: 4996) で抑止できる
Windows 7 + Visual Studio 2013 Express Desktop
0213デフォルトの名無しさん
2014/06/09(月) 12:18:47.40ID:Q8TzlagX0214デフォルトの名無しさん
2014/06/09(月) 14:56:19.40ID:CV1N0NlNこの質問の答え教えてください。
0215デフォルトの名無しさん
2014/06/09(月) 14:57:40.14ID:WYLHhV4pできませんか?
0216デフォルトの名無しさん
2014/06/09(月) 14:59:59.51ID:WYLHhV4p0217デフォルトの名無しさん
2014/06/09(月) 17:19:00.70ID:ZzyTzOLC正解
0218デフォルトの名無しさん
2014/06/09(月) 17:35:00.11ID:bS+se7ig>macのxcodeでも使いたいので_sを使わずに書きたい
macのxcodeとやらにはC標準のsprintf_sが無いの?
0219デフォルトの名無しさん
2014/06/09(月) 18:21:25.24ID:THWp8jxa0220デフォルトの名無しさん
2014/06/09(月) 18:38:29.50ID:7fH1c8DU0221デフォルトの名無しさん
2014/06/09(月) 19:04:16.12ID:ZwnzJPC1ISO/IEC 9899で規定されている
ただint32_tと同じく「実装する義務はない」という扱いだった気がする
0222デフォルトの名無しさん
2014/06/09(月) 20:14:49.18ID:10ZsRbUmデフォルトは無視してくれよ
0223デフォルトの名無しさん
2014/06/09(月) 21:46:21.51ID:XTlwiFWyコードにミスがあるのを気づかせてくれるなんていい奴じゃないか
0224デフォルトの名無しさん
2014/06/09(月) 21:50:15.60ID:v4Ko1KtV普通、エラーにならないようにするもんじゃねーのか?
バグでエラーになったらハンドラでメッセージ出すなりログとるなりして終了とか、回復試みるとかだろ。
0225デフォルトの名無しさん
2014/06/09(月) 22:01:05.32ID:/og56A330226デフォルトの名無しさん
2014/06/09(月) 22:10:04.68ID:ZwnzJPC10227デフォルトの名無しさん
2014/06/10(火) 02:14:18.98ID:14Dpn3NN0228デフォルトの名無しさん
2014/06/10(火) 11:35:16.45ID:IvxqNLPWvoid(int)にhogeという名前を付けることだから、
void(int)は値を返さないintを引数に持つ関数の型ということですか?
0229デフォルトの名無しさん
2014/06/10(火) 12:43:26.27ID:5ayGoitk0230デフォルトの名無しさん
2014/06/10(火) 15:01:37.55ID:dXd8C34n0231【重要】
2014/06/10(火) 16:16:04.43ID:8cBdtRQK万が一hogeが書き込まれても、スルーしてください。
相手にするとあなたも荒らしと同じ扱いになります。
なお、hogeはNGワードに追加しておくことが強く推奨されています。
0232デフォルトの名無しさん
2014/06/10(火) 16:46:14.39ID:6EsM5oVUSDLのチェック外してんじゃねーよハゲ
0233デフォルトの名無しさん
2014/06/10(火) 17:14:05.64ID:Hz3VKP2L「Windows 7 + Visual Studio 2013で再現しない」
などと言い出す人は会話のできない残念な人。
0234デフォルトの名無しさん
2014/06/10(火) 18:33:27.40ID:9ji/vOoA既定値は無効じゃ、ボケ
0235デフォルトの名無しさん
2014/06/10(火) 18:55:25.24ID:6EsM5oVUチェックは規定で入ってるよ馬鹿
0236デフォルトの名無しさん
2014/06/10(火) 20:06:27.47ID:q+I0Qf53押し付けて来ますが、日本人は無視して下さい。
チョーセンルールを守らなければいけないのはチョーセン人だけです
0237デフォルトの名無しさん
2014/06/10(火) 20:23:15.27ID:9ji/vOoA入ってねーよ、どこの VS 使ってるんだよ (w
既 定では、/sdl は無効になっています。
http://msdn.microsoft.com/ja-jp/library/jj161081.aspx
0238デフォルトの名無しさん
2014/06/10(火) 21:15:10.50ID:j8iOZPUpそれってコマンドライン引数で /sdl を指定しない場合に無効で、
上で言っているのは、プロジェクトを新規作成するとデフォルトで /sdl を使うよ、
ってことだよね
0239デフォルトの名無しさん
2014/06/10(火) 21:18:28.24ID:9/0SJ4nxまずお前はインストール直後のWindowsにVisual C++をインストールして
挙動を確認したんだろうな?
0240デフォルトの名無しさん
2014/06/10(火) 21:22:55.70ID:p3jSqJScこれだから Visual Studio の話はしたくなくなるんだよなあ。
0241デフォルトの名無しさん
2014/06/10(火) 21:24:10.35ID:hzZkSFog0242デフォルトの名無しさん
2014/06/10(火) 21:24:53.17ID:QN3sJURpホゲコピペでスレを荒らした基地外は死ねよ
0243デフォルトの名無しさん
2014/06/10(火) 21:29:33.41ID:9ji/vOoAプロジェクトプロパティの sdl が空白になってると言うこと
もし、ほんとに入っているなら、プロパティマネージャでどのプロパティシートで設定されてるのか調べてくれ
>>239
お前はうざいわ、アホは黙っとけ
0244デフォルトの名無しさん
2014/06/10(火) 21:37:05.66ID:Bd3Y4vSI>プロジェクトプロパティの sdl が空白になってると言うこと
なあ、>>237のリンク先のどこにそんなことご書いてあるんだよ
0245デフォルトの名無しさん
2014/06/10(火) 21:46:17.32ID:9ji/vOoAなに勘違いしてるんだよ、
プロジェクトプロパティの sdl が空白 ⇒ コマンドラインで指定されない ⇒ 既定値を適用 ⇒ sdl オフ
つーことで、その既定値の説明だよ
VS 使ってりゃわかると思うんだが...
で、プロジェクトプロパティ見たのかよ?
0246デフォルトの名無しさん
2014/06/10(火) 21:52:06.82ID:Bd3Y4vSI>プロジェクトプロパティの sdl が空白
んなこた どうでもいい
普通にVisual Studioをインストールして新規プロジェクト作ったら
そこが有効になるかどうかの話だ
0247デフォルトの名無しさん
2014/06/10(火) 21:56:59.89ID:Bd3Y4vSIじゃあ>>237のリンク先のどこにそんなことが書いてあるのか教えてもらおうか
0248デフォルトの名無しさん
2014/06/10(火) 22:12:35.01ID:9ji/vOoAお前じゃま、消えろ
0249デフォルトの名無しさん
2014/06/10(火) 22:25:18.08ID:Bd3Y4vSIB「再現方法は?」
A「再現方法はX」
B「俺の環境ではならない」
A「再現方法Xをためしたの?」
B「うざい。既定がそうだと>>237のリンク先にある」
A「そんなこと書いてないようだが」
B「お前、邪魔」
ちょっと頭がおかしいのではないか
0250デフォルトの名無しさん
2014/06/10(火) 22:30:06.52ID:9ji/vOoA0251デフォルトの名無しさん
2014/06/10(火) 22:32:52.95ID:j8iOZPUpプロパティシートじゃないよ
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\VCWizards\AppWiz\Generic\Application\html\1041\default.htm
にて、SDL_CHECK が true だからだよ
0252デフォルトの名無しさん
2014/06/10(火) 22:43:47.10ID:9ji/vOoAうぉ、まじか
確かに今やると、プロパティが設定されるな、こりゃすまん
うーむ、再現テストしたときになんか勘違いしてたんだろうか...
0253デフォルトの名無しさん
2014/06/10(火) 22:50:07.87ID:oUVoGw0Z0254デフォルトの名無しさん
2014/06/10(火) 22:55:48.56ID:IE+cVxVO0255デフォルトの名無しさん
2014/06/10(火) 23:06:32.70ID:j8iOZPUpいくつもの知見が得られて、うれしい限りだね
同じ場所の AppSettings.htm を加工して遊んでみたけど、楽しいね
0256デフォルトの名無しさん
2014/06/11(水) 01:06:26.46ID:qYhdrv3k関数をtypedefしたほうがポインタであることが明確になるうえ宣言にも使えるようになるんだぜ。
なんでポインタでtypedefする習慣が広まってるのか、正直わからん。
0257デフォルトの名無しさん
2014/06/11(水) 01:46:58.82ID:A/uACQuu関数ポインタがポインタであることを意識する必要があるケースが思いつかないんだけど・・・
0258デフォルトの名無しさん
2014/06/11(水) 03:33:29.38ID:o2OaGDZj型の宣言時にはいやでも意識せざるを得ないか?
0259デフォルトの名無しさん
2014/06/11(水) 05:20:11.33ID:mGD11vxw構造体のポインタ使う時に
LPSTRUCT struct;とするか
STRUCT *struct;とするか
って感じか
0260デフォルトの名無しさん
2014/06/11(水) 07:37:16.84ID:iUw7Woe6typedefしないとできない宣言って何?
0261デフォルトの名無しさん
2014/06/11(水) 07:48:08.78ID:v5dqjqwptypedef int * kuso;
operator kuso(){…}
0262デフォルトの名無しさん
2014/06/11(水) 08:32:39.33ID:iUw7Woe6あぁ、演算子ね。
C++は構文が糞だからダメだわ。
0263デフォルトの名無しさん
2014/06/11(水) 08:47:03.64ID:XOnpMMdi関数宣言にその型が使えるってことだろう。
関数ポインタをtypedefしたらそうはいかない。
0264デフォルトの名無しさん
2014/06/11(水) 08:52:05.95ID:rn+luTK4typedef a (*Hoge)(b)だからa(*)(b)という考え方と
普通にa(b)*という考え方があるじゃないですか?
0265デフォルトの名無しさん
2014/06/11(水) 08:58:23.87ID:iUw7Woe6やっと>>256の意味がわかったわ。
関数をtypedefするか関数ポインタをtypedefするか、
どちらが便利?って話ね。
0266デフォルトの名無しさん
2014/06/11(水) 09:03:01.74ID:rn+luTK4あるいは
void(int) f;
あるいは
typedef void Hoge(int);
Hoge f;
といったところか。
0267デフォルトの名無しさん
2014/06/11(水) 12:25:26.99ID:L9Q5vk2dIntelliSense: 不完全クラス型へのポインターは使用できません
が解決出来ないのですが、どのあたりをチェックすれば良いでしょうか?
0268デフォルトの名無しさん
2014/06/11(水) 14:52:23.76ID:+13mKJ0ZD かと思たゎ
0269デフォルトの名無しさん
2014/06/11(水) 19:40:34.56ID:43m3ttQ+class A;
void f()
{
A* a;
a-> // ここで?
}
上みたい宣言のみが見える状況だと思うので、
#include "A.h" とかで、class A を取り込まれたし
0270デフォルトの名無しさん
2014/06/11(水) 20:40:20.88ID:L9Q5vk2dアドバイス有難うございました。
まさにそんな状況でした。原因はヘッダーファイルが沢山あって、
混乱して分けわからない状態になってしまっていました。
ヘッダーを整理して無事解決しました。
0271デフォルトの名無しさん
2014/06/12(木) 05:16:56.78ID:FoO1aWuIスタックの説明の所で
「スキップ」という用語が出てきました。
スタックにはプッシュとポップしかないと思っていたのですが、
「スキップ」とは何でしょうか?
0272デフォルトの名無しさん
2014/06/12(木) 05:26:21.08ID:Abgsr/RV競技プログラミングスレだから暇つぶしに解いてってくれ
0273デフォルトの名無しさん
2014/06/12(木) 05:26:26.02ID:oum6q6Py0274デフォルトの名無しさん
2014/06/12(木) 05:45:06.16ID:CisCdg7y__stdcall
0275デフォルトの名無しさん
2014/06/12(木) 08:02:45.99ID:KtD30A8lCだと超上級者以外無理ってどういう根拠?
0276デフォルトの名無しさん
2014/06/12(木) 08:24:48.38ID:pAWvn52T0277デフォルトの名無しさん
2014/06/12(木) 18:20:17.40ID:HVN4f7gNskip
0278デフォルトの名無しさん
2014/06/12(木) 19:24:27.99ID:SK659vFthttp://codepad.org/F7k3yl9O
メンバ関数をポインタで呼び出す際に VC++ の thiscall 規約では
通常は ECX レジスタが this ポインタを指すようにするそうですが
メンバ関数が可変長引数関数だった場合は
引数を全部スタックに積んだ後に this を push するとのことで
最初の引数のひとつ前に this があることを期待したコードを書いてみました
このプログラムを実行すると実体呼び出しかポインタ経由の呼び出しかに関わらず
self と this が常に等しいと思ったのですが
直接インスタンスに対して x.vfunc(9, 80) を呼び出した場合と
ポインタを経由して x.pvfunc((short)&x, 9, 80) を呼び出した場合で
self->r の値と this->r の値が入れ替わっていますが
なぜでしょうか?
コンパイラは VC++ と dmc で試しましたが結果はアドレスが違うだけでほぼ同じでした
0279デフォルトの名無しさん
2014/06/12(木) 19:26:58.04ID:SK659vFt常に self == this であることは確認出来ています
0280デフォルトの名無しさん
2014/06/12(木) 20:31:25.81ID:b96PYMnsF7k3yl9O.cpp
class TestA size(12):
+---
0 | {vfptr}
4 | r
| <alignment member> (size=2)
8 | pvfunc
+---
0281デフォルトの名無しさん
2014/06/13(金) 13:24:12.57ID:9gHonLieこのコードはなぜnewしてるのにdeleteなくても大丈夫なんですか?
0282デフォルトの名無しさん
2014/06/13(金) 13:32:13.89ID:LHr3GtlM0283デフォルトの名無しさん
2014/06/13(金) 13:33:06.19ID:9gHonLieこのコードもdeleteしてないんですけどなぜですか?
0284デフォルトの名無しさん
2014/06/13(金) 13:39:18.05ID:VGNKb44ddeleteしてるやん、と思ったら半分してないな
忘れてるだけじゃないかな
0285デフォルトの名無しさん
2014/06/13(金) 13:55:05.94ID:MfoWKRoy偶然2回連続でみたコードがdeleteしてないのは自分でも驚きですね。
a(new b)の初期化ではデストラクターにbのdeleteを書かないといけませんね。
呼び出し側でdeleteする規約ならa(new b)はメモリーリークを起こしますね。
この両方に対応するためにshared pointerを使えばデストラクターと
呼び出し側両方でポインターの破棄をできるから便利ですよね。
0286デフォルトの名無しさん
2014/06/13(金) 14:02:57.65ID:VGNKb44d0287デフォルトの名無しさん
2014/06/13(金) 14:09:46.48ID:MfoWKRoy0288デフォルトの名無しさん
2014/06/13(金) 14:13:47.38ID:VGNKb44dどちらかひとつに絞って欲しいです。お願いします。
0289デフォルトの名無しさん
2014/06/13(金) 14:18:04.87ID:MfoWKRoyあーたには心底見損ないました。
そうやってまた逃げるんでしょう?
卑怯ですね。
0290デフォルトの名無しさん
2014/06/13(金) 14:19:45.65ID:Q9n/vajD0291デフォルトの名無しさん
2014/06/13(金) 14:21:09.49ID:r0doLLGN0292デフォルトの名無しさん
2014/06/13(金) 14:31:21.85ID:VGNKb44d0293デフォルトの名無しさん
2014/06/13(金) 19:55:15.57ID:SNY1qJMslinux民だから試せないけど、ポインタをshortにキャストするのってありなん?
普通に考えたらアドレスが欠けて意味を成さなくなりそうなんだけど
あと、この手の質問をするならもうちょっと非本質的なコードを減らす努力をすべきでは
Resultクラスとかfprintfしてる内容もほとんどは質問と関係ないよね
0294デフォルトの名無しさん
2014/06/13(金) 23:14:43.28ID:1Fs3q4kSint _tmain(int argc, _TCHAR* argv[])
{
int a[4][4] = { 0 };
a[3][50] = 4;
printf("%d\n", a[3][50]);
return 0;
}
これ普通に実行出来てしまうのですが問題ないんですか?
0295デフォルトの名無しさん
2014/06/13(金) 23:18:12.77ID:cshscv7fどんな問題があると?
0296デフォルトの名無しさん
2014/06/13(金) 23:22:57.79ID:1Fs3q4kSエラーが出るのかと思ったんですが・・・
0297デフォルトの名無しさん
2014/06/13(金) 23:26:30.17ID:mc5MXeac0298デフォルトの名無しさん
2014/06/13(金) 23:29:05.62ID:9kILjAOymainから呼ばれてるような関数でそれやったら
何が起きるかわからんが、
mainでやっても影響出る前に終了するだけ
0299デフォルトの名無しさん
2014/06/14(土) 00:07:41.91ID:+uvAFgvW0300デフォルトの名無しさん
2014/06/14(土) 00:27:03.95ID:XFunXvJdhttps://www.google.co.jp/search?q=%E3%83%9E%E3%83%AB%E3%83%81%E3%82%BB%E3%83%BC%E3%83%95
0301デフォルトの名無しさん
2014/06/14(土) 03:28:48.50ID:Zjdqnd2S>問題ないんですか?
問題有ります。大きな問題です。
この問題が許容できない人はCを使ってはいけません。
0302デフォルトの名無しさん
2014/06/14(土) 08:07:26.00ID:KH7MKyGiCの理念は安全性より速度だから
試してないけど、デバッグモードとかで実行すればエラーになるかもしれない
0303デフォルトの名無しさん
2014/06/14(土) 10:29:18.54ID:hFdfnZbt配列の範囲外のアクセスは、未定義動作
問題(が何かは知らんが)が出るかどうかも定義されてない
0304デフォルトの名無しさん
2014/06/14(土) 10:32:09.81ID:h7hlzhCn0305デフォルトの名無しさん
2014/06/14(土) 12:01:26.53ID:oiD1D34hみたいな強烈な最適化が掛かっているとかw
0306デフォルトの名無しさん
2014/06/14(土) 13:35:03.86ID:RWrtwXRCそこまでやれるなら警告ぐらいは出してるだろ
0307デフォルトの名無しさん
2014/06/14(土) 14:07:39.00ID:BuWNtkHZ最適化される場合でも警告無い方が多いだろ
0308デフォルトの名無しさん
2014/06/14(土) 14:13:36.81ID:78zIkSm9そうか?
そもそもC/C++の文法では不可能なんじゃね
0309デフォルトの名無しさん
2014/06/14(土) 14:36:52.04ID:RWrtwXRC>>305 まで最適化されるなら範囲外と言うことも当然わかってるので、警告を出すのは容易でしょ
>>308
文法で禁止してるならともかく、無理ってことはない
0310デフォルトの名無しさん
2014/06/14(土) 14:38:45.92ID:BuWNtkHZ当然わかってても警告出ない方が多いだろ
0311デフォルトの名無しさん
2014/06/14(土) 16:00:33.93ID:kVfPiGuj0312デフォルトの名無しさん
2014/06/14(土) 16:03:45.01ID:1OMxBOxU0313デフォルトの名無しさん
2014/06/14(土) 16:09:07.45ID:MXfphaqR0314デフォルトの名無しさん
2014/06/14(土) 19:35:20.06ID:/tZfzh+Bint i,j,a[4][4];
for(i=0;i<4;i++)
for(j=0;j<4;j++)
a[i][j]=0;
のコードが、
for(i=0;i<4;i++)
for(j=0;j<4;j++){
if( i<0 || 4<=i ) goto FAR_ABOUT;
if( j<0 || 4<=i ) goto FAR_ABOUT;
a[i][j]=0;
}
って書くことだから、スピード遅くなるし、無駄だろ?
0315デフォルトの名無しさん
2014/06/14(土) 19:46:10.28ID:1ZX8MtkeC/C++は配列アクセスにもポインターを使うんだから
それじゃ済まないだろ。たとえば↓
void f(char* p) {
p++;
p[100]=0;
}
int main() {
struct a{} i;
f(rernterpret_cast<char*>(&i)+8);
}
どんなポインターを渡されても元のオブジェクトが何であって
そのどこを指しているか判断しなきゃいけないので
相当に無駄な処理が要るはず。
0316デフォルトの名無しさん
2014/06/14(土) 19:51:58.01ID:E8x77aDB0317デフォルトの名無しさん
2014/06/14(土) 20:00:09.47ID:wDOSJVHJ分ける奴は死んでいいと思うよ
0318デフォルトの名無しさん
2014/06/14(土) 20:10:45.52ID:7PfMrc3+見ると惰性でしかモノが書けないのかと悲しくなる。
お前らが語ってるのはC++だけでCについては、これっぽっちも語ってない。
0319デフォルトの名無しさん
2014/06/14(土) 20:28:41.54ID:CZsKRPnE0320デフォルトの名無しさん
2014/06/14(土) 20:53:47.53ID:oFvG3ION世の中でスルーされてる程にどうでもいい言語。
語ることもないけどせめてスレが無くてはかわいそうだからと
一緒にしてもらってるんだろ?
0321デフォルトの名無しさん
2014/06/14(土) 21:24:35.32ID:X8pvetDBググってみた結果、MFC DLLかATL DLL(COM)の2つまでしぼりましたがC++のライブラリやクラスが使いたい場合はCOMを作るしか選択肢がない?
DLLでもCでなくC++でクラスを呼び出したいときはどうすればいいんでしょうか
0322デフォルトの名無しさん
2014/06/14(土) 21:37:21.76ID:dp0V8y280323デフォルトの名無しさん
2014/06/15(日) 00:34:47.42ID:Keb4eqpb.NETだから遅いって思い込みがありましたけどこれならC++→C#ならC++/CLI使わないのは非効率的ですね
0324デフォルトの名無しさん
2014/06/15(日) 00:55:41.33ID:AwU5LKmk0325デフォルトの名無しさん
2014/06/15(日) 01:48:12.89ID:yh/Aef2s0326デフォルトの名無しさん
2014/06/15(日) 02:02:30.73ID:gt68Xbbw配列に範囲チェックを持たせたのがvectorのatかと
とりあえずC++を使うなら配列はほとんど使い道ないな
初心者のうちは配列も使いまくって色々勉強するべきだと思うけど
0327デフォルトの名無しさん
2014/06/15(日) 02:42:12.34ID:MfuA3g7WMFCならIsKindOfだが、同じクラスから派生させれば簡単に見分けられる。
0328デフォルトの名無しさん
2014/06/15(日) 06:35:29.56ID:szsJKsbtひたすらエラーチェックと解放を書きまくるだけの
脳みそ筋肉なお仕事です
0329デフォルトの名無しさん
2014/06/15(日) 10:31:53.98ID:qCbDK5l60330デフォルトの名無しさん
2014/06/15(日) 11:27:07.62ID:Yby/fsOmResult は class ではなくて union です
0331デフォルトの名無しさん
2014/06/15(日) 17:39:14.85ID:v8abNqS80332デフォルトの名無しさん
2014/06/16(月) 10:32:46.97ID:9KjdQk06この記事の下の方の人の言っていることは本当ですか?
shared_ptrを使って管理してほしいときはコンストラクターを隠した方が
正解ですか?隠さない方がいいですか?
0333デフォルトの名無しさん
2014/06/16(月) 11:58:11.20ID:5KvrIf5s> 下の方の人の言っていること
具体的にはどの発言のこと?
0334デフォルトの名無しさん
2014/06/16(月) 12:06:47.50ID:9KjdQk060335デフォルトの名無しさん
2014/06/16(月) 12:10:22.73ID:5KvrIf5sちゃんとインナークラスで書いてる?
クラス内部なら、private コンストラクタだろうが呼べるよ
0336デフォルトの名無しさん
2014/06/16(月) 12:18:19.89ID:9KjdQk06オーバーヘッドはmake_shared使う利点を覆い隠すほどではないというのなら
使ってもいいですよ。
なお後半の質問にもお答えください。
0337デフォルトの名無しさん
2014/06/16(月) 12:55:14.62ID:hyWduaRcmake_sharedの中でnewするのに
インナーが関係すんの?
0338デフォルトの名無しさん
2014/06/16(月) 13:16:51.72ID:9KjdQk06本に書いてありました。
0339デフォルトの名無しさん
2014/06/16(月) 13:18:41.88ID:5KvrIf5s後半は、関数内クラスの話だから、インナーとは無関係だよ。
0340デフォルトの名無しさん
2014/06/16(月) 13:20:27.97ID:5KvrIf5sインナークラスは、factoryで、元のクラスの派生ではない。
関数内クラスは、派生関係であり、そちらはpublicなのでmake_sharedの文脈でnewできる。
0341デフォルトの名無しさん
2014/06/16(月) 22:04:23.88ID:pS1FfmOM他からnewできないような特殊な状況なんだから
return shared_ptr<baka>{new baka{}};
でいいじゃないか
0342デフォルトの名無しさん
2014/06/17(火) 22:31:31.72ID:b7hbDm+Yint x[2];
x[0] = 0x00010203;
x[1] = 0x04050607;
char* p = reinterpret_cast<char*>(x);
for(int i = 0; i < 8; i++){
cout << (int)(*p) << endl;
p++;
}
の結果が
3 2 1 0 7 6 5 4となるのはなぜですか?教えてください
0343デフォルトの名無しさん
2014/06/17(火) 22:38:14.46ID:JQ3yohPe使っているCPUが、リトルエンディアンといって、
下位の桁(ここでは03とか07)を若いアドレスに入れる
という方式を採用しているためです。
0344デフォルトの名無しさん
2014/06/17(火) 22:39:56.45ID:l1usV0Mc0345デフォルトの名無しさん
2014/06/17(火) 22:59:14.65ID:b7hbDm+Y0346デフォルトの名無しさん
2014/06/19(木) 03:27:54.23ID:bbnXoqqs0347デフォルトの名無しさん
2014/06/19(木) 06:44:45.95ID:BRW9+QBSまあ小人国のころはまだ風刺が冴え渡っていたという話だが、書いているうちに狂ってきたのか、馬の国はほとんどむちゃくちゃですね
ヒント:「ヤフー」=ヘブライ語で「ユダヤ人」、この語は「ヘブライ語定冠詞の不規則変化」における有名単語、ヘブライ語を習うと最初の方でかならずやる
0348デフォルトの名無しさん
2014/06/22(日) 18:11:55.90ID:waKqYOf3コンソールを出さないようにする方法はありますか?有れば教えてくれ。
0349デフォルトの名無しさん
2014/06/22(日) 18:13:57.61ID:mgZTcG6H0350デフォルトの名無しさん
2014/06/22(日) 18:18:59.30ID:mgZTcG6H0351デフォルトの名無しさん
2014/06/22(日) 18:20:36.75ID:mgZTcG6Hリンクオプションで /subsystem:windows
だったかな
0352デフォルトの名無しさん
2014/06/22(日) 18:27:06.55ID:b06vElF60353デフォルトの名無しさん
2014/06/22(日) 18:32:39.68ID:ed71yomS0354デフォルトの名無しさん
2014/06/22(日) 18:34:39.18ID:waKqYOf3どうやっても
error LNK2019: 未解決の外部シンボル _WinMain@16 が関数 ___tmainCRTStartup で参照されました。
になってしまう。
0355デフォルトの名無しさん
2014/06/22(日) 18:43:13.97ID:D6bEseuP0356デフォルトの名無しさん
2014/06/22(日) 18:46:22.07ID:JOue68DD0357片山博文MZ悪魔崇拝 ◆T6xkBnTXz7B0
2014/06/22(日) 18:48:00.57ID:b06vElF6mainを呼び出すWinMain関数を作れ。
0358デフォルトの名無しさん
2014/06/22(日) 20:54:56.47ID:2ZGZNFaOもし、親プロセスが子プロセスの標準出力を取り込みたいのなら
http://support.microsoft.com/kb/190351/ja
で、コンソールウィンドウを生成しないと思う
0359デフォルトの名無しさん
2014/06/22(日) 21:14:37.62ID:NYb5iLI30360デフォルトの名無しさん
2014/06/22(日) 21:38:18.82ID:899IlM/P0361デフォルトの名無しさん
2014/06/22(日) 22:01:02.05ID:I8BwYMoX0362デフォルトの名無しさん
2014/06/22(日) 22:10:42.21ID:b06vElF6ご利用は計画的に
0363デフォルトの名無しさん
2014/06/22(日) 22:26:05.97ID:ECBMSpai実行例
va vb
-------------
1 1
10 10
16 16 みたいな感じです。
scanfを使うと改行してしまいうまくできないです。どーすればいいでしょうか。
0364デフォルトの名無しさん
2014/06/22(日) 22:32:13.30ID:l/vaCLkNmemcpyじゃあかんのか
0365デフォルトの名無しさん
2014/06/22(日) 22:59:06.47ID:LRekzGzBお前説明がとことんヘタだなw
0366デフォルトの名無しさん
2014/06/22(日) 23:06:35.45ID:sJMyqLKA0367デフォルトの名無しさん
2014/06/22(日) 23:09:25.87ID:ed71yomShttp://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12130914412
0368デフォルトの名無しさん
2014/06/22(日) 23:13:20.47ID:sJMyqLKAそういうことかw
なんで「go」って打ったんだろ?普通に「5」って打てばいいのに。
0369デフォルトの名無しさん
2014/06/22(日) 23:16:05.79ID:z/PGDlee> va vb
> ----------
> 2 2
> 5 5
> という感じです
うん
訳わからん。
0370デフォルトの名無しさん
2014/06/22(日) 23:35:57.78ID:Hd58Lxeq> 1 SPC(入力) 1 CRLF (出力)
> 10 SPC(入力) 10 CRLF (出力)
> 16 SPC(入力) 16 CRLF (出力)
これは難度高いような...
非標準 windows 系の kbhit に相当する
1文字タイプする毎に確実にやってくる(バッファリングしない)入力って標準であったっけ?
0371デフォルトの名無しさん
2014/06/22(日) 23:38:15.59ID:ECBMSpai0372デフォルトの名無しさん
2014/06/22(日) 23:39:31.75ID:WX4sXzY8kbhitが使えない環境を見たことがない
0373デフォルトの名無しさん
2014/06/22(日) 23:39:39.82ID:ECBMSpai0374デフォルトの名無しさん
2014/06/22(日) 23:43:02.86ID:ECBMSpai0375デフォルトの名無しさん
2014/06/22(日) 23:44:53.72ID:Hd58Lxeq最後の表示の部分は
printf("va vb\n----------\n");
for (i=0; i<n; i++) printf("%d %d\n", va[i], vb[i]);
でよさそうなもんだが
本当にコンソールから、配列の値(と個数?)の入力を要求しているのだろうか?
0376デフォルトの名無しさん
2014/06/22(日) 23:46:43.49ID:l/vaCLkN0377デフォルトの名無しさん
2014/06/23(月) 00:08:28.19ID:1CSrg3US0378デフォルトの名無しさん
2014/06/23(月) 00:09:56.81ID:1CSrg3US0379デフォルトの名無しさん
2014/06/23(月) 00:29:41.73ID:A9socaCf0380デフォルトの名無しさん
2014/06/23(月) 00:34:14.21ID:1CSrg3US0381デフォルトの名無しさん
2014/06/23(月) 00:46:24.75ID:q7neCfh7kbhit() は linux で使えるのか?
0383デフォルトの名無しさん
2014/06/23(月) 06:55:34.02ID:1CSrg3US0384デフォルトの名無しさん
2014/06/23(月) 10:58:30.47ID:CA6zRXXy0385デフォルトの名無しさん
2014/06/23(月) 11:21:16.55ID:v1rv9V0E0386デフォルトの名無しさん
2014/06/23(月) 11:25:47.89ID:BsRgtYHO質問者がテキトーで意味不明でもいいって言ってるんだから
それなりの質のものを与えればいいんだよ
0387デフォルトの名無しさん
2014/06/23(月) 11:30:32.35ID:QeZRRlBU0388デフォルトの名無しさん
2014/06/23(月) 11:50:52.15ID:iGeNWm0Jconstのコンストラクターををpublicにしてと非constのをprivateにして作ってみたけどエラーでした。
ファクトリー関数を作るという考えに達しましたが、生オブジェクトが作れず柔軟性に欠けるという結論に達しました。
0389デフォルトの名無しさん
2014/06/23(月) 11:59:07.07ID:v1rv9V0Ewhy?
0390デフォルトの名無しさん
2014/06/23(月) 12:00:29.07ID:IfFXpd8g0391デフォルトの名無しさん
2014/06/23(月) 12:09:59.87ID:iGeNWm0Jコンストラクターをプライベートにして
const a * =a::create();あるいは
const shared_ptr<a>=a::create();
のようにするわけでしょ。
0392デフォルトの名無しさん
2014/06/23(月) 12:11:49.51ID:v1rv9V0Eコピー禁止にしたら
const unko &&u = unko_fucktory();
みたいに束縛するしかなくなるかなと思った
0393デフォルトの名無しさん
2014/06/23(月) 12:23:24.28ID:iGeNWm0J0394デフォルトの名無しさん
2014/06/23(月) 12:24:13.65ID:QJy7NoXE0395デフォルトの名無しさん
2014/06/23(月) 12:29:48.42ID:iGeNWm0J基底クラスががconstの時にのみ代入できる派生クラスをつくりたいんですけど。
0396デフォルトの名無しさん
2014/06/23(月) 12:32:23.87ID:v1rv9V0Eこんな感じであかんの?
http://ideone.com/yosr6c
0397デフォルトの名無しさん
2014/06/23(月) 12:35:02.23ID:L6qoulCe0398デフォルトの名無しさん
2014/06/23(月) 12:37:31.43ID:iGeNWm0Jありがとうございます。
参考になりました。
0399デフォルトの名無しさん
2014/06/23(月) 14:28:02.48ID:qkRWmbbn0400デフォルトの名無しさん
2014/06/23(月) 17:18:09.44ID:IuTQaNwU↓
>できません
↓
>ありがとうございます。
>参考になりました。
潔い奴だな
0401デフォルトの名無しさん
2014/06/23(月) 19:41:04.57ID:0A44UZinおう貴様、俺のコピペ騒動の顛末をよく知っているな‥あれは一生の不覚だ‥
http://hibari.2ch.net/test/read.cgi/tech/1289715349/320
http://hibari.2ch.net/test/read.cgi/tech/1289715349/331
http://cboard.cprogramming.com/c-programming/63166-kbhit-linux.html
0402デフォルトの名無しさん
2014/06/23(月) 19:51:24.00ID:hMj0GtJUvoid func(){ // これは正常
#ifdef _DEBUG
string PATH = "C:/temp/Debug/bin";
#else
string PATH = "C:/temp/Release/bin";
#endif
cout << PATH << endl;
}
を
#ifdef _DEBUG
#define PATH_DR Debug
#else
#define PATH_DR Release
#endif
void func()
{
string PATH = "C:/temp/"PATH_DR"/bin"; // ここエラー
cout << PATH << endl;
}
こんな風に置換できないでしょうか?
0403デフォルトの名無しさん
2014/06/23(月) 19:57:24.75ID:6uMGjEfXダブルクォーテーションの囲いを3つに分けて連続的に記述すれば
ひとつにつながる。 あとはわかるよな?
0404デフォルトの名無しさん
2014/06/23(月) 19:59:18.35ID:6uMGjEfX0405デフォルトの名無しさん
2014/06/23(月) 20:02:42.21ID:6uMGjEfX0406片山博文MZ悪魔崇拝 ◆T6xkBnTXz7B0
2014/06/23(月) 20:12:56.68ID:qZVVaTos「プリプロセッサ 文字列化」で検索
0407デフォルトの名無しさん
2014/06/23(月) 20:20:46.80ID:dH9hXQor0408デフォルトの名無しさん
2014/06/23(月) 20:21:35.91ID:QkN4ZNHLttp://ideone.com/TPzMvf
"C:/temp/" "PATH_DR" "/bin" は連結するけど PATH_DRは展開されず
プリプロセッサ引数の文字列化
#define TOSTR(a) #a
も、欲しいのが2段展開になるのはダメっぽ
0409デフォルトの名無しさん
2014/06/23(月) 20:25:14.15ID:6uMGjEfX#define PATH_DR "Debug"
#else
#define PATH_DR "Release"
#endif
0410デフォルトの名無しさん
2014/06/23(月) 20:27:42.86ID:6uMGjEfX#ifdef _DEBUG
#define PATH PATH_(Debug)
#else
#define PATH PATH_(Release)
#endif
0411デフォルトの名無しさん
2014/06/23(月) 20:29:10.60ID:EG1g92wvなあ、Windowsってのはファイルやフォルダーのパスを
/ でなく \ で区切るんだが、
どうしてオマエはそんなとんちんかんな糞コードにしてるんだ?
0412デフォルトの名無しさん
2014/06/23(月) 20:31:11.21ID:6uMGjEfX0413デフォルトの名無しさん
2014/06/23(月) 20:35:51.47ID:sWcUFpnwあほう
http://msdn.microsoft.com/en-us/library/aa365247.aspx
0414デフォルトの名無しさん
2014/06/23(月) 20:37:52.99ID:QkN4ZNHL#define PATH_DR Release
#define TOSTR(a) #a
#define EXPAND(a) TOSTR(a)
"C:/" EXPAND(PATH_DR) "/bin";
これで展開される。 マクロは奥深いね
0415デフォルトの名無しさん
2014/06/23(月) 20:43:39.90ID:6uMGjEfX0416デフォルトの名無しさん
2014/06/23(月) 20:44:41.54ID:n0ZUNL3tNetBeansのmacro expansionのプレビューがいいよ
0417デフォルトの名無しさん
2014/06/23(月) 20:49:19.58ID:hMj0GtJU403さん方式でうまく行きましたが、414さんに高度な方法を
教えていただきましたので、今回は、そっちを使わせていただきます。
0418デフォルトの名無しさん
2014/06/23(月) 21:01:19.47ID:EG1g92wv根拠も述べずに『あほう』とか
よっぽどストレスがたまってんだなオマエは
>The�path�to a specified file consists of one or morecomponents, separated by a special character (a backslash),
0419デフォルトの名無しさん
2014/06/23(月) 23:53:08.58ID:/7nzoUHh0420デフォルトの名無しさん
2014/06/23(月) 23:54:43.74ID:X5scUM3cようアホ
本題とはずれた所突いてどうするんだ
0421デフォルトの名無しさん
2014/06/24(火) 00:08:30.10ID:oDNeDxJ6#define PATH_DR ”Debug”
#else
#define PATH_DR ”Release”
#endif
0422デフォルトの名無しさん
2014/06/24(火) 01:56:45.26ID:6gxdI5taあほうと言ってもらえるだけありがたいと思え。
言われなきゃ、お前は自分があほうという事を自覚できないままだったぞ。
0423デフォルトの名無しさん
2014/06/24(火) 19:25:53.35ID:agNpfg/I0424デフォルトの名無しさん
2014/06/24(火) 20:02:17.76ID:6gxdI5ta0425デフォルトの名無しさん
2014/06/24(火) 22:28:04.40ID:zV13MlTP0426デフォルトの名無しさん
2014/06/25(水) 07:28:33.56ID:RKaVXrZjclass C {
public:
int value;
bool operator==(const C& c) { return c.value == value; }
friend bool operator==(const C& c1, const C& c2) { return c1.value != c2.value; }
};
このような場合、Cのインスタンスc1, c2を c1 == c2 と比較した場合、メンバ関数のoperator==が呼ばれるみたいなんです。
この優先順位って規格等で決まっているのでしょうか。
0427デフォルトの名無しさん
2014/06/25(水) 07:37:24.16ID:zdDoEXg+0428デフォルトの名無しさん
2014/06/25(水) 10:12:36.20ID:51nve3hM何をしでかすか判らないのが人間
0429デフォルトの名無しさん
2014/06/26(木) 00:05:04.15ID:ovR77aW7template<size_t... indice>
struct index_tuple{ };
template <size_t first, size_t last, typename result = index_tuple<>, bool flag = (first >= last)>
struct index_range
{ typedef result type; };
template <size_t first, size_t last, size_t... indice>
struct index_range<first, last, index_tuple<indice...>, false> :
index_range<first + 1, last, index_tuple<indice..., first>> { };
template <size_t N>
struct dummy {
};
template <size_t N>
auto test(const dummy<N>& ) ->typename index_range<1, N+1>::type
{
return typename index_range<1, N+1>::type{};
}
ここで、
test(dummy<0>{});
とすると、
fatal error C1001: コンパイラで内部エラーが発生しました。
(コンパイラ ファイル 'msc1.cpp'、行 1325)
この問題を回避するには、上記の場所付近のプログラムを単純化するか変更してください。
と出てしまいます。
0430デフォルトの名無しさん
2014/06/26(木) 01:09:19.49ID:ipx8s2Bdっていうのはあるね
あと、いらんヘッダーファイル入れるなとか、
まるごと引っ越せとか、
ローカルフォルダに置けとか
0431デフォルトの名無しさん
2014/06/26(木) 05:21:50.40ID:j1UWc2h01325行ってどの辺りだよ?
0432デフォルトの名無しさん
2014/06/26(木) 07:08:34.51ID:ovR77aW7すいません。 msc1.cpp ってのはプロジェクト内を見渡しても存在しないし、全然身に覚えのないファイルなんです。
>>430
とりあえずいろいろやってみます。
上の test は1変数だけど、2変数関数にするとエラーにならなくて、もうわけわか。
0433デフォルトの名無しさん
2014/06/26(木) 07:37:23.23ID:u2uRfkpuコンパイラ ファイルだよソースファイルじゃないよ
0434デフォルトの名無しさん
2014/06/26(木) 11:00:47.58ID:qSntLVVKまあうまく行ったとしてエラーメッセージが改善されるだけだろうけどw
ダメならそのままMSにバグレポ出すべき
0435デフォルトの名無しさん
2014/06/26(木) 12:35:56.34ID:j1UWc2h00436429
2014/06/26(木) 20:06:44.11ID:ovR77aW7>>433-435
レスどうもありがと
抜本的な解決方法じゃないけどいろいろ弄って見つけた
template <size_t N>
auto test(const dummy<N>& ) ->typename index_range<1, N+1>::type
{
return typename index_range<1, N+1>::type{};
}
に対して、意味のないデフォルト引数をくっつけて形式上2変数にしてみた。
template <size_t N, size_t D = 1>
auto test(const dummy<N>& , dummy<D> = dummy<D>{}) ->typename index_range<1, N+1>::type
{
return typename index_range<D, N+1>::type{};
}
これでC1001エラーが消えました。
関数の引数だけじゃダメでテンプレート引数も2つにしなきゃダメだった。
バグレポについては考えてみます。
0437デフォルトの名無しさん
2014/06/26(木) 20:13:37.50ID:YPGoBzAC0438デフォルトの名無しさん
2014/06/26(木) 20:52:22.88ID:u2uRfkpu0439デフォルトの名無しさん
2014/06/26(木) 23:09:30.90ID:MiUhOFNmどうして人を陥れるようなことを教えるんだ?
0440デフォルトの名無しさん
2014/06/26(木) 23:15:36.79ID:aYCrZVlu俺も同じバージョンでコンパイル通った
0441デフォルトの名無しさん
2014/06/27(金) 01:19:10.11ID:mUWEtc+xなんでこうしないといけないんだ?
return typename index_range<D, N+1>::type{}; で->は不要だろ
0442デフォルトの名無しさん
2014/06/27(金) 06:51:44.14ID:aC5lLxyAC++14で不要になるんだっけ?
>>439
ULじゃなくてUだってこと?
0443デフォルトの名無しさん
2014/06/27(金) 08:17:29.10ID:ey7kK0Y30444デフォルトの名無しさん
2014/06/27(金) 10:04:43.86ID:qmZNQqL1関数名やクラス名でググるとたいていトップにMSDNのリファレンス?が出てきますが、これとは別のものですか?
0445デフォルトの名無しさん
2014/06/27(金) 10:22:34.34ID:aqfOSeMl0446デフォルトの名無しさん
2014/06/27(金) 15:36:10.28ID:4gi1qeUbWin32SDK→PlatformSDK→Windows Kitと名称が変わっている。
世の中にはカビの生えた情報を垂れ流しっぱなしにするゴミが多くて困ったもんだ。
そういううんこページで勉強してもうんこにしかなれないよ。
MSDN(英語版に限る)のリファレンスを見ればよい。
日本語版はウソが書いてあるから信用しないように。
0447デフォルトの名無しさん
2014/06/27(金) 15:49:57.79ID:6IjfwyP8vc++2.0 に付いてきたな
4.0以降で見かけた事は無い
0448デフォルトの名無しさん
2014/06/27(金) 18:09:44.49ID:rMF85+sdMicrosoft SDK
Windows SDK
.NET Framework SDK
みたいのも存在していたような
0449444
2014/06/27(金) 18:51:45.92ID:wnZkgc0Uありがとございました。
0450デフォルトの名無しさん
2014/06/27(金) 21:46:52.79ID:QrYLfw5T逆に言えば、オブラートでつつんでつつんでここまでやんねーと理解できんっちゅー
話でもあるのでは
0451444
2014/06/27(金) 23:44:36.99ID:qmZNQqL1PlaySound関数を使うためにはWinmm.lib(もしくはwinmm.lib? 日本語のMSDNだと小文字だった)をリンクする必要があるようなのですが、
System32フォルダ内に(どころかHDD内のどこにも)Winmm.libが見つからずうまくリンクができません。
代わりにSystem32フォルダ内にwinmm.dll、
C:\Program Files (x86)\Windows Kits\8.0\Lib\win8\um\x86にWinMM.libなどがありましたが、これらは使えますか?
0452デフォルトの名無しさん
2014/06/27(金) 23:54:55.89ID:SKslXSwB大文字小文字の区別ない。
0453デフォルトの名無しさん
2014/06/27(金) 23:55:40.45ID:JPj7GtDB再現可能な最低限のソース、及びそのコンパイル時に置けるエラーメッセージを貼りましょう
0454デフォルトの名無しさん
2014/06/28(土) 00:01:09.59ID:Teu5hNgs#pragmaでリンクしたらいい
0455デフォルトの名無しさん
2014/06/28(土) 00:06:05.44ID:Il1cbfhdそのwinmm.dllからwinmm.libを作って使う。
0457デフォルトの名無しさん
2014/06/28(土) 00:42:03.91ID:s3FxkxPvうんこページで勉強してもうんこにしかなれないと忠告したのに
自らうんこになろうとしてる奴
0458デフォルトの名無しさん
2014/06/28(土) 00:46:26.58ID:Teu5hNgs> 見つからずうまくリンクができません。
って既に問題把握してるからな
0459デフォルトの名無しさん
2014/06/28(土) 01:10:33.24ID:9xXyI8Cqあぁ、そうなのかぁ
それならそれでパスが通ってないだけだから
#pragmaでってのもおかしな話だな
インストールしたてならlogin/logout or reboot
そうでないなら再インストール
でいいのでは?
0460デフォルトの名無しさん
2014/06/28(土) 03:55:21.03ID:Teu5hNgs> C:\Program Files (x86)\Windows Kits\8.0\Lib\win8\um\x86にWinMM.libなどがありましたが
場所わかってんだからパス通ってなくても相対・絶対パスでいけるだろ
0461デフォルトの名無しさん
2014/06/28(土) 06:20:32.48ID:s3FxkxPvコマンドラインで開発したこと無いシロウトは黙ってろよ。
0462デフォルトの名無しさん
2014/06/28(土) 09:58:45.31ID:iYeFzTkZ0463デフォルトの名無しさん
2014/06/28(土) 10:23:09.77ID:Z5Hu91SB0464デフォルトの名無しさん
2014/06/28(土) 12:36:58.83ID:38QDfB8j0465デフォルトの名無しさん
2014/06/28(土) 12:59:08.34ID:pkB82Erlo DOS窓
0466デフォルトの名無しさん
2014/06/28(土) 13:06:31.43ID:38QDfB8jそれに比べてコマンドラインは・・・
0467デフォルトの名無しさん
2014/06/28(土) 13:07:37.39ID:38QDfB8j0468デフォルトの名無しさん
2014/06/28(土) 13:08:45.48ID:iagTbHZo0469デフォルトの名無しさん
2014/06/28(土) 13:10:23.08ID:38QDfB8j0470デフォルトの名無しさん
2014/06/28(土) 13:12:27.15ID:5aCDTjMV0471デフォルトの名無しさん
2014/06/28(土) 13:14:06.07ID:38QDfB8j0472デフォルトの名無しさん
2014/06/28(土) 13:58:56.07ID:s3FxkxPv0473デフォルトの名無しさん
2014/06/28(土) 14:47:45.55ID:Wnh+uZwR0474デフォルトの名無しさん
2014/06/28(土) 15:44:47.92ID:Teu5hNgs0475デフォルトの名無しさん
2014/06/28(土) 16:51:09.39ID:Rh3ZMg97IDEという事はdevenvだよね?
プロは半端ないな
0476デフォルトの名無しさん
2014/06/28(土) 19:13:40.25ID:QnAT7eoy二度と書き込まないでくれ。
0477デフォルトの名無しさん
2014/07/02(水) 16:43:39.23ID:84r9MisV0478デフォルトの名無しさん
2014/07/02(水) 18:31:15.25ID:8mlFMPKrラッパー作ってそっちだけ公開すりゃええんじゃなかろうか
0479デフォルトの名無しさん
2014/07/02(水) 21:49:31.30ID:84r9MisV天才
0480デフォルトの名無しさん
2014/07/02(水) 22:57:25.47ID:84r9MisVとあるクラスからしか生成出来ないようなクラスを作りたい場合はどうすればいいんですか
0481デフォルトの名無しさん
2014/07/02(水) 22:59:12.96ID:3z6KjbXy0482デフォルトの名無しさん
2014/07/02(水) 23:13:24.48ID:84r9MisV結局それってコンストラクタを公開しなくちゃいかんでね?
0483デフォルトの名無しさん
2014/07/02(水) 23:13:50.03ID:84r9MisVでした
0484デフォルトの名無しさん
2014/07/02(水) 23:15:09.87ID:3z6KjbXy0485デフォルトの名無しさん
2014/07/02(水) 23:16:33.65ID:NeSEEyGn0486デフォルトの名無しさん
2014/07/02(水) 23:20:38.52ID:84r9MisVあざす
0487デフォルトの名無しさん
2014/07/03(木) 14:41:25.22ID:BcO5jXIS文字列 str の中に、文字 c が含まれていなければ(複数ある場合は、最も先頭側とする)、
その添字を返し、含まれていなければ -1 を返す関数
int str_char(const char str[], int c) {¥* ...........*¥}
を作成せよ。
という演習問題があるのですが
なぜ文字の変数 c を探すのに関数には int で渡すのでしょうか?
0488デフォルトの名無しさん
2014/07/03(木) 14:46:31.20ID:DIfIjFzrint str_char(const char str[], char c) {¥* ...........*¥}
で造ってみてごらん
0489デフォルトの名無しさん
2014/07/03(木) 14:54:16.68ID:beuPiWz3でおk?
0490デフォルトの名無しさん
2014/07/03(木) 15:01:51.42ID:2p/tvR1Bそれで何がわかる?
0491デフォルトの名無しさん
2014/07/03(木) 15:23:56.95ID:gJnQQam8charでも構わないがintの方が自然だと思う
参考
http://stackoverflow.com/questions/2394011/why-does-strchr-take-an-int-for-the-char-to-be-found
0492デフォルトの名無しさん
2014/07/03(木) 15:36:02.89ID:BqnntUei0493デフォルトの名無しさん
2014/07/03(木) 15:55:37.22ID:6Wb/t2WZ0494デフォルトの名無しさん
2014/07/03(木) 15:55:42.73ID:M7lcZRBS要するに大昔の悪習が変えられなくてズルズル続いているということだな
0495デフォルトの名無しさん
2014/07/03(木) 16:02:53.28ID:UCpRmhSf「自然だと思う」根拠を参考ページに頼らずに一つ。
>>492
4バイトアラインであることと、charかintかとの関連は?
エンジニアたるもの思考停止に陥らずに自分で答えられなきゃダメだよ。
0496デフォルトの名無しさん
2014/07/03(木) 16:05:22.56ID:M7lcZRBS0497デフォルトの名無しさん
2014/07/03(木) 16:10:30.76ID:BqnntUeiハフマン辺りからか
0498デフォルトの名無しさん
2014/07/03(木) 16:11:33.95ID:BqnntUei0499デフォルトの名無しさん
2014/07/03(木) 16:15:09.29ID:BqnntUei対してchar型はおまいらの気づかない間に4バイトに自動変換されて
いるということだ。 movsbl みたいな命令を使ってな。
0500デフォルトの名無しさん
2014/07/03(木) 16:20:09.88ID:BqnntUei0501デフォルトの名無しさん
2014/07/03(木) 16:34:45.78ID:nGz5aJi/スタックにpush するときに4バイトに拡張されるyo。
0502デフォルトの名無しさん
2014/07/03(木) 16:54:33.11ID:EbPflSnNchar値はcharのまま渡される。
よってintの方が自然などと言うことはありえない。
intが大好きな労害ジジイが言い訳してるだけ
0503デフォルトの名無しさん
2014/07/03(木) 16:59:05.73ID:BqnntUei0504デフォルトの名無しさん
2014/07/03(木) 17:02:26.98ID:lZc14wWHstruct MyData{
const char name[5] = "Data";
int i;
};
としてビルドすると、
error C2536: 'MyData::MyData::name' : クラス、構造体、共用体のメンバーは、初期化できません。
となるのですが、どうしたらエラー出ないように出来ますか?
0505デフォルトの名無しさん
2014/07/03(木) 17:05:43.05ID:e/Bdb4Z+だろ。そのままだ。そこをなおせ。
0506デフォルトの名無しさん
2014/07/03(木) 17:09:31.55ID:EbPflSnNstruct MyData{
const char name[5];
int i;
};
----baka.cpp
#include "baka.h"
const char MyData::name[] = "Data";
これでOK
0507デフォルトの名無しさん
2014/07/03(木) 17:17:08.47ID:BqnntUeiおまえの頭の中ではそうなんだろう
おまえのアタマの中のオマエワールドではな
0508デフォルトの名無しさん
2014/07/03(木) 17:29:30.62ID:lZc14wWHIntelliSense: 静的でないデータ メンバーはそのクラスの外側で定義できません
error C2761: 'const char MyData::name[5]' : メンバー関数の再宣言はできません。
error C1903: 直前のエラーを修復できません。コンパイルを中止します。
エラー増えました。
0509デフォルトの名無しさん
2014/07/03(木) 17:30:32.36ID:RzBLIhMyコンストラクタでやれ
0510デフォルトの名無しさん
2014/07/03(木) 17:33:56.67ID:e/Bdb4Z+0511デフォルトの名無しさん
2014/07/03(木) 17:40:26.58ID:BqnntUeiさすがオマエワールドのソースw
エラーチェックもしていないのかよw
0512デフォルトの名無しさん
2014/07/03(木) 17:40:28.34ID:0TQE6pDF0513デフォルトの名無しさん
2014/07/03(木) 17:40:28.25ID:e/Bdb4Z+http://soundengine.jp/wordpress/tips/tutorial/99/
クラス内では整数しか定義できないと思ってた?
http://yaplog.jp/nyannyontentyo/archive/7
クラスのメンバーとフレンド (C++ のみ) > 静的メンバー
http://pic.dhe.ibm.com/infocenter/comphelp/v121v141/topic/com.ibm.xlcpp121.aix.doc/language_ref/cplr038.html?lang=ja
【C++】static constなメンバの初期化 - Sofilia
http://arikalog.hateblo.jp/entry/2013/11/09/170041
0514デフォルトの名無しさん
2014/07/03(木) 18:00:31.43ID:2p/tvR1Bstr_chrでそれをする意味は?
0515デフォルトの名無しさん
2014/07/03(木) 18:01:55.50ID:lZc14wWHこっちは行けるんですが、
struct MyData1{
const string const_member;
MyData1() : const_member("hoge"){};
};
こっちは相変わらずエラーします。 char[]は初期化出来ないんでしょうか?
struct MyData2{
const char name[5];
MyData2() : name("Data"){};
};
0516デフォルトの名無しさん
2014/07/03(木) 18:05:41.58ID:0TQE6pDFconst char name[5];
MyData2() : name("Data"){};
};
constじゃなくても駄目だろ
0517デフォルトの名無しさん
2014/07/03(木) 18:30:19.23ID:RzBLIhMy0518デフォルトの名無しさん
2014/07/03(木) 18:35:46.13ID:nGz5aJi/sjis 環境なら0x80以上がマイナス扱いになると
漢字領域判定に失敗するからじゃね?
0519デフォルトの名無しさん
2014/07/03(木) 18:57:09.84ID:rGxSC+Svエラー時の返り値として、-1を使いたいからじゃないの?
0520デフォルトの名無しさん
2014/07/03(木) 18:58:28.29ID:rSavfMTp第一引数 str にある
第二引数 c にある (前者の半角カナ)
引数から一旦キャストした変数で記述し、整合させるぐらいかの
文字を戻りで返すタイプは ASCIIコード と EOF の区別が欲しいケースが多いので
int なんでしょうよ
0521デフォルトの名無しさん
2014/07/03(木) 20:43:17.39ID:RqLWNGM7型がcharじゃなくてintになってる方が
変な符号拡張されて困るのだが
0522デフォルトの名無しさん
2014/07/03(木) 20:56:01.18ID:mpJLProE0523デフォルトの名無しさん
2014/07/03(木) 21:05:47.36ID:M2Y6cUeV0524デフォルトの名無しさん
2014/07/03(木) 21:12:07.04ID:fWjka1bK0525デフォルトの名無しさん
2014/07/03(木) 21:16:49.25ID:GNH3D4XR0526デフォルトの名無しさん
2014/07/03(木) 21:35:20.06ID:vS+uP2bjcharが符号有りの処理系でシフトJISの半角かなの「ア」の文字定数('ア') は
CでもC++でも-79という値でしょ? 決して+177じゃない。
自分でマイナスの値を持ってきておいて
「ボクちんの糞ロジックだと誤判定するからイヤ」なんて
どんだけゆとりなのよ
0527デフォルトの名無しさん
2014/07/03(木) 21:40:13.71ID:bRkIiAVFまだ、有効だよ。
0528デフォルトの名無しさん
2014/07/03(木) 21:47:39.07ID:L2FauWM90529デフォルトの名無しさん
2014/07/03(木) 21:53:41.56ID:9loBiyLT老人たちには型(type)の概念は難しかったようで
いまだにenumも使いこなせません
0530デフォルトの名無しさん
2014/07/03(木) 22:05:15.07ID:Uk6O0RKUお前は何と戦っているんだ?
0531デフォルトの名無しさん
2014/07/04(金) 01:23:29.99ID:qCindXU8引数の型をcharにしたところで、渡す側でも受ける側でも汎整数拡張でintになるんだから、
符号拡張を防ぐなんて効果は無いと思うんだ。
0532デフォルトの名無しさん
2014/07/04(金) 03:11:19.37ID:ELfPkTWJほうほう、ソースは?
0533デフォルトの名無しさん
2014/07/04(金) 06:24:18.61ID:ac1k1f800534デフォルトの名無しさん
2014/07/04(金) 07:02:23.57ID:jjVM/fWvcharをintで扱うことが多いのは、CPUにとって自然(つまり高速)だからだろう
Cは基本的になんでもintで扱う言語だしね
0535デフォルトの名無しさん
2014/07/04(金) 07:02:49.06ID:KtRhy4gACPUのマニュアルとはこれ如何に
0536デフォルトの名無しさん
2014/07/04(金) 09:01:25.74ID:Drkr2UiKansi以前のCは整数拡張が必要だったけどね。
ロートルと言われたくなければせめて20年以上前の仕様位把握しておこうよ。
0537デフォルトの名無しさん
2014/07/04(金) 09:57:07.30ID:qCindXU8https://www.google.co.jp/search?q=%E6%B1%8E%E6%95%B4%E6%95%B0%E6%8B%A1%E5%BC%B5
C も C++ も "usual arithmetic conversions" の一環として整数拡張が入ることになってる。
C (N1570) 6.3.1.8 Usual arithmetic conversions
> Many operators that expect operands of arithmetic type cause conversions ...
C++ (N3936) 5 [expr] p10
> Many binary operators that expect operands of arithmetic or enumeration type cause conversions ...
たとえば >487 の関数を実装するには str[i] == c とか比較することになるんだろうけど、
そこで整数拡張が入ることになる。(最適化で消えるだろうが、少なくとも意味上は)
「渡す側でも」ってのは引数が何らかの演算の結果であることを想定して言ってたんだけど、
元々 char な値をコピーして渡すこともあるだろうから言い過ぎたかもしれない。
0538デフォルトの名無しさん
2014/07/04(金) 10:26:36.83ID:rIOXbDfyでFA。C言語は文字リテラル('A'とか)の型がintだし。
0539デフォルトの名無しさん
2014/07/04(金) 12:13:35.46ID:twdVMSoxhoge(char *fuga, char c) で
fuga[i] == c
のときも
hage(char *fuga, int c) で
fuga[i] == c
のときも
どちらの == の場合も int で比較されるってことでしょうか?
0540デフォルトの名無しさん
2014/07/04(金) 12:19:43.01ID:Drkr2UiK前者の場合はchar同士の比較であることが確定的だから、char同士で比較され得るよ。
実際、gccでx86の場合、cmplではなくcmpbを出力してくる。
0541デフォルトの名無しさん
2014/07/04(金) 12:24:23.83ID:twdVMSox0542デフォルトの名無しさん
2014/07/04(金) 12:27:37.11ID:bq/wfsm7仕様ではインテグラルプロモーションが発生するというのが>>537の主張なのだが。
それと等価な結果を得るために特定のコンパイラーが出力するcodeなどどうでもいい。
ただ呼ばれた側で2項演算するとintになるだけで
渡された時点ではまだcharであることには変わりない。
0543デフォルトの名無しさん
2014/07/04(金) 12:31:47.80ID:Drkr2UiKついでにインライン展開するとどうなるか見てみたら、前者も後者もcmpbを使って全く同じコードになった。
0544デフォルトの名無しさん
2014/07/04(金) 12:48:41.97ID:Drkr2UiKあーそうか、char同士の比較も意味的には整数拡張されてから比較されると言うことか。
実装上は>540だとしても。
0545デフォルトの名無しさん
2014/07/04(金) 12:59:18.07ID:gZUpiCYP実際C言語より型チェックを厳しくしたC++は文字リテラルはcharだし各種文字を取る標準関数もcharを取るようになってる
0546デフォルトの名無しさん
2014/07/04(金) 13:56:26.28ID:azKVS+/Tそれが学習者に疑問を持たせるという
出題者の意図な訳だよ
0547デフォルトの名無しさん
2014/07/04(金) 18:43:07.84ID:GgJqStie俺がintで渡すとしたら、
将来"ファイルの中に該当文字があるか"って関数に応用する場合に、
getcとの比較で符号による間違いを考えたくないからってとこかな。
0548デフォルトの名無しさん
2014/07/04(金) 19:59:35.94ID:TeA8MqEy0549デフォルトの名無しさん
2014/07/04(金) 20:36:07.24ID:D3ATmUinvisualstudio2012で、MFCでプロジェクトを作成したら
MessageBox(_T("test"));
が実行できたので深く考えずに使っていたんだけど、改めて調べると
int WINAPI MessageBox(
HWND hWnd,
LPCTSTR lpText,
LPCTSTR lpCaption,
UINT uType
);
となってて、引数の数が合ってないよね。
どこかでオーバーロードされてるのかな?
0550デフォルトの名無しさん
2014/07/04(金) 20:56:18.29ID:wPBJyG2Shttp://msdn.microsoft.com/ja-jp/library/0eebkf6f.aspx
0551デフォルトの名無しさん
2014/07/04(金) 21:02:39.17ID:wPBJyG2Sカーソル当てたり
補完のヒントを見たり
宣言に飛んたりと
IDEの機能を使えば確認出来ると思うぞ
0552デフォルトの名無しさん
2014/07/04(金) 23:17:14.86ID:q4rOzSzKそのMessageBoxはCWndとかのメンバ関数なんじゃね?
0553デフォルトの名無しさん
2014/07/04(金) 23:24:29.24ID:0mRzOonUひとつふたつ前のレスくらい読んだらどうだ
0554デフォルトの名無しさん
2014/07/05(土) 04:00:07.33ID:Q8yincZ00555デフォルトの名無しさん
2014/07/05(土) 15:18:14.89ID:Im7i5kcdなるべく高速に動作させたいので、const参照以外にも右辺値参照も受け取れるよう
にしたいんですが、
class C {
private:
const M1 m1;
const M2 m2;
public:
C(const M1 &x1, const M2 &x2): m1(x1), m2(x2) {}
C(M1 &&x1, const M2 &x2): m1(x1), m2(x2) {}
C(const M1 &x1, M2 &&x2): m1(x1), m2(x2) {}
C(M1 &&x1, M2 &&x2): m1(x1), m2(x2) {}
};
こんなかんじで、2のメンバ数乗個のコンストラクタを書かずに済む方法ってありますか?
クラスM1やM2には、コピーコンストラクタとムーブコンストラクタが定義済みってことで。
0556デフォルトの名無しさん
2014/07/05(土) 16:47:47.17ID:1PRnEyxoコンストラクターだけをテンプレートにすればよろしい
0557デフォルトの名無しさん
2014/07/05(土) 20:19:37.34ID:aJ+xLPrG0558555
2014/07/05(土) 20:49:00.54ID:Im7i5kcdhttp://codepad.org/IWIjpHFC
やってみたけどうまくいかなかった。
クラスC1をコンストラクトする段階で、M1やM2のコピーコンストラクタが
move可能な状況でも呼ばれる。
C2みたいに書いてようやく所望の動作をしてくれたんだが・・・
初期化リストにいちいちstd::move()とか書かないといけないもんなの?
もうすこしシンプルな書き方知っている方おしえてです。
0559555
2014/07/05(土) 20:55:30.71ID:Im7i5kcd>>557
いみわからんです。値渡しを避けたいから可能な限りムーブを使うんだが。
0560デフォルトの名無しさん
2014/07/05(土) 20:55:39.17ID:/CpBjlc8これでおk
0561デフォルトの名無しさん
2014/07/05(土) 21:07:37.90ID:aJ+xLPrG>>560のように、値渡しで受け取ってメンバにムーブ代入する
実際コピー/ムーブ回数を数えてみると、ムーブ回数が一回増えるだけなので、ムーブが十分軽い操作なら問題は無い
しかしstd::arrayのようにムーブが重い場合はオーバーヘッドが生じてしまうので注意
0562555
2014/07/05(土) 21:15:06.00ID:Im7i5kcdでも、そのコードだとm1オブジェクトがぶっ壊れるんだが。
http://ideone.com/fZ7eB6
0563555
2014/07/05(土) 21:20:22.29ID:Im7i5kcdc2dのコンストラクタ呼び出しで、不要なmoveが入ってる。
どうもわかってきた。サンクス。
0564デフォルトの名無しさん
2014/07/05(土) 21:24:15.65ID:aJ+xLPrGmove後のオブジェクトが壊れているのは当然
0565555
2014/07/05(土) 21:32:06.45ID:Im7i5kcdただ激しくバグの素の匂いがするコードなのであまり関心できない。
あとは、このムーブのオーバーヘッドを無視できるかだなぁ。。。
あと、値渡しコンストラクタ引数が初期化リストで一回使われるだけの
時とか、勝手に右辺値に変えてくれたりの最適化ってしてくんないのかね。
0566デフォルトの名無しさん
2014/07/05(土) 21:37:32.66ID:aJ+xLPrG最適化は許可されているから後はコンパイラ次第
0567デフォルトの名無しさん
2014/07/05(土) 21:41:35.10ID:IfJTJU6r0568デフォルトの名無しさん
2014/07/05(土) 21:47:42.49ID:Im7i5kcdされるようになる様子が目に浮かぶわ・・・
0569デフォルトの名無しさん
2014/07/05(土) 21:53:13.94ID:eQft9RyAなんなのこの糞コード
おまえら正気か?
0570デフォルトの名無しさん
2014/07/05(土) 21:54:24.78ID:/CpBjlc80571デフォルトの名無しさん
2014/07/05(土) 21:56:53.63ID:Im7i5kcd0572デフォルトの名無しさん
2014/07/05(土) 22:35:39.07ID:FweWc6DIシンプルな構造体にまで毎回T(T&&)、T& operator=(T&&)は面倒ですw
(だからunique_ptrを使うお)
そのうち何も書かなくてもデフォルトで、暗黙的に実装されるように
なるらしいけど、早くしろや
0573デフォルトの名無しさん
2014/07/05(土) 22:53:26.54ID:9YOT8bNaこれじゃダメなのか?
http://ideone.com/7RlFa7
0574デフォルトの名無しさん
2014/07/05(土) 23:24:55.26ID:i+bJ5TvG明解C言語入門編というものを1周したのですが
この本は何回も読んで頭に叩き込むものでしょうか?
それとも違う本を読んでいったりしたほうがいいのでしょうか?
0575デフォルトの名無しさん
2014/07/05(土) 23:28:20.95ID:xvor2Eqf0576デフォルトの名無しさん
2014/07/05(土) 23:55:18.87ID:4LsGsAKA0577デフォルトの名無しさん
2014/07/06(日) 14:00:28.32ID:KUsWw/gBとりあえず何でもいいから実践しないと覚えないよ
明解C言語入門という参考書は読んだことないけど、Cはポインタさえ理解出来れば後は慣れだから
ポインタ部が不安なら2冊目にポインタに詳しい参考書を読むのもあり
それ以外でも本屋で立ち読みしてこの本いいなと思ったら2冊目に買ってもいいんじゃないかな
有名なカーニハン&リッチーの本は1、2冊初心者用参考書を読んだレベルじゃ多分無理
はっきりした目的もなく始めたのならコンソール画面だけのプログラムばかりだとつまらないから、
ある程度Cを身に付けたらC++は無視していっそWin32APIに手を出してもいいかも
覚えることは多いし参考書は高くて少ないけどやってること自体は大したことない
0578デフォルトの名無しさん
2014/07/06(日) 14:24:27.65ID:T51ro//sは今となっては悪書なので読んではいけない
0579デフォルトの名無しさん
2014/07/06(日) 18:31:25.28ID:Xcdpas3C本当の意味での初心者には向かない(理解できない)けど
0580デフォルトの名無しさん
2014/07/06(日) 19:57:45.46ID:BFMhGjiP初心者ならもっといい本がでてるべ。
0581デフォルトの名無しさん
2014/07/06(日) 20:16:59.98ID:FJzh/6Se0582デフォルトの名無しさん
2014/07/06(日) 20:17:41.25ID:FJzh/6Se0583デフォルトの名無しさん
2014/07/06(日) 20:37:15.49ID:Qw6AqEGX0584デフォルトの名無しさん
2014/07/06(日) 20:40:27.85ID:Xcdpas3CK&Rは、普通の知性があれば、初心者が読んで全然いい
タイトルで釣ってる易しいだけの初心者本は、読んでも何の役にも立たない
ただ、小中学生とか、そういう方向の初心者には向かないと思う
0585デフォルトの名無しさん
2014/07/06(日) 21:13:29.33ID:JKxWpx0K0586デフォルトの名無しさん
2014/07/06(日) 22:02:22.76ID:PmG1bj5r0587デフォルトの名無しさん
2014/07/06(日) 22:08:10.06ID:iCoJ9ZiO0588デフォルトの名無しさん
2014/07/06(日) 22:10:17.74ID:PmG1bj5r0589デフォルトの名無しさん
2014/07/06(日) 22:49:11.98ID:goqQr1zD0590デフォルトの名無しさん
2014/07/06(日) 22:56:56.49ID:HGTxW80D年寄りが懐かしさを楽しむ会話のネタぐらいしか価値がない
0591デフォルトの名無しさん
2014/07/06(日) 23:01:14.42ID:M2Rbqlfg最初のうちは直にコレを読むのは厳しいだろうけど、
海外メジャーなC++サイトの解説で補完
cppreference.comとか
日本語版もあるけど簡易な英語だから、英語版でも大丈夫
どっちにしても、この程度の英語は読めた方がよいと思う
検索の世界が広がる
0592デフォルトの名無しさん
2014/07/07(月) 01:49:42.75ID:HY+/BDCgポインタはそれを受け取ると、変数と同じようにアクセス出来る。
javaの代入するとポインタ参照が増える方がよほど難しいと思うが、そこでつまずくのか。
今のコンピュータはバス調停でプログラム上のアドレスが決まり、ブリッジをいくつも越えて
デバイスを制御する。C/C++が知っているコンピュータと随分違っているし家電にもjavaマークが
ついていたりする。
OSにアプリを提供するのがほとんどのプログラムであってドライバでない物が機械を直接
制御しようとするのは迷惑な時代なのかな。
0593デフォルトの名無しさん
2014/07/07(月) 04:25:22.13ID:JyDRLdVK?
はて、なんのことだろう
0594デフォルトの名無しさん
2014/07/07(月) 14:38:12.48ID:+4QXnu28後半読めばわかるだろ
知ってる単語並べてるだけだから、スルーでいいよ
0595デフォルトの名無しさん
2014/07/07(月) 18:24:11.07ID:vhBKyZOoプリミティブ型のことじゃないの?
0596デフォルトの名無しさん
2014/07/07(月) 20:20:06.39ID:+WEgGdq/0597デフォルトの名無しさん
2014/07/07(月) 21:43:33.74ID:JT9yWl9Z馬鹿にすんな
それはそうと、なんの問題もないよ
どんな環境を想定してるのかは知らないけど、
特権レベルの低いユーザアプリでそれは無理
もちろん、カーネルで動くようなプログラムを
組むとなると別だろうけど、ドライバでもないものが、
そのレベルで動作できるとしたら、それはそのOSがおかしい
0598デフォルトの名無しさん
2014/07/07(月) 21:59:45.35ID:8C4Wbu/Zmmap
0599デフォルトの名無しさん
2014/07/08(火) 07:44:10.46ID:LIkQQfqyこの一文は前野どこと繋がってるんだ?
0600デフォルトの名無しさん
2014/07/08(火) 14:54:07.18ID:nXAnWEmNhttp://codepad.org/MyFrk2D7
というのがあったのですが、上手く曜日が表示されません
なぜなのでしょうか?
0601デフォルトの名無しさん
2014/07/08(火) 15:11:56.18ID:SPtpfnz3最後を %2.2s にしなされ
0602デフォルトの名無しさん
2014/07/08(火) 16:47:48.70ID:z6eg5pPo0603デフォルトの名無しさん
2014/07/08(火) 16:49:51.76ID:z6eg5pPo>602なので、const char wday_name[][4]にすればいい。
或いは、const char * const wday_name[]でもいい。
後者の方が、例えば"日"を"日曜"に変えても使えるので便利。
0604デフォルトの名無しさん
2014/07/08(火) 17:44:01.88ID:RGmPR9KR0605デフォルトの名無しさん
2014/07/08(火) 21:57:31.35ID:hPWUgG1S例題が間違っているから
としか言いようがない
0606デフォルトの名無しさん
2014/07/08(火) 22:59:59.16ID:qu8l/hUZ0607デフォルトの名無しさん
2014/07/08(火) 23:13:38.68ID:qe5n8Iypいやいや、「環境依存で正しいこともある」だな。
0608デフォルトの名無しさん
2014/07/08(火) 23:15:33.96ID:qu8l/hUZ0609デフォルトの名無しさん
2014/07/08(火) 23:23:52.87ID:rf429Cp2環境依存で正しいこともある というよりは
環境依存で動いてしまうこともある レベル
0610デフォルトの名無しさん
2014/07/08(火) 23:39:35.68ID:UwqYrzyQやっぱりC言語は糞だな
0611デフォルトの名無しさん
2014/07/08(火) 23:43:30.57ID:yUaVsh4dヌルターミネートは付加できる場合のみ自動で付加される仕様だから
0612デフォルトの名無しさん
2014/07/08(火) 23:44:51.26ID:UwqYrzyQそんな理由じゃないでしょ。
試しに長さ1とかにしてみなよ。
0613デフォルトの名無しさん
2014/07/08(火) 23:50:34.65ID:yUaVsh4d0614デフォルトの名無しさん
2014/07/08(火) 23:51:36.72ID:cdcsHPODほうほう、そんなことがISO/IEC 9899:2011のどこに書かれているのか
0615デフォルトの名無しさん
2014/07/08(火) 23:54:08.87ID:yUaVsh4d0616デフォルトの名無しさん
2014/07/08(火) 23:55:19.67ID:UwqYrzyQ誤解招くような発言したのは誰だよ。
まあとりあえず糞仕様なのは間違いない。
0617デフォルトの名無しさん
2014/07/08(火) 23:57:35.93ID:yo3e3U2eB「仕様です」
間違いなくBは会話のできないアスペ
0618デフォルトの名無しさん
2014/07/09(水) 00:00:46.06ID:UwrdPaFY0619デフォルトの名無しさん
2014/07/09(水) 00:00:54.49ID:G+O1M7ss確かそんなunkoな関数があったよね
strncpyだっけ?
0620デフォルトの名無しさん
2014/07/09(水) 01:12:15.01ID:tDynlsgrstrncpy( ) は文字列の途中を書き換えたりするハレンチな使い方するから勝手に付加されても困るわ
0621デフォルトの名無しさん
2014/07/09(水) 18:36:05.86ID:eczUeSs+s = s + "を変更した";
}
string func2(const string &s){
return s + "を変更した";
}
void sub(){
string s = "変更前";
func1(s); // (1)
s = func2(s); // (2)
}
文字列を処理する関数を作成する場合、(1)のようにしたほうが速度的に速いのは分るのですが、
(2)のように s= という左辺に代入の形式で書きたいので、無駄を承知で(2)のような関数を作る事が多いのですが、
馬鹿でしょうか?皆さんそんなこと無いですか?
0622デフォルトの名無しさん
2014/07/09(水) 18:40:28.71ID:aj4O2jplstring func() {return "を変更した";}
void sub()
{
string s = "変更前";
s += func();
}
でいいような。
0623デフォルトの名無しさん
2014/07/09(水) 18:43:24.54ID:O1jvNzTi単体で100万回実行した時の実測値が遅くても、
本番では10回しか使わなれば差がないことはある。
0624デフォルトの名無しさん
2014/07/09(水) 18:48:50.64ID:aj4O2jplconst char * func() {return "を変更した";}
で充分だな。
0625デフォルトの名無しさん
2014/07/09(水) 18:56:39.77ID:oJAo1LX4俺も関数型マンセーな(2)派。
ムブコン対応が普及すれば、その手のパフォーマンス差は無問題だと思う。
多分、現状でも最適化かければRVO入ると思うし。
0626デフォルトの名無しさん
2014/07/09(水) 18:58:46.32ID:O1jvNzTiだから2はダメでは。その部分だけ見ただけで破壊的代入してる。
0627デフォルトの名無しさん
2014/07/09(水) 19:04:34.33ID:oJAo1LX4あと、一般的には、
s = s + "を変更した";
より、
s += "を変更した";
の方が速い。
もちろん、最終的には実測あるのみだが、 >>621ならどちらも速度的には変わらないと思う。
0628デフォルトの名無しさん
2014/07/09(水) 19:05:19.81ID:oJAo1LX4破壊してないよね?
0629デフォルトの名無しさん
2014/07/09(水) 19:12:08.74ID:O1jvNzTi代入 (Assignment)。命令型言語のユーザーは、他のどんなプログラミング手法よりも、代入に依存します。
関数型言語では、1つの変数に対して最大 1 回の代入しか許されません。
ある値を変更する代入は、すべて破壊的代入(destructive assignment) と呼ばれ、許されません。
例えば、ほとんどの関数型言語では、x= x + 1 は許されません。
繰り返し (Iteration)。命令型言語のプログラムは、様々なタイプのデータ構造を、繰り返しを使って処理します。
多くの場合、命令型制御構造では、繰り返しを行うために破壊的代入に依存しています。
副作用 (Side effect)。命令型言語において、異なる値を返す可能性のある全てのメソッドは、同じ入力に対して副作用を持っています。
またアプリケーション変数の状態に影響を与える全てのメソッドも、副作用を持っています。関数型言語には副作用がありません。
関数型言語を使ったことのない人には、破壊的代入や副作用のないアプリケーションの書き方など、想像もできないでしょう。
しかしこうした基本的な特徴は、命令型言語の持つ非常に大きな問題につながるのです。
https://www.ibm.com/developerworks/jp/java/library/j-cb07186/
0630デフォルトの名無しさん
2014/07/09(水) 19:31:17.51ID:oJAo1LX40631デフォルトの名無しさん
2014/07/09(水) 19:48:21.88ID:O1jvNzTi0632デフォルトの名無しさん
2014/07/09(水) 20:04:53.59ID:oJAo1LX4俺が関数型といっているのは、func2 の実装の事だってば。
っていうか、ボソッと言ったことにそこまでつっかかるなよ。
しかも、知識を持ってる割に、察しが悪いあたりがめんどくさい。
0633デフォルトの名無しさん
2014/07/09(水) 22:41:08.40ID:G+O1M7ssまず日本語でレスできるようになってから出直した方がいいよ
0634デフォルトの名無しさん
2014/07/11(金) 09:37:24.83ID:ifGpSMFqライブラリーありますか?
0635デフォルトの名無しさん
2014/07/11(金) 09:52:46.07ID:FjcVBQS/0636デフォルトの名無しさん
2014/07/11(金) 09:55:06.74ID:Fti743/d0637デフォルトの名無しさん
2014/07/11(金) 10:41:47.01ID:ifGpSMFq0638デフォルトの名無しさん
2014/07/11(金) 10:53:29.26ID:Lx3So7Yg0639デフォルトの名無しさん
2014/07/11(金) 10:54:09.45ID:Lx3So7Yg0640デフォルトの名無しさん
2014/07/11(金) 11:28:17.72ID:ifGpSMFqありがとうございます。
0641デフォルトの名無しさん
2014/07/11(金) 23:19:16.60ID:oJ0M31OD0642デフォルトの名無しさん
2014/07/11(金) 23:26:57.99ID:fhWSO1fs0643デフォルトの名無しさん
2014/07/12(土) 14:23:47.41ID:13qaOtx30644デフォルトの名無しさん
2014/07/12(土) 14:33:37.79ID:ir47X0Sd変わることもあるし変わらないこともある。
気になるなら実測。
0645デフォルトの名無しさん
2014/07/12(土) 15:06:27.71ID:uBkJb0ew0646デフォルトの名無しさん
2014/07/12(土) 15:09:24.84ID:SOVDXsjY変わります。
0647デフォルトの名無しさん
2014/07/12(土) 17:19:17.62ID:13qaOtx3としては良いんですか?
機械制御のシーケンサ(PLC)なんかでは業界としては解りやすい方がいいとされています。会社にもよりますが・・・
0648デフォルトの名無しさん
2014/07/12(土) 17:53:32.22ID:tBRK6qJR目標のスピードがあってそれをクリアしてるんなら読みやすいほどよい
0649デフォルトの名無しさん
2014/07/12(土) 18:05:50.63ID:13qaOtx30650デフォルトの名無しさん
2014/07/12(土) 18:38:11.56ID:trVqQ/Khトリッキーだけど速い方がいいなんて会社はない
技巧的とか流行りの技法使って楽しいのは本人だけ
0651デフォルトの名無しさん
2014/07/12(土) 18:51:17.75ID:13qaOtx3いわゆるその会社その会社によるノウハウ・・・
でも大体がどこの会社も似たり寄ったりの技法使っていると思いますが・・・どうでしょう。
0652デフォルトの名無しさん
2014/07/12(土) 18:55:59.34ID:hZ9DjkyP1行でも無限ループが書けるから速度と規模は関係ない
0653デフォルトの名無しさん
2014/07/12(土) 18:57:30.18ID:hZ9DjkyP会社によってレベルはピンキリ
某大手企業でもとんでもなく酷いソースのまま納品してることがある
0654名無しさん@0新周年
2014/07/12(土) 20:27:17.13ID:ieTzojX60655デフォルトの名無しさん
2014/07/12(土) 20:29:18.30ID:7NB7b6IEリアルタイムOSのように一定時間で処理を完結されることもあれば、
センサーからの信号を取りこぼしても良いこともある
0656デフォルトの名無しさん
2014/07/12(土) 21:08:11.45ID:4xZ44lSC綺麗に書いても遅すぎて使い物にならないなら意味がないし。
想定される環境で必要十分な速度がでるならもちろん綺麗な方がいい
0657デフォルトの名無しさん
2014/07/12(土) 23:35:20.59ID:MBGOWzVT原因は簡単に予想できたが他社の領分だったんでスルーした。
0658デフォルトの名無しさん
2014/07/12(土) 23:53:22.38ID:13qaOtx30659デフォルトの名無しさん
2014/07/13(日) 00:34:03.24ID:7UphRhX90660デフォルトの名無しさん
2014/07/13(日) 00:37:51.82ID:kSriMbNH0661デフォルトの名無しさん
2014/07/13(日) 00:51:01.41ID:e/Rw2AM2それでも、世界一のIT技術国なんだろ
ともかくまともなものを納期までに作れだよな
きれいを心がけ納期間に合わずじゃアウトだし
0662デフォルトの名無しさん
2014/07/13(日) 01:35:10.89ID:7UphRhX90663デフォルトの名無しさん
2014/07/13(日) 01:58:35.94ID://8rR9Cj0664デフォルトの名無しさん
2014/07/13(日) 02:01:33.47ID:psjBpgTU0665デフォルトの名無しさん
2014/07/13(日) 02:25:32.19ID:kSriMbNH設計からのミスや変更があると修正が大変で
ツギハギだとミスが紛れ込みやすいんだけど設計からのミスや変更でも
新たに継ぎ足して修正しやすいイメージ
あくまでイメージ
0666デフォルトの名無しさん
2014/07/13(日) 02:45:17.28ID:y/mNp4ZUごく稀に80%では満足出来ない製品で100%を目指すのが最適化。
実測もせずに「こうした方が速いんだぜー」と 自己満足で書かれた訳の分からんコードは、逆に遅いことすらある。
0667デフォルトの名無しさん
2014/07/13(日) 04:01:44.91ID:oCOYKlaE新たに継ぎ足して修正して汚くなっていくことが明らかで普通は鬱になる状態でも
元が汚いと罪悪感を感じにくいので作業が捗るという意味では
同じイメージを持っています
0668デフォルトの名無しさん
2014/07/13(日) 08:42:20.47ID:OfL9oG5/kwsk
0669デフォルトの名無しさん
2014/07/13(日) 12:49:07.99ID:WFVo9McBそもそも、そういう小技って極一部のアルゴリズムを置き換えるだけで済むこと多いしなあ
0670デフォルトの名無しさん
2014/07/13(日) 14:00:05.06ID:/A7mwUNZ綺麗綺麗って、どんだけ綺麗にかけるんだよ?
0671デフォルトの名無しさん
2014/07/13(日) 15:51:53.01ID:y/mNp4ZU0672デフォルトの名無しさん
2014/07/13(日) 15:54:53.61ID:y/mNp4ZUでもこれも主観入るよねー。
キッチリハンガリアンで書くのが綺麗だという人もいるしなあ…
0673デフォルトの名無しさん
2014/07/13(日) 17:05:01.55ID:OfL9oG5/昔(アプリケーション)ハンガリアンで書いたことがあったが、会社の方々で爆笑ものだったらしい‥
少なくとも動的型言語でハンガリアンを使うのは自爆ものだった‥スペルミスをはじけないからね‥
0674デフォルトの名無しさん
2014/07/13(日) 23:50:24.30ID:psjBpgTU0675デフォルトの名無しさん
2014/07/13(日) 23:54:01.05ID:3cmdlTIdハンガリアンの目的を微塵も理解していない失笑もののレスだな
0676デフォルトの名無しさん
2014/07/14(月) 00:16:38.38ID:wkbLFwHfdouble x,y,z;
0677デフォルトの名無しさん
2014/07/14(月) 00:44:27.27ID:uZBKU8fE0678デフォルトの名無しさん
2014/07/14(月) 08:59:16.06ID:Hkx+f73Pここのリスト2のサンプルがうまく行きません。分かる人いたら教えてください
#include "stdafx.h"
#include "Shlobj.h"
#pragma comment(lib, "shell32.lib")
int _tmain(int argc, _TCHAR* argv[])
{
IShellItem* pItem = nullptr;
HRESULT hr = ::SHCreateItemInKnownFolder(
FOLDERID_Libraries, 0, nullptr, IID_PPV_ARGS(&pItem));
if (SUCCEEDED(hr))
{
printf("成功");
pItem->Release();
}
getchar();
}
0679デフォルトの名無しさん
2014/07/14(月) 09:00:37.03ID:dxRw1V7C0680デフォルトの名無しさん
2014/07/14(月) 09:13:59.83ID:Hkx+f73P何も表示されないってことです
0681デフォルトの名無しさん
2014/07/14(月) 09:15:43.03ID:dxRw1V7C0682デフォルトの名無しさん
2014/07/14(月) 09:27:34.76ID:v6rlvCBe0683デフォルトの名無しさん
2014/07/14(月) 09:34:21.32ID:Hkx+f73P>>682
どうもありがとうございます
CoInitialize(NULL);をつけたら解決しました
hrの値がCreateInstance 0x800401f0になってたので検索したらすぐ出てきました
失礼しました
0684デフォルトの名無しさん
2014/07/14(月) 10:43:19.64ID:+a3AQKeB↑ここのサンプルを使ってスタティックライブラリ(*.lib)を作ったのですが
Releaseビルドだと
dumpbin /symbols xxx.lib
でexportした関数が表示されません。
Debugビルドだと表示されます。
Release/Debug双方とも別のアプリから利用可能で、正常に動作します。
ビルド環境はVisual Studio Express 2013 for Windows Desktop(Visual C++)です。
何かヒントを頂けると助かります。
0685デフォルトの名無しさん
2014/07/14(月) 11:14:54.55ID:v6rlvCBe0686デフォルトの名無しさん
2014/07/14(月) 11:33:22.58ID:+a3AQKeBレス、ありがとうございます。
/exportsだとDebugモードでビルドしたものでも
関数が表示されなくなってしまいます。
0687デフォルトの名無しさん
2014/07/14(月) 11:42:59.57ID:WY2FYArGスタティックライブラリで (DLL)export 可能なのかえ?
/exports
ttp://msdn.microsoft.com/ja-jp/library/30e78zd0.aspx
/symbols
ttp://msdn.microsoft.com/ja-jp/library/b842y285.aspx
0688デフォルトの名無しさん
2014/07/14(月) 11:51:51.44ID:v6rlvCBeスタティックライブラリにしたのだと勝手に翻訳していたが、違うんならわかんね。
0690デフォルトの名無しさん
2014/07/14(月) 12:55:50.36ID:FojawQzw0691684
2014/07/14(月) 13:08:38.05ID:+a3AQKeBすみませぬ・・・
よく使う関数をライブラリにまとめたいのですが、DLLではなくスタティックライブラリに
しようと思っています。
スタティックライブラリの作成まで出来て、動作確認もできたのですが、
念のためdumpbin /symbols xxx.lib でスタティックライブラリに定義した関数を
確認しようと思ったら、
--------------------------
(略)
Dump of file xxx.lib
File Type: LIBRARY
--------------------------
としか表示されず、不思議に思って質問しました。
☆ Q: Debug情報付きでビルドすると、スタティックライブラリに定義された
関数が全て表示されるので、Releaseビルドだと内部情報が見えないように
最近仕様変更されたのでしょうか?
注)Release/Debugビルド共に別のプログラムからリンク可能で、動作も
問題ないようです。
dumpbinで表示されないだけのようです。
0692デフォルトの名無しさん
2014/07/14(月) 15:31:42.67ID:FojawQzw多分シンボルをリンクするための情報だと思ってるんだろうけど
シンボルはあくまでデバッグ情報だから、動作機能には関係ない。
プログラムサイズを減らすためリリース版では無くしてる
exportsで何も出ない(?)と言ってたけど、リンクで使われるのはexporrsの方
0693デフォルトの名無しさん
2014/07/14(月) 15:39:00.80ID:FojawQzw0694デフォルトの名無しさん
2014/07/14(月) 16:54:22.95ID:FojawQzwリンカは、dumpbin /linkermember で表示されるパブリックシンボルを使うみたい
これはdebugビルドにもリリースにも含まれる
0695デフォルトの名無しさん
2014/07/14(月) 22:33:32.39ID:5duasKc4動的型付け、というか宣言なしで変数をすき放題に使える極悪な環境で苦しんだ
考えてみれば、別にハンガリアンでなくともスペルミスに泣いただろうな‥
>>675
ハンガリアンの目的?
たぶん typedef を使うのがまっとうだろうし、その意味ではどんなハンガリアンも金輪際出番はないと今では思っているよ
0696デフォルトの名無しさん
2014/07/14(月) 22:36:58.52ID:dxRw1V7Cほんとうに分かってないんだな
0697デフォルトの名無しさん
2014/07/14(月) 22:47:51.75ID:OyQeXbSe0698デフォルトの名無しさん
2014/07/14(月) 23:26:12.87ID:caGHL+SV0699デフォルトの名無しさん
2014/07/14(月) 23:34:23.13ID:5duasKc4ま、そういってもらってもいいかもね、昔はよく使ったものだが、今ではハンガリアンの利点が微塵もわからないからね‥
0700デフォルトの名無しさん
2014/07/15(火) 00:27:21.44ID:zbG7kkwG知らないようだから教えてあげよう
君は今も昔もハンガリアンというものを全く理解していない
利点がわかる以前の問題だ
0701デフォルトの名無しさん
2014/07/15(火) 00:29:19.91ID:VgFN9iM9それ缶コーヒーの名前ですかねw
0702デフォルトの名無しさん
2014/07/15(火) 01:03:07.74ID:8uHHkp3Z先ずhogeを使いこなせるようにがんばる
0703名無しさん@0新周年
2014/07/15(火) 01:48:48.45ID:20ZBC4Aq0704デフォルトの名無しさん
2014/07/15(火) 04:50:16.60ID:7MWYl2Sv0705デフォルトの名無しさん
2014/07/15(火) 05:28:14.02ID:RsIVkhHs基本型も環境によって、16,32ビットと変わるので、
int型などの組み込み型は使えず、typedefして使う
signedは、int16_t, int32_t
unsignedは、uint16_t, uint32_t
0706デフォルトの名無しさん
2014/07/15(火) 06:32:32.17ID:TXyFzYBaいきなりどうした?
0707デフォルトの名無しさん
2014/07/15(火) 08:48:05.63ID:ijGdIMAg★ +ニュース
・ 2NN
・ 2chTimes
★ +ニュース新着
・ 2NN新着
・ Headline BBY
・ unker Headline
★ +ニュース他
・ Desktop2ch
・ 記者別一覧
★ 全板
・ 全板縦断勢いランキング
・ スレッドランキング総合ランキング
・ ログ速
★ 実況込
・ 2勢
・ READ2CH
・ i-ikioi
※ 要タイトル名検索
0709デフォルトの名無しさん
2014/07/16(水) 01:52:44.09ID:moRTR2el>int型などの組み込み型は使えず
はて、使えないと考えた根拠は何だろう
0710デフォルトの名無しさん
2014/07/16(水) 11:35:51.91ID:ff/AGVGEシステムハンガリアン: 変数の型をプレフィックスに
アプリケーションハンガリアン: 動作や大きさ等の変数の用途概要をプレフィックスに
こういう認識でよろしいでしょうか?
0711デフォルトの名無しさん
2014/07/16(水) 13:11:23.81ID:dtGU31iTブルガリアンとか
インドネシアンがないのはどうしてなぜ
0712デフォルトの名無しさん
2014/07/16(水) 13:21:50.78ID:CWCGAhMrわかるひとだけレスしてください
うざいだけです
0713デフォルトの名無しさん
2014/07/16(水) 14:48:57.53ID:M3a2qYLU0714デフォルトの名無しさん
2014/07/16(水) 15:52:58.62ID:ej6YH4lkポリッシュ加工じゃないんですか?
0715デフォルトの名無しさん
2014/07/16(水) 17:21:33.62ID:moRTR2elちょっとCTPダウンロードしてくる
0716デフォルトの名無しさん
2014/07/16(水) 17:25:43.61ID:XexGWa0+0717デフォルトの名無しさん
2014/07/16(水) 18:19:36.46ID:dNTYPL/v0718デフォルトの名無しさん
2014/07/16(水) 18:39:49.76ID:OnMw5ahOfloatのfなんだろうけど付けると付けないので何が違うの?
0719デフォルトの名無しさん
2014/07/16(水) 18:45:21.78ID:VblCYr0vつけるとfloat精度の定数として扱われる。
0720デフォルトの名無しさん
2014/07/16(水) 18:47:58.93ID:VblCYr0v0721デフォルトの名無しさん
2014/07/16(水) 18:52:04.75ID:OnMw5ahOなるほど
あんまり気にしなくて良さそうだなありがとう
0722デフォルトの名無しさん
2014/07/16(水) 19:38:54.29ID:08lL72ov1 2 + 3 /
0723デフォルトの名無しさん
2014/07/16(水) 19:46:08.70ID:VVCsJDdpポーランド記法もあるぞ
C言語で言う関数呼び出しに近い並べ方をする
/ * h + a b 2
Cで加算関数add()、乗算関数mul()、除算関数div()を定義したとすると、上は
div(mul(h,add(a,b)),2)
つまり「h * (a + b) / 2」になる
0724デフォルトの名無しさん
2014/07/16(水) 20:02:51.66ID:tcd1R/Nt使いやすい(思考しやすい)ってことなんだろうね
俺はよく分からんけど
0725デフォルトの名無しさん
2014/07/16(水) 20:12:34.32ID:1kMXRFN/0726デフォルトの名無しさん
2014/07/16(水) 20:19:31.66ID:IAnIlCUwlisp だぬ
0727デフォルトの名無しさん
2014/07/17(木) 00:05:58.56ID:a1mey4ORこんな感じで純粋仮想関数の引数にデフォルト値を設定してるコードを見たのですが
何か意味があるのでしょうか?
0728デフォルトの名無しさん
2014/07/17(木) 00:16:06.23ID:0zYOxTlivirtual ~ = 0;は純仮想関数のこと
このクラスは仮想クラスでfuncメソッドを実装してないし実体化もできません
サブクラスで必ずfuncメソッド実装してねって宣言
0729デフォルトの名無しさん
2014/07/17(木) 00:38:38.92ID:vErG7G9r>>727
デフォルト引数は呼び出し側のコードに対するシンタックスシュガー。
呼び出し側は純粋仮想関数の定義クラスのみを見て呼び出すのが普通なので
何らおかしいことではない
0730デフォルトの名無しさん
2014/07/17(木) 01:21:02.34ID:K9zU74xBんなこたーない
仮想クラス→抽象クラス
実装してないし→実装してるかも知れないけど
0731デフォルトの名無しさん
2014/07/17(木) 02:07:10.58ID:io69XSml0732デフォルトの名無しさん
2014/07/17(木) 04:21:03.93ID:rKanS6800733デフォルトの名無しさん
2014/07/17(木) 06:56:04.50ID:GgjV7ET4そんな機能あったっけ?
0734デフォルトの名無しさん
2014/07/17(木) 09:56:10.16ID:IRxGKMmZ0735デフォルトの名無しさん
2014/07/17(木) 12:41:11.54ID:Bl+ex1Cq0736デフォルトの名無しさん
2014/07/17(木) 16:11:15.49ID:L+oCb2OIdynamic_castのための情報消えるのでしょうか?_・」
0737デフォルトの名無しさん
2014/07/17(木) 19:29:41.65ID:2uwVyKeT0738デフォルトの名無しさん
2014/07/17(木) 19:34:54.77ID:1eXUmlLqhttp://social.msdn.microsoft.com/Forums/vstudio/ja-JP/23298b39-4c82-4bc2-a599-ec7788af0e23/clistctrl-?forum=vcgeneralja
0739デフォルトの名無しさん
2014/07/17(木) 19:48:22.85ID:G/IBZqpCリアルのアスペが「アスペ、アスペ」と言われるの心底恐ろしい事なので、他人も
そう言われると恐ろしがったり憤慨するだろうと思い込んでついつい多用してしまう。
つまり、「アスペ、アスペ」を多用する奴は例外なくリアルでアスペ。
0740デフォルトの名無しさん
2014/07/17(木) 21:30:32.67ID:ZpRdyoCC0741デフォルトの名無しさん
2014/07/17(木) 21:38:35.16ID:rl0VCi9H0742デフォルトの名無しさん
2014/07/18(金) 01:22:47.59ID:FE5kMOuz・ポインタにはポインタそのもの以外の情報は含まれない
・ポインタをキャストしてもそれだけではポインタの参照先のデータは変更されない
あとは…わかるな?
0743デフォルトの名無しさん
2014/07/18(金) 06:18:01.93ID:P4uOsCCD0744デフォルトの名無しさん
2014/07/18(金) 06:34:00.65ID:XHxbn6C8消えないけど、キチンとしないと腐る可能性はある。
void*への変換前には、想定している基底クラスのポインタにstatic_castしておき、
戻す際は逆に規定クラスのポインタにstatic_castしてからdynamic_castする。
変換時は派生クラスから直接、戻すときには基底クラスにと言うのでは、多重継承が絡むと悲惨な目にあうこと請け合い。
0745デフォルトの名無しさん
2014/07/18(金) 07:48:16.14ID:dUYH8N/1ほうほう、それはどのような理由から?
0746デフォルトの名無しさん
2014/07/18(金) 08:22:23.99ID:jUWTV+EC0747デフォルトの名無しさん
2014/07/18(金) 08:26:06.70ID:MNjetX+m0748デフォルトの名無しさん
2014/07/18(金) 13:51:40.57ID:G86bfh5O不特定なら得られるアルゴリズムがあるからでしょうか?
0749デフォルトの名無しさん
2014/07/18(金) 13:57:19.28ID:exI1hoJs0750デフォルトの名無しさん
2014/07/18(金) 14:07:18.74ID:G86bfh5Oを得ることはできないのでしょうか?
デストリビューションからランダムな値を出すアルゴリズムがあるからでしょうか?
0751デフォルトの名無しさん
2014/07/18(金) 14:14:24.21ID:rqweNMeDママにもわかる言葉で話せ
0752デフォルトの名無しさん
2014/07/18(金) 14:29:43.08ID:QuIJUfIo文脈指定しなかったらLinuxディストリビューションと受け取るのみ
0753デフォルトの名無しさん
2014/07/18(金) 14:50:44.05ID:G86bfh5Oなぜstd::string<double>は無いのでしょうか?
0754デフォルトの名無しさん
2014/07/18(金) 14:58:26.85ID:exI1hoJs0755デフォルトの名無しさん
2014/07/18(金) 17:40:38.25ID:PV8tXGrbでもたとえコンパイルが通ったとしても誰が使うん
0756デフォルトの名無しさん
2014/07/18(金) 20:59:36.40ID:nuTBpive文字をdoubleで表現する意味・利点がないからだろう
欲しければ特殊化したchar_traitsを自分で用意すればコンパイルできるところまではいけるはずだ
期待したとおりに動くかどうかまではわからんが
0757デフォルトの名無しさん
2014/07/18(金) 21:11:29.22ID:CAlJujN8std::common_type<int<bool>>::typeみたいにSfinaeで便利につかえるやつ
0758デフォルトの名無しさん
2014/07/19(土) 00:17:38.31ID:AQ8sn0hTなわけねーだろ
0759デフォルトの名無しさん
2014/07/19(土) 00:27:34.27ID:OIynjZC4longに入らない糞VCは淘汰されるべき
0760デフォルトの名無しさん
2014/07/19(土) 00:30:43.58ID:Yw2Estsc0761デフォルトの名無しさん
2014/07/19(土) 00:35:23.80ID:AQ8sn0hT0762デフォルトの名無しさん
2014/07/19(土) 00:37:17.59ID:yrAJEjUL世の中にいくらでもある
0763デフォルトの名無しさん
2014/07/19(土) 00:49:15.46ID:TQHRbNLh0764デフォルトの名無しさん
2014/07/19(土) 01:08:46.62ID:AQ8sn0hTソース内の共通のヘッダのその糞コンパイラしか通らない場所でuintptr_tを適切な型にtypedefするだけでいいだろ。
0765デフォルトの名無しさん
2014/07/19(土) 02:08:36.84ID:Uu8pPwAp0766デフォルトの名無しさん
2014/07/19(土) 02:22:16.49ID:Vm5mnqEX0767デフォルトの名無しさん
2014/07/19(土) 03:17:01.77ID:0s6Yl60Vlong kuso;
void* ptr;
} unko;
unko.ptr = hoge;
fuga = unko.kuso;
これじゃだめ?
0768デフォルトの名無しさん
2014/07/19(土) 06:35:09.81ID:xOXvGf1s8bit,16bitではダメなんだろうけど
0769デフォルトの名無しさん
2014/07/19(土) 07:00:13.73ID:AQ8sn0hT64bitでもな
0770デフォルトの名無しさん
2014/07/19(土) 07:07:03.96ID:AQ8sn0hT何がしたいの?
>>768
ああ、勘違いしてたかも。その頃のコンパイラがsize_tに対応してるかはさておきsize_tにポインタ入れてもオーバーフローする事はないんじゃない?
0771デフォルトの名無しさん
2014/07/19(土) 08:58:10.39ID:xOXvGf1s64bit時はsize_tがunsigned longだったので、それは大丈夫だった
ちなみにuintptr_tなんて知らなかった
H8ファミリのアドバンスドモードはアドレスは32bitだけどsize_tは16bit
0772デフォルトの名無しさん
2014/07/19(土) 08:58:36.27ID:SDAdo38b0773デフォルトの名無しさん
2014/07/19(土) 09:28:35.15ID:TVhA1aeD0774デフォルトの名無しさん
2014/07/19(土) 09:29:26.02ID:TVhA1aeD0775デフォルトの名無しさん
2014/07/19(土) 09:36:15.56ID:IWYq98T00776753
2014/07/19(土) 12:04:36.94ID:f86ObGV1string<double>はlist<vector<double>>を便利にしたものだと思うのですよ。
あとデストリビューションは確率分布の英語訳です
0777デフォルトの名無しさん
2014/07/19(土) 12:06:10.98ID:O++5YktW気のせいです
確率分布に関しては一様分布から自前で実装するのが普通
0778デフォルトの名無しさん
2014/07/19(土) 12:08:12.91ID:f86ObGV1なるほどー、確率分布を計算しないでもサンプリングはできるんですね。
勉強になりました。
list<vector<double>>についてもよろしくお願いします。
0779デフォルトの名無しさん
2014/07/19(土) 12:54:12.69ID:MpBDR/wJstring<double>があったとしても似てるといえるのはvector<double>であって
list<vector<double>>とは全く違うぞ
0780デフォルトの名無しさん
2014/07/19(土) 13:02:51.88ID:HDcv4V4xstringは文字列のリストじゃないですか。
文字列をvector<double>とするとlist<vecotr<double>>になりますね。
0781デフォルトの名無しさん
2014/07/19(土) 13:03:30.41ID:Vm5mnqEX0782デフォルトの名無しさん
2014/07/19(土) 13:06:27.27ID:HDcv4V4x長さ固定の文字列のリストのようなきがするんですが
0783デフォルトの名無しさん
2014/07/19(土) 13:10:51.86ID:Vm5mnqEXstd::vector<char>と一緒だ
0784デフォルトの名無しさん
2014/07/19(土) 13:31:48.02ID:7vXH8KFwID:HDcv4V4x
0785デフォルトの名無しさん
2014/07/19(土) 14:00:27.67ID:49sXT33z0786デフォルトの名無しさん
2014/07/19(土) 14:36:42.00ID:RJFTE+GY0787デフォルトの名無しさん
2014/07/19(土) 15:43:33.56ID:1Dfhl11w0788名無しさん@0新周年@転載は禁止
2014/07/19(土) 15:45:35.26ID:sK6c9bRWhttps://www.youtube.com/watch?v=kDfbXZZ15s4
0789デフォルトの名無しさん
2014/07/19(土) 20:07:35.84ID:sTmxVhyC32bitのWindowsはsizeo(time_t)が8bytes(64bit)になったんだよね。
いまだに4bytes(32bit)の32bit Linuxは残念だ。それだけが、残念。
0790デフォルトの名無しさん
2014/07/19(土) 21:24:39.92ID:vfUrh3Ml0791デフォルトの名無しさん
2014/07/20(日) 09:59:40.08ID:9FmAbioDコンピュータのしくみ(’14)
第15回 コンピュータの将来
担当講師:岡部 洋一(放送大学長)
https://twitter.com/__obake/status/171193006379118592
改訂回って書かれてるけど今年は何が違うんだろ
http://www.ouj.ac.jp/hp/kamoku/H26/kyouyou/B/joho/1570102.html
15 今後の発展 (第11章) 【改訂回】
コンピュータは今までのようにどんどん進化していくのか。
何らかの限界があるのかといったコンピュータの進化論と合わせて、将来のコンピュータについて概説する。
【キーワード】
コンピュータ、進化、スケール則、汎用コンピュータ、専用コンピュータ
前は過去の番組が無料で見れてたけど今は見れなくなってるね
http://www.moge.org/okabe/lectures/computer/
http://www.moge.org/okabe/temp/computer2014.pdf
0792デフォルトの名無しさん
2014/07/20(日) 10:03:03.22ID:S7UqHs8vhttps://twitter.com/__obake/status/490006817574248448
0793デフォルトの名無しさん
2014/07/20(日) 20:00:48.67ID:X/PXfUWh0794デフォルトの名無しさん
2014/07/21(月) 11:56:50.56ID:d2ZNMTAr0795デフォルトの名無しさん
2014/07/21(月) 12:50:18.08ID:mYM6Tgvw最近の家庭用PCはもう当時のスパコンの能力は超えてるから改訂?
0796デフォルトの名無しさん
2014/07/21(月) 13:45:22.92ID:S8fE5fJF0797デフォルトの名無しさん
2014/07/21(月) 17:49:36.54ID:d29c7r1+stringはそういう仕様無いからvector<char>ではないんじゃない?
0798デフォルトの名無しさん
2014/07/21(月) 18:01:04.80ID:258Qrgwdhttp://codepad.org/tPcCdfqS
vector の派生かどうかはわからないけれども、
これをお手軽に実現したいのなら、連続するメモリ空間に展開しているんじゃないかな‥
0799デフォルトの名無しさん
2014/07/21(月) 18:14:39.22ID:su0Tmyz40800デフォルトの名無しさん
2014/07/21(月) 18:19:07.58ID:d29c7r1+>C++11で正式に連続性が保証
なんてこった、ホントだ知らんかったw
0801KUSO KOTE ◆unko./w.Osri
2014/07/21(月) 18:21:33.15ID:Ku7uPJru連続じゃなかったっけ
----ISO/IEC 14882:2011 21.4.1p5
The char-like objects in a basic_string object shall be stored contiguously
0802KUSO KOTE ◆unko./w.Osri
2014/07/21(月) 18:22:13.73ID:Ku7uPJru0803デフォルトの名無しさん
2014/07/21(月) 18:26:50.85ID:258Qrgwd0804デフォルトの名無しさん
2014/07/21(月) 18:26:57.03ID:nI+eBqTg0805デフォルトの名無しさん
2014/07/21(月) 18:28:05.51ID:o5z7JOEW0806デフォルトの名無しさん
2014/07/21(月) 21:18:39.98ID:3nqQLRBxdataは1998からあるのだが
0807デフォルトの名無しさん
2014/07/21(月) 21:36:35.46ID:dhQPcixf11から導入されたのはそれらの呼び出しの定数時間保証
=メンバ関数呼び出し時に内部データを連続領域にコピーして返す実装の禁止
=内部データを連続領域で保持する実装の要求
0808デフォルトの名無しさん
2014/07/21(月) 22:10:58.47ID:m69vy/uTcのapiと連携するのが楽になった。
0809デフォルトの名無しさん
2014/07/22(火) 00:04:22.03ID:Vdixnqeyそうか?
Cインタフェースならoperator[]で事足りね?
0810デフォルトの名無しさん
2014/07/22(火) 00:08:17.50ID:Dz34/rA10811デフォルトの名無しさん
2014/07/22(火) 00:23:29.66ID:Vdixnqeyvector<char> a(100);
strcpy(&a[0], "abc");
0812デフォルトの名無しさん
2014/07/22(火) 00:39:30.98ID:Dz34/rA10813デフォルトの名無しさん
2014/07/22(火) 00:41:35.78ID:Vdixnqeyvectorに関してのメモリ連続性は03で文書化されてたよ。
0814デフォルトの名無しさん
2014/07/22(火) 00:44:54.35ID:XmTqIxPz0815デフォルトの名無しさん
2014/07/22(火) 00:49:01.75ID:LkWjPyuUkwsk
俺も03時点で規格化されていると思ってたから気になります!
0816デフォルトの名無しさん
2014/07/22(火) 01:04:13.93ID:oXIwm1js1st Editon 1998
vector: dataなし
string: c_str, dataあり
2nd Editon 2003
vector: &v[n] == v[0] +nの保証を追加
3rd Editon 2011
vector: data追加
string: dataがc_strと同じに。
&*(s.begin() + n) == &*s.begin() +nの保証を追加
0817片山博文MZ悪魔崇拝 ◆T6xkBnTXz7B0
2014/07/22(火) 01:06:07.06ID:zJWBojIk0818デフォルトの名無しさん
2014/07/22(火) 01:08:47.83ID:LfybK2en標準のstd::vector, std::basic_stringの話をしてください
0819デフォルトの名無しさん
2014/07/22(火) 01:15:16.48ID:7219qbQLこんなところに書いてないで直接stackoverflowに書いてこいよ
0820デフォルトの名無しさん
2014/07/22(火) 02:00:01.16ID:XmTqIxPzアドレスを抽出する確定的なメンバー関数が用意されてないかっただろ
昔の規格でもコンパイラが通るのは非常にまずいのだよ
0821デフォルトの名無しさん
2014/07/22(火) 02:02:30.36ID:Xum8Qzge>アドレスを抽出する確定的なメンバー関数が用意されてないかっただろ
oprator[]()でなにかご不満が?
0822デフォルトの名無しさん
2014/07/22(火) 02:07:00.41ID:Vdixnqeyoperator[]でダメな理由は?
0823デフォルトの名無しさん
2014/07/22(火) 02:07:57.46ID:Vdixnqey0824デフォルトの名無しさん
2014/07/22(火) 02:24:04.66ID:qs+WQu09幾度も放映しているな
0825デフォルトの名無しさん
2014/07/22(火) 02:58:35.24ID:XmTqIxPz取っているのはスマートではないよ
0826デフォルトの名無しさん
2014/07/22(火) 03:04:14.54ID:XmTqIxPz0827デフォルトの名無しさん
2014/07/22(火) 06:02:56.71ID:7219qbQL今からC++03より前の規格参照してライブラリ作るやつなんていないだろうし
0828デフォルトの名無しさん
2014/07/22(火) 06:46:06.31ID:DwkuFwbx[]で起きて11で追加されたdata()なら回避できるバグ
というのが何なのか教えてはもらえないだろうか
0829デフォルトの名無しさん
2014/07/22(火) 07:22:22.04ID:d6XRxtMh0830デフォルトの名無しさん
2014/07/22(火) 07:31:57.76ID:DRWzN1pt0831デフォルトの名無しさん
2014/07/22(火) 07:36:27.72ID:7219qbQL0832デフォルトの名無しさん
2014/07/22(火) 07:55:41.90ID:2Rm5dE3g空の時にdata()は適当なポインターを返してミスに気づかないことがあるのかー。
data()こそバグの温床だね うんうん。
0833デフォルトの名無しさん
2014/07/22(火) 08:02:49.84ID:YxIecBAI0834デフォルトの名無しさん
2014/07/22(火) 08:06:20.65ID:gLVnM0Vt0835デフォルトの名無しさん
2014/07/22(火) 08:08:46.89ID:BNIwdJxa0836デフォルトの名無しさん
2014/07/22(火) 08:26:31.41ID:1VMWpZ780837デフォルトの名無しさん
2014/07/22(火) 10:25:09.85ID:z9lahGhQ0838デフォルトの名無しさん
2014/07/22(火) 10:28:45.99ID:e98fz3Lnほらいたぞ>>837
0839デフォルトの名無しさん
2014/07/22(火) 12:10:14.29ID:XmTqIxPzdata() があるかないかで vector の領域が連続である環境かどうかきっちり把握できる
0840デフォルトの名無しさん
2014/07/22(火) 12:17:44.45ID:XmTqIxPz0841デフォルトの名無しさん
2014/07/22(火) 12:41:48.45ID:Q4Gbe4KRそんな環境は存在したのかい?
みんな&v[1]=&v[0]+1 を期待して使っていたのに仕様上の保証が無かったので追加したわけだけれど
バグの温床と言われてもね
0842デフォルトの名無しさん
2014/07/22(火) 16:41:04.62ID:wwmjqdAW言いたい事はわかった。
確かに、data()の有無で簡単に見分けられる点は利点だね。
でも、バグの温床になるという主張は通らないと思う。
実際どういうバグになるのか教えてほしい。
0843デフォルトの名無しさん
2014/07/22(火) 17:51:11.28ID:d6XRxtMhmsvcがしてくれるんで面倒だったのだけど
0844デフォルトの名無しさん
2014/07/22(火) 18:42:13.90ID:1+XnpiPT0845デフォルトの名無しさん
2014/07/22(火) 18:48:53.87ID:7SenP8Gsただしat()の場合はout_of_rangeを投げろとしか書いてない
まあVCの場合イテレータに範囲外チェックが付いてるからな
0846デフォルトの名無しさん
2014/07/22(火) 22:10:58.50ID:C/6ZBKHs手元にVC++無いから確認出来ないけどassertでチェックされてるんじゃない?手元のgnuのlibstdc++はノーチェックLLVM/Clangはプリフロセッサマクロで有効にした場合のみassertが入ってた
0847デフォルトの名無しさん
2014/07/23(水) 00:09:59.72ID:kXd0VYSvdefineでチェックしないように出来たはず
0848デフォルトの名無しさん
2014/07/23(水) 00:33:02.89ID:tGsBfAr4VC++ 2013 CTP Debug / 14 CTP2
0849デフォルトの名無しさん
2014/07/23(水) 00:41:11.44ID:3zspOrimhttp://msdn.microsoft.com/ja-jp/library/aa985965.aspx
0850デフォルトの名無しさん
2014/07/24(木) 00:42:57.05ID:dgV+vw+iClass **class;
class = new Class*[5];
class[0] = new Class(・・・);
・・・
delete class[0];
delete [] class;
これ以外にスマートなやり方あるかな
0851デフォルトの名無しさん
2014/07/24(木) 00:47:14.53ID:4t+fFG8a0852デフォルトの名無しさん
2014/07/26(土) 00:12:24.27ID:hFYKSO2xさっちん 発狂しちゃうよ?
0853デフォルトの名無しさん
2014/07/26(土) 00:31:28.35ID:vX+zD2iO馬鹿なの?タヒぬの?
0854デフォルトの名無しさん
2014/07/26(土) 00:43:31.08ID:6NmHP0zdU+200B(ZWSP)文字を変数名に含めるとあたかも
キーワードと同じ名前が使えているように見えるな。
馬鹿には見えないコピペという嫌がらせとして使える。
0855デフォルトの名無しさん
2014/07/26(土) 01:33:06.15ID:Xdk7ISQK馬鹿なの?タヒぬの?
0856デフォルトの名無しさん
2014/07/26(土) 01:40:54.35ID:vX+zD2iO馬鹿なんだねタヒんじゃうんだろうね?
0857デフォルトの名無しさん
2014/07/26(土) 01:56:21.16ID:Xdk7ISQKアスペ?池沼?しぬの?
0858デフォルトの名無しさん
2014/07/26(土) 02:10:42.35ID:vX+zD2iOタヒななきゃ治らない不治の病だな
0859デフォルトの名無しさん
2014/07/26(土) 07:43:34.03ID:Fh6+kzNLそれだけの情報で最適解を問われても・・・
GoFのデザインパターンとか読んでみたら
0860デフォルトの名無しさん
2014/07/26(土) 07:54:10.78ID:h/TRjXuF複製する必要があるとしたら、それはクラス自体やプログラムの設計に
欠陥があるんじゃないだろうか?
0861デフォルトの名無しさん
2014/07/26(土) 08:06:09.30ID:ZVICdgrk0862デフォルトの名無しさん
2014/07/26(土) 10:26:59.83ID:Wi1QFEHO素直にreserveしたvectorにpush_backするほうが速さも含めたあらゆる面で優れているんだがな
0863デフォルトの名無しさん
2014/07/26(土) 10:58:55.36ID:EislOxX9そんでspringとかDIで生成する
0864デフォルトの名無しさん
2014/07/26(土) 13:21:08.28ID:WST624mXというのが有りますが、Visual Studio のC++(CLR使わない)でも
同じようなこと出来ますか?メッセージをキャプチャーしたいのです。
0865デフォルトの名無しさん
2014/07/26(土) 13:24:38.00ID:DTo922cR0866デフォルトの名無しさん
2014/07/26(土) 13:46:59.00ID:WST624mX有難うございます。さっそく調べてみます。
0867デフォルトの名無しさん
2014/07/26(土) 14:37:59.36ID:Xdk7ISQKエディットボックスを使用するためのクラスがあるとすると
複数のエディットボックスを使用するために必要だろ
0868864
2014/07/26(土) 14:47:42.51ID:WST624mXあるプロセスに送られる全てのメッセージをフックしたいのですが、
どこかに良いサンプルあれば教えてください。探しているのですが
見つかりません。
0869デフォルトの名無しさん
2014/07/26(土) 17:44:34.59ID:h/TRjXuFひでぇ例えだなぁ、それってコンストラクタで全部セッティングする必要がどこにあるんだ?
0870デフォルトの名無しさん
2014/07/26(土) 18:01:14.07ID:Xdk7ISQKただの例えなんだから必要あるないじゃないだろ
○○を使用するためのクラスがあるとすると
複数の○○を使用するために必要だろ
と自分で○○の部分を読み替えできないのか?
エディットボックスによって親が変わるからコンストラクタで設定とか想定できないのかよ
これも例えだからずれた突っ込みすんなよ?
0871デフォルトの名無しさん
2014/07/26(土) 22:54:33.55ID:h/TRjXuFずれた例えをしておいて「俺はズレてるから突っ込まれても困る(キリッ」とか甘え過ぎだな…
0872デフォルトの名無しさん
2014/07/27(日) 00:32:33.88ID:QPDAOaP0どう見てもお前が捻くれてるんだが
0873デフォルトの名無しさん
2014/07/27(日) 02:33:35.19ID:/na8DLgf必要性のないコード例は禁止あるよ
0874名無しさん@0新周年@転載は禁止
2014/07/28(月) 17:50:46.89ID:i/rvh4PYhttps://www.youtube.com/watch?v=kDfbXZZ15s4
0875デフォルトの名無しさん
2014/07/28(月) 21:19:25.27ID:XSb707Vxいくらそれらの中で一番アダルトビデオ好きな奴が多いC/C++erのスレでもな...
0876デフォルトの名無しさん
2014/07/28(月) 21:45:01.88ID:vzbhE8SKアダルトはプログラム関係ないだろ
むしろ二次元に流れてる分少ないぐらいだ
0877デフォルトの名無しさん
2014/07/28(月) 22:33:16.37ID:tepR/B4V0878デフォルトの名無しさん
2014/07/28(月) 23:51:18.53ID:+VSel65Uとりあえず構造体をクラスにするでok?
0879デフォルトの名無しさん
2014/07/29(火) 00:05:39.78ID:Br1WLOnzクラスにするかどうかはパラダイム選択の問題では?
オブジェクト指向で再設計だな
0880デフォルトの名無しさん
2014/07/29(火) 00:48:54.91ID:eQiQakEiグローバルな名前空間じゃないってだけでもメリット
0881デフォルトの名無しさん
2014/07/29(火) 01:30:25.07ID:VigjQVAXメインプロジェクトにファイルをコピーしてプロジェクト固有の処理が必要なら追加
結果メインプロジェクトの個数分機能プロジェクトの.h.cpp.rcコピーが必要
ってやってるんだがもっといいやり方無いかな?
例えば
リスト構造を使用するプロジェクトがある
メインプロジェクトにコピー
→メインプロジェクト固有の構造体メンバ追加して使用する
って感じで使ってる
他の人はどんな感じでやってる?
0882デフォルトの名無しさん
2014/07/29(火) 01:42:49.49ID:C5tbuDhu0883デフォルトの名無しさん
2014/07/29(火) 03:25:40.79ID:IsBE7wYX>構造体をクラスにするでok?
Yes
C++に構造体というものは無いので
0884デフォルトの名無しさん
2014/07/29(火) 04:47:04.23ID:ufPt6u02独立性の高いプロジェクトなら
static な .a or .lib や
.so or .DLL 化してしまって
メインプロジェクト側は .h だけ使う
0885デフォルトの名無しさん
2014/07/29(火) 07:46:09.55ID:IygmE6D0https://github.com/HatsuneMiku/FontGlyph/tree/master/src
0886デフォルトの名無しさん
2014/07/29(火) 18:33:50.52ID:4ECyUkwPC++に構造体はあるよ,メソッドも定義できる構造体だけど
0887デフォルトの名無しさん
2014/07/29(火) 18:52:39.13ID:BJmMNc0a0888デフォルトの名無しさん
2014/07/29(火) 18:53:00.43ID:rBtE9P3L0889デフォルトの名無しさん
2014/07/29(火) 18:54:31.65ID:H8EUDzLQ0890デフォルトの名無しさん
2014/07/29(火) 21:17:01.94ID:6Uab2rmrどうしてこう、息を吸って吐くようにウソをつくのか
0891デフォルトの名無しさん
2014/07/29(火) 21:25:11.08ID:OGgZvd6aどこが嘘か指摘できない無能
0892デフォルトの名無しさん
2014/07/29(火) 21:26:09.46ID:BJmMNc0a0893デフォルトの名無しさん
2014/07/29(火) 21:35:16.95ID:3+sGdxzkそれだと構造体はクラスのすべての機能を持つということになってしまうよ
クラス is-a 構造体 でしょ。クラスの方が構造体の機能+αを持っているのだから
0894デフォルトの名無しさん
2014/07/29(火) 21:39:28.79ID:P21nvuPZ0895デフォルトの名無しさん
2014/07/29(火) 21:41:05.16ID:3+sGdxzk0896デフォルトの名無しさん
2014/07/29(火) 21:47:11.14ID:OGgZvd6a違いはデフォルトのアクセス指定子しかないよ
0897デフォルトの名無しさん
2014/07/29(火) 21:48:32.29ID:VigjQVAXプライベート
パブリック
0898デフォルトの名無しさん
2014/07/29(火) 22:02:39.64ID:+2235k/1public デフォルトなのが struct
0899デフォルトの名無しさん
2014/07/29(火) 22:12:01.99ID:kX0Yuk84こういうことを言う奴に限って「アクセス指定子」が
どこのアスセス指定子のことを指すのか絶対に説明できない不思議
0900デフォルトの名無しさん
2014/07/29(火) 22:17:24.86ID:sU+hd/26>>893が何か言った
0901デフォルトの名無しさん
2014/07/29(火) 22:23:00.44ID:SNz2hPcW割とまじめに「どこの」の意味がわからないので
解説希望
0902デフォルトの名無しさん
2014/07/29(火) 22:32:35.41ID:P21nvuPZ絶対出来ないと断言できる理由は?
0903デフォルトの名無しさん
2014/07/29(火) 23:27:29.20ID:EBj+gGC4メンバーと継承時のベースグラスだろ
0904デフォルトの名無しさん
2014/07/29(火) 23:38:48.41ID:EuLIBRAq>クラス is-a 構造体 でしょ。クラスの方が構造体の機能+αを持っているのだから
ISO/IEC 14882:2011はおろか2003にも無い仕様だね
その脳内妄想はやめた方がいい
0905デフォルトの名無しさん
2014/07/29(火) 23:42:41.66ID:+2235k/1前者はわかるけど、後者ってどういうこと?
struct A : class Base { };
class A : struct Base { };
どこの議論かが見えない
0906デフォルトの名無しさん
2014/07/29(火) 23:48:49.24ID:sObRQZBs0907デフォルトの名無しさん
2014/07/29(火) 23:49:56.95ID:VlFdNbFI君はクラスの派生をしたことがないのか?
class d : public b ←このパブリック
{
};
0908デフォルトの名無しさん
2014/07/29(火) 23:50:12.33ID:P21nvuPZキミに残されている選択肢はクラスとはC++のclass, struct,
構造体とはCのstructと言い張る事だけだ
0909デフォルトの名無しさん
2014/07/29(火) 23:53:09.78ID:+2235k/1b が struct の場合
class d : b {} と
class d : public b {}
は等価なことなの? という話
デフォルトのアクセス指定子 からの流れ
0910デフォルトの名無しさん
2014/07/30(水) 00:00:09.10ID:r3jA/z7W「デフォルトがpublicなだけ」とだけ言われると
少なくない人がそう勘違いするけど違う。
struct s : x {};
と
struct s : public x {};
が同じ
0911デフォルトの名無しさん
2014/07/30(水) 00:03:24.06ID:SCvOp0spthx そっち側か。 すっきりした
やったことないパターンだから気にもしてなかったけど、勉強になった ありがとね
0912デフォルトの名無しさん
2014/07/30(水) 00:13:09.65ID:3Vj1p70/構造体の消し忘れが1箇所あるよね?
0913デフォルトの名無しさん
2014/07/30(水) 00:57:42.39ID:Lx6eGAbrC++の構造体はクラスの一種って扱いなんだよなあ
0914デフォルトの名無しさん
2014/07/30(水) 02:04:09.56ID:p8tf5nVw0915デフォルトの名無しさん
2014/07/30(水) 05:07:55.67ID:ycWHhajYいいかげん
息を吸って吐くようなウソをつくのはやめた方がいい
0916デフォルトの名無しさん
2014/07/30(水) 07:02:31.10ID:bupIlqa60917デフォルトの名無しさん
2014/07/30(水) 07:09:00.46ID:B3MDpURsだいたいあってるだろ
構造体に毛が生えただけ
0918デフォルトの名無しさん
2014/07/30(水) 10:23:04.53ID:w2VcxxPr0919デフォルトの名無しさん
2014/07/30(水) 10:32:14.94ID:pnS9wqNv0920デフォルトの名無しさん
2014/07/30(水) 11:27:43.38ID:w2VcxxPr0921デフォルトの名無しさん
2014/07/30(水) 13:48:56.04ID:SvzBKPntC++のstructはCのstructと同じようにも使えるんだから
構造体機能を含んでいるでいいじゃん
0922デフォルトの名無しさん
2014/07/30(水) 13:56:49.46ID:3y+toC8l0923デフォルトの名無しさん
2014/07/30(水) 14:26:53.41ID:0chgaDSZ環境依存OK
0924デフォルトの名無しさん
2014/07/30(水) 17:56:52.23ID:bRUL0BFvvoid func(string *array)
{
int s = _countof(array); // エラーする
}
void main()
{
string array[3] = {"000","111","222"};
int s = _countof(array); // 3になる
func(array);
}
_countofで配列要素の数を取得したいのですが、なぜfunc()内では、
_countofが使えないのでしょうか?どうすればfunc()内で要素数3
が得られますか?
0925デフォルトの名無しさん
2014/07/30(水) 17:59:51.19ID:g1c+taJs{
int s = _countof(array); // エラーする
}
0926デフォルトの名無しさん
2014/07/30(水) 18:03:56.75ID:0jrgScMV0927デフォルトの名無しさん
2014/07/30(水) 18:04:43.33ID:g1c+taJsvoid func(string (&array)[3])
{
int s = _countof(array); // OK!
}
0928デフォルトの名無しさん
2014/07/30(水) 18:05:23.75ID:bRUL0BFvレスありがとうございます。教えてもらった方法でも、同じエラー出ます。
0929デフォルトの名無しさん
2014/07/30(水) 18:07:15.82ID:bRUL0BFvうまく行きました。ありがとうございます。
要素数が3以外の一般の場合はどうすればよいでしょうか?
0930デフォルトの名無しさん
2014/07/30(水) 18:15:35.00ID:g1c+taJstypedef
0931デフォルトの名無しさん
2014/07/30(水) 18:24:08.74ID:hDem8HYV# re: [C++]_countof マクロ 2008/03/08 13:14 アキラ
C++0xのconstexprがはやくほしいなー、と思いました
コンパイル時に実行される関数を作れたほうが手っ取り早いw
template <class T, size_t Size>
constexpr size_t count_of(const T(&ar)[Size])
{
return Size;
}
int ar[3];
int arr[count_of(ar)]; // arの要素数で新たな配列作成
さよなら変態テクニックw
http://blogs.wankuma.com/melt/archive/2008/03/08/126828.aspx
0932デフォルトの名無しさん
2014/07/30(水) 18:55:28.27ID:bRUL0BFvレスありがとうございます。試してみたのですが、
int arr[count_of(ar)];
のところで、
template<class T, size_t Size> size_t coont_of(const T (&ar)[Size])
エラー:関数呼び出しでは、定数式に定数値が必要です。
と出るんですが。
0933デフォルトの名無しさん
2014/07/30(水) 19:04:17.72ID:Lx6eGAbrC/C++の配列を配列のまま関数に渡すには、関数の仮引数でも要素数を指定するしかない(>>927)
だが普通は渡されるほうに要素数を指定したくない、その場合ポインタになり関数側では長さが分からなくなる
なので、
・std::string配列の代わりに std::vector<std::string> を使う
・要素数も引数として渡す
上はC++の機能を積極的に使うパターン
下はC言語から使われてるパターン
0934デフォルトの名無しさん
2014/07/30(水) 19:17:02.22ID:SvzBKPnt「くだらない定義」と言ったが「定義はくだらない」とは言ってない
役立たずの規格バカはすっこんでろ
0935デフォルトの名無しさん
2014/07/30(水) 19:31:33.20ID:qwpIAm/n定義がくだらないって何だよw
0936デフォルトの名無しさん
2014/07/30(水) 19:38:17.12ID:bRUL0BFv解説ありがとうございました。
vectorを使うようにします。
vectorは便利なのは分るのですが、二次元配列の代わりに使う場合、
std::vector<std::vector<int>> v;
みたいな書き方が、Cになじみの深い私には今一つ見栄えが良くないなあと思います。
こういう場合のvectorをスッキリ書く方法ありますか?
0937デフォルトの名無しさん
2014/07/30(水) 19:40:05.65ID:IgNsWgE5一つ前のレスくらい読めよ
0938デフォルトの名無しさん
2014/07/30(水) 19:45:54.16ID:gr9rcF4R行列ならmatrix、多次元配列ならmulti_array
てのがboostにある
0939デフォルトの名無しさん
2014/07/30(水) 19:46:43.63ID:EhyLj3aHvectorはそういう約束になってるんだ。そのままつかえよ。
初期化も一行できるし多少のことは目をつぶれよ。
初期化も含めた2次元配列はCでは一行で完了しない。
0940デフォルトの名無しさん
2014/07/30(水) 19:52:14.86ID:g1c+taJs>初期化も含めた2次元配列はCでは一行で完了しない。
えっ
0941デフォルトの名無しさん
2014/07/30(水) 19:58:34.92ID:U3vqYHMy参考までに100×100のゼロ初期化されたdoubleの二次元配列の作り方を教えてください
0942デフォルトの名無しさん
2014/07/30(水) 20:04:26.14ID:EhyLj3aH#include <iostream>
#include <vector>
using namespace std;
int main() {
vector< vector<int> > v( 100, vector<int>(1000, 0) );
typedef vector<int> retu;
vector< retu > w( 100, retu(1000, 0) );
}
0943デフォルトの名無しさん
2014/07/30(水) 20:08:23.05ID:EhyLj3aH#include <iostream>
#include <vector>
using namespace std;
int main() {
int N=100;
typedef vector<double> dretu;
vector< dretu > vec( N, dretu(N, 0.0) );
cout<<"tatesize="<<vec.size()<<" yokosize="<<vec[0].size()<<endl;
cout<<"vec[0][0]="<<vec[0][0]<<endl;
return 0;
}
0944デフォルトの名無しさん
2014/07/30(水) 20:51:44.35ID:2L0zFGiEこういう糞コードを真顔で書く人って
頭おかしいんじゃないかと思う
0945デフォルトの名無しさん
2014/07/30(水) 21:01:22.80ID:W9PSXMzcどの点がクソ?
0946デフォルトの名無しさん
2014/07/30(水) 21:56:50.09ID:qwpIAm/n0947デフォルトの名無しさん
2014/07/30(水) 22:48:22.03ID:gCaS+ceb0948デフォルトの名無しさん
2014/07/30(水) 23:05:57.62ID:dNII6Xox0949デフォルトの名無しさん
2014/07/30(水) 23:13:49.89ID:XrVWbNH+> クラス is-a 構造体 でしょ。クラスの方が構造体の機能+αを持っているのだから
今更だがワロタw
なんだ+αって?
0950デフォルトの名無しさん
2014/07/31(木) 00:57:41.24ID:jWkZT9V7環境はx86_64、linux、gcc
0951デフォルトの名無しさん
2014/07/31(木) 00:59:41.70ID:KWL6BjZO嫌われ者のビットフィールド使うって手も
0952デフォルトの名無しさん
2014/07/31(木) 01:10:02.84ID:IQWxjy8Bべつにそれが24bit整数が存在しない理由にならんよ
0953デフォルトの名無しさん
2014/07/31(木) 01:10:33.17ID:jWkZT9V7やっぱり自分で作るしかないんですかね
ググっても各自作ってるぽい
よく言われる車輪の再発明は云々……
0954デフォルトの名無しさん
2014/07/31(木) 01:13:24.52ID:KWL6BjZOだけど
32ビットアクセスのほうが
メモリケチりたいだけ?
0955デフォルトの名無しさん
2014/07/31(木) 01:15:34.62ID:yKtyQ3zg0956デフォルトの名無しさん
2014/07/31(木) 01:25:23.81ID:u2zE/A7kCPUのレジスターってのを調べてご覧。
多分演算結果を24bitで格納したいからそんなことを考えたんだろうけど。
32bit演算して24bitで格納すれば良いだけの話。
0957デフォルトの名無しさん
2014/07/31(木) 01:25:49.03ID:jWkZT9V7とりあえず自分で実装してみます
0958デフォルトの名無しさん
2014/07/31(木) 01:28:33.56ID:u2zE/A7kかなりスピードが遅くなるはず。
基礎を理解することが大事だよ。
0959デフォルトの名無しさん
2014/07/31(木) 01:34:39.18ID:jWkZT9V7そうです24bitづつ格納したいだけなんで、
自分でやるならどうってことはないんですが、
もしint24_tがあるなら都合が良いなと思ったまでで。
>>958
速度について了解です。
0960デフォルトの名無しさん
2014/07/31(木) 01:35:36.12ID:KWL6BjZO0961デフォルトの名無しさん
2014/07/31(木) 01:36:02.12ID:jWkZT9V7サーセン
0962デフォルトの名無しさん
2014/07/31(木) 01:44:28.73ID:m9V5jEgt0963デフォルトの名無しさん
2014/07/31(木) 02:06:12.37ID:KWL6BjZO間違ったりするほうが・・・
0964デフォルトの名無しさん
2014/07/31(木) 02:15:59.96ID:jWkZT9V7有難うございました
0965デフォルトの名無しさん
2014/07/31(木) 03:11:53.88ID:FOk5tvdO何ビット目から何ビットを何型として取得する
こんなん自作した方がいいよ
0966デフォルトの名無しさん
2014/07/31(木) 03:20:31.93ID:LPUMyosE0967デフォルトの名無しさん
2014/07/31(木) 04:01:17.09ID:I9wcB7pD0968デフォルトの名無しさん
2014/07/31(木) 15:28:01.76ID:rIdc6Eew0969デフォルトの名無しさん
2014/07/31(木) 15:54:35.55ID:bpHeI3uWググるといろいろ出てくるのですが、
一番お勧めの方法は何でしょうか?
0970デフォルトの名無しさん
2014/07/31(木) 16:00:09.40ID:/YLgyhx60971デフォルトの名無しさん
2014/07/31(木) 16:07:24.34ID:yKtyQ3zgBOOL B = b;
0972デフォルトの名無しさん
2014/07/31(木) 16:18:39.98ID:bpHeI3uW間違えていました。聞きたかったのはBOOLからboolの変換でした。
b=B;
とすると警告レベルW4で
warning C4800: 'BOOL' : ブール値を 'true' または 'false' に強制的に設定します (警告の処理)
が出るんです。
0973デフォルトの名無しさん
2014/07/31(木) 16:23:55.90ID:2lELiYdjBOOL B;
...
b = !!B;
0974デフォルトの名無しさん
2014/07/31(木) 16:24:12.74ID:zqI59uuY0975デフォルトの名無しさん
2014/07/31(木) 16:28:40.28ID:j4TPbz8e0976デフォルトの名無しさん
2014/07/31(木) 16:33:12.41ID:bpHeI3uWそのキャストをすると警告が出るんです。
前提としてはBOOLにはTRUEかFALSEのどちらかが必ず入っているとして
警告出さない方法ありますか?
0977デフォルトの名無しさん
2014/07/31(木) 16:45:28.83ID:v4Z6YiZZあらほんとだ申し訳ない
http://msdn.microsoft.com/ja-jp/library/b6801kcy.aspx
答えそのまま書いてあるね
0978デフォルトの名無しさん
2014/07/31(木) 16:47:23.28ID:FYG1BBi80979973
2014/07/31(木) 17:08:13.79ID:2lELiYdjTRUE と等しいか では TRUE/FALSE 以外の値の場合に false となるので
FALSEではないのか で判定し bool 化するとよさげ
B !=FALSE とか B !=0 とか !!B とか 記述の仕方は好きにして
0980デフォルトの名無しさん
2014/07/31(木) 17:38:21.95ID:bpHeI3uW有難うございます。
>TRUE と等しいか では TRUE/FALSE 以外の値の場合に false となるので
ということは、BOOL B にはTRUE/FALSEしか入れないとして、もしこれ以外の値なら
FALSEにしたい場合はTRUEと比較する
bool b = (B==TRUE);
で良いでしょうか?
0981デフォルトの名無しさん
2014/07/31(木) 17:43:00.82ID:v4Z6YiZZデバッガ使ってイミディエイトウィンドウで確認したら?
0982デフォルトの名無しさん
2014/07/31(木) 17:47:17.38ID:2lELiYdjBOOL で成功時に非0を返す と 成功時にTRUEを返す では雲泥の差なので、要注意だがね
※ Win32API のほとんどは 前者だったような???
0983デフォルトの名無しさん
2014/07/31(木) 17:56:49.76ID:2lELiYdj実質 INT としてつかってるぜ というのもある
0984デフォルトの名無しさん
2014/07/31(木) 18:07:32.61ID:GqatOQBv>>980
>>980
>>980
>>980
>>980
>>980
>>980
>>980
>>980
>>980
>>980
>>980
>>980
>>980
>>980
>>980
>>980
>>980
>>980
>>980
>>980
>>980
0985デフォルトの名無しさん
2014/07/31(木) 18:48:53.71ID:17Xd3Yqqダメ
b = B != FALSE;
0986デフォルトの名無しさん
2014/07/31(木) 19:03:00.14ID:kECANlkhという仕様は無視か
0987デフォルトの名無しさん
2014/07/31(木) 19:04:30.84ID:CiBvTkDB0988デフォルトの名無しさん
2014/07/31(木) 19:12:18.68ID:17Xd3Yqq0989デフォルトの名無しさん
2014/07/31(木) 19:15:56.30ID:17Xd3Yqq0990デフォルトの名無しさん
2014/07/31(木) 19:19:31.75ID:lno8ouMQもしこれ以外の値ならFALSEにしたいという仕様
を window 用で適用させるのは仕様としてそぐわないからやめておけ という主張が >>985
※ Windows は BOOL に TRUE と FALSE をつめてくるわけではなく
※ FALSE と それ以外をつめてくる というのが大半であるからだ
0991デフォルトの名無しさん
2014/07/31(木) 19:32:52.47ID:CsC+7eo50992デフォルトの名無しさん
2014/07/31(木) 19:36:04.26ID:GXINcJqA0993デフォルトの名無しさん
2014/07/31(木) 19:56:17.67ID:bPbJw8eT0994デフォルトの名無しさん
2014/07/31(木) 21:33:05.90ID:VIa3A75Oそれでよい。
だがその発想は常軌を逸しているのでやめたほうがいい
0995デフォルトの名無しさん
2014/08/01(金) 02:30:55.61ID:D0aaPCQP0996デフォルトの名無しさん
2014/08/01(金) 07:14:05.85ID:Otaa7YsK0997デフォルトの名無しさん
2014/08/01(金) 09:45:23.26ID:VcCQb1qo逆に釣るために反応してるだけだろ
0998デフォルトの名無しさん
2014/08/01(金) 10:17:41.56ID:CS2hb/Ws0999デフォルトの名無しさん
2014/08/01(金) 10:18:18.72ID:CS2hb/Ws1000小倉優子 ◆YUKOH0W58Q
2014/08/01(金) 10:18:47.74ID:CS2hb/Ws( ・∀・) 1000ならジュースでも飲むか
( )
し─J
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。