【初心者歓迎】C/C++室 Ver.95【環境依存OK】 [転載禁止]©5ch.io
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2015/02/14(土) 09:15:14.82ID:FDUkjNpdただしその場合、質問者は必ず環境を書きましょう。
◆ソースのインデントについて
半角空白やTABでのインデントはスレに貼ると無くなります。
そのため、アップローダーに上げるのも手ですが直接貼る場合は、
全角空白か に置換すると見栄えだけはよくなります。
【アップローダー】(質問が長い時はココ使うと便利)
http://codepad.org/ (コンパイルもできるし出力結果も得られる[]privateをチェック)
http://ideone.com/ (時間帯によってはcodepadが重い事があるのでここも利用)
前スレ
【初心者歓迎】C/C++室 Ver.94【環境依存OK】 [転載禁止]2ch.net
http://peace.2ch.net/test/read.cgi/tech/1417179292/
0002憲法に守られる在日スパイ・創価・ヤクザ
2015/02/14(土) 09:44:21.91ID:jU7Z8cXF注)自民党以外が在日から帰化したスパイ、またはその影響下にあると仮定してご覧ください。
よく言われる
失われた20年 → 約20年前 初めて自民党が単独過半数を割る(小沢の新生党が与党介入)※
失われた15年 → 約15年前 自公の連立政権が始まる (公明党の与党介入) /
※このとき、初めて80円/ドルという超円高誘導されて、日本の製造業は衰退・空洞化
=中国・韓国が台頭し始める。日本の技術者が、大量に韓国などに引き抜かれるようになる。
イオン(民主党・岡田家)や大型パチンコ店が、地方経済や商店街を食いつぶすための、
大店立地法が成立。在日パチンコ屋のCM・チラシが解禁・大型チェーン展開が始まる。
日本の学力低下が目的の「ゆとり教育」の本格導入。(後ろ2つは、17年前。)
※このときの羽田首相(新生党)の顔がモロに半島顔。
※このとき、小沢の新生党を全力で選挙支援したのが、創価学会といわれる。
※このとき、自民「単独」政権(公明抜きの単独2/3議席)の復活に、圧倒的不利な
比例選挙制度へ法改悪↓
2014総選挙の比例当選率
政党名 自民 公明 民主 維新 共産
比例区 68 26 35 30 20
合計数 291 35 73 41 21
比例当選率 23% 74% 48% 73% 95% ←※
共産・公明・維新は、比例制度を廃止すれば消滅w
参考)
民主党は、超円高誘導でパナソニックやシャープ、ソニーを潰す気だった?
http://www.youtube.com/watch?v=iG_oaqU0pEM
帰化朝鮮人ばかりが政治家を目指す国?日本
http://www.youtube.com/watch?v=CxIGOhFT4g8 続く
0003憲法に守られる在日スパイ・創価・ヤクザ
2015/02/14(土) 09:44:51.39ID:jU7Z8cXF小沢が430兆円
村山(旧社会党:この人も帰化?)内閣がプラス200兆円
トータル630兆円
(詳しくは日米構造協議で検索)
今ある借金は、これとその利息では?
小沢は、自民党時代に日本に爆弾を抱えさせた上に、そのバラマキ公共投資で得た
支持基盤をごっそり自民党から引き抜き(仲間を引き連れ離党)、
自民を単独過半数割れに追い込んだ。
そして、第3極政党(新生党→公明党)を介入させ、韓国や在日へ利益誘導してきた。
日本を借金大国にしたのは自民党だ!と、自分で仕込んだ火種を野党側から
追求する自作自演劇によって、民主党への政権交代につなげた。
※自民党以外の議員は、日本姓を名乗る帰化朝鮮人か、その影響下にあると仮定。
という流れではないでしょうか。
0004デフォルトの名無しさん
2015/02/14(土) 10:43:09.31ID:81zUaPG6argc--;
argv++;
0005デフォルトの名無しさん
2015/02/14(土) 11:23:41.71ID:EUuNKb/rコピー先にコピー元より狭い領域を指定するのもバカだしw
0006デフォルトの名無しさん
2015/02/14(土) 18:13:46.17ID:bwAzeASM正直、要らん仕様だと思うんだ
0007デフォルトの名無しさん
2015/02/14(土) 18:49:56.86ID:L7bxzS28っていうあれか
0008デフォルトの名無しさん
2015/02/14(土) 21:07:23.35ID:+QnWCZ/d13節丸ごと説明にかけてると思ったら実は14節テンプレートの
パーシャルオーダリング含めたC++言語仕様で最も難解な内容だったし。
Cのtgmath程度が健全なレベル。
0009デフォルトの名無しさん
2015/02/15(日) 01:40:34.87ID:GySGCLGyCの<tgmath.h>は誰もつかってない
これが真実
0010デフォルトの名無しさん
2015/02/15(日) 01:44:05.69ID:Yq9FTKtUプロトタイプは実装コードを解析して必要とするオーバーロード関数や外部識別子を持たせるようにするとかさ
0011デフォルトの名無しさん
2015/02/15(日) 02:09:09.33ID:+lcmmVEa0012デフォルトの名無しさん
2015/02/15(日) 02:28:18.83ID:KyJI8M6vブーメランって言いたければ言えば?
0013デフォルトの名無しさん
2015/02/15(日) 07:06:16.00ID:Qwk5nQv8もう、そうなってるとおもうよ、VC++ あたりはどうだかしらないが
ソース -> オブジェクト
オブジェクト + ライブラリ-> 実行形式
0014デフォルトの名無しさん
2015/02/15(日) 07:56:43.33ID:2lTOko0D・グローバルでセミコロンで終わる宣言の廃止
・クラス定義を変数宣言や関数のプロトタイプ宣言と一緒に行わない文法
この二つがあれば複数ファイルを同時にコンパイルできることはC#で実証されている
Javaのようにクラス名からそのファイルを探す仕組みは無くてもいい
0015デフォルトの名無しさん
2015/02/15(日) 09:09:37.81ID:+lcmmVEa普通 make するときは -j オプションつけるじゃん。速いから。
メジャーな IDE、VC や xcode は勝手にやってくれるし。
0016デフォルトの名無しさん
2015/02/15(日) 12:25:25.83ID:/CNeEnsGcutInStack.push(make_pair<cutInImageFileName,reverse>);
エラーが起きるんですがなんでかわかりません
0017デフォルトの名無しさん
2015/02/15(日) 12:36:26.48ID:lDLakZlT0018デフォルトの名無しさん
2015/02/15(日) 13:37:57.41ID:+ULz+cy7ありがとうございます。
0019デフォルトの名無しさん
2015/02/16(月) 14:20:55.97ID:L0EKTU4N0020デフォルトの名無しさん
2015/02/16(月) 18:07:52.66ID:93EvvdXC・・・
}
の時、
�@aが\0だったら抜ける
�Abが\0だったら抜ける
�B*aに*bを代入する
�Caを加算する
�Dbを加算する
�E・・・の実行
で合ってますかね。
0021デフォルトの名無しさん
2015/02/16(月) 18:17:52.25ID:swezBUYA4
5
1
6
0022デフォルトの名無しさん
2015/02/16(月) 18:28:13.80ID:zwe4WhUj*aが\0なら抜ける
a++, b++のタイミングは知らないが
いずれにせよ加算されてるはず
0023デフォルトの名無しさん
2015/02/16(月) 18:51:03.76ID:93EvvdXC(*a=*b)で条件が(*a)になって (*a) だけが評価されるようになるんですね。
代入の後に加算するから、加算した後の*aが\0だったら抜けるって事ですね。
はー、なるほど、目から鱗ですわ
0024デフォルトの名無しさん
2015/02/16(月) 19:14:18.46ID:9v9OeP8e後置++はそういう動き
002522
2015/02/16(月) 19:20:34.60ID:zwe4WhUjごめんごめん、多分誤解を与えてる。
> 代入の後に加算するから、加算した後の*aが\0だったら抜けるって事ですね。
加算も加えて書くと、代入→判断→加算ね。
判断の後に加算するから、ポインタはそれぞれ判断に使った位置の、一個後ろさすことになる。
002620
2015/02/16(月) 19:40:17.40ID:93EvvdXC後置++は式全体(この場合ifの判断も含む)を実行した後に加算されるって事ですね。
(*a=*b) で代入して、(*a)がfalseか判断して、if( )の式が終わった時点でa++,b++を実行って事ですね。
よく分かりました。勉強になりました。
0027デフォルトの名無しさん
2015/02/16(月) 19:50:52.03ID:OwoQ0wy7規定してるのは、「ここまでには加算が済んでいる」であって
「ここ以降で加算する」じゃない微妙なお話
0028デフォルトの名無しさん
2015/02/16(月) 22:59:12.48ID:DCT6jM0C副作用完了点については
ttps://www.jpcert.or.jp/sc-rules/c-exp30-c.html
とかを参照
あと部分式や関数の引数の評価順序は特に定められているものを
除いては規定されていないことも関連して覚えておくとよいです。
ttps://www.jpcert.or.jp/sc-rules/c-exp10-c.html
例)a = f() + g(); で a に代入されるのはいつでも f() と g() を加えたものだが、
f() と g() のどちらが先に実行されるかは決められていない。
0029デフォルトの名無しさん
2015/02/16(月) 23:13:48.56ID:6Hn+VZlkとやったとき、読んだ順に書いてくれないということ?
0030デフォルトの名無しさん
2015/02/16(月) 23:18:24.93ID:uhKkujbi0031デフォルトの名無しさん
2015/02/16(月) 23:49:38.04ID:m1gpJ7KB>特に定められているものを除いては
わざわざ探してきて url 貼ってるんだから読んでよ
0032デフォルトの名無しさん
2015/02/16(月) 23:57:02.61ID:0bcBlPt4003320
2015/02/17(火) 00:00:03.22ID:TDLatExy副作用完了点までにある式は、特に定められた評価順序が有る物以外は同じで、
左から右に実行されるとかが保証されていないって事ですね。
で、その特に定められた評価順序以外で、
左から右とか右から左みたいに評価順序に依存するような式は駄目って事ですね。
質問して良かったですよ。少し賢くなりました。
0034デフォルトの名無しさん
2015/02/17(火) 00:00:36.57ID:MxR2EwY1特に定められてないことについては同じ
0036デフォルトの名無しさん
2015/02/17(火) 04:01:39.41ID:Yc/tlv/fこれはCの場合はって事でいいんかな、
それともC++のoperator+も定まっていない?
定まっていない時は、operatorの種類は限定されている?
というのも、&&を利用したテクニックとしてよく
bool continue = true;
continue = continue && f1();
continue = continue && f2();
continue = continue && f3();
というコードを書くが、operatorの種類に関わらず定まっていないのなら、
continueが途中でfalseになったとしても、その後のf2やf3が環境によっては評価されてしまうからまずい書き方になる
0037デフォルトの名無しさん
2015/02/17(火) 08:02:04.71ID:HzudLjaJ演算子による
false & f(); はf()が評価されるが
false && f(); は評価されない
0038デフォルトの名無しさん
2015/02/17(火) 08:28:26.81ID:z7G8tE0vダメだろ
0039デフォルトの名無しさん
2015/02/17(火) 12:44:01.01ID:6GSUCG0Lc,c++で項の評価順が定まっているのは組み込みの && || , ? の四つの演算子
それ以外の組み込み演算子とオーバーロードしたoperatorの場合は定まっていない
0040デフォルトの名無しさん
2015/02/17(火) 13:25:14.02ID:fNnscWpfこれに"hello"と与えて"hello"と出力される保証はないということか?
0041デフォルトの名無しさん
2015/02/17(火) 13:30:38.88ID:fNnscWpf0042デフォルトの名無しさん
2015/02/17(火) 13:34:38.81ID:LvyQFEL3お"ぇ"
0043デフォルトの名無しさん
2015/02/17(火) 14:05:29.17ID:6GSUCG0L保証はない
ちなみにcでのこういうのも同じで保証はない
printf("%c%c%c%c%c", fgetc(fp), fgetc(fp), fgetc(fp), fgetc(fp), fgetc(fp));
>>42は正しく理解できていない人の典型的な例
その式は>>40と等価の式で実行結果的には余分な括弧はまったく無意味
0044デフォルトの名無しさん
2015/02/17(火) 14:27:48.03ID:iGz/Dczk括弧ぶち抜いて計算順序が不定になるの?
それ本当?
0045デフォルトの名無しさん
2015/02/17(火) 14:29:32.39ID:iGz/Dczk括弧で制御できるのは計算順序だけで、「計算に使われる個々の要素」がいつ評価されるかとは別の話だった。
すまん。44は忘れて。
0046デフォルトの名無しさん
2015/02/17(火) 15:00:05.33ID:gdHZDZHG今となっては評価順序確定的な方がメリット大きそう
0047デフォルトの名無しさん
2015/02/17(火) 16:01:39.12ID:Yc/tlv/f環境依存を増やすのは、動かしてみたらいけたという手法で×を貰う人がさらに増える事に繋がる
0048デフォルトの名無しさん
2015/02/17(火) 19:18:12.76ID:HzudLjaJとゴネる人たちをまとめて国際化規格にするための妥協の産物。
0049デフォルトの名無しさん
2015/02/17(火) 22:26:01.36ID:J4a0mND/struct A {
int *p; size_t s; int u;
};
なぜsizeof(struct A)が24になるのでしょうか。
私は20になると思ったのに。
0050デフォルトの名無しさん
2015/02/17(火) 22:32:12.07ID:ToPvHKqH0051デフォルトの名無しさん
2015/02/17(火) 22:32:37.78ID:xgmY9b+sコンパイラはalignを指定していない構造体に、最適化のために適宜パディングを入れていい
0052デフォルトの名無しさん
2015/02/17(火) 22:36:49.93ID:S2/s/wa6X ar[2];
sizeof arがsizeof(X)の2倍にならなかったら嫌だろ?
0053デフォルトの名無しさん
2015/02/17(火) 22:38:38.86ID:J4a0mND/packは
#include <pshpack4.h>
...
#include <poppack.h>
などで指定するヤツですよね?
0054デフォルトの名無しさん
2015/02/17(火) 22:51:23.08ID:fCIGE3+K0055デフォルトの名無しさん
2015/02/17(火) 22:52:02.91ID:J4a0mND/ありがとうございます。
0056デフォルトの名無しさん
2015/02/17(火) 23:57:09.67ID:T1Z1ruGPalignは型(クラス)全体のアラインメント
packはクラスの中での各データメンバのアラインメント
を指定するもの
0057デフォルトの名無しさん
2015/02/18(水) 00:43:01.28ID:fxWFvcN5アンドゥ/リドゥはどうやって実装すればいいのでしょうか?
メモリの許す限りアンドゥできるようにしたいと思っております。
テキスト全体を丸々別のメモリ領域にコピーしていけば簡単ですが、文字1つ打ち込むたびに丸々コピーするのもおかしい気がしますし、
かといって様々な操作を記録していくのも管理が大変な気がします。
1文字打ったのをアンドゥで戻す程度なら大変ではないですが、
特定の文字列を一気に複数箇所程度置換したりしたら管理が大変です。
どのように実装するのがいいのでしょうか。
0058片山博文MZ ◆T6xkBnTXz7B0
2015/02/18(水) 00:57:26.00ID:9VF3MRJc0059片山博文MZ ◆T6xkBnTXz7B0
2015/02/18(水) 01:05:06.78ID:9VF3MRJcundo bufferは、数学的には差分のリストで管理する。
つまり、beforeの状態とafterの状態のペアのリスト。std::vectorなどのC++のコンテナを使う。
元に戻せるか(can undo)、やり直せるか(can redo)の状態も管理する必要がある。
また、メモリーの負担も大きくなりすぎないようにサイズを制限する。
0060片山博文MZ ◆T6xkBnTXz7B0
2015/02/18(水) 01:16:47.14ID:9VF3MRJc例えば、三行目に「あいうえお」という行を追加した場合、
全体の行の並びの状態は文字列のリストと見なせるので、
その差分は、(3,'+line',"あいうえお")である。その逆は、三行目を取り除くであるから(3,'-line')。
0061片山博文MZ ◆T6xkBnTXz7B0
2015/02/18(水) 01:23:58.25ID:9VF3MRJcそこで仮想関数や基底クラス、関数ポインターが役立つ。
0062デフォルトの名無しさん
2015/02/18(水) 01:32:27.71ID:iIp4Xj1j0063片山博文MZ ◆T6xkBnTXz7B0
2015/02/18(水) 01:53:26.50ID:9VF3MRJc0064デフォルトの名無しさん
2015/02/18(水) 01:55:27.46ID:6FYN6nWZ先ほどスレを立てて質問してしまったものです。
getchar();を追加するようアドバイスいただいたものです。
次の項へ進んだのですがそこでも同様のアクシデントが発生してしまいます。
http://bituse.info/c/6
こちらのページです。
一度目の「文字を入力してください」の表示はできるのですが文字を1バイト分入力して
エンターキーを押すとやはり即座に終了してしまいます。
初心者ながらにgetcahr();を意味もわからずに同様に入れてみましたがやはりダメでした。
初歩の初歩でとても恥ずかしいですが全くわかりません。
またお助けください。
0066片山博文MZ ◆T6xkBnTXz7B0
2015/02/18(水) 02:09:15.60ID:9VF3MRJcブレークポイントを設定すれば、そこでプログラムの実行は止まる。
0067片山博文MZ ◆T6xkBnTXz7B0
2015/02/18(水) 02:25:01.47ID:9VF3MRJcこれがブレークポイント。プログラムを実行させると、そこで止まる。
黒い画面が消えるのはプログラムが終了したから。
006857
2015/02/18(水) 12:18:48.23ID:fxWFvcN5マルチポストになるためこちらでの質問は締め切らせていただきます。
スレ汚し失礼しました。
0069デフォルトの名無しさん
2015/02/18(水) 12:43:25.56ID:a50GzuXq各操作に、戻す操作を用意する。その方針なら、カーソル移動もUndoできる。
戻す操作を一時ファイルに記録していく。これでできます!
むかしは、メモリは、高価だった。メモリでやろうとしなかった。
その方針で、あとは、データ構造をきめる(各レコードに、レコード番号がある)
戻す操作が各レコードにある。
Redoは、どうやるのかしらない。Redoっているのかなぁ?
0070デフォルトの名無しさん
2015/02/18(水) 13:10:35.62ID:kutO6lRc0071デフォルトの名無しさん
2015/02/18(水) 15:47:44.68ID:4wXh5cyu質問者の利益を願わぬよう二他の連中が雑談してりゃいい
0072デフォルトの名無しさん
2015/02/18(水) 15:59:07.96ID:4Qn9SljGみたいなデータを使って、ある種の処理をしているのですが、
vectorの途中の要素を削除したり、追加したり、forループで全データを
読み出したり、変更したりする処理も沢山入っています。
こういう場合、vectorを使わずに、malloc, freeを使ってポインタによる
リスト構造を作成したらもう少し速度が向上すると思うのですが、
質問ですが、
一般に、vectorを使うより、ポインタ式のほうが速度は向上しますか?
速度が向上するとした場合、処理内容にもよると思いますが、何倍くらいになる可能性がありますか?
せいぜい1.5倍とかそんな程度でしょうか?あるいは数倍速くなる可能性ありますか?
経験ある人、コメントお願いします。
0073デフォルトの名無しさん
2015/02/18(水) 16:13:54.41ID:WF/HB+Ocstd::vectorの途中の要素削除はサポートされてるけど速度を求めるなら当然やるべきではない
リスト構造にするならstd::listを使えばいいんじゃないの?
速度が何倍になるかはケースによりすぎるので誰も答えられない
0074デフォルトの名無しさん
2015/02/18(水) 16:17:15.98ID:QJtcpUmlそれは処理によって変わるから、両方作って比較してから選んでください
0075デフォルトの名無しさん
2015/02/18(水) 16:26:10.71ID:dFtyN/e5要素の途中を削除すると後ろの要素を全部前につめるようにコピーしなおすからそれが時間食う
要素の半分くらいの数を一度に削除したいとか、そういう、削除が多すぎる場合は一旦nullでも入れといて
二本目のvectorに手動で移すようなのがまだマシかもね
v[j] = null; v[k] = null; // ....
for (int i = 0; i < v.size(); i++) if (v->at(i) != null) v2->push_back(v->at(i));
v->clear(); // 一気に全要素削除
t = v;v = v2;v2 = v; // 場合によってはこういう差し替えをしてもいいかも
あくまでvectorでやりたい場合は、ってことで
0076デフォルトの名無しさん
2015/02/18(水) 17:08:14.85ID:82ISwL6Xなにいってんだおまえ
0077デフォルトの名無しさん
2015/02/18(水) 17:18:41.39ID:h14sfo2kやりたいなら素直にlist使っとけ
0078デフォルトの名無しさん
2015/02/18(水) 17:21:43.94ID:h14sfo2kメンバメソッドに途中追加・削除はあるけど再配置コストでかいから、
パフォーマンス気にするなら素直にlist使っとけって意味ね
007975
2015/02/18(水) 18:40:44.15ID:dFtyN/e5https://ideone.com/U3UV4M
0080デフォルトの名無しさん
2015/02/18(水) 18:46:48.45ID:wgmWwjwnv[j]=null に該当するコードが無いな
0081デフォルトの名無しさん
2015/02/18(水) 18:53:48.49ID:wgmWwjwnこれはひどい
0082デフォルトの名無しさん
2015/02/18(水) 18:58:42.15ID:HYJih66la b cをポインターにするメリットがなさそうなのに、どうしてそんなことを
0083デフォルトの名無しさん
2015/02/18(水) 19:05:39.81ID:vY8D60aZ比較がなきゃ意味がないんじゃないか
0084デフォルトの名無しさん
2015/02/18(水) 19:45:28.88ID:lyHrqUwP変更だったら元の配列直接で良いが、削除追加は新しい配列にコピーした方が良いな。
って事を言いたいんじゃないの
0085デフォルトの名無しさん
2015/02/18(水) 19:56:06.81ID:Cje1DbfK0086デフォルトの名無しさん
2015/02/18(水) 20:06:27.20ID:3kPRLP3rお前の憶測代弁を誰が望んでる?
0087デフォルトの名無しさん
2015/02/18(水) 20:09:32.80ID:h14sfo2kむしゃくしゃしてやった
https://ideone.com/HSRAZ0
008875
2015/02/18(水) 20:33:25.08ID:hhBoAooq二本目のvector使うことによって
eraseをpush_backに置き換えてるのが肝
もしeraseしすぎて困ってて
二本目のvector確保しても平気なときとか
>>82
t = b;b = c;c = t;
これをポインタでしたかっただけ
本旨に対して瑣末なんでお好きにどうぞ
0089デフォルトの名無しさん
2015/02/18(水) 20:41:33.69ID:YAiiiwp8もういいよおまえ馬鹿なの分かったから!
他の人のコードを黙って見てろ
0090デフォルトの名無しさん
2015/02/18(水) 20:44:23.53ID:YAiiiwp8&と%の間違いがあるからbの減り方が少なすぎるんだな
0091デフォルトの名無しさん
2015/02/18(水) 21:10:04.63ID:h14sfo2k言われて気付いた、間違ってたわ
0092デフォルトの名無しさん
2015/02/18(水) 21:31:03.02ID:mNlNVJ9p0093デフォルトの名無しさん
2015/02/18(水) 22:01:35.36ID:m9smIoC1俺は読んだことないけど
0094デフォルトの名無しさん
2015/02/18(水) 22:14:51.82ID:mNlNVJ9pあんがと。買ってみる
0095デフォルトの名無しさん
2015/02/19(木) 00:18:51.76ID:1VbRaqSZがでてるのに時代遅れの旧版すすめてどうするんだ
もちろん今でも通用することも載ってるのでそこをわかったうえで読むならいいけどさ
0096デフォルトの名無しさん
2015/02/19(木) 00:43:32.52ID:MJrK0vGE読んでないからMoreが最新だと思い込んでた
0097デフォルトの名無しさん
2015/02/19(木) 03:48:50.49ID:jfoHSBtL買ったきり積んであるわ
0098デフォルトの名無しさん
2015/02/19(木) 17:27:13.13ID:/iG5WZ4HReadProcessMemory
WriteProcessMemory
がDLLインジェクション?され、欲しい結果がまともに得られません。
なので同等の機能を持つ
OpenProcess2
ReadProcessMemory2
WriteProcessMemory2
という別の関数を作りたいのですが技術的に可能ですか?
元の関数の中身の確かめ方なども教えてほしいです。
0099デフォルトの名無しさん
2015/02/19(木) 17:51:45.22ID:MJrK0vGE実行中プロセスの中身が見たい→デバッガ使え
他の実行中プロセスを不正に書き換えたい→諦めろ
0100デフォルトの名無しさん
2015/02/19(木) 18:07:06.84ID:+x92KaMabanされるからやめとけ
0101デフォルトの名無しさん
2015/02/19(木) 19:04:12.08ID:eawGJ+OB0102デフォルトの名無しさん
2015/02/19(木) 20:25:08.18ID:/iG5WZ4H0103デフォルトの名無しさん
2015/02/19(木) 20:26:29.37ID:ab5Vc4qB0104デフォルトの名無しさん
2015/02/19(木) 21:05:44.81ID:0ZY/+Dfbお返事が遅くなりすみません。
ブレークポイントの挿入できちんと出来ました。
せっかく原因として書いていただいたことも勉強不足でよくわかりませんが
今後勉強を重ねたいと思います、ご丁寧にありがとう御座いました。
また何度もお世話になると思いますがどうぞよろしくお願いします。
0105デフォルトの名無しさん
2015/02/19(木) 21:43:42.43ID:sOrLlryhおう!またこいよ!絶対だぞ!来なかったらこっちから訪ねて行くからな!
0106デフォルトの名無しさん
2015/02/19(木) 23:05:18.65ID:HdusV7c5インジェクト前のアドレスに戻すのは?
0107デフォルトの名無しさん
2015/02/20(金) 00:09:56.63ID:BPnuj7+1kernelの実体は別の場所に移ってるような?
その別のプログラムがkernelとの橋渡しをして
保護対象のプロセスにアクセスするようなら
デタラメな値を返しているような?
ということはkernelの実体を探せばいいのだろうか。
さっぱり分からんなぁ・・・。
0108デフォルトの名無しさん
2015/02/21(土) 11:37:43.28ID:qgl0G9M7ドライバの書き方は本買って嫁
終了
0109デフォルトの名無しさん
2015/02/21(土) 14:26:15.25ID:s76k4WVR0110デフォルトの名無しさん
2015/02/21(土) 17:59:05.20ID:qCqW+14K0112デフォルトの名無しさん
2015/02/21(土) 19:40:55.07ID:qCqW+14K最近ネタがなくてさー
なんか手伝えることないですか?モリタモ 500 でお受けしますぅ‥
0113片山博文MZ ◆T6xkBnTXz7B0
2015/02/21(土) 19:46:55.40ID:swM6o0zcよろしい。ならばURLをSVG画像にする変換器を作ってくれたら
アマゾンギフト券3000円分差し上げよう。
言語はJavaScript。トリップを忘れずに。
0114デフォルトの名無しさん
2015/02/21(土) 19:53:01.65ID:qCqW+14K0115片山博文MZ ◆T6xkBnTXz7B0
2015/02/21(土) 19:59:12.19ID:swM6o0zc他の言語ならWebMoney2000円分になるが。。。諸君には作れるかな?
0116デフォルトの名無しさん
2015/02/21(土) 21:27:54.79ID:0DxoAiRe<svg height="30" width="200">
<text x="0" y="15" fill="red">I love SVG!</text>
</svg>
0117デフォルトの名無しさん
2015/02/21(土) 21:33:16.62ID:ZtjHl7Bsこれで終了
ちゃんと送れよな
0120デフォルトの名無しさん
2015/02/21(土) 22:10:13.06ID:swM6o0zchttp://peace.2ch.net/test/read.cgi/tech/1419929875/
0121デフォルトの名無しさん
2015/02/22(日) 18:24:58.11ID:/Z4bCbY2下のような場合、get_hello_1はOKで他は全部ダメ?
std::string get_hello_1()
{
return std::string("hello");
}
std::string get_hello_2()
{
return "hello";
}
char* get_hello_3()
{
return "hello";
}
char* get_hello_4()
{
char buf[255];
strcpy(buf, "hello");
return buf;
}
0122デフォルトの名無しさん
2015/02/22(日) 18:26:06.45ID:uKVn+atI0123デフォルトの名無しさん
2015/02/22(日) 18:28:03.38ID:uKVn+atI0124デフォルトの名無しさん
2015/02/22(日) 18:41:15.04ID:J+2bP69KC++の文法上だめなのは3だけ
動作的にだめなのは4だけ
1と2は問題無し
0125デフォルトの名無しさん
2015/02/22(日) 18:56:37.91ID:/Z4bCbY22と3がOKなのは文字列定数だからメモリが消えることはなくずっと確保されているからでしょうか
ちなみにもう一つ。下の場合はstd::stringオブジェクトが生成されてOKになります?
std::string get_hello_5()
{
char buf[255];
strcpy(buf, "hello");
return buf;
}
0126デフォルトの名無しさん
2015/02/22(日) 19:07:13.61ID:iZtaTVrr0127デフォルトの名無しさん
2015/02/22(日) 19:43:32.73ID:eEB88Od10128デフォルトの名無しさん
2015/02/22(日) 19:47:10.59ID:DVQv7PP40129デフォルトの名無しさん
2015/02/22(日) 19:47:40.84ID:eEB88Od10130デフォルトの名無しさん
2015/02/22(日) 19:48:53.80ID:DVQv7PP4Werrorにしてたわ
0131デフォルトの名無しさん
2015/02/22(日) 19:55:49.83ID:WuVa/Mh+C++11で禁止されたけどVS2013ではオプション扱い(/Zc:strictStrings)
ということみたい
0132デフォルトの名無しさん
2015/02/22(日) 20:08:51.77ID:DVQv7PP4C++11では禁止されてるよみたいなWarningが出た。一度規格書確認しとくわ
0133デフォルトの名無しさん
2015/02/22(日) 20:11:07.42ID:J+2bP69K>文字列定数だからメモリが消えることはなくずっと確保されているからでしょうか
3はその通り
2は違う
2はstringのオブジェクトが作られてその生存期間が
呼び出し側のセミコロンまで続くから問題ない
0134デフォルトの名無しさん
2015/02/22(日) 20:47:07.17ID:/Z4bCbY2いくつか誤解していたことが解決して大分理解が深まりました
0135デフォルトの名無しさん
2015/02/22(日) 23:04:10.77ID:rzvFGJXkreturn "hello";
}
初心者が理解しづらい所だな。
関数の戻り値というものが誰がメモリを確保して
いつコンストラクタとデストラクタが呼ばれるのかわかりづらい。
ついでに大抵はRVOとNRVOの話が一緒に付いて来るので混乱を招く
0136デフォルトの名無しさん
2015/02/23(月) 14:10:31.79ID:4Sh3heg0先先日より大変お世話になっております>>104です。
ブレークポイントでプログラムが終了してしまうのを防ぐことはできるようになったのですが、
(これは本筋とは逸れますが)これはあくまでチェック用なのですよね?
そこでプログラム的に(?)終了を防ぐ方法が知りたいのですが
お教え下さるか検索ワードを教えてもらえませんか?
よろしくお願いします。
0138デフォルトの名無しさん
2015/02/23(月) 14:54:59.84ID:umJpzUJj最もシンプルに、余計なキーを打たない前提なら、getcharを二回連続で呼べばいい
一回目のgetcharは、scanfで拾えなかった改行文字が入ってくる
二回目はバッファが空なので、入力を待機する
0139デフォルトの名無しさん
2015/02/23(月) 23:05:49.75ID:JzyWrWVg構造体を返値とする、と類似しているとしてだいたい把握できる
0140デフォルトの名無しさん
2015/02/23(月) 23:23:46.90ID:0KMyfxui未解決の外部シンボル_cvReleaseImageが関数_mainで参照されました
とエラーが出ている場合、どうしたらいいのでしょう?
関数が見つかりませんよ、と言うのはわかるのですがこの関数はどこにあるのでしょうか?
0141デフォルトの名無しさん
2015/02/23(月) 23:32:51.19ID:yzL19jDhリンク設定を見直す、あるいは使ってるIDEのリンク設定の仕方を勉強する
0142デフォルトの名無しさん
2015/02/23(月) 23:32:54.48ID:V8GOYsYk0143デフォルトの名無しさん
2015/02/23(月) 23:41:56.37ID:0KMyfxuiソースコードなどからは判断できますか?
0144デフォルトの名無しさん
2015/02/23(月) 23:43:04.95ID:yzL19jDh0145デフォルトの名無しさん
2015/02/24(火) 00:01:23.84ID:611T6tT60146デフォルトの名無しさん
2015/02/24(火) 00:34:02.94ID:2T0G4BSRdebian環境だとhighguiってのに入ってるね
MSDNのように明記されてないので
(ビルドオプションでどうとでもなるだろうから)
pkg-config opencv --libs
でso$をgrepしてreadlink -fで実態調べて
objdump -Dしてgrepという力技で特定しました
0147デフォルトの名無しさん
2015/02/24(火) 04:33:22.06ID:tdW+LicInm コマンド
0148デフォルトの名無しさん
2015/02/24(火) 04:47:24.38ID:2T0G4BSR0149デフォルトの名無しさん
2015/02/24(火) 12:48:11.27ID:feW1KcM/>>138
お返事遅くなりまして申し訳ありません。
片山さんのワードで検索してみたのですが、sleep関数を理解するにはまだまだ時間がかかりそうです。
それでも存在を知ることができてよかったです。ありがとうございました。
今のところは>>138さんのgetchar()を2回使う方法でうまくいってます。
解説もしていただき大変ありがたいです。ありがとうございました。
出来れば自分で解決できるのが望ましいのですが、自己解決できなかった時はまた来ます。
その時もどうぞよろしくお願いします。
0150デフォルトの名無しさん
2015/02/24(火) 21:25:28.62ID:BgZzwVFO>>104みたいないわゆるコンソールプログラムであればsleepを使う必要は全くないよ。
むしろ、無限ループでsleepだけだとプログラムを正常終了させる方法がなくなるからやめた方がいいよ。(この方法で正常終了させるようにするならら>>138の方法のが手っ取り早い)
0151デフォルトの名無しさん
2015/02/25(水) 04:54:39.49ID:kAr5BbQr0152デフォルトの名無しさん
2015/02/25(水) 09:13:39.06ID:yPciKDTd#define N 3
int main(){
int tmp,i,j,z,a[]={0,0,0};
char ans;
printf("整数を%d個入力してください\n",N);
for(i=0;i<N;i++){
printf(">\n");
scanf("%d", &a[i]);
}
for(z=0;z<N;z++){
for(j=N-1;j>z;j--){
if(a[j]<a[j-1]){
tmp=a[j];
a[j]=a[j-1];
a[j-1]=tmp;
}
}
}
for(i=0;i<N;i++){
printf("%d ",a[i]);
}
return 0;
}
0153デフォルトの名無しさん
2015/02/28(土) 11:03:43.60ID:yyMmVQQk0154デフォルトの名無しさん
2015/02/28(土) 12:00:46.80ID:j5d61nKt3つ数字入力させて、合計を表示してるのは分かるけど、これくらいなら、電卓とか、エクセルでやったはうが早くない?
0155デフォルトの名無しさん
2015/02/28(土) 12:06:03.03ID:8paVhiekライブラリによる。GUIとか
オブジェクト指向かどうか
STLをつかうか
0156デフォルトの名無しさん
2015/02/28(土) 12:29:41.22ID:C0E19LHHやる必要があれば、それも可能なのがC++の利点
今でこそC++らしい書き方のほうが多くなったけれども
「better C」という、C言語風だけどC++の良いとこ取りもする、というスタイルは
昔はけっこうよく行われてたよ
0157デフォルトの名無しさん
2015/02/28(土) 13:17:05.10ID:jpnAzhvw0158デフォルトの名無しさん
2015/02/28(土) 13:22:59.63ID:pzuzIoSR0159デフォルトの名無しさん
2015/02/28(土) 13:33:07.23ID:3oOu8rEl0160デフォルトの名無しさん
2015/02/28(土) 13:37:26.92ID:0w0p4VdY0161デフォルトの名無しさん
2015/02/28(土) 14:13:05.54ID:nS9zO5v80162デフォルトの名無しさん
2015/02/28(土) 14:38:37.66ID:9NkDqAQU0163デフォルトの名無しさん
2015/02/28(土) 15:04:24.71ID:RGSE2jA1使ったグローバル変数があっちこっちに
合計十数個出てきて、収集がつかなくしまいました。
グローバル変数を上手い具合に管理する方法有りますか?
グローバル変数を使うなという意見は勘弁して下さい。私の能力では使わずにはプログラム組めませんので。
よろしく。
0164デフォルトの名無しさん
2015/02/28(土) 15:07:38.09ID:0lfA+oAx0165デフォルトの名無しさん
2015/02/28(土) 15:08:19.96ID:VJzk6ZT60166デフォルトの名無しさん
2015/02/28(土) 15:20:13.40ID:RGSE2jA1クラスも使っているんですが
幾つかのクラスの中ではstatic変数も
使っていて、それも混乱の一因です。
クラスの中でstatic変数使うのは駄目でしょうか。
0167デフォルトの名無しさん
2015/02/28(土) 15:42:23.94ID:rkeHMBrB0168デフォルトの名無しさん
2015/02/28(土) 15:49:56.35ID:RGSE2jA1publicにしています。
0169デフォルトの名無しさん
2015/02/28(土) 15:54:02.54ID:4l+NWV3Bその場しのぎで追加するようなグローバル変数は実際は引数渡しで事足りる場合ばっかりだろうからそこを作り直せば数が減って収集がつくと思うよ。
0170デフォルトの名無しさん
2015/02/28(土) 16:25:53.70ID:jpnAzhvwとりあえずグローバル構造体かクラスにまとめて全量洗い出して取捨選択
0171片山博文MZ ◆T6xkBnTXz7B0
2015/02/28(土) 21:57:16.55ID:OFsucKZW#include <pshpack1.h>
typedef struct {
int a : 8;
int b;
} X;
#include <poppack.h>
このとき、sizeof(X)==8になるが、
メンバーaをint a : 9;にするとsizeof(X)==6になる。
何でやねん! ビットを増やしたらサイズが減るのか!
0172デフォルトの名無しさん
2015/02/28(土) 22:00:53.02ID:kDCn/ge4いいきっかけだから他のプログラムでも使用できそうな機能は機能毎にしちゃう
0173デフォルトの名無しさん
2015/02/28(土) 22:18:47.25ID:yyMmVQQk分からなくなってきた。
そろそろクラスとかも覚えて使ってみたいし新たに1からつくるか・・
0174片山博文MZ ◆T6xkBnTXz7B0
2015/02/28(土) 22:30:33.27ID:OFsucKZWこれを馬鹿にもわかるように論理的に説明して下さい。
0175デフォルトの名無しさん
2015/02/28(土) 22:36:30.21ID:TqhvQe1k>>1も読めないバカは去れ
0176片山博文MZ ◆T6xkBnTXz7B0
2015/02/28(土) 22:38:52.76ID:OFsucKZW0177デフォルトの名無しさん
2015/02/28(土) 22:47:07.04ID:kDCn/ge4VC++ 2010 EEで両方8になったんですが
0178片山博文MZ ◆T6xkBnTXz7B0
2015/02/28(土) 23:34:27.82ID:OFsucKZWありがとう。
VC++とGCCのABIの違いのため-mms-bitfieldsつけないとダメだと。
ビットフィールドのせいで一日つぶれた。。。
0179デフォルトの名無しさん
2015/03/01(日) 13:55:28.56ID:YTVpAllVpublic privert potected これわかりやすく
解説したサイト知りませんか?
0180デフォルトの名無しさん
2015/03/01(日) 14:04:57.89ID:SZqmQTGeprivate そのクラスだけアクセスできる
protected そのクラスと、派生クラスだけアクセスできる
0181デフォルトの名無しさん
2015/03/01(日) 14:25:44.99ID:YTVpAllV0182デフォルトの名無しさん
2015/03/01(日) 14:33:42.98ID:VYwW9Vyn期待した解答と違うとおもったなら自分の質問にもっと具体的な補足をしろ
できねーなら死ね
0183デフォルトの名無しさん
2015/03/01(日) 14:34:32.89ID:uDqKnlJ3protected 継承 元publicをprotectedへ 元protectedをprivateへ
public継承 元の状態を維持
だったっけか?
0184デフォルトの名無しさん
2015/03/01(日) 14:45:45.97ID:5nggEOp/0185デフォルトの名無しさん
2015/03/01(日) 15:05:46.90ID:9nAO1Mr4そんなモン誰も知らねぇよ
0186デフォルトの名無しさん
2015/03/01(日) 15:11:24.18ID:NOqABy0N0187デフォルトの名無しさん
2015/03/01(日) 18:08:53.80ID:xHJpp+wqpublic そのまま
protected publicだけprotectedへ
private 全部private
0188デフォルトの名無しさん
2015/03/01(日) 23:34:19.53ID:VA+mmmdG0189デフォルトの名無しさん
2015/03/01(日) 23:47:53.89ID:NUTnmFf9メンバ変数は基本的に全てprivateにしてsetter getterを関数に書いて
派生クラスから基底クラスのメンバ変数を呼ぶときは全てsetter getterを通じて扱うのが本来のオブジェクト指向な気がするけどどうなんだろう
0190デフォルトの名無しさん
2015/03/02(月) 00:05:32.07ID:XG6Dbdai気にしないで、ガンガンPUBLIC使うべし。
いちいち代入のために関数作ってたら、生産性わろし
関数ひとつ追加するコストは、ドキュメントやテスト、IFの構成などの影響を考えると高くつく
学者のべき論と実戦は異なるのだよ
0191デフォルトの名無しさん
2015/03/02(月) 00:09:11.15ID:hseo5gVdお前アホか
本来のオブジェクト指向()とやらでは実現できない「実装の再利用」のために
friend/private継承/protected継承があるんだよ。
オブジェクト指向の考えに形式的に当てはめようとして
getter/setterにする方がクレイジー
0192デフォルトの名無しさん
2015/03/02(月) 00:22:49.89ID:3n4sVnGfそうなのか・・・
本とか一部サイトではsetter getterを通した方が値のチェックを行えて安全とかあるから混乱してたんよ
0193デフォルトの名無しさん
2015/03/02(月) 00:29:21.36ID:fPhyyxiK内部の変数へのアクセスを許すのは
オブジェクト指向の考えに反します
getterを作れば良いと言うものではありません
0194デフォルトの名無しさん
2015/03/02(月) 00:51:01.27ID:/crQ+lASそれにあわせてgetter作ってたらオブジェクト指向じゃない
0195デフォルトの名無しさん
2015/03/02(月) 00:57:41.76ID:g6u+STTf0196デフォルトの名無しさん
2015/03/02(月) 01:09:06.37ID:XG6Dbdaiそれは、言語仕様の矛盾だよね。
でも現場ではpublicしか使わないから関係ないけどね(制御系とか金融のプロジェクトは知らないけど)
0197デフォルトの名無しさん
2015/03/02(月) 01:12:04.73ID:/eLULHxy0198デフォルトの名無しさん
2015/03/02(月) 03:22:53.77ID:Cc4ZXjAzそこから派生させるのではなくそのクラスのインスタンスを
メンバとして持てば十分でしょう。
その方が良いならそうすべきで、かつそのクラスを
テンプレート引数として汎用化できないかも考慮すべき。
0199デフォルトの名無しさん
2015/03/02(月) 13:58:13.91ID:u4npGgFL普通にクラスを作って楽しく使いましょう。
0200デフォルトの名無しさん
2015/03/03(火) 10:05:19.01ID:k6QUuUZDなかなか貴重で異常なご意見で
0201デフォルトの名無しさん
2015/03/03(火) 22:53:35.90ID:E8cNZHFYなぜ配列ではない関数も同じように関数名で先頭アドレス確保出来るのでしょうか?
関数名に「&」を付けるなら分かるのですが・・・
int i[5]={1,2,3,4,5};
int* pi = i; // OK
int i=1;
int* pi = &i // &が必要
******************* こっから下が分からない *******************
void kansuu(char* str){
std::cout << str << "\n";
}
void (*po[])(char* str)={kansuu}; // なぜ&kansuuでなくてよい?
po[0]("なぜじゃ");
0202デフォルトの名無しさん
2015/03/03(火) 23:02:49.41ID:HsY4gQ31一種の例外だし、それを好まずそう書かない人々もいる
0203デフォルトの名無しさん
2015/03/03(火) 23:41:13.44ID:E8cNZHFY&をつけてもコンパイル通るんですね。例外了解です。
0204デフォルトの名無しさん
2015/03/03(火) 23:48:42.41ID:aTqVdZca&なしは関数オブジェクトと関数が同じ表記法になれる
テンプレートの場合では&をつけるわけにはいかない
そのため付けないのが主流となる
0205デフォルトの名無しさん
2015/03/04(水) 02:08:06.64ID:7qqVQ1bqそもそも配列も関数と同じで、&をつけてもつけなくても同じ扱い。
http://ideone.com/bYtnim
0206デフォルトの名無しさん
2015/03/04(水) 09:35:28.98ID:/apgWJr20207デフォルトの名無しさん
2015/03/04(水) 09:40:16.23ID:HeTEjgTnANSI-C以降の話しね。ポータブルCとかK&Rは駄目(豆)
0208デフォルトの名無しさん
2015/03/04(水) 14:53:14.64ID:Ta/FEbLeここに自分が書いたソースコード張ったらダメ出しみたいなのしてもらえる?
テストの点数とそれに対応する順位をつけて、同じ点数は同じ順位にするってプログラムを組んだんですけど
一応目的の動作はしてくれます
0209デフォルトの名無しさん
2015/03/04(水) 15:06:01.49ID:CTtxiq5X0210デフォルトの名無しさん
2015/03/04(水) 15:20:31.89ID:Ta/FEbLeこれだけのことに変数を使いすぎてる気がするのと
もっとスマートに書ける部分があったらおしえてほしいです
0211デフォルトの名無しさん
2015/03/04(水) 15:50:29.68ID:HeTEjgTnつ qsort
0212デフォルトの名無しさん
2015/03/04(水) 16:57:59.31ID:mnA608p+直してみたよ
http://codepad.org/vCg6eNwh
解説
・変数名はc0など意味の分かりにくいものにせず、pointとかorderとかにしよう(↑では変えてないけど)
・10や9や8といった定数は、配列の要素を後で増減させる時に修正しやすいよう、変数などに定義しよう
その際は、要素数(人数)に合わせて'10'を使うのがいい
基本的に、配列をfor文で辿る時は (変数=0; 変数 < 要素数; ++変数) という形になるのでこのまま憶えよう
本当は配列のサイズからも分かるけど、それはもうちょっと先のレベル
・同じ点数の人が同じ順位になるよう、順位を示す変数は途中では変えず、後でまとめて人数分増やす
そうすれば後半のややこしいループは不要
・main関数の引数と戻り値が間違い
0213デフォルトの名無しさん
2015/03/04(水) 19:46:11.27ID:Ta/FEbLe便利ですね覚えておきます
>>212
ありがとうございます、すごい参考になります
引数と戻り値は勉強しなおしておきます
0214デフォルトの名無しさん
2015/03/05(木) 03:01:06.15ID:o2c8GLXQintよりもlongのが扱える範囲は大きいはずだからおかしいよな・・・?
0215デフォルトの名無しさん
2015/03/05(木) 03:25:16.98ID:+ThMXw+2size_tが_int64にでもなってたんじゃね
0216デフォルトの名無しさん
2015/03/05(木) 03:34:33.64ID:lVmgOndi0217デフォルトの名無しさん
2015/03/05(木) 03:35:29.33ID:o2c8GLXQインテリセンス君はunsigned intだったけどたどっていってみたら__w64なる接頭句が
0218デフォルトの名無しさん
2015/03/05(木) 03:46:27.62ID:lVmgOndiLLP64 っていって、long long とポインタが64bit
そのあおりで size_t と ptrdiff_t (ポインタの差) も64bit
64bit CPU の先駆け Alpha AXP の頃は LP64 といって
long とポインタを 64bit にしてたけど、その時の経験で
long は 32bit のままの方が 64bit 化にあたってのコードの
修正が少なくて済むとわかってLLP64 が主流になった
0219デフォルトの名無しさん
2015/03/05(木) 03:47:28.28ID:9F0iYt50作業用ポインタとqsortを使った方法、こんな方法もあるよとだけ
http://codepad.org/FjFQ2dNL
0220デフォルトの名無しさん
2015/03/05(木) 08:51:27.87ID:OANpNxqpこう言うウソをしれっとつくバカは死んだ方が良い。
win16からの移行を容易にする為にすでにグダグダになっていたwin32
それからの移行を容易にするための選択がLLP64
0221デフォルトの名無しさん
2015/03/05(木) 08:52:56.70ID:+Q5gJwG8同じことを言ってる
0222デフォルトの名無しさん
2015/03/05(木) 09:06:17.01ID:PF6nrNXa0223デフォルトの名無しさん
2015/03/05(木) 09:25:50.71ID:OANpNxqpMS帝国(大分おちめ)の奴隷は引っ込んでいろ。
LLP64なんか採用してるのはwin64だけ。
0224デフォルトの名無しさん
2015/03/05(木) 13:04:15.43ID:HSYDbrXJ64ビットの先駆けとなったDEC Alpha系もLP64だったような
0225デフォルトの名無しさん
2015/03/05(木) 13:22:27.44ID:3j9lgICf> たいていの x86_64 や arm64 のコンパイラは
> LLP64 っていって、
いやいや、そんな珍しいものは唯一windowsだけじゃないの?
0226デフォルトの名無しさん
2015/03/05(木) 16:44:14.07ID:JyN3EgEg//#define AAAA BBBB
#define AAAA CCCC
と記述した後に、任意の場所で、
AAAAがCCCCとしてdefineされているかを判定することはできないでしょうか?
0227デフォルトの名無しさん
2015/03/05(木) 17:17:46.08ID:I89WrdEHreturn true;
}
0228デフォルトの名無しさん
2015/03/05(木) 17:25:22.76ID:0g2YeNLY#if(WINVER >= 0x0500)
#endif
こういうのは見たことがあるが、特定のシンボルに定義されているかどうかを
#if で判定してるのは、見たことがないな(&それが可能なのかは知らないな)
0229デフォルトの名無しさん
2015/03/05(木) 20:57:00.72ID:l9SFIH0J0230デフォルトの名無しさん
2015/03/05(木) 22:21:47.81ID:HeQ72Txgスレチ
0231デフォルトの名無しさん
2015/03/05(木) 22:26:38.06ID:/PZ+wdBr0232デフォルトの名無しさん
2015/03/05(木) 22:37:42.95ID:4qwAFJaB10 OPEN DIR("*.csv") AS #1
20 sizeof(#1)
30 GOTO 10
40 END
0233デフォルトの名無しさん
2015/03/05(木) 23:13:15.75ID:LULabTRsfind . -name "*.csv" | wc -l
0234デフォルトの名無しさん
2015/03/05(木) 23:21:23.33ID:puWRUP/J$ find ./a -name "*.csv" | ruby -rcsv -lne 'p [CSV.read($_).size, $_]'
>>233
xargs
0235デフォルトの名無しさん
2015/03/06(金) 01:14:22.96ID:Sg/+JleUint i = 0;
while ( fgets( ) ){
i++;
}
fclose();
return i ;
0236デフォルトの名無しさん
2015/03/06(金) 03:51:20.50ID:+A6TrZmofind a -name '*.csv' -exec wc -l {} \;
0237デフォルトの名無しさん
2015/03/06(金) 05:54:19.35ID:ffY3VuPRダブルクオートの中に改行が入る場合を考慮しないといけない
0238デフォルトの名無しさん
2015/03/06(金) 07:24:52.70ID:GC5TMZRE0239デフォルトの名無しさん
2015/03/06(金) 07:43:06.27ID:jAQDMMU6C#でTextFieldParserを使うのが一番簡単かな?
0240デフォルトの名無しさん
2015/03/06(金) 08:06:38.46ID:dsDP5DeS今は
find a -name '*.csv' -exec wc -l {} +
って、やるんだよ。
20世紀からきたおじいちゃん。
0241デフォルトの名無しさん
2015/03/06(金) 08:34:58.66ID:zfR7oXUXExcel仕様というか、今はそれでRFCになってるけどな。
0242デフォルトの名無しさん
2015/03/06(金) 09:28:41.05ID:uUtd6mTH(csv) ファイルの行数なのか
そもそも行数とは何か
難しい
0243デフォルトの名無しさん
2015/03/06(金) 09:33:08.83ID:liXUjwAw0244デフォルトの名無しさん
2015/03/06(金) 12:08:08.56ID:DihBiSVk0246デフォルトの名無しさん
2015/03/06(金) 21:02:18.67ID:FTmThQC80247デフォルトの名無しさん
2015/03/06(金) 22:15:46.04ID:CKRqkh4t0249デフォルトの名無しさん
2015/03/06(金) 23:53:29.97ID:2n7TyHez0250デフォルトの名無しさん
2015/03/07(土) 00:35:11.21ID:Ya/TYd9Lint c;
int i=0,行数=0;
while ( c = fgetc(fp) ){
if( c == 区切り文字 ){
i++;
if(i >= 項目数){
行数 ++ ;
i=0;
}
}
}
fclose(fp);
return 行数 ;
0251デフォルトの名無しさん
2015/03/07(土) 01:24:24.47ID:C8DOhXGu0252デフォルトの名無しさん
2015/03/07(土) 15:20:31.76ID:bUPPfM5U0253デフォルトの名無しさん
2015/03/07(土) 15:30:48.23ID:DS4Omjl70254デフォルトの名無しさん
2015/03/07(土) 16:04:20.33ID:3KyZhNX/0255デフォルトの名無しさん
2015/03/07(土) 16:12:54.82ID:6NNVM+G0つまりCSVには行と言う概念は無いのよ!
0256デフォルトの名無しさん
2015/03/07(土) 16:20:55.36ID:6NNVM+G0CSVからレコードとしての行数を取得すると言う事は、
どのような形でレコードの行をカウントするかが分からない限り不可能なのだよ!
0257デフォルトの名無しさん
2015/03/07(土) 19:56:03.68ID:DS4Omjl70258デフォルトの名無しさん
2015/03/07(土) 20:57:57.71ID:/8n+l7taHit *hito = new Hito();
Hito hito = Hito();
この2つの違いは何でしょうか・・・
それぞれのメリットとデメリットを教えてください。
0259デフォルトの名無しさん
2015/03/07(土) 21:10:16.68ID:KPQIfj0o0260デフォルトの名無しさん
2015/03/07(土) 21:27:31.82ID:YzMdMFPo0261デフォルトの名無しさん
2015/03/07(土) 22:26:53.41ID:SCrS5T9D> Hit *hito = new Hito();
動的ストレージ期間のオブジェクトの構築
メリット:オブジェクトの寿命をプログラマが自由に決められる
デメリット:プログラマがオブジェクトの寿命を管理しなければならない
> Hito hito = Hito();
動的ストレージ期間ではないオブジェクトの構築
メリット:コンパイラ(が自動的に生成するコード)がオブジェクトの寿命を管理してくれる
デメリット:プログラマによるオブジェクトの寿命の管理に制限がある
0262デフォルトの名無しさん
2015/03/07(土) 22:46:24.14ID:P6TY9Oz70263デフォルトの名無しさん
2015/03/07(土) 23:09:27.83ID:/8n+l7taよくわかりました
ありがとうございます!
0264デフォルトの名無しさん
2015/03/07(土) 23:37:49.78ID:tOCksCGu0265デフォルトの名無しさん
2015/03/07(土) 23:47:58.97ID:qYUMbMQBあほ。
Hito hito();
でOK
0266デフォルトの名無しさん
2015/03/07(土) 23:58:35.67ID:G+WKs/Ooauto hito = Hito{}; を絶賛推奨してるのにー
0267デフォルトの名無しさん
2015/03/08(日) 00:21:20.29ID:4W2b4/5m> でOK
これこそ完全にあほ
これは関数宣言
0268デフォルトの名無しさん
2015/03/08(日) 01:22:10.89ID:j2+5iace0269デフォルトの名無しさん
2015/03/08(日) 03:31:42.13ID:F1sIV67x0270デフォルトの名無しさん
2015/03/08(日) 03:42:47.34ID:OqeeKAyUhttp://ideone.com/xgK8XD
なんかごっちゃになってるな‥<私
0271デフォルトの名無しさん
2015/03/08(日) 06:17:02.51ID:QtrJmWMv引数無し。ゼロ初期化しなくてもいいとき
Hito hito;
new Hito;
デフォルト初期化したい時
Hito hito(); // × 関数宣言
Hito hito{};
new Hito();
new Hito{};
要素数ゼロでinitilizer_list初期化したい時
Hito hito{ {} };
new Hito{ {} };
引数あり。initilizer_list初期化したくない時
Hito hito(4);
new Hito(4);
引数あり。initilizer_list初期化してもいい時
Hito hito{4};
Hito hito{ {4} }; // 警告
new Hito{4};
0272デフォルトの名無しさん
2015/03/08(日) 13:27:11.80ID:a8B+x8Xuそうじゃない時は普通に宣言し、インスタンスの処理は呼び出し側に任される。
0273デフォルトの名無しさん
2015/03/08(日) 22:46:55.60ID:rkbbmsnn0274デフォルトの名無しさん
2015/03/08(日) 22:56:08.21ID:g6H7cIw40275デフォルトの名無しさん
2015/03/08(日) 23:02:51.77ID:rkbbmsnn0276デフォルトの名無しさん
2015/03/10(火) 13:38:20.15ID:RdbtE7KX指定したURLを開きたいのですが、ググルといろんなやり方があるようですが、どれでやっても
同じですか?もしそれぞれの方法で何か違いがあるなら教えて下さい。
0277デフォルトの名無しさん
2015/03/10(火) 13:48:50.66ID:PYIcYA910278デフォルトの名無しさん
2015/03/10(火) 13:59:09.73ID:RdbtE7KXレス有難うございます。
有名な秀丸だと更新確認実行するとwscript.exeがインターネット接続します
って出るんですが、秀丸さんがwscript.exe使っているのは何か特別な理由があるのかな?と思いました。
0279デフォルトの名無しさん
2015/03/10(火) 14:25:52.25ID:vm3oZo24更新する場合自身のプロセスが起動してると失敗するから
0280デフォルトの名無しさん
2015/03/10(火) 15:17:45.02ID:RdbtE7KX自身のプロセスを更新する場合、
shellexecuteでは出来ないんですか?
0281デフォルトの名無しさん
2015/03/10(火) 15:36:45.92ID:vm3oZo24実行中プロセスを削除しようとしてみて
0282デフォルトの名無しさん
2015/03/10(火) 22:43:07.05ID:tO3u6w4Mint a : 3;
はint型なのかint:3型なのか
0283デフォルトの名無しさん
2015/03/11(水) 09:34:07.82ID:aCIUJ7gkビットフィールドはビットフィールドというのが回答だろう
あくまでビット数指定のメンバを指定するものだから
0284デフォルトの名無しさん
2015/03/11(水) 10:26:02.11ID:qUaLI3RQ0285デフォルトの名無しさん
2015/03/11(水) 21:37:27.55ID:y8CEkPPH0286デフォルトの名無しさん
2015/03/11(水) 23:49:47.62ID:cDpj+qM3typeidがcharになるコンパイラもあるようだけれど
0287デフォルトの名無しさん
2015/03/12(木) 07:30:09.24ID:OMcwIhNo0288デフォルトの名無しさん
2015/03/13(金) 19:13:51.16ID:5npxB6t0スタティックライブラリを作成する設定にしてできたlibファイルを
バイナリエディタで開くと、ソースファイルのパスの文字列を確認することができます。
この文字列を削除したいのですが可能でしょうか?
デバッグ情報を生成しないようにしても付加されてしまうようです。
0289デフォルトの名無しさん
2015/03/14(土) 20:11:39.30ID:V/kJuq3gNEXT行きましょ
NEXT
0290デフォルトの名無しさん
2015/03/14(土) 22:16:00.15ID:Se8NRYYo0291デフォルトの名無しさん
2015/03/16(月) 10:45:52.19ID:+/0omNd3void func1(char **p)
void func2(char *&p)
のどっちの形式を使うかは、好みの問題ですか?
0292デフォルトの名無しさん
2015/03/16(月) 15:47:30.14ID:ErhRBgzcclassのメンバとしてvectorは使えないのでしょうか?
例えば
class cLoadText
{
private:
//色々
vector <int> PI(3);
};
こんなかんじでやると「型指定子が必要です」と出てしまいます。
ちなみにグローバルで定義すれば普通に使えます。
0293デフォルトの名無しさん
2015/03/16(月) 15:55:51.17ID:TX0+G/oC{
public:
cLoadText() : PI(3) {}
private:
//色々
vector <int> PI;
};
0294デフォルトの名無しさん
2015/03/16(月) 16:00:20.96ID:ErhRBgzcありがとう御座います!!
ここ数日間の悩みが吹っ飛びました!!
0295デフォルトの名無しさん
2015/03/16(月) 22:41:17.24ID:BYGyc2yUplain Cでは参照が使えない
0296デフォルトの名無しさん
2015/03/17(火) 00:05:46.48ID:T++49l0aここで質問に答えている人はどこでその知識や技術を手に入れてるの?
0297デフォルトの名無しさん
2015/03/17(火) 00:21:44.73ID:qNYikdDN0298デフォルトの名無しさん
2015/03/17(火) 00:41:41.24ID:dRjYd+3d定番の参考書と仕様書を読み基礎知識を身につける
後はその基礎知識をもとに考えれば分かるから新たに知識を集める必要はない
その辺の技術者が考えても分からんような技術はこのスレではまず扱わないから考えなくて良い
0299デフォルトの名無しさん
2015/03/17(火) 22:28:51.21ID:5z2zSXt/class cLoadText
{
public:
cLoadText() : PI(3) {}
void Setting();
private:
//色々
vector <int> PI;
};
void cLoadText::Stting()
{
PI.resize(5);
}
このようにresizeすることが出来ません。
「配列は初期化子リストでのみ初期化できます」と出てしまいます。
何度も質問してしまいすみません。
0300デフォルトの名無しさん
2015/03/17(火) 22:37:08.80ID:OqObOA9c○Setting
0301デフォルトの名無しさん
2015/03/17(火) 22:47:22.87ID:T++49l0aなんとなくわかるなぁ
>>298
それが出来るのはすごい
0302デフォルトの名無しさん
2015/03/17(火) 23:42:15.16ID:5z2zSXt/確かに間違ってました。
でもまだ上手く出来ません
0303デフォルトの名無しさん
2015/03/18(水) 00:05:15.53ID:24dY5kJQ0304デフォルトの名無しさん
2015/03/18(水) 00:56:57.87ID:3JLfZ6Laそうだと思います。
void main()
{
int a = 1;
vector<int> abc;
abc.resize(a,0);
//色々
}
このようにclass以外の場所なら普通に出来るので
0305デフォルトの名無しさん
2015/03/18(水) 10:28:26.60ID:b1qBgKlJ言い換えるとmalloc(10 * 5);を
newに書き換えた場合どうするのがセオリーですか?
new BYTE[10 * 5]ですか?
0306デフォルトの名無しさん
2015/03/18(水) 19:32:02.17ID:DpmcYHF9publc:
struct st{
・・・
}:
}
のstをstaticにして、aがnewされて無い時でも、
使えるようにするにはどうしたら良いのでしょうか。
0307デフォルトの名無しさん
2015/03/18(水) 19:38:40.21ID:mHp9M5nmpublc:
struct st{
・・・
}:
static st b;
};
a::b.なんとかかんとか
0308デフォルトの名無しさん
2015/03/18(水) 20:06:11.09ID:DpmcYHF90309デフォルトの名無しさん
2015/03/18(水) 20:09:55.95ID:E+Ido+dl0310デフォルトの名無しさん
2015/03/18(水) 20:42:27.32ID:9IH8xo4hunsigned long long(64bit)じゃないですか。
そうすると、
for(int i=0; i<vect.size();i++)
みたいな行で必ず警告出ますよね(VS2013C++)。
for(size_t i=0; i<vect.size();i++)
ってやると警告無くなりますが、
i--のループの場合などややこしいのでint iでやりたいんですよね。
なので、私のプログラムでは、(int)vect.size()みたいなキャストが
至る所にあるんですけれど、上級者の人はどういうふうに書くんでしょうか?
0311デフォルトの名無しさん
2015/03/18(水) 20:45:17.04ID:E+Ido+dl0312デフォルトの名無しさん
2015/03/18(水) 20:47:31.34ID:9hZ5ipnLイテレータを使う
0313デフォルトの名無しさん
2015/03/18(水) 20:56:47.69ID:9IH8xo4h上級者の人は、for(int i=0; みたいな昔ながらの構文は殆ど使わずに、
range based forみたいなやり方をされるんでしょうか?
その時例えばループ内でindexが必要になったらどうするんですか?
i++みたいな変数を用意しておくんでしょうか?
0314デフォルトの名無しさん
2015/03/18(水) 21:03:51.11ID:thzHuobJアンサインドだしintで警告出るのは当然だが。
0315デフォルトの名無しさん
2015/03/18(水) 21:04:10.81ID:6vqFZ2Fz初めて警告ありがたいと思ったわw
ぜったいコンパイラのバグだと思ってたw
0316デフォルトの名無しさん
2015/03/18(水) 21:11:33.96ID:ga5a3ZRD0317デフォルトの名無しさん
2015/03/18(水) 21:24:41.82ID:6vqFZ2Fzコンパイルオプション変えようなんて発想はなかったね(´・ω・`)
0318デフォルトの名無しさん
2015/03/18(水) 21:28:02.63ID:E+Ido+dl問題あるから警告してるんだろうが
0319デフォルトの名無しさん
2015/03/18(水) 21:42:26.74ID:6vqFZ2FzVCはデフォで警告してくれた(´・ω・`)
0320片山博文MZ ◆T6xkBnTXz7B0
2015/03/18(水) 22:10:08.00ID:ONjzG27k0321デフォルトの名無しさん
2015/03/18(水) 22:26:21.21ID:6vqFZ2Fz肝に銘じとくよ(>△<)
0322デフォルトの名無しさん
2015/03/18(水) 23:04:50.29ID:KiMx4fSvgcc -W -Wall -ansi -pedantic
がいいいのでわ
0323デフォルトの名無しさん
2015/03/19(木) 07:22:23.53ID:FyROe61Zそもそもアンサインドなんていう変数の必要性が分らない。
そんなものがあるから混乱の元だと思う。数字なんだから正負を扱える
サインドな変数だけで十分だと思う。vect.size()などもint型あるいはlong型
のほうが扱いやすいと思う。皆さんそう思いませんか?
0324デフォルトの名無しさん
2015/03/19(木) 07:38:15.80ID:YFRVnvTE1byteが0〜255じゃなくなるがよろしいか
0325デフォルトの名無しさん
2015/03/19(木) 07:41:48.28ID:FyROe61Zバイトを扱うデータは、逆に、例外的にunsigned charのみにすればいい。
0326デフォルトの名無しさん
2015/03/19(木) 07:45:00.69ID:I9aM4Cw3お前が作ればいいだけのこと
0327デフォルトの名無しさん
2015/03/19(木) 07:49:02.36ID:YFRVnvTEサイズを扱うデータはryとも書き換えられるんだが
サイズがマイナスになるのもおかしいし
0328デフォルトの名無しさん
2015/03/19(木) 07:49:07.00ID:zgYNpxtEそういえばJavaにはunsignedが無いらしい
他言語経験者、他言語からの移植が難しい言語だよな
0329デフォルトの名無しさん
2015/03/19(木) 07:53:35.47ID:FyROe61Z>Javaにはunsignedが無いらしい
本当か!さすがJava
0330デフォルトの名無しさん
2015/03/19(木) 08:10:26.63ID:I9aM4Cw3移植はともかく他言語経験者が戸惑うことなんてほとんどないだろ
メジャーな高級言語で符号なしがあるのは、C/C++/C# ぐらいだし
0331デフォルトの名無しさん
2015/03/19(木) 08:14:47.47ID:FyROe61Z>サイズがマイナスになるのもおかしいし
そうだとしても、size()をunsignedにする必要性がないだろ。signedで
値を返せよ。誰だよsize()をunsigned何かにした奴は。俺が言語とは何か
を10時間くらい説教してやってもいい。
0332デフォルトの名無しさん
2015/03/19(木) 08:15:11.74ID:SI87WM3gメモリに制約がないんだったら常にマイナスがあって良い。
0333デフォルトの名無しさん
2015/03/19(木) 08:18:04.06ID:SI87WM3gこれは4バイトでも扱える数が半分になるのは同様。
0334デフォルトの名無しさん
2015/03/19(木) 08:22:43.51ID:yurDzz1T> メジャーな高級言語で符号なしがあるのは、C/C++/C# ぐらいだし
ほんまかいやw
0335デフォルトの名無しさん
2015/03/19(木) 08:30:25.50ID:I9aM4Cw30336デフォルトの名無しさん
2015/03/19(木) 09:27:58.05ID:yurDzz1T0337デフォルトの名無しさん
2015/03/19(木) 11:01:08.61ID:4EbM+e6S0338デフォルトの名無しさん
2015/03/19(木) 11:22:15.74ID:ijLHMGuv0339デフォルトの名無しさん
2015/03/19(木) 11:26:04.89ID:ByTclLqzしょうがないね
0340デフォルトの名無しさん
2015/03/19(木) 13:03:22.01ID:7fppMTQbいままでC言語で仕事をしていて、興味はあったのでC++の入門サイトのようなものはなんども見たことがあるというようなレベルです
なので、クラスとは、とか演算子オーバーロードとは、といった入門書ではなく、C++で実践的にプログラムを書く上での設計方法などが書いてあるような書籍を読みたいと思っています。
C++はマルチパラダイムなのでどのように書いたらいいのかがわからず、収拾がつかなくなってしまいそうだったので、一度勉強し直そうと思った次第です。
C++をやるなら読んでおけ、といった定番書など、おすすめがあれば教えていただけないでしょうか
0341デフォルトの名無しさん
2015/03/19(木) 19:21:44.02ID:4EbM+e6Shttp://peace.2ch.net/test/read.cgi/tech/1425092139/
0342デフォルトの名無しさん
2015/03/20(金) 22:03:15.41ID:zGfmcxU+http://ecx.images-amazon.com/images/I/51YnWlvjCbL.jpg
0343デフォルトの名無しさん
2015/03/20(金) 23:11:49.99ID:KkcL1RkAoperatorで
変換関数や変換演算子は
カスタマイズできると解釈
しかし
自分でプログラミングして
自分で読むなら良いかもしれませんが
第三者が検証する場合
超迷惑ではないですか?
0344デフォルトの名無しさん
2015/03/20(金) 23:16:24.95ID:OrmcR1Cy型変換はオペレータではなく自作のテンプレート関数を使うのが基本です
型変換だけでなく演算子は代入以外はオーバーロードしてはいけません
これはよいマナーです
0345デフォルトの名無しさん
2015/03/20(金) 23:26:27.23ID:KkcL1RkA0346デフォルトの名無しさん
2015/03/22(日) 13:13:33.97ID:MxnNmn3I削除したり出来ますか?
0347デフォルトの名無しさん
2015/03/22(日) 13:29:37.62ID:CvAUvH6J0348デフォルトの名無しさん
2015/03/22(日) 13:34:58.88ID:MxnNmn3Iイテレータでなくても良いので、追加・削除する方法教えて下さい。
0349デフォルトの名無しさん
2015/03/22(日) 14:30:15.67ID:3VgWqhg10350デフォルトの名無しさん
2015/03/23(月) 19:52:36.73ID:x44pk4qeループで使ってるイテレータは無効になるかもだが。
0351デフォルトの名無しさん
2015/03/23(月) 20:10:24.34ID:iTA2cPA1erase(begin()+i)
0352デフォルトの名無しさん
2015/03/23(月) 20:59:29.69ID:RnMSimPV「かもだが」は戸田奈津子しか使わない言葉かと思ってた
0353デフォルトの名無しさん
2015/03/24(火) 15:41:47.42ID:EgIv9KoM普通のMFC AppWizardで作成したSDIのドキュメントビューなのですが、実行してファイルをオープンした際
そのファイルがショートカットファイルだった場合、カレントディレクトリがファイルをオープンしたディレクトリではなく
リンクしたファイルの元ファイルのディレクトリになってしまいます
そうではなくオープンしたフォルダーのディレクトリ(つまりショートカットファイルがあるところ)をゲットしたいのですが
どうしたらいいのでしょうか
0354デフォルトの名無しさん
2015/03/24(火) 17:19:25.56ID:c5zMSx2h0355デフォルトの名無しさん
2015/03/24(火) 17:22:36.77ID:EgIv9KoMそうではなく、ファイルオープンダイアログで開いて選択した場所を得たいのです
そのファイルがlnk拡張子のときが問題なのです
0356デフォルトの名無しさん
2015/03/24(火) 17:49:02.33ID:3G6z58HrWin32API質問箱 Build11
ttp://peace.2ch.net/test/read.cgi/tech/1418181169/
こっちでやったほうがいいと思う。
OpenFileDialogにOFN_NODEREFERENCELINKSフラグつけて IShellLinkでリンク先見つけるとかかな。
ttps://msdn.microsoft.com/en-us/library/windows/desktop/bb776891%28v=vs.85%29.aspx
0357デフォルトの名無しさん
2015/03/24(火) 17:58:10.22ID:gaKdTqU60358デフォルトの名無しさん
2015/03/24(火) 18:33:51.66ID:EgIv9KoMおお、出来ました。ああ、APIのスレもあったのですね。ありがとうございます。今度はそちらで質問しますね
とりあえず、結果だけ書くと、xxDoc.cppにOnFileOpen()をClassWizardで作ってその中で
CFileDialog d( TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_NODEREFERENCELINKS, NULL, NULL );
CString newName;
if( d.DoModal() == IDOK )
{
newName = d.GetPathName();
}
AfxGetApp()->OpenDocumentFile(newName);
としました。リンク先を見つける関数は持っていますので大丈夫ですw
オープンしたディレクトリにあるリンクファイルのリストを取りたかったのです
0359デフォルトの名無しさん
2015/03/24(火) 18:34:48.29ID:EgIv9KoM0360デフォルトの名無しさん
2015/03/24(火) 19:02:34.49ID:EgIv9KoM最後のAfxGetApp()->OpenDocumentFile(newName);はいりませんでした。これをつけると、ショートカットのオリジナルに
置き換えられてしまいました
0361デフォルトの名無しさん
2015/03/26(木) 13:22:44.44ID:VFh60g5M"AB" という文字列にしたいのですが、良い方法教えてください。
0362デフォルトの名無しさん
2015/03/26(木) 13:34:29.27ID:iGJalkdzsprintf(buff, "%x", c);
0363デフォルトの名無しさん
2015/03/26(木) 13:57:41.68ID:VFh60g5M有難うございました。うまく行きました。
0364デフォルトの名無しさん
2015/03/26(木) 14:16:57.23ID:VFh60g5M逆に
0xAB を "AB" にする方法も教えてください。
0365デフォルトの名無しさん
2015/03/26(木) 14:17:51.91ID:VFh60g5M"AB"を 0xAB にする方法です。
0366デフォルトの名無しさん
2015/03/26(木) 14:26:44.45ID:5RDFY36F0367デフォルトの名無しさん
2015/03/26(木) 14:27:20.92ID:5RDFY36Fsscanf("AB", "%x", &c);
0368デフォルトの名無しさん
2015/03/26(木) 14:35:33.37ID:iGJalkdzunsigned int u;
sscanf(buff, "%x", &u);
c = u;
0369デフォルトの名無しさん
2015/03/26(木) 14:35:43.08ID:yAHhbTvv0370デフォルトの名無しさん
2015/03/26(木) 14:44:02.93ID:VFh60g5Msscanfは苦手なのでstrtolというので
やったらうまく出来ました。
0371デフォルトの名無しさん
2015/04/01(水) 07:05:09.15ID:mF7dj2uBC++11でポインタ変数に代入する際、あるいは宣言時に初期化する際に、
v.elem = new double[size]{};
のように書くのは環境依存な書式でしょうか?
{}並びの初期化自体は標準なことは知っていますが、ふと、
ポインタ変数に代入するためのメモリ確保先についても同様な初期化が出来ないかな、
と思ってやってみましたらちゃんと動いてくれたのですが、プログラミングC++には載って無さそうなので自信がなく。
あ、いま現在は3月発売されたプログラミングC++を読みながら勉強している段階です(それも序章です)。
0372デフォルトの名無しさん
2015/04/01(水) 07:07:05.52ID:Syl8uMAd0373デフォルトの名無しさん
2015/04/02(木) 20:14:37.66ID:7L9aZ1aBchar* a = "Hello";
char** b = &a;
これは問題ないのですが
char a[ ] = "Hello";
char** b = &a;
にするとエラーが表示されてしまいます
「'char(*)[6] から 'char**' に変換できません」
char* a と char a[ ] は同じ事ですよね?
エラーは何故ですか?
0374デフォルトの名無しさん
2015/04/02(木) 20:23:18.84ID:o/jSuq+zgccだとエラーにならないんだが。
コンパイラは何使ってる?
0375デフォルトの名無しさん
2015/04/02(木) 20:48:14.07ID:I6N+g04C0376デフォルトの名無しさん
2015/04/02(木) 21:24:26.66ID:7L9aZ1aBVisual C++ express2010 です
0377デフォルトの名無しさん
2015/04/02(木) 21:51:30.14ID:/D/mA8hnいつものようにクソコテつけろよ
0378デフォルトの名無しさん
2015/04/02(木) 22:04:46.55ID:ppgBhtYUchar (*b)[sizeof(a)] = &a;と書けといっている。C++でchar **で受けるにはキャストが必要。
>>374
エラーメッセージの意味が分かない初心者は無理して答えようとするな。g++ならエラーになる。
後10年ROMってろ。
0379デフォルトの名無しさん
2015/04/03(金) 06:49:25.60ID:5yLYNr/e>>char* a と char a[ ] は同じ事ですよね?
CでもC++でも同じじゃない。
0380デフォルトの名無しさん
2015/04/03(金) 15:31:48.07ID:meEowfeo0381デフォルトの名無しさん
2015/04/03(金) 18:47:46.29ID:IhAjgxOmint main(void) {
char* a = "abc";
char b[] = "abc";
a = (char*)0;
b = (char*)0;
return 0;
}
これとか
int main(void) {
char* a = "abc";
char b[] = "abc";
a[0] = 0;
b[0] = 0;
return 0;
} 👀
Rock54: Warning(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
0382373
2015/04/03(金) 19:55:36.03ID:xlrx6Tuoエラーの出る方はcastを使って型変換してみました
char a[ ] = "Hello";
char* c = reinterpret_cast <char*> (a);
char** b = &c;
エラーメッセージをよく読み理解するように心がけます
それからsizeofを試してみたところ
char* a 4バイト
char a[ ] 6バイト
でした
やっぱ違うんですね
0383373
2015/04/04(土) 07:41:32.89ID:quWyoCu5の場合、&i でi のアドレスを知る事が出来きます
char c = 'a';
の場合
cout << &c;
で表示されたのは、aでした
sizeof(&c)は4なので、アドレスのサイズを示していると思うのですが
では
cのアドレスを知るためにはどうしたら良いですか
0384デフォルトの名無しさん
2015/04/04(土) 07:44:02.02ID:ryX6PA/c0385デフォルトの名無しさん
2015/04/04(土) 09:06:00.76ID:YGBBXr+70386デフォルトの名無しさん
2015/04/04(土) 09:45:26.99ID:QykeKoHq0387デフォルトの名無しさん
2015/04/04(土) 12:04:14.16ID:GZJxoxqqbasic_ostreamに
basic_ostream<charT, traits> & operator<<(const void * p);
が有るんだからいけるんじゃね
0388373
2015/04/04(土) 14:55:04.92ID:AgtN2Wz8今C++を勉強中ですが
(void*)が呪文のように見えます
printf("%x", &c);
16進数で示せば良いんでよね
C++習うならCも必要みたいですね
0389デフォルトの名無しさん
2015/04/04(土) 15:14:43.29ID:GZJxoxqqそりゃcout<<&c は printf("%s", &c); 相当だからね。
printf("%x", &c) がやりたいなら
cout << hex << reinterpret_cast<std::intptr_t>(&c)
ちなみに%Xはサイズ指定が不正なので誤り。
%pもvoid*以外のchar*を渡してはいけない
0390デフォルトの名無しさん
2015/04/04(土) 16:37:48.72ID:QykeKoHq0391片山博文MZ ◆T6xkBnTXz7B0
2015/04/04(土) 17:55:01.42ID:AbppvLIlcout << reinterpret_cast<void*>(&c);
か
cout << reinterpret_cast<const void*>(&c);
で充分。
ちなみにポインターのサイズはsizeof(size_t)と同じだが、
64ビット環境の場合は8バイトになるので、注意が必要。
%pにchar*を渡しても問題ない。
0392片山博文MZ ◆T6xkBnTXz7B0
2015/04/04(土) 17:58:00.99ID:AbppvLIl0393デフォルトの名無しさん
2015/04/04(土) 18:19:13.86ID:gGW99ehv0395デフォルトの名無しさん
2015/04/04(土) 18:56:36.77ID:QykeKoHq良くないと思うよ?(´・ω・`)
例えばポインターのサイズは何ビットCPUかではなくて、環境依存だしね?(´・ω・`)
ちなみにポインタのサイズはsizeof(void*)で取らなきゃ駄目だよ?(´・ω・`)
環境やシステム、コンパイラの実装、そういったものが絡むのがポインタだから
ポインタを使ってデータにアクセスする手法は一般化できるけど、ポインタ
そのものを取り扱う時には注意が必要なんだよ?(´・ω・`)
一般化を信じ過ぎて思い込みが激し過ぎるとsizeof(size_t)でポインタのサイズが
取れるなんて嘘を他人に教える羽目になるんだよ?(´・ω・`)
0397デフォルトの名無しさん
2015/04/04(土) 19:37:59.77ID:QfyL0AY2ワードアドレッシングコンピューターってのもあるのよ
0398デフォルトの名無しさん
2015/04/04(土) 19:51:24.75ID:GZJxoxqqISO/IEC 9899:2011 p7.21.6.1
The argument shall be a pointer to void.
%pの引数はvoidへのポインターでなくてはならない
0399デフォルトの名無しさん
2015/04/04(土) 19:59:43.39ID:QykeKoHq0400デフォルトの名無しさん
2015/04/04(土) 20:05:19.59ID:GZJxoxqqどこを読んだらそうなるのよ
argumentは実引数ですよ
C/C++のポインターは型によってサイズも表現も
同じであることは限らないというのに
0401デフォルトの名無しさん
2015/04/04(土) 20:09:59.37ID:QykeKoHqどんな型のポインタを渡しても、それが何か有効な操作や意味をなしている
とは解釈しない、つまりvoidへのポインタとして処理する。
こう考えるのが正しいよね?(´・ω・`)
0402デフォルトの名無しさん
2015/04/04(土) 20:23:42.18ID:GZJxoxqq>つまりvoidへのポインタとして処理する。
>こう考えるのが正しいよね?(´・ω・`)
そうだな
規格上 実引数はvoidへのポインターでなければならないから
当然fprintfはvoidへのポインターとして解釈する。
だからchar*を渡してはならないのだが、何を言いたいのかわからん。
char*が8バイトでvoid*が16バイトの処理系があったとしたら
void*にキャストして渡さないと明らかに誤作動するだろ?
0403デフォルトの名無しさん
2015/04/04(土) 20:28:47.60ID:QykeKoHqなぜか「英単語」の知識が慰め程度にあるようだけど、実に不十分だよね?(´・ω・`)
それに何を元にchar*とvoid*のサイズが違う場合があり得ると言ってるのか
とても理解できないけど、大丈夫、そんな現実は宇宙の果てまで行っても、
あり得ないから気にしなくてもいいよ?(´・ω・`)
君、実の所、プログラミングしたことないみたいだよね?(´・ω・`)
0404デフォルトの名無しさん
2015/04/04(土) 20:34:35.68ID:GZJxoxqq>あり得ないから気にしなくてもいいよ?(´・ω・`)
なるほど。規格上は許されていないことは理解できたんだな
0405デフォルトの名無しさん
2015/04/04(土) 20:40:04.09ID:QykeKoHq0406デフォルトの名無しさん
2015/04/04(土) 20:57:44.84ID:idtQs6kn0407デフォルトの名無しさん
2015/04/04(土) 21:21:00.29ID:QykeKoHq強いて気にする人がいるとすれば、JISを作った人だけだからね?(´・ω・`)
0408デフォルトの名無しさん
2015/04/04(土) 21:34:30.98ID:GZJxoxqq『The argument shall be a pointer to void.』
どういう思考をしたらchar*の実引数を渡しても良いと解釈できるのよ
『void』の所は等幅フォントだぞ
0409デフォルトの名無しさん
2015/04/04(土) 21:39:05.13ID:QykeKoHq君は英語が理解できないんだから英語の文章を引用しちゃだめだよ?(´・ω・`)
0410デフォルトの名無しさん
2015/04/04(土) 21:42:35.30ID:9bkiiXE2直訳:引数はヴォイド型へのポインタであるべきである。
理由は>>401の通りだが、結論について述べた文なので
訳としては>>398であっているような気がするが、違うのか?
0411デフォルトの名無しさん
2015/04/04(土) 21:49:44.57ID:ugaLmOKAこの場合の助動詞 shall は話者の命令または強い願望、
すなおに「引き数は void 型へのポインタだ(断言)」くらいに強く訳するのが当たり前 >>398 は正解
例
you shall die.
訳
死ね
0412デフォルトの名無しさん
2015/04/04(土) 21:50:22.44ID:QykeKoHq0413デフォルトの名無しさん
2015/04/04(土) 21:52:48.21ID:ugaLmOKA0414デフォルトの名無しさん
2015/04/04(土) 21:55:57.94ID:QykeKoHqさっきも言ったよね?「英単語」の知識だけで英文を解釈しちゃ駄目だよ?(´・ω・`)
0415デフォルトの名無しさん
2015/04/04(土) 21:58:50.28ID:ugaLmOKAshould だったら多少含むところはあるが‥
英単語の知識すらないようでは話にならない
0416デフォルトの名無しさん
2015/04/04(土) 22:00:07.46ID:idtQs6knなんか外語コンプ凄そうだしやべーな
0417デフォルトの名無しさん
2015/04/04(土) 22:00:58.94ID:9bkiiXE2事実だけ述べた>>399みたいな翻訳になるべき、という指摘の意図が見えない
理由としての事実はその通りだけど、結論としてそうなるべき、という原文なのでは?
0418デフォルトの名無しさん
2015/04/04(土) 22:04:58.87ID:ugaLmOKA0419デフォルトの名無しさん
2015/04/04(土) 22:06:46.41ID:QykeKoHq理解していなかったんだね?(´・ω・`)
じゃあ、そういう勘違いをしても無理はないよね?(´・ω・`)
君が大袈裟に持ち出してるISO/IEC 9899:2011は、処理系やライブラリを
「実装する人達を対象に書かれている」んだよ?(´・ω・`)
だから、「渡されたポインタがどんな型のポインタであれ、そのポインタで
有意な操作やアクセスをしてはならないvoid*として受け取る『べき』である」
というのが、この規格の文章の真意なんだよ?
つまり、処理系を「使う人」は、それをどう解釈すべきかというと、どんな型の
ポインタを渡しても、その型特有の動作を期待するな、ということなんだよ?(´・ω・`)
0420デフォルトの名無しさん
2015/04/04(土) 22:09:05.21ID:GZJxoxqqであると4章の冒頭で定義されているよ。
結論としてそうなるとか意志という話ではなくて
それが守られなかったら"behavior is undefined"になる
という強い要求事項だし
shallは処理系だけの要求ではない
0421デフォルトの名無しさん
2015/04/04(土) 22:10:18.11ID:ugaLmOKA何その憲法9条なみの解釈‥
0422デフォルトの名無しさん
2015/04/04(土) 22:11:48.51ID:9bkiiXE2すると>>399は勝手にユーザー側に主語を置き換えて意訳した、ということ?
0423デフォルトの名無しさん
2015/04/04(土) 22:12:56.89ID:GZJxoxqqargumentってのは関数呼び出しの括弧内に書かれる式と3.3で規定されてるの。
だから『The argument shall be a pointer to void.』
は処理系への要求じゃなくてプログラムへの要求。
0424デフォルトの名無しさん
2015/04/04(土) 22:28:07.79ID:t8faLDpu>char*が8バイトでvoid*が16バイトの処理系があったとしたら
>void*にキャストして渡さないと明らかに誤作動するだろ?
お前が規格を知らないのは分かった
JIS X 3010 6.5.2
voidへのポインタは,文字型へのポインタと同じ表現及び同じ境界調整要求をもたなければならない
0425デフォルトの名無しさん
2015/04/04(土) 22:37:46.63ID:QykeKoHq持ち出すのは無茶だよね?(´・ω・`)
ここでvoid*を「渡すべき!渡さなければならない!」なんて解釈をしてる
人達が処理系の実装やライブラリの作成をするような事がないことを
祈ってるよ?(´・ω・`)
もちろん、君らが一所懸命void*にキャストして渡したりするのは別に
止めないからご自由に、でも、たま〜に思い出してね?(´・ω・`)
『そんな事をしろとは書かれてはいなかった』ということにね?(´・ω・`)
0426デフォルトの名無しさん
2015/04/04(土) 22:41:08.38ID:GZJxoxqqなるほどそんな規定があったのね。ありがと。
char*はvoid*と同じ表現になるので
>>402はint*とかの例じゃないと駄目だね。
0427デフォルトの名無しさん
2015/04/04(土) 22:54:16.36ID:NZvoao1F0428デフォルトの名無しさん
2015/04/04(土) 23:20:59.71ID:ugaLmOKA0429デフォルトの名無しさん
2015/04/04(土) 23:32:42.85ID:QykeKoHqどうせ拘るなら shall だけじゃなく shall be にしてみたらどうかな?(´・ω・`)
0430デフォルトの名無しさん
2015/04/04(土) 23:33:00.77ID:NZvoao1Fshall beでセットなんだが
0431デフォルトの名無しさん
2015/04/04(土) 23:36:18.79ID:QZn/smWm(しなかったらundefined behaviorな)」
0432デフォルトの名無しさん
2015/04/04(土) 23:53:02.41ID:+L10ZiLX「引数はvoidへのポインタとして扱われる」くらいの意味だろ
「引数はvoidへのポインタでなければならない」ならそんな書き方しない
shall beはwill beのちょっとかしこまった言い方ってだけだよ
0433デフォルトの名無しさん
2015/04/05(日) 00:06:40.49ID:FDG90W2K0434デフォルトの名無しさん
2015/04/05(日) 00:10:16.04ID:XqnpqZbw0435デフォルトの名無しさん
2015/04/05(日) 00:11:49.63ID:jTCOwTkn>>420
0436デフォルトの名無しさん
2015/04/05(日) 00:17:06.75ID:XqnpqZbw0437デフォルトの名無しさん
2015/04/05(日) 00:29:31.09ID:UrJ8NZb00438デフォルトの名無しさん
2015/04/05(日) 00:31:58.88ID:CGkbVOZ+なるほどね
規格読み返してみたけど君の解釈が「正しい」のかも知れんな
規格原理主義者は%pにはvoidポインタ以外渡しちゃだめだ
0439デフォルトの名無しさん
2015/04/05(日) 00:32:28.59ID:db7WcjYSえいご
わかりません
0440デフォルトの名無しさん
2015/04/05(日) 00:35:51.03ID:XqnpqZbw我が軍と同じくらいに、どうでもいいこと
0441デフォルトの名無しさん
2015/04/05(日) 00:40:44.29ID:UrJ8NZb0> 規格原理主義者
レッテル張りかっこわる
0442デフォルトの名無しさん
2015/04/05(日) 00:45:04.80ID:VLZ3sHIo0443デフォルトの名無しさん
2015/04/05(日) 11:38:56.88ID:SiXuOFYx15年遅れてるな
0444デフォルトの名無しさん
2015/04/05(日) 11:46:42.72ID:rNWPAuL5memsetのプロトタイプ宣言がvoid*だから
どんなポインタを渡してもvoid*にキャストされるんだよね?
0445デフォルトの名無しさん
2015/04/05(日) 11:52:34.36ID:ZSoXTOOkYes
0446デフォルトの名無しさん
2015/04/05(日) 13:48:25.52ID:Y9KK0C0V規格の文面で絶対の決まりを表す用語
破ったら未定義動作となる
普通の英語じゃあないよな
0447デフォルトの名無しさん
2015/04/05(日) 14:50:55.70ID:a2jqf7RM決まり文句で日常の用法にはそぐわない英文も、ちゃんと意味を読み
取れないと頓珍漢坊やになっちゃうよね?(´・ω・`)
0448デフォルトの名無しさん
2015/04/05(日) 16:04:05.05ID:R7Sn2ugM仕様ではなくテストコードを信用する
0449デフォルトの名無しさん
2015/04/05(日) 16:56:35.52ID:DBLSnUys0450デフォルトの名無しさん
2015/04/05(日) 17:32:07.95ID:R7Sn2ugM黙れよ蛆虫
0451デフォルトの名無しさん
2015/04/05(日) 17:57:23.15ID:XqnpqZbw0452デフォルトの名無しさん
2015/04/05(日) 19:52:01.88ID:a2jqf7RMそう分かってるから「実際に動作させる為」には結果として規格を
無視したような形になることも多いんだよ?(´・ω・`)
0453デフォルトの名無しさん
2015/04/05(日) 19:54:44.54ID:R7Sn2ugMこれを信用するなどとてもではないが出来ない
0454デフォルトの名無しさん
2015/04/05(日) 20:11:56.03ID:WDwqsM6E有名どころのコンパイラ、かつよく使う機能で規格違反してる例を挙げてみて
0455デフォルトの名無しさん
2015/04/05(日) 20:39:32.90ID:XqnpqZbwC++ にて、C の標準関数が std:: 名前空間に入っていない‥
0456デフォルトの名無しさん
2015/04/05(日) 20:42:37.44ID:TvAWCJDa447のレスに単語レベルで反応してとんちんかんな脊髄反射レスする>>448は猿
0457デフォルトの名無しさん
2015/04/05(日) 20:50:54.58ID:ZSoXTOOkVisual C++で例外指定子が正しく機能せず例外がダダ漏れ
Visual C++で一時オブジェクトのサブオブジェクト束縛が機能していない
Visual C++でテンプレートのtwo phase lookupが未実装
0458デフォルトの名無しさん
2015/04/05(日) 20:59:30.71ID:ZSoXTOOkいや入ってるでしょ
::printfが使えてもそれは規格違反じゃない
0459デフォルトの名無しさん
2015/04/05(日) 21:02:40.28ID:bBY1K80d0460デフォルトの名無しさん
2015/04/05(日) 22:05:59.08ID:XqnpqZbwうん、確かに文章が不正確だった、::printf() が使える、というのがいいたかったが、それは規格違反じゃないのか‥
0461デフォルトの名無しさん
2015/04/05(日) 22:20:55.80ID:a2jqf7RM// コメント
は、C言語では本来 syntax error になる「べき」なんだよ?(´・ω・`)
そういった意味で、そうなってた方が便利な規格破りは、みんなが
容認し、忘れ果てているんだよ?(´・ω・`)
0462デフォルトの名無しさん
2015/04/05(日) 22:42:11.81ID:PLgIHeLQここまでアホだったとは
0463デフォルトの名無しさん
2015/04/05(日) 22:55:13.16ID:ZSoXTOOk15年ほど前の改定で仕様に入りましたよ。
ISO/IEC 9899:1999
あとinline関数とboolと関数途中での変数宣言も
0464デフォルトの名無しさん
2015/04/05(日) 23:03:20.90ID:a2jqf7RM//コメントが使えるコンパイラが未だにうちのメイン環境なんだよ?(´・ω・`)
0465デフォルトの名無しさん
2015/04/05(日) 23:55:58.15ID:IQT7yCtjただVCはC99対応しない理由を聞かれてHerb Sutterが
"C++しか対応しないからしない"みたいな
意味不明な回答で突っぱねてたから この先もダメだな
0466デフォルトの名無しさん
2015/04/06(月) 02:30:52.61ID:AEDCz7+80467デフォルトの名無しさん
2015/04/06(月) 20:28:50.66ID:psi/puUGhttps://www.jpcert.or.jp/sc-rules/c-exp02-c.html
普通に↓こう書いた場合に比べどう優れているのかよくわからないのですが、
どういう意味でしょう。
char *p = NULL;
if (p == NULL) {
p = (char *) malloc(BUF_SIZE);
}
if (p == NULL) {
/* malloc() エラーの処理 */
return;
}
/* p を使った処理 */
free(p);
p = NULL;
0468デフォルトの名無しさん
2015/04/06(月) 20:42:00.86ID:MCC65dXP0469デフォルトの名無しさん
2015/04/06(月) 20:43:57.66ID:xs2FCQ4G例えばあなたの書いたコードの/* pを使った処理 */の部分でp++なんて処理があると問題が出るので、
確保/解放のために中間変数qを使うのは有効な手段ですね
0470デフォルトの名無しさん
2015/04/06(月) 20:52:12.99ID:O0Zj/Wgz最初のpは、nullかもしれないし、そうでないかもしれないじゃない?
というかそういう問題設定なんでしょ
0471デフォルトの名無しさん
2015/04/06(月) 22:09:39.85ID:kbbZVT1Z>if (p || (p = (char *) malloc(BUF_SIZE)) )
「このサンプル、実は最初の初期化は不適切なポインタが入ってました。
なのでifの短絡評価が危険」
などというのはただのキチガイではないか。
短絡評価は関係ないし、適合コードとやらが
未初期化の変数を参照してるじゃないか
0472デフォルトの名無しさん
2015/04/06(月) 22:32:57.77ID:unSCtj/9char *p = 〜; //ローカル変数のアドレスを設定。NULLの場合もある
if (p || (p = (char *) malloc(BUF_SIZE)) ) {
free(p);//pがNULLでなかったらアウチ
}
0473デフォルトの名無しさん
2015/04/07(火) 00:02:54.32ID:PBUFU5zNchar *p;
がコンパイルエラーになります
原文サイトの方は訂正したっぽい
説明のための強引なコードだと思いますけど
0474デフォルトの名無しさん
2015/04/07(火) 03:54:22.69ID:3rL1l7vphttp://daily.2ch.net/test/read.cgi/newsplus/1428323377/
「すべての机とすべての家庭にコンピューターを、というのが当初の目標だった。
この大胆なアイデアに、私たちは気が触れているとみんなが思った」。
あれからコンピューティングがどれほど進展したかを思うと感慨深い。
その革新にマイクロソフトが果たした役割は、私たち全員が誇りにできる」
とりあえず、お疲れ
0475デフォルトの名無しさん
2015/04/07(火) 05:10:58.22ID:oZeWhsk3char *p = NULL;
if (p == NULL) {
p = (char *) malloc(BUF_SIZE);
if (p == NULL) {
/* malloc() エラーの処理 */
return;
}
}
/* p を使った処理 */
free(p);
p = NULL;
君のコードの構造は、{ } ブロック階層が対応していないので、
他人には論理的に考えにくい
mallocのエラー処理は、
mallocの処理の、{ } ブロック階層でする
0476デフォルトの名無しさん
2015/04/07(火) 06:10:12.54ID:YU7hVe8Kvoid func(char *p) {
...
}
あとはこうやって呼び出せば、違反コードで配列をfree()して問題が出る。
char c[] = "abcde";
func(c);
0477デフォルトの名無しさん
2015/04/07(火) 18:37:50.36ID:/U9ZAOiyコード突入時に p にすでに有効なブロックへのポインタが入っていたときは、それを使う
そうでないときは、新たに malloc() し、使用後には free() する
という内容を適合コードは示したかったんだろう
以前の p の値を使って何かする意図がなければ >>467 で問題ない
>>475
そのインデントは無意味はおろか信用おけない
0478デフォルトの名無しさん
2015/04/07(火) 21:08:26.63ID:NuDnBYW1char *p = "hoge";
.....
の場合でも適合コードは正しく動く。
翻訳後に改訂されたのかもしれないけど、原文の解説はもうちょっと分かりやすい。
0479467
2015/04/07(火) 21:56:14.18ID:n9UABU2Yこれで納得しました。
・ポインタを2つ用意。
・その内の一つのポインタ(q)は領域の確保、開放以外には使わない。
・もう一つのポインタ(p)経由で取得した領域にアクセスする。
・メリット:取得した領域にアクセス時に p++ 見たいな処理があっても安全。
こういうことですよね。
>>472 >>478
このあたりの理由は、
char *q = "aaa";
とか間違ってしまうリスクと、大して変わらん気が個人的にはします。
>>475
そうですね。そうします。
0480デフォルトの名無しさん
2015/04/08(水) 07:49:04.14ID:Ll2kXDCr>> ・メリット:取得した領域にアクセス時に p++ 見たいな処理があっても安全。
それは違う。
>>469 は >>467のURLのページとは関係ない内容で間違っている
他の人のレスは比較的正しい
つまり、>>467 のURLのページは、pというポインタが何かを指しているかもしれない
状況で必要に応じ malloc するという処理の話なので、>>467のレスのコードは比較できない
0481デフォルトの名無しさん
2015/04/08(水) 08:46:48.30ID:MMv/AUoxそれをif文で書いた等価なものも同じバグを発生する。
この解説では、副作用を伴う短絡評価が劣っているとは思えないな。
|if (!p) {
| if (!(p = (char *) malloc(BUF_SIZE))) {
| /* malloc() エラーの処理 */
| return;
| }
|}
|/* p を使った処理 */
|free(p);
_p = NULL;
0482デフォルトの名無しさん
2015/04/08(水) 18:51:43.91ID:bmMbB0Da0483デフォルトの名無しさん
2015/04/08(水) 19:50:31.72ID:zdo71eVCなんかすっきりしないな。
/* p を使った処理 */
で示される処理は、性質の違う何種類かのpがあるわけだよね。
たとえば
(1)char* p="aaa";
見たいなpだったり、
(2)p=(char*)malloc(BUF_SIZE);
だったり。
(1)のケースでは*pは右辺値にしか使えないが、
(2)ケースはいきなり右辺値として使うわけにはいかないから、
/* p を使った処理 */では(1),(2)の区別をしながらの処理になるわけで、
短絡処理云々の前にコード何とかしろって見える。
0484靖国参拝、皇族、国旗国歌、神社神道を異常に嫌うカルト
2015/04/08(水) 20:28:55.74ID:YGdJSkrv・沢山の人が偏った意見を一貫して支持する
偏った意見でも、集団の中でその意見が信じられていれば、自分の考え方は間違っているのか、等と思わせる手法
・不利な質問をさせなくしたり、不利な質問には答えない、スルーする
誰にも質問や反論をさせないことにより、誰もが皆、疑いなど無いんだと信じ込ませる手法
偏った思想や考え方に染まっていたり、常識が通じない人間は、頭が悪いフリをしているカルト工作員の可能性が高い
10人に一人はカルトか外国人
「ガスライティング」で検索を!..........................
0485デフォルトの名無しさん
2015/04/09(木) 20:07:39.62ID:RASnxKOC>>469は>>467のURLの内容とは違う指摘をしているけど、>>467のコードが*p=NULLとしている時点でURLの内容とは違っている
URL関係なく>>467のコードだけでみたら>>469の指摘は的を得ている
0486デフォルトの名無しさん
2015/04/09(木) 20:23:04.37ID:RwhQ7Yg00487デフォルトの名無しさん
2015/04/09(木) 20:28:36.14ID:gZmmqPNO0488デフォルトの名無しさん
2015/04/09(木) 20:34:03.02ID:gZmmqPNOp++ していても大丈夫なように q を準備するよりは、
p は free() 用に触らずに q++ すると思う
0489デフォルトの名無しさん
2015/04/09(木) 20:35:53.75ID:pcoyWA4u的は当てるものだと思うよね?(´・ω・`)
0490デフォルトの名無しさん
2015/04/09(木) 20:58:24.01ID:CjjJfO8Q弓矢を射る
両方アリなんじゃないか?
0491デフォルトの名無しさん
2015/04/09(木) 21:54:21.49ID:gZmmqPNOりんご?弓矢?
0492デフォルトの名無しさん
2015/04/09(木) 22:41:03.69ID:pcoyWA4u0493デフォルトの名無しさん
2015/04/10(金) 07:16:55.70ID:ok6HHZm/0494デフォルトの名無しさん
2015/04/10(金) 11:06:26.03ID:zodmepHa0495デフォルトの名無しさん
2015/04/10(金) 13:00:18.24ID:fyEHtgl00496デフォルトの名無しさん
2015/04/10(金) 13:25:29.42ID:hH3SZdaD的を射る くらいググッて調べろよwwwwww
0497デフォルトの名無しさん
2015/04/10(金) 13:36:25.02ID:DJ5EZnUd0498デフォルトの名無しさん
2015/04/10(金) 20:27:21.54ID:AgT+3q870499デフォルトの名無しさん
2015/04/10(金) 21:24:12.94ID:v6CzU2mfええか・・、君。>>490でも俺の書いた>>496でもいいけど、的を射るの部分をドラッグして青く反転させるんだ。
それをそのまま、アドレスバーなりツールバーの検索ボックスにでもドラッグすればいいんだ。わかるかね?
俺は、めんどくさいからやらないけどね。
0500デフォルトの名無しさん
2015/04/10(金) 22:25:59.72ID:9sVpyOtZ0501デフォルトの名無しさん
2015/04/11(土) 02:32:30.02ID:E7XSA8Ffどのような誤用も
間違いではないことになるな
0502デフォルトの名無しさん
2015/04/11(土) 13:35:31.26ID:ZdZnTiH50503デフォルトの名無しさん
2015/04/11(土) 13:36:19.71ID:C1O6jKf30504デフォルトの名無しさん
2015/04/11(土) 13:49:18.15ID:uu6GD3vz互いに相手の考えを訂正できる確固たる根拠は無し
よって互いにコイツ馬鹿と思っていればよい
0505デフォルトの名無しさん
2015/04/11(土) 14:53:47.20ID:q//XRpLR昔Cをやったことのある老人が集まって
オナニーコーディング規約をドヤ顔で量産されても
迷惑以外の何物でもない
内容がセキュリティーとも関係ないし
0506デフォルトの名無しさん
2015/04/12(日) 01:21:49.56ID:1M89zfPV0507デフォルトの名無しさん
2015/04/15(水) 01:08:53.41ID:5TWWmEKtcvWaitKey(0)
printf("1\n")
でwaitkeyが無視されて勝手に進むんですが原因教えてください
0508デフォルトの名無しさん
2015/04/15(水) 01:24:51.63ID:Mlfw56xYcvWaitKeyの前にcvNamedWindowしてる?
0509Office & Gamers ◆G144Hzgh2.0e
2015/04/15(水) 01:28:16.59ID:6vmnXgxy>cvWaitKey(0)
↓
試しにcvWaitKey(10000)ってやってみw
0510デフォルトの名無しさん
2015/04/15(水) 01:51:36.77ID:5TWWmEKtありがとうございます
NamedWindowをcvWaitの手前に持ってきたら、キー入力を待ってくれるようになりました。
同時に、NamedWindowで表示できなかった画像も表示できました
もしよろしければ、どういう理屈なのか教えてください
0511デフォルトの名無しさん
2015/04/15(水) 01:57:40.65ID:9nQYQHvGopenGLだとglinitする前に余計な処理をするとエラーするしw
0512デフォルトの名無しさん
2015/04/15(水) 12:20:56.96ID:xqoucdmZ0513Office & Gamers ◆G144Hzgh2.0e
2015/04/15(水) 12:23:03.99ID:6vmnXgxy0514デフォルトの名無しさん
2015/04/15(水) 12:29:13.45ID:LX/U9UXu0515デフォルトの名無しさん
2015/04/15(水) 15:36:28.14ID:d4qHhBeu> 何GMくらい積んでますか?
GM?
G × M = Peta ってことか?
俺は 0.000032GMB だな
0516512
2015/04/15(水) 21:28:09.69ID:Rj3o9wFB0517デフォルトの名無しさん
2015/04/15(水) 21:29:59.35ID:IVzT9Yfx0518デフォルトの名無しさん
2015/04/15(水) 22:02:02.96ID:N4qRGHT9お絵かきマンや金持ちは16GB
まあ平均なら6Gだと思う
0519デフォルトの名無しさん
2015/04/15(水) 22:08:16.44ID:OQL6MqQO4GBのつぎは8GBだろ普通
0520デフォルトの名無しさん
2015/04/15(水) 22:11:14.63ID:N4qRGHT93って書いたのは32bit時代の人は4G積んで3.2Gまでしか使ってない人が多いんじゃない?ってこと
0521デフォルトの名無しさん
2015/04/15(水) 22:21:29.27ID:t3UUHND4> 4G積んで3.2Gまでしか使ってない
質問は(>>512)何GMくらい積んでますか? なんだから、4G でいいだろ
日本語読めないのか?
0522デフォルトの名無しさん
2015/04/15(水) 22:31:11.19ID:S5fkPC3K以前から廉価モデルを除いて8GBだというのにおまえらは
0523デフォルトの名無しさん
2015/04/15(水) 23:28:24.66ID:e7criVwj参考に挙げただけだろ
日本語読めないんだな・・・
0524デフォルトの名無しさん
2015/04/15(水) 23:54:10.54ID:O2BuI96f今のPCは4GBx6の24GB積んでる。
今年は64GB積めるPCが欲しい。
0525デフォルトの名無しさん
2015/04/16(木) 00:04:41.57ID:BSEegCVi>>520 みたいな無様な言い訳すんなってことだよ
0526デフォルトの名無しさん
2015/04/16(木) 00:09:14.73ID:HRSNpUJy私物のPCならこの程度で十分だよ
0527デフォルトの名無しさん
2015/04/16(木) 00:12:08.22ID:UHwVA6F1わかりやすく言ってあげただけなのに。そこまで細かいこと言うんならそれこそ>>515が正しいんだが
0528デフォルトの名無しさん
2015/04/16(木) 00:27:01.35ID:niirhvYMどっちが無様なんだか
0529デフォルトの名無しさん
2015/04/16(木) 00:30:13.75ID:BSEegCVi単に言い訳重ねて笑われてるだけ
0530デフォルトの名無しさん
2015/04/16(木) 00:32:42.03ID:BSEegCVi揚げ足?
積んでる量聞いてるのに、わざわざ使用量答えてるんだが w
素直に勘違いしたって言えばいいのに
0531デフォルトの名無しさん
2015/04/16(木) 00:36:02.47ID:UHwVA6F10532デフォルトの名無しさん
2015/04/16(木) 00:53:52.59ID:UHwVA6F1何G積んでる?って言ってるんだから>>512はどれくらい詰めば快適あるいは十分なのかを知りたいんじゃないかな?と僕は考えるわけ
32bitの時は4GB積んで結局3.2GBしか使えなかったでしょ?それは殆ど3Gメモリ積んでるのと一緒だよね?
それでも4GB積んでるPCが多かったと思うから、いまのメモリ積んでる人の分布を大きく分けると
3(4G積んでる32bitPCのこと),4,8,16なんじゃないかなって僕は考えたわけ。ここまで言っても「勘違いしたんだろ」って思うのならもうご勝手に。
そもそも仕様量と勘違いしたのならこんなピンポイントに使う量分けられないよね?
はぁなんでこんな長文書いてるんだろアホらしい
0533デフォルトの名無しさん
2015/04/16(木) 00:57:04.90ID:Hrf2gWEy0534デフォルトの名無しさん
2015/04/16(木) 00:58:04.94ID:UHwVA6F10535Office & Gamers ◆G144Hzgh2.0e
2015/04/16(木) 01:03:51.28ID:sQiZAhF+0536デフォルトの名無しさん
2015/04/16(木) 06:20:15.93ID:BSEegCVi長文言い訳乙 w
0537Office & Gamers ◆G144Hzgh2.0e
2015/04/16(木) 06:31:46.29ID:sQiZAhF+0538デフォルトの名無しさん
2015/04/16(木) 06:51:03.50ID:niirhvYM>>518で積んでる量答えてるし
そのレスの3に突っ込まれたから32bitなら3までだからって説明しただけだろ
どっちが勘違いしてんだかw
>>536
本題では言い返せないからそれかw
0539デフォルトの名無しさん
2015/04/16(木) 07:15:02.79ID:/uhYfzZN0540デフォルトの名無しさん
2015/04/16(木) 07:42:45.37ID:6zGepQEU> そのレスの3に突っ込まれたから32bitなら3までだからって説明しただけだろ
聞いてもいない 32bit 制限の説明されても、ポカーンなんですけど w
0541デフォルトの名無しさん
2015/04/16(木) 07:47:45.70ID:SAbJyRpI0542デフォルトの名無しさん
2015/04/16(木) 08:17:23.56ID:g8NZq1YF何で自分のパソコンの事情が世界で普遍的だと思うかな
0543デフォルトの名無しさん
2015/04/16(木) 09:04:21.79ID:RUy6v1wb一つしか答えを思い付けないから、それが唯一の正解と思いこんでしまう
0544デフォルトの名無しさん
2015/04/16(木) 09:58:40.79ID:65ROg/6+どれくらい積んでればいいのかって話(たぶん)なんだからさぁ。
0545デフォルトの名無しさん
2015/04/16(木) 10:23:50.56ID:mssObkoMメモリは2枚同じサイズで差すのが常識だから、
大体2ギガ、4ギガ、8ギガ、16ギガだろう
0546デフォルトの名無しさん
2015/04/16(木) 11:27:52.87ID:aTWFYFQA1GBの2枚挿しをしてた人が
あとから足したくなって
余ってる2スロットに2GBの2枚挿しをすると合計6GBになる。
2GBの2枚挿しをしてた人が
あとから足したくなって
余ってる2スロットに4GBの2枚挿しをすると合計12GBになる。
4GBの2枚挿しをしてた人が
あとから足したくなって
余ってる2スロットに8GBの2枚挿しをすると合計24GBになる。
今は値下がりしにくいけど、
「あとから足したくなった頃には安くなっていて同じ予算で2倍の容量が買えた」
という時代は長かったので
3GB,6GB,12GB,24GBになってる人は多い。
0547デフォルトの名無しさん
2015/04/16(木) 11:30:52.99ID:aTWFYFQA2GBx2
4GBx2
8GBx2
で6スロット埋めてる
28GBですけど?
0548デフォルトの名無しさん
2015/04/16(木) 11:37:12.82ID:KMafj8cF> メモリは2枚同じサイズで差すのが常識だから、
> 大体2ギガ、4ギガ、8ギガ、16ギガだろう
「xが2の倍数ならば、xはだいたい2の冪乗数になる」!
0549デフォルトの名無しさん
2015/04/16(木) 12:37:58.02ID:6zGepQEU> 32bitの人たちは3までしか使えないけどそれで満足してるんだよって話じゃん?
今度はいきなり満足してるとか言い出したぞ w
0550デフォルトの名無しさん
2015/04/16(木) 12:38:37.99ID:65ROg/6+世間から見てPCマニアのおれたちはそんなことないが
0551デフォルトの名無しさん
2015/04/16(木) 12:39:06.84ID:65ROg/6+0552デフォルトの名無しさん
2015/04/16(木) 13:47:10.48ID:Wbz2Z132いや、初期のCorei7(Bloomfield)は 3 channel x 2 = 6 だったから。
3枚差しとか6枚差しとか普通。
http://ja.wikipedia.org/wiki/Intel_Core_i7
Bloomfieldを参照のこと
0553Office & Gamers ◆G144Hzgh2.0e
2015/04/16(木) 14:42:37.58ID:djFvfTCc0554デフォルトの名無しさん
2015/04/16(木) 20:11:18.13ID:KXIZIqL90555デフォルトの名無しさん
2015/04/16(木) 20:59:59.39ID:niirhvYM3, 6は半端とつっこみがあっただろ
>>545
1GB * 2 + 0.5GB * 2 = 3GB
0556デフォルトの名無しさん
2015/04/16(木) 21:49:07.79ID:BSEegCVi> 3, 6は半端とつっこみがあっただろ
突っ込みは正しい
説明がポカーンなだけ w
0557デフォルトの名無しさん
2015/04/16(木) 21:59:50.81ID:niirhvYM実際に3, 4,・・・といるしな
0558デフォルトの名無しさん
2015/04/16(木) 22:34:42.70ID:BSEegCViとうとうツッコミした奴にまで責任転嫁し始めたか、最低だな
まあ、>>520 みたいなバカな言い訳した後だとカッコ悪いだけだけど w
0559デフォルトの名無しさん
2015/04/16(木) 23:10:51.94ID:niirhvYM同一人物視した方が都合いいのかわからないが
都合が悪いレスは同一人物とか統合失調症を疑った方がいいぞ
0560Office & Gamers ◆G144Hzgh2.0e
2015/04/16(木) 23:13:52.11ID:djFvfTCc0561デフォルトの名無しさん
2015/04/17(金) 00:38:54.51ID:cGoztfno0562デフォルトの名無しさん
2015/04/17(金) 00:47:49.41ID:u6kt2Ektただの愉快犯
0563デフォルトの名無しさん
2015/04/17(金) 00:51:47.96ID:v+rC22k7まぁ敵ですけど
0564デフォルトの名無しさん
2015/04/17(金) 01:05:50.04ID:HjmIZ4g1片やQコテよりどレベル低いからな
0565デフォルトの名無しさん
2015/04/17(金) 01:41:54.43ID:KDCE8l09決め台詞は DarkBasicは C++より速い だったかな
0566Office & Gamers ◆G144Hzgh2.0e
2015/04/17(金) 03:23:14.17ID:dW7xxEmp0567デフォルトの名無しさん
2015/04/17(金) 06:26:28.40ID:ZNx/e6Ag横からさんざん >>520 擁護してたのに言い返せなくなったのか、いきなり突っ込んだ奴をバカ呼ばわりってこと?
き◯がいだな
0568デフォルトの名無しさん
2015/04/17(金) 07:17:40.02ID:u6kt2Ekt既に説明あるからログ読めよ
流れも見ずに突っ込むなら無駄
>>518 例を挙げる
>>519 突っ込みが入る
>>520 説明する
>>521 その説明に対してバカな突っ込みが入る
後は揚げ足取りや暇つぶしや愉快犯が沸いた
0569デフォルトの名無しさん
2015/04/17(金) 08:00:26.91ID:fqdIcrAS質問者は明確に
> 何GMくらい「積んでますか?」
って聞いてるのに、質問者のが使ってるOSも使い方もわからないのにも関わらず
> 何G積んでる?って言ってるんだから>>512はどれくらい詰めば快適あるいは十分なのかを知りたいんじゃないかな?と僕は考えるわけ
と妄想で持論を展開(しかも横からしゃしゃり出てきた他人(自称 w))
反撃くらって撃沈したら、いきなり突っ込んだ >>519 をバカ呼ばわり
ついでに、>>546 を見て慌てて
> 1GB * 2 + 0.5GB * 2 = 3GB
> 実際に3, 4,・・・といるしな
とかをさりげなく言い始める ← 今ここ w
0570デフォルトの名無しさん
2015/04/17(金) 10:30:58.48ID:YFs/nvzQ0571デフォルトの名無しさん
2015/04/17(金) 11:50:32.29ID:P7VRyRZ70572デフォルトの名無しさん
2015/04/17(金) 15:02:41.73ID:zAiKc9Y912GB、18GB、24GBの奴が多くね?
0573デフォルトの名無しさん
2015/04/17(金) 19:26:23.25ID:5+QroZ9q>>546 や >>552 の理由で 12GB とか 24GB はあるね
合わせ技で 2GB x 3 + 4GB x 3 = 18GB もあるかもしれないけど、知ってる範囲では見たことないな
0574デフォルトの名無しさん
2015/04/17(金) 19:37:31.04ID:BQI52oic1G x 3 + 2G x 3
0575デフォルトの名無しさん
2015/04/17(金) 20:29:43.29ID:pt+e+gyfクソコテ=キチガイ
0576デフォルトの名無しさん
2015/04/17(金) 22:47:04.02ID:ZNx/e6Ag0577デフォルトの名無しさん
2015/04/17(金) 23:59:25.27ID:ivNv2EE318GBの人は
1GBx2で始めた人が
8GBx2を足してそうなるんじゃないか
円高末期にそういう人が増えてたよ
0578デフォルトの名無しさん
2015/04/18(土) 00:23:17.16ID:d+XtVUDX>>532と>>557は別人なのに同一人物視かめでたいな
0579Office & Gamers ◆G144Hzgh2.0e
2015/04/18(土) 00:50:30.54ID:yZFnrc/60580デフォルトの名無しさん
2015/04/18(土) 05:48:59.80ID:Ql1IVHxp別人かどうかなんて書いてないし、どうでもいいことなんだが
所詮自称だしな w
0581デフォルトの名無しさん
2015/04/18(土) 07:12:48.29ID:d+XtVUDXつまり「所詮自称だからと都合の悪いレスは同一人物」って事か
統合失調症の可能性はあるな
0582デフォルトの名無しさん
2015/04/18(土) 08:33:04.55ID:gF5ewt4w自称だからわからないってことでしょ
匿名掲示板で今さらなに言ってるるんだよ、バカか?
0583デフォルトの名無しさん
2015/04/18(土) 09:00:43.34ID:EU47YEObデフォルトで「分からない」になってるのだから
「別人だなんて言ってるけど、そんなものは本人がそう言ってるだけ」
なんてことをわざわざ持ち出した上で
それを根拠に「分からない」の結論を作り直す必要はないんだよ
0584デフォルトの名無しさん
2015/04/18(土) 16:45:53.21ID:d+XtVUDXわからないのに>>569で同一人物視をする謎の思考回路
0585デフォルトの名無しさん
2015/04/18(土) 18:07:37.49ID:Ql1IVHxp>>580
誤魔化したくて必死なのは伝わった w
0586デフォルトの名無しさん
2015/04/18(土) 19:43:18.99ID:W5cmUeFG0587デフォルトの名無しさん
2015/04/19(日) 16:01:20.13ID:hEE/ZwBn0588デフォルトの名無しさん
2015/04/20(月) 22:39:33.22ID:w48MAYc9覚えとくように
0589デフォルトの名無しさん
2015/04/20(月) 23:15:44.50ID:ybyM7iyV0590デフォルトの名無しさん
2015/04/20(月) 23:52:31.97ID:97yLAJoH0591デフォルトの名無しさん
2015/04/21(火) 00:05:08.26ID:phn1j2/i0592デフォルトの名無しさん
2015/04/21(火) 10:26:24.33ID:kERjku4F0593デフォルトの名無しさん
2015/04/21(火) 12:05:34.30ID:C9LOH8tJ0594デフォルトの名無しさん
2015/04/21(火) 20:45:00.85ID:FeBOFU9Bネタ提供
0595デフォルトの名無しさん
2015/04/21(火) 20:45:36.79ID:xYojguBqもっと根本的な型ってないんですか?
ポインタで言うところのvoid (*unko)()みたいな
0596デフォルトの名無しさん
2015/04/21(火) 22:16:41.08ID:bz6H/Jwq「根本的」が意味不明なんですけど
0597デフォルトの名無しさん
2015/04/21(火) 22:19:31.34ID:Pl8n/tDc0598デフォルトの名無しさん
2015/04/21(火) 22:31:48.12ID:1EHStcFK0599デフォルトの名無しさん
2015/04/21(火) 22:32:33.88ID:Kx+k4AzBキャプターしないなら
bool (*pf)(float) = [](float){return true;};
0600デフォルトの名無しさん
2015/04/21(火) 22:57:45.50ID:zHBTo/Glint i = 0;
auto f = [&](float){ i++; return true; };
using unko_type = decltype(f);
unko_type f2 = f;
0601デフォルトの名無しさん
2015/04/21(火) 23:15:55.88ID:63pNRQRH特定のライブラリーに依存してそうなった(違うライブラリーに変えたら違う型になる)のではなく
言語仕様でそうなるんだよ
0602デフォルトの名無しさん
2015/04/21(火) 23:22:53.40ID:TQ6c4YSW0603デフォルトの名無しさん
2015/04/21(火) 23:34:41.83ID:UJ2UkLE+functionはtype erasureの時点で少なくとも言語仕様には含まれないと思うのだが
0604デフォルトの名無しさん
2015/04/21(火) 23:36:23.06ID:aVe+RqDfラムダ式って関数ポインタに格納できたんですか!
ありがとうございます
0605デフォルトの名無しさん
2015/04/23(木) 05:25:12.01ID:TovS+sSrアナタの定義する言語仕様を明記しよう
0606デフォルトの名無しさん
2015/04/23(木) 09:57:09.88ID:yeD908Xe0607デフォルトの名無しさん
2015/04/23(木) 11:10:50.83ID:frIG+ZEE「いわゆるコア言語仕様(ライブラリ除く)」と書けば
605のレスが付くことは無かった
0608デフォルトの名無しさん
2015/04/27(月) 23:20:55.95ID:G3XeQhow知り合いから提供してもらった.cppをコンパイル(g++ test.cpp -lgmp)したところ、
コンパイルは通ったものの segmentation fault がでました
先方の環境では動作していたので、要するに環境依存を疑っています
スタックサイズの無制限化(ulimit -s unlimited)はやりましたが、変化なし
他に疑うべき項目はありますか?
私の環境はvmware player 7.1.0, ubuntu 14.04 64bit, メモリ4GB(Windows上は12GB)です.
他に書くべき情報があれば聞いて下さい
(先方の環境は残念ながら、わかりません)
0609デフォルトの名無しさん
2015/04/27(月) 23:24:02.37ID:EhmYcCLf0610デフォルトの名無しさん
2015/04/27(月) 23:49:19.53ID:9tEbIo2fハロー
0611デフォルトの名無しさん
2015/04/28(火) 00:08:46.01ID:CsdWamuz0612デフォルトの名無しさん
2015/04/28(火) 00:33:01.00ID:Ag1E0/EC研究用のプログラムのため貼れません
答えにくい質問の仕方ですいません
作ってもらった人には、初歩的な質問は聞きにくい状況で困っています
典型的な落とし穴とかで無いなら、なんとかして制作者に教えてもらいますが。。。
>>611
そうかも
0613デフォルトの名無しさん
2015/04/28(火) 00:41:15.10ID:cv8HsePYこのスレで聞く以外の方法をあたってください
0614デフォルトの名無しさん
2015/04/28(火) 00:43:19.53ID:8GJXCl2Yんなら聞くな
0615デフォルトの名無しさん
2015/04/28(火) 00:43:58.21ID:7uhGcpVL0616デフォルトの名無しさん
2015/04/28(火) 01:34:18.57ID:nYevN8uq> 知り合いから提供してもらった.cppをコンパイル(g++ test.cpp -lgmp)したところ、
他にGMPを使う簡単なeasy.cppとか作って試してみる
easyが動けばtestに問題があるかもだし
easyも動かければGMPの導入にミスってるかも
0617デフォルトの名無しさん
2015/04/28(火) 09:47:43.55ID:Ag1E0/EC>>616
やってみたところ、正常に動作しました.
0618デフォルトの名無しさん
2015/04/28(火) 12:02:08.42ID:Gh79Ock8じゃあ、test.cppの中に不具合があるからそれを直してください。
中のどこに不具合があるのか質問する場合、そのコードを晒さないと誰も分かりません。
0619デフォルトの名無しさん
2015/04/28(火) 12:50:47.21ID:6LggvJNZa.libを使ったb.libがあります
ここで、a.lib、b.libをつかったc.cを作ったとすると
a.libって2重にリンクされることになるんですか?
よろしくお願いします
0620デフォルトの名無しさん
2015/04/28(火) 12:52:51.86ID:aOjOgtBz0621デフォルトの名無しさん
2015/04/28(火) 13:16:20.04ID:6LggvJNZなんとなくわかったっぽい
a.libがなくてもa.hがあれば、b.libを作れるっぽい
ありがとうございました
0622デフォルトの名無しさん
2015/04/28(火) 21:32:14.52ID:y7G+sMsBコンパイル時にリンカ指示オプションにてスタックサイズを広げる -Wl,--stack,XXXXXX
0623デフォルトの名無しさん
2015/04/29(水) 14:56:56.44ID:oWkv3uf5何も書かなくていいから
環境依存=お前のバグ
という自覚を持て
そしてもう来るな
0624デフォルトの名無しさん
2015/05/04(月) 22:14:09.60ID:89QT3Y97char* p = new char[1];
delete (double*)p;
これっていいの?
0625デフォルトの名無しさん
2015/05/04(月) 22:14:46.80ID:PtQR6qLE0626デフォルトの名無しさん
2015/05/04(月) 22:40:37.58ID:89QT3Y97delete [] (double*)p;
0627デフォルトの名無しさん
2015/05/04(月) 22:42:39.25ID:08JPs5XI0628デフォルトの名無しさん
2015/05/04(月) 22:57:23.69ID:032ZDXd80629デフォルトの名無しさん
2015/05/04(月) 23:05:34.40ID:89QT3Y970630デフォルトの名無しさん
2015/05/04(月) 23:16:43.27ID:FSRETmsJ0631デフォルトの名無しさん
2015/05/04(月) 23:43:31.80ID:ynlb8Lso実測して言ってないだろ
0632デフォルトの名無しさん
2015/05/04(月) 23:53:46.13ID:bBzreh2/0633デフォルトの名無しさん
2015/05/05(火) 01:07:18.70ID:6Zpr8NWl0634デフォルトの名無しさん
2015/05/05(火) 01:16:49.84ID:IwYQO1N80635デフォルトの名無しさん
2015/05/05(火) 01:54:38.38ID:MpZH0ua1では代わりに何を?
0636デフォルトの名無しさん
2015/05/05(火) 02:00:30.62ID:JPFk61nl0637デフォルトの名無しさん
2015/05/05(火) 02:13:34.02ID:baTSYkNB0638デフォルトの名無しさん
2015/05/05(火) 03:05:27.11ID:l36qSXP+0639373
2015/05/05(火) 20:10:46.92ID:pzcWHEOXvirtualの仮想継承は実用的にどのように使っているのですか
おなじ名前の関数はただの混乱の元
必要なら異なる名前を名付けて直接呼び出せば良いと思うのですが
0640デフォルトの名無しさん
2015/05/05(火) 20:30:49.19ID:jbl2W/2Mclass A : public virtual B, public virtual C {
}
これが仮想継承
お前が言ってるのは仮想関数のことだな
これはAを継承するBをAとして扱うときに用いるメンバ関数だ
「ポリモフィズム」あたりで検索してみると詳しく解説しているサイトが見つかるだろう
0641デフォルトの名無しさん
2015/05/05(火) 20:33:04.83ID:jbl2W/2M0642デフォルトの名無しさん
2015/05/05(火) 20:40:42.44ID:9K31UNd+0643デフォルトの名無しさん
2015/05/05(火) 20:42:20.65ID:vYfhfuWD0644デフォルトの名無しさん
2015/05/05(火) 21:58:09.56ID:I0XQahVA便所の落書きと同じ
0645デフォルトの名無しさん
2015/05/05(火) 22:42:43.38ID:JPFk61nl初心者にwwwで検索はかわいそうだろ
ろくに知識の無いやつが適当なことかいてるのを鵜呑みにしちゃうじゃん
っていうか、wwwに有益な情報はほぼ無い、大抵便所の落書き
プログラミング言語C++を読め
聖人著なんだから、まちがいない
0646デフォルトの名無しさん
2015/05/05(火) 23:19:47.13ID:uuGFM0urそれ読んで記事書いてる奴だっているだろうから一概にそうも言えん
0647デフォルトの名無しさん
2015/05/05(火) 23:31:31.94ID:JPFk61nl0648デフォルトの名無しさん
2015/05/06(水) 01:00:58.21ID:OH7RYx3Kお前の脳内定義を他人に押しつけるなよ
もし正しいというのなら規格の何ページ目で使われいる用語なのか示してみ
0649デフォルトの名無しさん
2015/05/06(水) 01:22:14.48ID:N/1lBqpF0650デフォルトの名無しさん
2015/05/06(水) 02:30:46.24ID:ajsjxsHPなにが原因なのでしょうか?どうか教えてください。
IplImage *src_img,*hsrc_img,*h2src_img;
src_img = cvLoadImage(argv[1],CV_LOAD_IMAGE_ANYCOLOR);
src2_img = cvLoadImage(argv[1],CV_LOAD_IMAGE_ANYCOLOR);
cvCvtColor(src_img,src2_img,CV_BGR2HSV);
src2_img = cvCreateImage(cvSize(255,255),IPL_DEPTH_8U,1);
cvResize(hsrc_img,src2_img,0);
コマンドプロンプトエラー内容
Assertion failed(src.type() == dst.type()) in Resize,
0651デフォルトの名無しさん
2015/05/06(水) 02:33:50.00ID:ajsjxsHPIplImage *src_img,*hsrc_img,*src2_img;
src_img = cvLoadImage(argv[1],CV_LOAD_IMAGE_ANYCOLOR);
hsrc_img = cvLoadImage(argv[1],CV_LOAD_IMAGE_ANYCOLOR);
cvCvtColor(src_img,hsrc_img,CV_BGR2HSV);
src2_img = cvCreateImage(cvSize(255,255),IPL_DEPTH_8U,1);
cvResize(hsrc_img,src2_img,0);
0652デフォルトの名無しさん
2015/05/06(水) 02:50:10.13ID:EsqtbM0mという日本語が分からん
0653初心者です
2015/05/06(水) 03:08:00.89ID:GDfCo5jZ当方ビジュアルスタジオ2010にてアクションゲームを作っているんですが、
デバッグ中、配列に格納したマップ情報とオブジェクトとの判定をする部分で
ごくまれにエラーが起きて停止します。
経験則で判断すると、マップ判定でのエラーは
マップ情報の無い部分にオブジェクトが飛び出すというものが多かったんですが
今回は目視ですべてのオブジェクトが飛び出してるか否か確認出来る状態で
毎回エラー発生時に怪しいオブジェクトがいないので、今までのエラーとは違うような気がします。
しかも、滅多にそのエラーが出ないため、原因を探れません。
ただ、気持ち悪いことがひとつありまして、そのエラーで停止したあと、
マップの情報を入れた配列にカーソルを当てて、要素を見たら、
途中から「?」という状態になって表示されてるんです。
http://download1.getuploader.com/g/zipcodezipcode/91/B.png
http://download1.getuploader.com/g/zipcodezipcode/90/A.png
これがおかしなことに、見るのを止めて、もう一度カーソルを合わせてみると
今度はちゃんと中身が入ってる状態で表示されたりします。
ビジュアルスタジオの扱いにまだ慣れてないせいもあり、
中身が「?」で表示されたのは初めてだし、覗き直すたびに
「?」だったり、ちゃんと中身が見れたりすることが気持ち悪いんですが
これは別に、問題ないのでしょうか?(もともとそういうものだ、とか)
もし、ゲーム中に配列の中身が「?」みたいになる瞬間があるのなら
そりゃいきなりオブジェクトがど真ん中にいてもエラーになると思うんです。。。
これが原因なのかと思うんですが、、違いますか?
もしくは配列覗いたときの、「?」表示はビジュアルスタジオのバグなんでしょうか?
ちなみに、マップ配列の中身の格納はゲームが始まる最初に行っているので、
ゲーム中にマップ配列の中身が変わることは考えられない仕様です。
だとするとこの「?」はなんなんでしょうか?
考えられる要因を教えて下さい、お願い致します。
0654デフォルトの名無しさん
2015/05/06(水) 03:21:02.89ID:EsqtbM0mそれを当たり前のように使われても誰もわかりませんよ。
std::mapではないですよね?w
0655デフォルトの名無しさん
2015/05/06(水) 04:53:19.34ID:AcP8t/hRクラスは派生するもの
0656デフォルトの名無しさん
2015/05/06(水) 05:16:28.80ID:cCF2kAXu0657デフォルトの名無しさん
2015/05/06(水) 05:26:55.58ID:7CzaKoqzclass B1 : public A
class B2 : public A
class C : public B1, public B2
0658デフォルトの名無しさん
2015/05/06(水) 06:17:26.16ID:aJ286N4P基底クラスの話なら仮想派生(virtual derivation)とか仮想基底クラス(virtual base class)という言葉が規格では使われている
0659デフォルトの名無しさん
2015/05/06(水) 08:39:39.56ID:vIrt8u3h仮想継承なんて言葉は無い
勝手に意味を推論するな
0660デフォルトの名無しさん
2015/05/06(水) 08:57:30.92ID:UJrx/1uRとりあえず「virtual デストラクタ」で調べ
0661デフォルトの名無しさん
2015/05/06(水) 12:22:16.16ID:HVBAvI3aマルチしてこっちに移ったようで自己解決するも報告レスなし
初心者かたるな
私ね
ttp://peace.2ch.net/test/read.cgi/tech/1424782918/868
0662デフォルトの名無しさん
2015/05/07(木) 16:57:17.35ID:uDHc9Yu6VC++でFormを別スレッドから操作したいのですが。CLRは使いません。
0663デフォルトの名無しさん
2015/05/07(木) 17:23:10.27ID:zVX6dqaE0664デフォルトの名無しさん
2015/05/07(木) 17:35:11.50ID:lOYSep7k関数オブジェクト?
0665デフォルトの名無しさん
2015/05/07(木) 18:24:43.73ID:KZqJgOca同一の概念は無いが似たことを実現するのはstd::function
0666デフォルトの名無しさん
2015/05/07(木) 19:16:53.54ID:YvFBSl+tdelegate相当は関数オブジェクトとかラムダだけど
invoke相当をやるためにはUIスレッドにメッセージ飛ばさないといけないよ
簡単にできるフレームワークってあるのかな?
0667デフォルトの名無しさん
2015/05/07(木) 20:11:28.94ID:NPJhmwrPhttp://www.kmonos.net/alang/boost/classes/signals2.html
0668デフォルトの名無しさん
2015/05/07(木) 21:42:44.56ID:CSFF77Jnクラスがどうとか、CStringがどうとかいってるんですが・・・
0669デフォルトの名無しさん
2015/05/08(金) 17:37:50.39ID:kFO8QtLJchar型を定義してそのnビット目を読み取ったり、反転させたりしたいです
0670デフォルトの名無しさん
2015/05/08(金) 17:45:14.98ID:JgJK5K7B0671デフォルトの名無しさん
2015/05/08(金) 17:53:46.46ID:6ERCZCqI0672デフォルトの名無しさん
2015/05/08(金) 18:04:09.48ID:+qn3R8Pm0673デフォルトの名無しさん
2015/05/08(金) 18:09:35.81ID:oCL66D4S何ビット目から何ビットのサイズにXXをセットとかは関数作った方がええ
0674デフォルトの名無しさん
2015/05/08(金) 18:29:52.22ID:8rNx0yTC・restrictポインター
・配列引数の最小サイズ指定
・ファイルの排他オープン
・可変長配列
ぐらいか
0675デフォルトの名無しさん
2015/05/08(金) 18:32:05.35ID:kFO8QtLJ自分で関数を作ってみます
ありがとうございました
0676デフォルトの名無しさん
2015/05/08(金) 18:49:23.97ID:uYrkkYPn可変長配列は入ったよ
C99とはちょっと仕様が違うけど
0677デフォルトの名無しさん
2015/05/08(金) 19:56:24.15ID:6ERCZCqI0678デフォルトの名無しさん
2015/05/08(金) 20:08:19.41ID:UBjnUI5Tdesignated initializer
compound literal
classという名前の変数を作る
0679デフォルトの名無しさん
2015/05/08(金) 20:28:12.29ID:MImsZWXj0680デフォルトの名無しさん
2015/05/11(月) 15:53:03.96ID:D3XiQnjz0681デフォルトの名無しさん
2015/05/11(月) 20:31:30.34ID:AYB9vRVo正解は分からないけど、やっぱり「queueを使うとき普通clearは使わない」
ってことなんでしょうかね
自分も使いたいと思ったことないし、以下のところを見てもまあそんな感じ
http://stackoverflow.com/questions/3874624/why-stdqueue-doesnt-support-clear-function
http://stackoverflow.com/questions/493774/why-dont-the-standard-c-container-adaptors-provide-a-clear-function
0682デフォルトの名無しさん
2015/05/11(月) 22:04:19.53ID:rPDYXkhb実戦で使えるような高等テクニックがいいなあ。
0683デフォルトの名無しさん
2015/05/11(月) 22:07:23.82ID:b3E9w1jj0684デフォルトの名無しさん
2015/05/11(月) 22:49:37.40ID:fXdd85Lw->*
::*
0685デフォルトの名無しさん
2015/05/11(月) 23:08:46.62ID:sOTWmfyN"unko tool help\n"
" usage unko.exe \n"
" buriburi\n"
);
0686デフォルトの名無しさん
2015/05/11(月) 23:35:02.89ID:0Z+vN+uvclass baka {
};
template<typename T, typename U>
class baka<U, T> {
}; 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
0687デフォルトの名無しさん
2015/05/13(水) 18:33:06.67ID:hcYv++4k標準化委員会が低能だから。
コンテナアダプターと称してclearを無くしつつ
実体はアダプターでなくコンポジションになっていて
コンテナへのアクセス手段が無いのはただの設計ミス。
この場合アダプターというのは内部の実装の都合に過ぎない
0688デフォルトの名無しさん
2015/05/17(日) 16:23:58.52ID:R3tkd0Adcout << a;
と書いて実行すると
(5.5,0)
と表示されます
数字をいろいろと変えてみたところ
(虚部,0)
といった表示をしているようです
どうすれば(2.0,5.5)のような通常の表示になりますか?
0689デフォルトの名無しさん
2015/05/17(日) 16:46:41.16ID:D+ZZ1tPacomplex<double> a = {2.0, 5.5};
0690デフォルトの名無しさん
2015/05/17(日) 17:09:21.48ID:R3tkd0Ad本当だ!{}のカッコに変えたら(2,5.5)と表示されました
ありがとうございます
でもマイクロソフトの解説ページには()を使って書いてるんだよなぁ
0691デフォルトの名無しさん
2015/05/17(日) 17:10:25.06ID:R3tkd0Ad0692デフォルトの名無しさん
2015/05/17(日) 17:10:39.98ID:ZJ6cYS770693デフォルトの名無しさん
2015/05/17(日) 17:11:34.72ID:02t/SrUA0694デフォルトの名無しさん
2015/05/17(日) 17:14:43.01ID:R3tkd0Adよく見たらそうだった
ありがとう
集中力切れてきたのかな、>>690の日本語もおかしいし
0695デフォルトの名無しさん
2015/05/17(日) 21:39:19.50ID:B0Fe1+FI" ああ い "
" あ "
みたいにいくつかの単語が半角スペースで区切られている時に、
先頭の単語を取り出すもっとも効率の良いアルゴリズムを教えてください。
この例だと
"あああ"
"ああ"
"あ"
を取出したいです。
出来れば、n番目を指定して取り出せると、さらに良いです。
0696デフォルトの名無しさん
2015/05/17(日) 21:40:51.39ID:ZJ6cYS770697デフォルトの名無しさん
2015/05/17(日) 22:47:54.63ID:D+ZZ1tPa効率重視ならそのまま696の言うとおりそのまま実装するしかない
0698デフォルトの名無しさん
2015/05/18(月) 17:36:27.08ID:/fldf48Zまたは、それぞれのスペースが個々の区切りとするか
"あああ(SPC)(SPC)い" (SPC) は半角スペース
前者は 2要素で "あああ" "い"
後者は 3要素で "あああ" "" "い"
0699デフォルトの名無しさん
2015/05/20(水) 17:49:08.10ID:bKVLu7W3static class A{
public:
static int m_i;
}
とやったら出来たのですが、class の前のstaticは有っても無くても良いみたいで、
m_iのほうにstaticを付けておくと良いみたいなのですが、
class の前のstaticはどういう意味がありますか?
0700デフォルトの名無しさん
2015/05/20(水) 18:05:35.26ID:0+0ubStgどこかに全部実体を定義しないといけない
しかもnew出来ないんでSingletonなどに使うとかどうよ
0701デフォルトの名無しさん
2015/05/20(水) 18:12:17.48ID:A9nl6cPXwarning出てない?
static class A{} a;
とすると class A の static な a を作れる
0702デフォルトの名無しさん
2015/05/21(木) 00:03:55.61ID:ZWg6hJGMそれはエラーにしてくれと思う
0703デフォルトの名無しさん
2015/05/21(木) 17:39:47.55ID:25nDpRt2//main.cu
#include "test.h"
//....変数や関数の定義
int main(){
....
}
//sub.cu
//原因特定のため、空ファイル
//test.h
#ifndef _TEST_H_
#define _TEST_H_
#include <stdlib.h>
......
#include "MT.h"
......//変数や関数の宣言
#endif
これをビルドすると以下のようなエラーがいくつか出ます
1>sub.cu.obj : error LNK2005: "long __cdecl genrand_int31(void)" (?genrand_int31@@YAJXZ) は既に main.cu.obj で定義されています。
これらはすべてヘッダファイルでインクルードしたMT.hの関数についてのエラーなのですが、MT.hのどこがいけないのでしょうか?
MT.h: http://www.sat.t.u-tokyo.ac.jp/~omi/code/MT.h
0704デフォルトの名無しさん
2015/05/21(木) 17:52:16.50ID:dyaIJjW8MT.hをMT.cへと改名すればいい
0705デフォルトの名無しさん
2015/05/21(木) 18:00:03.52ID:ZnRk/DYkこっち使えよ
0706デフォルトの名無しさん
2015/05/21(木) 18:05:18.42ID:2K3lBJSK省略した別の箇所で問題あるんでしょ
0707デフォルトの名無しさん
2015/05/21(木) 19:43:06.01ID:25nDpRt2改名してみましたが変化なしでした
>>705
それからmain()部分を削除してヘッダファイルにしたものが>>703なので、内容は同じです
>>706
ヘッダファイルに問題がないとすれば、そうなりますよね
もう一度重複定義を引き起こす原因を探してみます
ちなみにソースファイルを分割する前は>>703のコードで正常に動作していました
0708デフォルトの名無しさん
2015/05/21(木) 19:49:07.19ID:ZnRk/DYkインライン化もしてない関数定義をそのまま書いてるヘッダファイルとか害悪しかない
0709デフォルトの名無しさん
2015/05/21(木) 19:52:38.69ID:vZPm4Rc0MT.cをincludeしてるんじゃないのか?
0710デフォルトの名無しさん
2015/05/21(木) 20:40:46.61ID:aNkERRn/> ちなみにソースファイルを分割する前は>>703のコードで正常に動作していました
正常に動作しない状況を明記すりゃいいと思うの
0711デフォルトの名無しさん
2015/05/21(木) 21:25:38.45ID:25nDpRt2レスおりごとうございます
>>709のおっしゃる通りMT.cをインクルードしてました
ヘッダにMT.cの宣言を書くと成功しました!
ところでどうしてMT.hではダメだったのでしょうか?
0712デフォルトの名無しさん
2015/05/21(木) 21:28:28.68ID:aNkERRn/正常に動作しない状況を明記すりゃいいと思うの
0713デフォルトの名無しさん
2015/05/21(木) 21:47:23.79ID:25nDpRt2正常に動作しないのは>>703の状態です、正常に動作していたのは全てのコードをmain.cに書いていた時です。
ソースコードを分割したときに、新しく作ったtest.hでMT.hをインクルードしたのですが、
エラーから見るに何故かMT.hが複数回定義されているようなんです
0714デフォルトの名無しさん
2015/05/21(木) 21:58:30.69ID:aNkERRn/正常に動作しない状況を明記すりゃいいと思うの
プロジェクトファイルまるごと上げるなりしてさ
0715デフォルトの名無しさん
2015/05/21(木) 22:08:14.53ID:4twK9jAAそんなの複数個所で include すりゃ 関数本体を複数個所で記述してることになるわな
0716デフォルトの名無しさん
2015/05/21(木) 22:39:18.89ID:25nDpRt2すみません、それは訳あって出来ないんです
>>715
そういうことですか、test.hにインクルードガードつけてるから大丈夫かなと勝手に思ってました
ありがとうございました
0717デフォルトの名無しさん
2015/05/21(木) 22:42:25.61ID:4twK9jAA複数のソースファイルで同じものを定義することを防ぐことはできない
0718デフォルトの名無しさん
2015/05/21(木) 22:53:28.27ID:aNkERRn/さいですか
省略した別の箇所で問題あるんでしょうね
0719デフォルトの名無しさん
2015/05/21(木) 23:10:32.20ID:9FtCDoYjprivateなマクロには長い名前でやるか、namespaceでわけるしかないかと。
0720デフォルトの名無しさん
2015/05/21(木) 23:19:02.37ID:aNkERRn/0721デフォルトの名無しさん
2015/05/22(金) 00:35:17.31ID:kgh6e2ezじゃあダメなのか?
0722デフォルトの名無しさん
2015/05/22(金) 00:37:54.58ID:sSDW5yiz0723デフォルトの名無しさん
2015/05/22(金) 00:41:16.61ID:kgh6e2ez0724デフォルトの名無しさん
2015/05/22(金) 00:43:51.17ID:SOsnzLuf同名関数の多重定義でエラーが出てるんだから
イングルードガードうんぬんの話ではない
0725デフォルトの名無しさん
2015/05/22(金) 00:50:10.76ID:sSDW5yiz0726デフォルトの名無しさん
2015/05/22(金) 01:35:50.67ID:/tbdXvZTCの仮定義とかテンプレートとかインライン関数は重複OKなんだから
全部そうしてくれ
0727デフォルトの名無しさん
2015/05/22(金) 01:37:36.26ID:SOsnzLufそこらへんは17でな
0728デフォルトの名無しさん
2015/05/22(金) 02:18:22.88ID:d67ksAbyそもそも拡張子.cuってなんなんだよw
>MT.hのどこがいけないのでしょうか?
1つのソースからしかinclude出来ないようになってる
これはC/C++の基本を知らない人間が作ったもの
Copyright表記までご丁寧についてるのが笑えるね
メルセンヌツイスタなんてC++ならとっくに標準化されてるから、それを使えばいいのに
0729デフォルトの名無しさん
2015/05/22(金) 04:31:42.74ID:2w4Ac3LBインクルードガードもあらへんし
イカれぽこちんやで
0730デフォルトの名無しさん
2015/05/22(金) 04:41:14.53ID:9VB/htW4ttp://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/MT2002/mt19937ar.html
0731デフォルトの名無しさん
2015/05/22(金) 07:20:16.05ID:N08BjAS9http://www.sat.t.u-tokyo.ac.jp/~omi/random_variables_generation.html#Prepare_MT
0732デフォルトの名無しさん
2015/05/22(金) 08:11:14.03ID:3agM3W4p0733デフォルトの名無しさん
2015/05/22(金) 11:16:33.17ID:JhXx01fe順序、回数とは無関係な作りにしないとぉ。
0734デフォルトの名無しさん
2015/05/22(金) 12:42:27.79ID:fc6aEkGDインクルードガード
基本的なヘッダ
自作ヘッダ
インクルードガード
-----main.cpp
#include "main.h"
・・・
-----自作ヘッダ
#include "main.h"
インクルードガード
・・・
インクルードガード
-----自作ソース
自作ヘッダ
・・・
これじゃあかんの?
#pragma onceはファイル毎に判定してしまうし
0735デフォルトの名無しさん
2015/05/22(金) 12:56:11.75ID:SWW7bxcC問題は複数のソースファイルで同じヘッダファイルをインクルードしてることだからインクルードガード関係なし
0736デフォルトの名無しさん
2015/05/22(金) 13:57:20.06ID:JhXx01fe0737デフォルトの名無しさん
2015/05/22(金) 15:16:38.98ID:zuBke9JK言いたいのはクラスの「実装」のことだろうけどそれは問題ない
クラスのメンバ関数はweakシンボル扱いだから
0738デフォルトの名無しさん
2015/05/22(金) 17:41:34.00ID:JpUuswh7インクルードガードを勘違いしていました、勉強になります
>>728
ほんとですね<random>があるじゃないですか
0739デフォルトの名無しさん
2015/05/22(金) 19:21:07.66ID:N08BjAS9スクショ交えながらの解説が必要なバカは相手にしてないだけ。
0740デフォルトの名無しさん
2015/05/22(金) 22:09:43.86ID:JhXx01fe0741デフォルトの名無しさん
2015/05/22(金) 22:15:45.04ID:G/TE2Y1J0742デフォルトの名無しさん
2015/05/23(土) 13:19:33.79ID:428FaCy9何が問題なのかまだ理解できてないんだね
かわいそうに
0743デフォルトの名無しさん
2015/05/23(土) 16:00:21.14ID:339qV2EyMT.hの人の誤算はお前や元質問者のようなバカの存在を見落としていた事。
0744デフォルトの名無しさん
2015/05/23(土) 16:45:50.76ID:jiGYxguzそれじゃどっちにしろ>>703のMT.hは使い物にならんよ
0745デフォルトの名無しさん
2015/05/24(日) 02:16:40.51ID:oHB/N6d50746デフォルトの名無しさん
2015/05/24(日) 04:54:20.21ID:aJjTzUu0>>742はそれを理解できないバカ
0747デフォルトの名無しさん
2015/05/24(日) 05:50:50.13ID:70SZHwKSなんで改造して使ってんだって質問来たんで
そのままじゃ使えねーだろボケって返しといた
0748デフォルトの名無しさん
2015/05/24(日) 08:42:22.93ID:X+8MvArlヘッダーの意味が分かってないのか
せめて
#include "魔改造.c"
にするべきだった
0749デフォルトの名無しさん
2015/05/24(日) 10:04:38.86ID:hp4TWV5cvector<string> v;
// ここでvにたくさんの文字列をセットしておき
// vの要素で"AAA"を含むものを探す。
vector<size_t> index_found;
parallel_for(size_t(0), v.size(), [&](size_t i)
{
if (v[i].find("AAA") != string::npos)
index_found.push_back(i); // <==この部分
});
for (size_t i = 0; i < index_found.size(); i++)
printf("%d\n", index_found[i]);
みたいなのを実行したらうまく行ったのですが、質問は、
index_found.push_back(i);
の部分で、排他制御みたいなのはしなくても良いのでしょうか?
0750デフォルトの名無しさん
2015/05/24(日) 10:11:37.25ID:8RPh1nzV0751デフォルトの名無しさん
2015/05/24(日) 10:21:10.49ID:hp4TWV5c具体的にどういう方法がお勧めか教えてくれよ。初心者の俺に。
0752デフォルトの名無しさん
2015/05/24(日) 10:24:09.40ID:1apnNJ5U0753デフォルトの名無しさん
2015/05/24(日) 10:37:53.98ID:2b8e6/09なら最初から
------
vector<int> kuso(10); に対して
複数スレッドで
kuso.push_back(???)
をしたい。どうしたらよいか
----
と訊け
0754デフォルトの名無しさん
2015/05/24(日) 10:49:24.78ID:KT9IwsB/書かないとparallel_forの意味がない。
たとえば、index_foundをあらかじめvの要素数と同じだけ確保してpush_backを使わないように
すれば排他制御なしに並列処理できる。で、最後にその結果をかき集めるreduce処理を行う。
0755デフォルトの名無しさん
2015/05/24(日) 10:55:38.47ID:hp4TWV5c君は頭がいいな!!!試してみるよ
0756デフォルトの名無しさん
2015/05/24(日) 11:22:45.50ID:48VQFXY+実測で確認しようとしない低能の典型例
0757デフォルトの名無しさん
2015/05/24(日) 11:49:44.11ID:hp4TWV5cmutex使って試してみたら排他制御なしのほうが速かったよ。
0758デフォルトの名無しさん
2015/05/24(日) 12:36:17.38ID:aA2+5DVblock freeと排他制御だったら実測してみる意味はあるが。
0759デフォルトの名無しさん
2015/05/24(日) 14:42:38.11ID:hp4TWV5chttps://msdn.microsoft.com/en-us/library/dd728073.aspx?f=255&MSPPError=-2147217396
を見て勉強中なのですが、ここに出てくる
template <class Function>
__int64 time_call(Function&& f)
{
__int64 begin = GetTickCount();
f();
return GetTickCount() - begin;
}
のFunction&& の部分が分かりません。&が一個の参照ならば理解しているのですが、
&&と二個あるのはどういう意味でしょうか?キーワードを教えてください。
0760デフォルトの名無しさん
2015/05/24(日) 14:45:56.50ID:DgyDnKGD0761デフォルトの名無しさん
2015/05/24(日) 14:46:32.10ID:aA2+5DVb0762デフォルトの名無しさん
2015/05/24(日) 14:55:24.12ID:hp4TWV5cありがとうございました。
0763デフォルトの名無しさん
2015/05/24(日) 15:33:02.00ID:B5RqJs5fあたりまえ?
実測したらロックした方が速かったぞ
https://ideone.com/pPXK9j
検索結果を探すタイプの並行処理でロック回避死守に脳みそ凝り固まるとか労害かよ
0764デフォルトの名無しさん
2015/05/24(日) 16:07:49.33ID:/+BEtuegそのソース、ロックあり/なしの比較になってないよ
ロックするパス通らないからw
それに>>754が言ってる「index_foundをあらかじめvの要素数と同じだけ確保してpush_backを使わないように」
にすらなってないし
0765デフォルトの名無しさん
2015/05/24(日) 17:45:51.61ID:hp4TWV5c__int64 time_call(Function& f)
__int64 time_call(Function f)
のどれにしても同じように実行できるのですが、&&になっている
理由を教えてください。
0766デフォルトの名無しさん
2015/05/24(日) 20:13:20.76ID:N2dPAs5v0767デフォルトの名無しさん
2015/05/24(日) 20:24:46.68ID:fxpJY9c40768デフォルトの名無しさん
2015/05/24(日) 23:06:16.48ID:hp4TWV5c本当のことを教えてくれよ
0769デフォルトの名無しさん
2015/05/24(日) 23:06:35.78ID:8riMzWGy0770デフォルトの名無しさん
2015/05/25(月) 00:00:50.32ID:5FE0H/w5今授業でプログラミングを受けてるんですがそこで出た宿題が分かりません。ここで聞いてもいいですか?
0771デフォルトの名無しさん
2015/05/25(月) 00:03:01.41ID:xfasVNQ/0772デフォルトの名無しさん
2015/05/25(月) 00:03:21.96ID:VZ0J6dfu0773デフォルトの名無しさん
2015/05/25(月) 00:09:41.48ID:r8h6U8H4質問すれで訊けって言われたのにここで訊くなクズ
0774デフォルトの名無しさん
2015/05/25(月) 00:34:15.01ID:5FE0H/w5具体的にどのスレですかね
0775デフォルトの名無しさん
2015/05/25(月) 00:49:56.48ID:UWpnn+OuC/C++の宿題片付けます 169代目 [転載禁止]©2ch.net
http://peace.2ch.net/test/read.cgi/tech/1432402159/
0776デフォルトの名無しさん
2015/05/25(月) 03:18:04.29ID:5FE0H/w50777デフォルトの名無しさん
2015/05/25(月) 08:56:12.26ID:X/lh72Nkプログラム初心者で、ポーカーのゲームを作成したいと考えています。
そこで、相手プレーヤーに対する勝率を表示させたいと思い、以下のライブラリを追加したいと考えています。
http://www.freecode.com/projects/poker-eval
今までMakefileを使ったことが無く、とりあえずCygwinをインストールしてコマンドを実行しました。
./configure
make install
とすると、コンパイルは完了したようです。
この後、VisualStudio2013からヘッダファイルをインクルードしようとすると、以下のエラーが出ました。
IntelliSense: this declaration has no storage class or type specifier
コンパイル時に作成されたlibフォルダとincludeフォルダへのパスは通しました。
Makefileからのライブラリのインストール方法を教えて頂けないでしょうか。
0778デフォルトの名無しさん
2015/05/25(月) 09:07:35.21ID:VZ0J6dfu0779デフォルトの名無しさん
2015/05/25(月) 09:18:47.90ID:gDfMyQ7C0780デフォルトの名無しさん
2015/05/25(月) 09:26:31.28ID:SeiMBcWL0781デフォルトの名無しさん
2015/05/25(月) 10:13:52.18ID:gTrN+azt0782デフォルトの名無しさん
2015/05/25(月) 14:08:07.67ID:qIuI2+n/一般に、
何らかの関数
void func(T &t)
{......}
があった場合、
void func(T &&t)
{......}
に変えても、速度や効率などを無視すれば動作的には同じ結果になると思っても間違い無いでしょうか?
0783デフォルトの名無しさん
2015/05/25(月) 14:55:15.30ID:JYCHMnRj0784デフォルトの名無しさん
2015/05/25(月) 18:45:44.68ID:qIuI2+n/出来れば、ならない簡単な例を教えてください。
0785デフォルトの名無しさん
2015/05/25(月) 19:25:33.05ID:Cc4FT8Vv0786デフォルトの名無しさん
2015/05/25(月) 19:31:12.91ID:qIuI2+n/なるほど。
では、逆なら正しいですか?
0787デフォルトの名無しさん
2015/05/25(月) 19:33:43.19ID:Cc4FT8Vv0788デフォルトの名無しさん
2015/05/25(月) 19:39:19.56ID:qIuI2+n/出来れば、正しくない簡単な例を教えてください。
0789デフォルトの名無しさん
2015/05/25(月) 19:41:52.63ID:Cc4FT8Vv0790デフォルトの名無しさん
2015/05/25(月) 19:42:03.67ID:RNsqScxNいいから右辺値とは何なのかを勉強しろ
0791デフォルトの名無しさん
2015/05/25(月) 19:46:46.64ID:8Crjy0ouだから右辺値も左辺値も取れる
0792デフォルトの名無しさん
2015/05/25(月) 19:51:22.00ID:Cc4FT8Vv0793デフォルトの名無しさん
2015/05/25(月) 19:57:01.99ID:qIuI2+n/レスありがとうございます。
右辺値勉強中なのですが、さっぱりわかりません。
>だから右辺値も左辺値も取れる
これは、どういう意味ですか?
782の私の質問が、正しいという意味でしょうか?
0794デフォルトの名無しさん
2015/05/25(月) 20:05:46.00ID:8Crjy0ouvoid func(T&& t)
とすれば
std::string s = "a";
func(s);
でも
func(std::string("a"));
でも呼べる
上は左辺値を渡してるし下は右辺値を渡してる
0795デフォルトの名無しさん
2015/05/25(月) 20:05:53.94ID:RNsqScxNなんでこんな規格になったのかな?
とにかく右辺値がなんなのかが分からなければ先に進めないよ
0796デフォルトの名無しさん
2015/05/25(月) 20:10:46.69ID:qIuI2+n/解説有難うございました。
ということは、やはり782は正しくて、
逆は正しくない。
でいいんですよね?
0797デフォルトの名無しさん
2015/05/25(月) 20:11:04.31ID:6zM95R3x0798デフォルトの名無しさん
2015/05/25(月) 20:12:08.65ID:8Crjy0ou0799デフォルトの名無しさん
2015/05/25(月) 20:17:44.37ID:RNsqScxN無茶苦茶増えるかなあ?
両方書かせるようにした方がC++の精神的に正しかったと思うがね
バグの温床になりそうな規格だね
0800デフォルトの名無しさん
2015/05/25(月) 20:20:51.53ID:jLXDtTP1パターンが増えるからとか
文盲にも程がある
0801デフォルトの名無しさん
2015/05/25(月) 20:23:11.64ID:RNsqScxNT&&でも左辺値が受け取れちゃうってのは変てこりんすぎるよな
0802デフォルトの名無しさん
2015/05/25(月) 20:23:27.69ID:8Crjy0outは左辺値になるし問題ないと思うけど
右辺値は右辺値参照のまま左辺値は左辺値参照のまま引数の転送ができるstd::forwardがあるしパフォーマンス的にも問題がない
0803デフォルトの名無しさん
2015/05/25(月) 20:24:57.50ID:XEKCpmCHそれだと右辺値が受け取れないでしょ
0804デフォルトの名無しさん
2015/05/25(月) 20:29:53.12ID:qIuI2+n/いいと言う事でしょ?
0805デフォルトの名無しさん
2015/05/25(月) 20:30:30.92ID:RNsqScxNああconst T&にしなきゃだめだな
いずれにせよこの辺の型厳密性にはこだわってほしかったな
0806デフォルトの名無しさん
2015/05/25(月) 20:35:50.04ID:8Crjy0ouvariadic templatesを使う意味もなくなる
0807デフォルトの名無しさん
2015/05/25(月) 20:45:59.14ID:6zM95R3x確かにその通りやな
0808デフォルトの名無しさん
2015/05/25(月) 20:47:47.36ID:XEKCpmCHそのことに文句はないのか
0809デフォルトの名無しさん
2015/05/25(月) 21:05:23.50ID:6zM95R3x0810デフォルトの名無しさん
2015/05/25(月) 21:27:28.71ID:qIuI2+n/0811デフォルトの名無しさん
2015/05/25(月) 21:36:00.23ID:VTYE0mr40812デフォルトの名無しさん
2015/05/25(月) 21:43:48.67ID:gWMMo+agあーだーこーだ言われて答えもでなくてトラブルになるような使い方はやめましょう
0813デフォルトの名無しさん
2015/05/25(月) 22:00:12.77ID:WR19eZ4JT&&は右辺値も受け取れるためオーバーロード解決で違いが出ます
左辺値しか渡さないなら同じ結果になります
0814デフォルトの名無しさん
2015/05/25(月) 22:14:55.38ID:qIuI2+n/サンキュウ。
そうだよなあ、俺の理解は正しかった。
&&をマスターしたぞ。
0815デフォルトの名無しさん
2015/05/25(月) 22:47:20.83ID:h6RJhRemネットからダウンロードしたソースコードをビルドしようとしたのですが、使われているライブラリが新しくなっているためにvirtual関数?が大幅に増えたらしく、コンパイルエラーを起こします
どのようにソースコードを直せばコンパイルが通るのでしょうか
PC初心者な上c++未経験のためどうしたら良いのか分からないのでここに質問しました
0816デフォルトの名無しさん
2015/05/25(月) 22:53:17.83ID:YqNyVFLrネットから拾ったソースをコンパイルしようとしない方がいい
まずC++の勉強からしましょう
0817デフォルトの名無しさん
2015/05/25(月) 23:02:10.24ID:KhOllmKo0818デフォルトの名無しさん
2015/05/26(火) 07:44:47.52ID:8l7/bLakコンパイラが教えてくれた関数を全てコピペして少し変更して実装したらコンパイル通りました
0819デフォルトの名無しさん
2015/05/26(火) 11:50:22.79ID:9gI1t1nuprotected:
int m_i;
public:
A::A(){}
A::A(const int i) :m_i(i){}
};
class B :protected A{
public:
// B::B(const int i) :m_i(i){} // (1)こちらはダメで
B::B(const int i){ m_i = i; } // (2)これなら行ける
};
で、(1)の初期化だとエラーして(2)なら行けるのですがエラーの理由を教えてください。
0820デフォルトの名無しさん
2015/05/26(火) 11:56:58.63ID:HAu3kWIC0821デフォルトの名無しさん
2015/05/26(火) 12:03:06.19ID:ta09zmeTこうだろ
0822デフォルトの名無しさん
2015/05/26(火) 12:26:19.71ID:9gI1t1nu出来ました!
0823デフォルトの名無しさん
2015/05/26(火) 18:10:47.89ID:+MorV9oJ「Kineckt for Windows SDK C++編」という本のサンプル通りに書いてみたのですが
error LNK2019: 未解決の外部シンボル __imp_NuiGetSensorCount が関数 "private: void __cdecl KinectSample::createInstance(void)" (?createInstance@KinectSample@@AEAAXXZ) で参照されました。
このエラーが発生して、NuiCreateSensorByIndex関数と共に動かずパソコンがキネクトを認識しないためプログラムが動きません。
調べたところ関数の定義が行われていないために発生するエラーのようなのですが
NuiGetSensorCount関数はSDKの「NuiApi.h」で宣言されているそうで、インクルードは問題なく行えています。
また、同関数が、使用しているSDKのバージョン1.7で利用可能であることもマイクロソフトの公式サイトから確認しました。
どなたか解決方法をご存知の方はいらっしゃいませんか。
エラーが出ているのは以下の記述の3行目と5行目です
void createInstance()
{
int count = 0;
ERROR_CHECK( ::NuiGetSensorCount(&count));
if (count == 0){throw std::runtime_error("Kinectを接続してください");
}
ERROR_CHECK( ::NuiCreateSensorByIndex(0, &kinect));
HRESULT status = kinect->NuiStatus();
if (status != S_OK){
throw std::runtime_error("Kinectが利用可能ではありません");}
}
0824823
2015/05/26(火) 18:22:26.35ID:+MorV9oJライブラリのフォルダパスの設定だけで終わっていて、
ファイル自体の設定をしていなかったのが原因でした。
まさかこんな初歩的なミスで1ヶ月も停滞していたなんて;;
スレ汚し失礼いたしました。
0825デフォルトの名無しさん
2015/05/26(火) 20:22:13.51ID:ScwGU6r40826デフォルトの名無しさん
2015/05/26(火) 21:29:48.23ID:SjDQEX9Wで画像の黒い部分を透過しようとしたのですが、
透過されません
エラーもなく画像の表示までは問題なくいきます
考えられる原因を教えていただけますでしょうか
0827デフォルトの名無しさん
2015/05/26(火) 21:45:59.92ID:SjDQEX9W事故解決しました
0828デフォルトの名無しさん
2015/05/27(水) 22:38:30.97ID:8CVbZCI0おしえてください。
ディレクトリを辿ってファイルを検索したいのですが、再帰を使ったド定番なのは
遅くて使えないので、他にどのようなアルゴリズムがありますか?
0829片山博文MZ ◆T6xkBnTXz7B0
2015/05/27(水) 22:40:27.53ID:bhmZkUHl0830デフォルトの名無しさん
2015/05/27(水) 22:58:25.71ID:8CVbZCI00831デフォルトの名無しさん
2015/05/27(水) 23:14:36.62ID:ghFHum5Y0832デフォルトの名無しさん
2015/05/27(水) 23:19:10.12ID:8CVbZCI00833片山博文MZ ◆T6xkBnTXz7B0
2015/05/27(水) 23:28:34.82ID:bhmZkUHl探索方法には幅優先探索、深さ優先探索などがある。
0834片山博文MZ ◆T6xkBnTXz7B0
2015/05/27(水) 23:46:25.23ID:bhmZkUHl例えばあるディレクトリで、"*abc*"を検索するとabcを含むファイルとフォルダー名が取り出せる。
SearchPathを使えば、実行パスに基づいて実行可能なファイルのパスを検索できる。
0835デフォルトの名無しさん
2015/05/27(水) 23:49:41.40ID:8CVbZCI00836デフォルトの名無しさん
2015/05/27(水) 23:58:45.96ID:bmPyy927https://msdn.microsoft.com/en-us/library/aa965362(v=vs.85).aspx
0837片山博文MZ ◆T6xkBnTXz7B0
2015/05/28(木) 00:00:44.55ID:BPOchcgZディレクトリの深さが浅いものを優先する、などである。
0838デフォルトの名無しさん
2015/05/28(木) 00:04:13.59ID:m+TyS5r+PathFileExistsとSearchPathどっちがいい?
0839デフォルトの名無しさん
2015/05/28(木) 00:05:50.48ID:AnQe6xX7どれくらいの速さが必要なのか
それを言えよ。
0840デフォルトの名無しさん
2015/05/28(木) 00:09:40.67ID:N7liwE7Gそれって必要なのか?
と始まりそうw
0841デフォルトの名無しさん
2015/05/28(木) 00:10:41.10ID:uU2xmjCSこれむっちゃ速いのな、どうやってるんだこれ
0842デフォルトの名無しさん
2015/05/28(木) 00:12:44.94ID:HB8xXEuW0843デフォルトの名無しさん
2015/05/28(木) 00:13:57.88ID:Xmw848ss自前データベース探索が高速なんだろ。
0844デフォルトの名無しさん
2015/05/28(木) 00:20:44.37ID:HB8xXEuW再帰使うあれってFindFirstFile使うやつでしょ
ぶっちゃけHDDが遅いんだからどのAPI使っても一緒
アルゴリズムの問題じゃない
まぁ1回呼べば次からキャッシュ効いてちょっとは早くなるけど
0845デフォルトの名無しさん
2015/05/28(木) 00:20:45.16ID:Cj2LTEMaそれが遅すぎて使い物にならないというんだから
10ミリ秒以内に1万ファイルから検索
ぐらいの要求だろう
0846デフォルトの名無しさん
2015/05/28(木) 00:21:21.67ID:SwTFWV/y0847デフォルトの名無しさん
2015/05/28(木) 00:25:00.12ID:zHoqbWBt全ファイルのインデックスを作成
作成し終わったらFileSystemWatcherで検出した変更をインデックスを随時反映
これが最速
0848デフォルトの名無しさん
2015/05/28(木) 00:27:26.69ID:HB8xXEuW0849片山博文MZ ◆T6xkBnTXz7B0
2015/05/28(木) 00:56:30.79ID:BPOchcgZ~GetFileAttributesかPathFileExists
0850デフォルトの名無しさん
2015/05/29(金) 22:02:27.77ID:/YD9Kb9uそれなりの時間がかかるのに
ワード検索で即返するGoogle の仕組みを教えて下さい
0851デフォルトの名無しさん
2015/05/29(金) 22:10:25.63ID:dNgncKxX0852デフォルトの名無しさん
2015/05/29(金) 22:29:41.96ID:bTG2Z02M0853デフォルトの名無しさん
2015/05/29(金) 22:32:14.50ID:sCTgru7QGoogleにとって都合の良い答えを
返しているだけだから速いのさ。
0854デフォルトの名無しさん
2015/05/29(金) 22:34:28.99ID:ZclsxXkV拡大し続ける実用・実働してる検索はいかにコストを下げるかが大事で汎用ハードだろ?
速いより安い重視かと。
0855デフォルトの名無しさん
2015/05/29(金) 22:39:03.35ID:ZclsxXkVネットワークの送受信時間の占める割合が増すから、
検索速度よりもスループット、単位時間あたりの処理件数の重視では?
0856デフォルトの名無しさん
2015/05/29(金) 22:43:49.48ID:dNgncKxX汎用ハードだと性能が出ないから
0857デフォルトの名無しさん
2015/05/29(金) 22:46:30.69ID:dNgncKxXアホみたいに大量のディスク容量確保するところは汎用で安いの重視
0858デフォルトの名無しさん
2015/05/29(金) 23:46:07.15ID:08TmNpAeOSのファイルシステム検索は100点の答えを返す
Google は 50点の答えを返す…というかどのくらいの精度かは誰にもわからない
0859デフォルトの名無しさん
2015/05/30(土) 00:35:02.54ID:smGPkr6J人間の脳ってのは計算量という概念を超えた何かがある
彼らはこれを利用しているんだね
サーバルームではコードに繋がれて謎の液体に漬け込まれた無数の脳が機械には無い直感を活用して多くの計算をすっ飛ばして高速かつ正確にクエリに応答しているんだ
0860デフォルトの名無しさん
2015/05/30(土) 00:36:49.92ID:kxccA5tTいくらインデックス作ってるからって、あんな速度で検索して、
検索結果を合成できるものなのか?
俺のローカルのハードディスクへのアクセスより早いとか、どうなってんだ?
常に全部オンメモリ状態なのか?なわけないよな。
0861デフォルトの名無しさん
2015/05/30(土) 00:47:34.17ID:kxccA5tT将棋のあれは、一種のアナログコンピュータだろうな。
脳細胞の数の規模でアナログ回路を組めば、
未だかつて誰も見たことも無いほどの処理能力を持った回路が出来るだろうね。
アナログ回路なんで、正確な計算は出来ないし、部品点数が多いから、
自己修復能力を持った設計にする必要があるだろうが。
ただ、アナログ回路では正確な計算が出来ないので、結果に再現性がなくなって、
デバッグ困難だし、信頼性が無いので、あんま有用性は無いね。
そんなものに生命維持装置やブレーキの制御などのクリティカルなミッションは任せられないから。
あと、脳みそは案外でかい。
CPUがあのサイズだと値段が凄いことになるし電力も半端ないし持ち運び出来ない。
それ考えるとCPUやメモリは小さいサイズでよく頑張っているかと。
0862デフォルトの名無しさん
2015/05/30(土) 03:30:20.15ID:aOrY5qKq電脳戦イベントにしても絶大な人気を今回もみせた将棋は安泰だね、わが愛すべき囲碁はさっぱりだ‥
0863デフォルトの名無しさん
2015/05/30(土) 08:26:22.35ID:OZz3JbS40864デフォルトの名無しさん
2015/05/31(日) 17:46:05.10ID:2zIxob7Psize_t i;
size_t ista = 3;
size_t iend = 0;
for(i = ista; i >= iend; i--){
printf("i=%lu\n", i);
}
ってやったら、3,2,1,0 で終わらないのですが、
どうやるのが正統的な方法なんでしょうか?
0865デフォルトの名無しさん
2015/05/31(日) 17:49:29.04ID:t8jPrrOmsize_t ista = 3;
size_t iend = 0;
for(i = ista; i <= ista; i--){
printf("i=%u\n", int(i));
}
0866デフォルトの名無しさん
2015/05/31(日) 18:07:49.74ID:obciJoiEここを読んで今再帰関数を非再帰に変換しようとしています
アッカーマン関数はあちこちに例があるので理解出来たのですが、例えば
n = f(f(f(n)));
みたいな入れ子になった関数を非再帰化するにはどう書けばいいのか分かりません
スタックを使うらしいのですが・・・
あと構造体を使わなくてもstd::tupleで行けそうな所までは分かりました
0867デフォルトの名無しさん
2015/05/31(日) 18:22:02.13ID:n17ltKvFhttp://p--q.blogspot.jp/2014/06/python15.html
巨大数:アッカーマン関数のC++実装 - clock-up-blog
再帰コールを取り除こう
http://blog.clock-up.jp/entry/2013/12/09/200751
0868デフォルトの名無しさん
2015/05/31(日) 18:34:31.42ID:n17ltKvFAck(x, y)は、こういう風にして数列操作に持ち込むってことで。
http://cdn-ak.f.st-hatena.com/images/fotolife/k/kobake/20131208/20131208231409.jpg
http://blog.clock-up.jp/entry/2013/12/09/200751
0869デフォルトの名無しさん
2015/05/31(日) 18:35:28.02ID:2zIxob7Pレスありがとうございます。提示して頂いた例ですと、
iend=0以外の場合に対応できないように思うんですが。
0870デフォルトの名無しさん
2015/05/31(日) 18:38:33.43ID:t8jPrrOm「iend <= i &&」を追加
0871デフォルトの名無しさん
2015/05/31(日) 18:38:42.31ID:u0MfIENJssizeにしろ
0872デフォルトの名無しさん
2015/05/31(日) 19:01:53.08ID:2zIxob7Pvisual studio だと SSIZE_T っていう奴ですか。
こんな型が有ったなんて知らなかったです。
0873866
2015/05/31(日) 19:39:05.83ID:obciJoiEレスありがとうございます
>>866のページを印刷して読んでいるところですが難しいですね
規則が10個もあるので試行錯誤してみます
0874デフォルトの名無しさん
2015/05/31(日) 20:15:47.80ID:obciJoiEhttp://ideone.com/cyJz22
使わない変数を省略した物は
http://d.hatena.ne.jp/sune2/20130129/1359429399
みたいですがまだ理解出来てません
0875デフォルトの名無しさん
2015/05/31(日) 22:33:21.66ID:n17ltKvF#include <iostream>
#include <time.h>
#include <vector>
#include <stack>
using namespace std;
int Ack(int m, int n) {
if(m == 0) return n + 1; if(n == 0) return Ack(m - 1, 1); return Ack(m - 1, Ack(m, n - 1)); }
int Ack_stack(int m, int n) {
stack<int> S;
do { if (m == 0) { n++;
if (S.empty()) return n;
m = S.top(); S.pop(); continue; }
if (n == 0) { m--; n = 1; continue; }
S.push(m-1); n--; } while(1); }
int Ack_vector(int m, int n) {
vector<unsigned char> S(99999); int curr=0;
do { if (m == 0) { n++;
if (curr==0) return n;
curr--; m = S[curr]; continue; }
if (n == 0) { m--; n = 1; continue; }
S[curr]=m-1; curr++; n--; } while(1); }
int main() {
unsigned long t,x,y,a; x=3,y=12; //x=4,y=1;
t=clock(); a=Ack(x,y); printf("Ack=%d t=%d\n", a,clock()-t);
t=clock(); a=Ack_stack(x,y); printf("Ack=%d t=%d\n", a,clock()-t);
t=clock(); a=Ack_vector(x,y); printf("Ack=%d t=%d\n", a,clock()-t); return 0; }
0876デフォルトの名無しさん
2015/05/31(日) 22:36:43.40ID:rfJ0jy0r0877デフォルトの名無しさん
2015/05/31(日) 23:17:05.08ID:SYNUJXzf再帰使わないようにするべきだけど。
状態を保存するのは、スタックを使った再帰が一番楽だからね。
0878デフォルトの名無しさん
2015/06/01(月) 00:04:04.13ID:US8qcqOUというのはあまりにも頭が悪すぎる
0879デフォルトの名無しさん
2015/06/01(月) 02:36:01.84ID:EVE0Mxzwそれを非再帰に書き直したところで
(本来ならスタックオーバーフローで落ちるはずのところを)落ちることなく延々と計算を続けるか、
さもなくばスタック以外の別の資源を食いつぶすか。
0880デフォルトの名無しさん
2015/06/01(月) 02:41:59.49ID:e+71x0IO公開ソフト、市販ソフトが大前提か?
0881デフォルトの名無しさん
2015/06/01(月) 02:44:26.58ID:e6TJU9TY多くの言語で使われている正規表現ライブラリー
コンパイル時とマッチング実行時で再帰
0882デフォルトの名無しさん
2015/06/01(月) 02:47:35.02ID:moAzXMft0883デフォルトの名無しさん
2015/06/01(月) 03:54:33.10ID:s3ZcdtNuスタックのサイズに制限かけて、オーバーしたらエラー返せばよいだろ。バカじゃね。
だけど、君の言うことにも一理ある。
再帰のネストをカウントする作りにしておけば、再帰でのオーバーフローは防げるからな。
わざわざ自前のスタック用意して、再帰を展開する必要はない罠。
0884デフォルトの名無しさん
2015/06/01(月) 05:16:15.75ID:tL4mT88e0885デフォルトの名無しさん
2015/06/01(月) 06:09:09.01ID:2kRRaIOr0886デフォルトの名無しさん
2015/06/01(月) 07:30:21.67ID:Han+khKYcpsで充分。
0887デフォルトの名無しさん
2015/06/01(月) 07:55:07.78ID:CPJ1NbYt> スタックのサイズに制限かけて、オーバーしたらエラー返せばよいだろ。
そんなことしたらどこでエラーになるのか予測できないぞ。
ライブラリの深い所でエラーになってエラーも返せずにそのまま死んだりするし。
> 再帰のネストをカウントする作りにしておけば、再帰でのオーバーフローは防げるからな。
まともなプログラムなら当たり前。
0888デフォルトの名無しさん
2015/06/01(月) 08:07:11.67ID:2kRRaIOrそれはむしろ逆なんじゃないの。
ダンプすると経路がわかるから楽だよ。
オートマトンを作る有名どころでマシンスタックを使うのってBoost.Spiritくらいじゃない。
spiritはいろいろな機構を用意しているにもかかわらずデバッグが難しいし。
やっぱり展開したほうが良いんだよ。
0889デフォルトの名無しさん
2015/06/01(月) 09:56:47.87ID:m9KYqRgC結局同じこと言ってることになるのにわざわざ反論してんのか
0890デフォルトの名無しさん
2015/06/01(月) 20:09:55.36ID:EdWu5WFj0891デフォルトの名無しさん
2015/06/01(月) 20:16:11.28ID:bWf+hh2y確かにね。
Cは最適化出来ないからリソース喰いになるもんな。
0892デフォルトの名無しさん
2015/06/01(月) 20:34:59.55ID:hcIpv0zT0893デフォルトの名無しさん
2015/06/01(月) 22:03:38.21ID:YbgAEfo1再帰は性能的にNGと信じているバカが使えないことは事実
0894デフォルトの名無しさん
2015/06/01(月) 22:10:35.71ID:EdWu5WFj0895デフォルトの名無しさん
2015/06/02(火) 01:37:25.62ID:fL6KbOvN0896デフォルトの名無しさん
2015/06/02(火) 01:43:45.38ID:33LBbjfE0897デフォルトの名無しさん
2015/06/02(火) 02:13:16.25ID:fL6KbOvN再帰使うと楽だからね。
でも駄目だよ。
改修作業時にダメデスナアと言われるからね。
見かけたときは遠慮せずにダメデスナアと言わないといけないよ。
0898デフォルトの名無しさん
2015/06/02(火) 02:24:02.15ID:33LBbjfEAVL木、赤黒木(いずれも平衡二分木)はスタックの深さを可能なかぎり制限する方向にデータ構造をとるが、
それでも非再帰じゃないとだめなの?
再帰で困るのはスタックあふれだろう?であれば、アルゴリズムでそれが起こりにくいようにするのであれば再帰でも問題ないのでは?
0899デフォルトの名無しさん
2015/06/02(火) 02:35:44.55ID:fL6KbOvNそりゃ良くないプログラミング慣習とみなされているんだから、変な烙印押されたくなければ
あえてそこを通るメリット無いだろ。
0900デフォルトの名無しさん
2015/06/02(火) 02:36:39.85ID:2KJ1xdoq0901デフォルトの名無しさん
2015/06/02(火) 02:38:29.53ID:NMFreSYT0902デフォルトの名無しさん
2015/06/02(火) 05:35:07.07ID:Ima7+3bH0903デフォルトの名無しさん
2015/06/02(火) 08:27:14.10ID:cddAA14CCの能力が低いだけ。
0904デフォルトの名無しさん
2015/06/02(火) 10:05:54.83ID:MVNZCtkpじゃあ、std::mapとか禁止にしてるの?
0905デフォルトの名無しさん
2015/06/02(火) 10:40:13.94ID:nAzzGm8u0906デフォルトの名無しさん
2015/06/02(火) 11:23:38.91ID:S9CQ5dEl0907デフォルトの名無しさん
2015/06/02(火) 11:42:58.92ID:nPOqT+910908デフォルトの名無しさん
2015/06/02(火) 12:45:13.12ID:lxmN6vtG関数電卓ならわかるが、普通の電卓なら再起いらんやろ
0909デフォルトの名無しさん
2015/06/02(火) 15:56:30.02ID:SghPEm1eみんな間違わずにここまできたのに
お前だけ間違ったな
肝の部分に誤字入れるプログラマは
一割リストラなんかのときに候補になるタイプやろな
0910デフォルトの名無しさん
2015/06/02(火) 17:56:31.34ID:GRJ74vYh0911デフォルトの名無しさん
2015/06/02(火) 20:05:11.24ID:1H3cOO/K0912デフォルトの名無しさん
2015/06/02(火) 20:06:59.34ID:3B1g3coLここはお前がオナニーできる場所ではないんやな
0913デフォルトの名無しさん
2015/06/02(火) 20:13:11.06ID:1H3cOO/K0914デフォルトの名無しさん
2015/06/02(火) 20:30:49.97ID:mpqWTiJ6std::stringstreem s2;
『2行目だけエラーになるんですけど原因が分からないんです』
「そこ打ち間違えてるよ」
「誤字だね」
『え?どこですか?』
「streamのところ」
「eaになるはずがeeになってる」
『え?どこのことですか?』
「ここだよ(指差す)」
『あれ?さっきまでeaだったはずなのに、今eeに変わった。何をしたんですか?』
というのを毎日繰り返してる新人がいたんだけど、何かの病気だったのでしょうか?
0915デフォルトの名無しさん
2015/06/02(火) 20:35:18.93ID:MiO5h7Jd0916デフォルトの名無しさん
2015/06/02(火) 20:37:03.94ID:mpqWTiJ6登場人物は二人じゃないんだって
0917デフォルトの名無しさん
2015/06/02(火) 20:41:40.97ID:mpqWTiJ6std::stringstreem s2;
A『2行目だけエラーになるんですけど原因が分からないんです』
B「そこ打ち間違えてるよ」
C「誤字だね」
A『え?どこですか?』
D「streamのところ」
E「eaになるはずがeeになってる」
A『え?どこのことですか?』
F「ここだよ(指差す)」
A『あれ?さっきまでeaだったはずなのに、今eeに変わった。何をしたんですか?』
0918デフォルトの名無しさん
2015/06/02(火) 22:44:28.80ID:xvNBkK8I0919デフォルトの名無しさん
2015/06/02(火) 22:57:02.18ID:PNCKnZOFって教えてくれるから便利だよな
0920デフォルトの名無しさん
2015/06/02(火) 23:52:06.88ID:2KJ1xdoq0921デフォルトの名無しさん
2015/06/03(水) 00:11:03.37ID:TFU5sR5O0922デフォルトの名無しさん
2015/06/03(水) 00:34:41.72ID:B+SiK07R指摘されてすぐ場所を見つけ出せるタイプと
いくら指摘されてもなかなか見つけ出せないタイプに二分される
どちらの方がより病んでるのか
0923デフォルトの名無しさん
2015/06/03(水) 01:37:24.76ID:nXuY2PD3すぐに分かるよね
0924デフォルトの名無しさん
2015/06/03(水) 09:04:02.10ID:QKkpvy6Ha.x += b.x;
a.y += b.y;
a.z += b.x;
こういう打ち間違えを大量生産する人をどうやって救えばいい?
そいつ出社拒否で辞めたので救い方分かってももう仕方ないけど
0925デフォルトの名無しさん
2015/06/03(水) 09:05:29.22ID:TFU5sR5O0926デフォルトの名無しさん
2015/06/03(水) 10:19:28.23ID:lx/gBG/Qそれを実現する関数の中身のことだろ
0927デフォルトの名無しさん
2015/06/03(水) 10:23:22.60ID:lguHdY/iXYZ& operator+=(const XYZ&b) {
XYZ& a = *this;
return a += b;
}
こうすりゃ済むだろ
0928デフォルトの名無しさん
2015/06/03(水) 10:27:09.00ID:hYqfxVSD0929デフォルトの名無しさん
2015/06/03(水) 10:37:57.53ID:TFU5sR5Ostrong typedefを使う
0930デフォルトの名無しさん
2015/06/03(水) 12:48:28.92ID:Uef3YIi+0931デフォルトの名無しさん
2015/06/03(水) 13:38:32.62ID:mFN7sgFN>>929が正解
0932デフォルトの名無しさん
2015/06/03(水) 14:10:59.57ID:NXHMQekmその打ち間違いがどういうプロセスで発生するか調べる
一人だけの問題ならクビ
0933デフォルトの名無しさん
2015/06/03(水) 14:24:59.94ID:hYqfxVSD性格的にプログラミングに不向きだな
strong typedef使ったとしても何かエラー出たから訳わからんままに強制キャストとかやるタイプ
0934デフォルトの名無しさん
2015/06/03(水) 16:10:26.05ID:mFN7sgFN0935デフォルトの名無しさん
2015/06/03(水) 16:17:27.15ID:K7IW/JRS左辺を y と z に置き換えて
右辺を y に置き換えている途中に 割り込み 作業を忘れる
0936デフォルトの名無しさん
2015/06/03(水) 18:51:25.27ID:QadS+ygN0937デフォルトの名無しさん
2015/06/03(水) 20:58:25.77ID:HweAEHWW0938デフォルトの名無しさん
2015/06/03(水) 21:22:01.70ID:TFU5sR5Oa.y
a.z
を矩形コピーして後でa行だけbに変える
0939デフォルトの名無しさん
2015/06/03(水) 21:34:30.08ID:oQy9zvF5変えるのは列だろ
0940デフォルトの名無しさん
2015/06/03(水) 22:45:20.45ID:UaqAMmT50941デフォルトの名無しさん
2015/06/03(水) 22:50:39.09ID:QDozX67x0942デフォルトの名無しさん
2015/06/03(水) 22:54:54.30ID:xLp6v6Vlfloat foo;
...
struct Vec3 {
Hoge x;
Fuga y;
Piyo z;}
これで良いだろ
組み込み型そのまま使って間違えるバカは死ねよ
0943デフォルトの名無しさん
2015/06/03(水) 22:59:36.06ID:a6dWi2Giそれテンプレートクラスにするときどうするの?
0944デフォルトの名無しさん
2015/06/03(水) 23:03:31.24ID:QDozX67x0945デフォルトの名無しさん
2015/06/03(水) 23:09:00.30ID:RqULJtkt俺が過去に見た誤字凄いのは2人だが、2人とも音信不通になってから辞めてるし
0946デフォルトの名無しさん
2015/06/03(水) 23:12:58.54ID:hYqfxVSD0947デフォルトの名無しさん
2015/06/03(水) 23:50:56.31ID:GxRvASag幸いなことに自分が触った箇所すべてにきちんと署名してくれてたから被害は最小限におさえられた
0948デフォルトの名無しさん
2015/06/04(木) 00:49:19.21ID:que7T37R注意障害
識字障害
アスペルガー
など
誤字が許されない職業に就くのはストレスきつそう
0949デフォルトの名無しさん
2015/06/04(木) 01:22:52.51ID:h6VJ493e0950デフォルトの名無しさん
2015/06/04(木) 05:55:06.63ID:RDJApZF9パワハラじゃないのか
やってる本人は気づいてないのかもしれないが
特定の相手に対してだけ口調や態度が違う奴はいる
脇から見てるとこれはパワハラだなーと思うが
上司も注意せず黙認してる
で、数か月後にやられてた奴は退職した
0951デフォルトの名無しさん
2015/06/04(木) 09:21:13.32ID:+G3eSCOhclassと書くべきところの3つに1つを書き間違えて
しかもどこが間違えているかコンパイラに教えられても間違いが分からない人なら
いつまでも終わらないコンパイラの指摘をパワハラだと思うかもしれないな
0952デフォルトの名無しさん
2015/06/04(木) 10:52:49.28ID:+93OvXiE問題箇所を洗い出すために、同じintを別の名前で幾つか再定義して
代入間違いをコンパイラに探させるのさ
0953デフォルトの名無しさん
2015/06/04(木) 11:21:07.39ID:YIi7L05jtypedef int xint;
typedef int yint;
struct foo { xint x; yint y; }
foo a, b;
b.x = a.y;
ってことでしょ?
0954デフォルトの名無しさん
2015/06/04(木) 11:21:33.56ID:YIi7L05j0955デフォルトの名無しさん
2015/06/04(木) 11:40:14.48ID:sOd8V65Oアフィン変換するときどうするの?
0956デフォルトの名無しさん
2015/06/04(木) 11:40:31.84ID:UJ+uasTNそれは単なるtypedefだろ
0957デフォルトの名無しさん
2015/06/04(木) 11:52:18.34ID:cR6kwSutHoge, Fuga, Piyoを引数にとる演算子を定義するんだろ
でも、そう言う奴は他のパターンでtypoするから本質的な解決にならない
0958デフォルトの名無しさん
2015/06/04(木) 11:57:36.20ID:PAT1ASPpusing xint int;
using yint int;
けど アフィン変換(マトリックスとの積) や 外積のような クロスするのにはつかえにゃい
0959デフォルトの名無しさん
2015/06/04(木) 12:41:57.57ID:gZNE2gL+0960デフォルトの名無しさん
2015/06/04(木) 12:55:19.65ID:YIi7L05j構造体でintをラップするっていうのは上にもあるしわかるんだけど、
「同じintを別の名前で幾つか再定義して」っていうのがわかんない
typedef以外でなんかあるのかなって
0961デフォルトの名無しさん
2015/06/04(木) 13:17:39.63ID:bj/ZV+Ck0962デフォルトの名無しさん
2015/06/04(木) 14:29:07.54ID:MAvS6vSstypedef と strong typedef の違いはわかる?
0963デフォルトの名無しさん
2015/06/04(木) 15:07:24.49ID:YIi7L05jtypedefは型に単に別名つけるだけで、
strong typedefはそれこそ実質中身同じだけど別の型として扱われるものを作るってことだよね?
>>942のようにやるやり方はわかるんだけど、
>>952や>>958のようなもっとシンプルにやる方法がわからない
0964デフォルトの名無しさん
2015/06/04(木) 15:18:55.03ID:gZNE2gL+結局単体テストをしっかりやるしかない
0965デフォルトの名無しさん
2015/06/04(木) 16:34:48.41ID:AoHnIgTp3Dレンダリングなんてケースによって通るコード変えて速度稼ぐこともあり
間違えてz=xのようなミスをしたところがレアケースでしか通らない箇所なら
単体テストに頼るだけで済む保証がない
0966デフォルトの名無しさん
2015/06/04(木) 19:42:25.99ID:2Og4H4kWそしたら、strong typedefどころか、型チェックすらなくなるわけで。
0967デフォルトの名無しさん
2015/06/04(木) 20:06:58.10ID:gZNE2gL+それは単体テストがいい加減なだけでは?
単体テストで保証できないなら保証する方法なんてないね
0968デフォルトの名無しさん
2015/06/04(木) 22:26:09.17ID:TE7tpUku単体テスト以外の方法は存在しないと?
0969デフォルトの名無しさん
2015/06/04(木) 22:43:03.68ID:Xun5BCRH0970デフォルトの名無しさん
2015/06/04(木) 23:03:26.29ID:2q40Rd1k近年連続して見つけ出されているopensshの不具合は
「ソースを読解する」という方法で見つかっているんですけどね
テストとかじゃなくて
0971デフォルトの名無しさん
2015/06/04(木) 23:06:57.44ID:RgXKwZP6class A{
public:
virtual void setfunc (void (*convert) (float value, char *string));
private:
void (*func) (float value, char *string);
};
void A::setfunc (void (*convert) (float value, char *string)){
func = convert;
}
これのsetfuncに関数Bを渡したいんですが、どうすれば良いんですかね
下の書き方だとプログラム走らすとエラーで落ちてしまう
void B (float value, char *string){
}
int main(){
A *a;
a->setfunc(B); //Bの渡し方が分からんです
}
0972デフォルトの名無しさん
2015/06/04(木) 23:12:30.16ID:S72OsMlQ0973デフォルトの名無しさん
2015/06/04(木) 23:13:02.97ID:l7sqjWQu多額の予算かけて単体テストを豪華にするくらいなら
セキュリティコンサルやコードレビュー屋に単発依頼した方が安くて検出率が高い。
0974971
2015/06/04(木) 23:19:35.16ID:RgXKwZP60975デフォルトの名無しさん
2015/06/05(金) 01:32:20.58ID:cKja1wy1char a = 0b00001010;
組み込みだと当たり前な書き方なのに不便やなぁ
0976デフォルトの名無しさん
2015/06/05(金) 02:48:56.19ID:lcbUzzij0977デフォルトの名無しさん
2015/06/05(金) 05:38:39.92ID:hFKT/HtA0978デフォルトの名無しさん
2015/06/05(金) 06:07:23.70ID:w/AmbAsN先頭0xは16進値
途中A〜Fがあったら16進値にしたらいいのにな
0979デフォルトの名無しさん
2015/06/05(金) 06:10:08.41ID:cghofKPB0980デフォルトの名無しさん
2015/06/05(金) 06:52:09.86ID:3VeVYHLB使い分けなきゃならないので醜い
0981デフォルトの名無しさん
2015/06/05(金) 12:46:50.00ID:PPi1ASxWint i = 10;
int i = 0xa;
も同じじゃないですか?
なのに変換とは?
0982デフォルトの名無しさん
2015/06/05(金) 13:02:53.35ID:jlghS53x0983デフォルトの名無しさん
2015/06/05(金) 13:35:19.87ID:PPi1ASxW0984デフォルトの名無しさん
2015/06/05(金) 16:24:25.16ID:JR/KFBtw"0xa" 16進数
0985片山博文MZ ◆T6xkBnTXz7B0
2015/06/05(金) 16:33:34.95ID:DXaZxPH60986デフォルトの名無しさん
2015/06/05(金) 16:46:06.98ID:oXea6eYz"10" という文字列が10進数を意図したものであるとは限らない
0987デフォルトの名無しさん
2015/06/05(金) 17:03:00.66ID:JR/KFBtwどういう規定で変換するのはプログラマー次第だろ
0988デフォルトの名無しさん
2015/06/05(金) 17:11:14.24ID:YtaxjIlA10進数を意図した例として出されただけで、何時でも何処でも誰でも10進数として
解釈すべきだとは書かれていないよね?(´・ω・`)
0989デフォルトの名無しさん
2015/06/05(金) 18:08:09.69ID:9pqkhIHE「"10" という文字列が10進数を意図したものであるとは限らない」が間違いであると言いたい?
0990デフォルトの名無しさん
2015/06/05(金) 19:39:14.33ID:YjFFpKOb0991デフォルトの名無しさん
2015/06/05(金) 21:58:47.63ID:Em9JMBRM0992デフォルトの名無しさん
2015/06/05(金) 22:16:57.57ID:cKja1wy10993デフォルトの名無しさん
2015/06/05(金) 22:56:37.08ID:zIdlcfi4ok
0994デフォルトの名無しさん
2015/06/05(金) 22:57:37.94ID:PPi1ASxW会社で馬鹿でかい多次元配列を作ってスタックにつめないからといって
コンパイラのせいにしてるバカのようになってほしくないです
0995デフォルトの名無しさん
2015/06/05(金) 23:20:45.97ID:cKja1wy1合計float[6000]ぐらいなんでやってみまつ
0996デフォルトの名無しさん
2015/06/05(金) 23:23:47.49ID:4/4JvIu20997デフォルトの名無しさん
2015/06/05(金) 23:25:22.23ID:JJJ2g9Sl質問もできねえ
0998デフォルトの名無しさん
2015/06/05(金) 23:29:03.04ID:pbJTQx9M【初心者歓迎】C/C++室 Ver.96【環境依存OK】
http://peace.2ch.net/test/read.cgi/tech/1433514467/
0999デフォルトの名無しさん
2015/06/05(金) 23:31:53.77ID:JJJ2g9Sl乙
1000デフォルトの名無しさん
2015/06/05(金) 23:42:58.76ID:DXaZxPH610011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。