- 1 名前:デフォルトの名無しさん mailto:sage [2018/01/20(土) 09:05:42.21 ID:mJKRg6iz0.net]
- 次スレを立てる時は本文の1行目に以下を追加して下さい。
!extend:on:vvvvv:1000:512 C++に関する質問やら話題やらはこちらへどうぞ。 ただし質問の前にはFAQに一通り目を通してください。 IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。 前スレ C++相談室 part133 mevius.5ch.net/test/read.cgi/tech/1511509970/ このスレもよろしくね。 【初心者歓迎】C/C++室 Ver.102【環境依存OK】 mevius.5ch.net/test/read.cgi/tech/1509780815/ ■長いソースを貼るときはここへ。■ codepad.org/ https://ideone.com/ [C++ FAQ] https://isocpp.org/wiki/faq/ www.bohyoh.com/CandCPP/FAQ/ (日本語) VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
- 313 名前:デフォルトの名無しさん mailto:sage [2018/02/26(月) 00:59:51.78 ID:VDQLjiDS0.net]
- まったく逆だ
dwからiに全部置換していかないと変数名の意味を為さなくなるからシステムハンガリアンは愚かさ甚だしいと云うておる
- 314 名前:デフォルトの名無しさん mailto:sage [2018/02/26(月) 01:02:48.27 ID:VDQLjiDS0.net]
- アンパンマン調で例えるなら型名変えるだけでメンテ百倍みたいな
- 315 名前:デフォルトの名無しさん mailto:sage [2018/02/26(月) 01:10:40.33 ID:jQ6YvoyL0.net]
- 組み込み型はいいけどクラスはどうすんのさ
意味の分からないサフィックスを付けられても困るぞ
- 316 名前:デフォルトの名無しさん mailto:sage [2018/02/26(月) 01:11:26.04 ID:VDQLjiDS0.net]
- ハンガリアン!新しい型だよ!
有難う!デザパタ娘ちゃん! メンテ百倍!ハンガリアン!
- 317 名前:デフォルトの名無しさん mailto:sage [2018/02/26(月) 01:55:04.49 ID:4PPe6ndQ0.net]
- そもそもDWORDをintに変えることが滅多にない
- 318 名前:デフォルトの名無しさん mailto:sage [2018/02/26(月) 02:10:59.71 ID:jQ6YvoyL0.net]
- dwとか書かれてもDWORDの定義を知らないと意味不明だし
やるなら符号の有無とサイズが分かるように書かないと意味ないでしょ
- 319 名前:デフォルトの名無しさん mailto:sage [2018/02/26(月) 04:56:46.87 ID:lxlU26hn0.net]
- >>298
おまえは間違いなく1万行と書いた その史実を誤魔化すことはできない 「ありえないという根拠は」という問いを反論として用いるのは 俺が「ありえない」と言った(事実と違うが)ことが おまえが「ありうる」と思っているのと違ったからだろう いずれにせよ「アホかおまえは」にふさわしいハチャメチャだな
- 320 名前:デフォルトの名無しさん mailto:sage [2018/02/26(月) 08:02:35.99 ID:SPD4iDfM0.net]
- ポインタのpとか参照のrとかは今でも使ってる
- 321 名前:デフォルトの名無しさん [2018/02/26(月) 08:09:57.39 .net]
- >>307
史実とか言っちゃうのって。。。
- 322 名前:デフォルトの名無しさん mailto:sage [2018/02/26(月) 08:16:32.18 ID:TvC1o7QC0.net]
- >>307
もうちょっとまとめて喋れ 読みづらい
- 323 名前:デフォルトの名無しさん mailto:sage [2018/02/26(月) 09:55:53.14 ID:lxlU26hn0.net]
- >>308
俺も使う ただし名前そのものをポインタっぽくするだけで ハンガリアンのプリフィックスとしてではない
- 324 名前:デフォルトの名無しさん mailto:sage [2018/02/26(月) 09:56:14.50 ID:lxlU26hn0.net]
- >>310
ニホンゴワカリマスカ?
- 325 名前:デフォルトの名無しさん mailto:sage [2018/02/26(月) 10:44:04.77 ID:U+kFnN5D0.net]
- ハード直叩きのドライバ屋はデータバスやレジスタの幅を間違えると大変だから
物理層の実装ではハンガリアン使うこともあるよ
- 326 名前:デフォルトの名無しさん mailto:sage [2018/02/26(月) 10:55:31.04 ID:n/n1Eejna.net]
- >>313
むしろそれはアプリケーションハンガリアンじゃね?
- 327 名前:デフォルトの名無しさん [2018/02/26(月) 11:21:30.74 ID:mt/mMzV6d.net]
- 間違えると大変だからハンガリアンを使ってはならないんだよ
偽の情報に頼るんではなくて元を逐一確かめないと
- 328 名前:デフォルトの名無しさん mailto:sage [2018/02/26(月) 11:33:14.68 ID:yfGCkThX0.net]
- 今勉強してるんだけどC++ではポインタを使わずに参照で書くのがデフォルトなの?
- 329 名前:デフォルトの名無しさん mailto:sage [2018/02/26(月) 11:36:50.47 ID:TvC1o7QC0.net]
- >>315
不一致が存在しない事が保証されてれば問題無いんやな そういう事ならつまり変数宣言とプレフィックスが全て一致してるかチェックするスクリプトとかがあれば満足って事でええんか?
- 330 名前:デフォルトの名無しさん mailto:sage [2018/02/26(月) 11:38:09.46 ID:n/n1Eejna.net]
- >>316
ポインタも必要に応じて使うけど、メモリ管理の煩雑さとミスの危険性を避けるために参照やスマートポインタやコンテナ、イテレータなど他に適切な物がある時はなるべくそちらを使うのが流儀かな。
- 331 名前:デフォルトの名無しさん mailto:sage [2018/02/26(月) 11:51:17.55 ID:lxlU26hn0.net]
- >>316
デフォ・・・まあ、そう言えなくもないか 参照でもポインタでもどっちでもいい用途には参照 ポインタでしかできないことはNULLに++や絶対番地指定 参照でしかできないことは一時オブジェクトやコピコン類
- 332 名前:デフォルトの名無しさん mailto:sage [2018/02/26(月) 12:15:47.61 ID:z/vehsiL0.net]
- 書き込むときは参照ではなくポインタにしろと言ってた人がいた。
理由を聞いたら「なんか書き込んでる感がない」だった。
- 333 名前:デフォルトの名無しさん mailto:sage [2018/02/26(月) 12:17:18.65 ID:lxlU26hn0.net]
- std::cin >> &a;
やだよ、こんなの
- 334 名前:デフォルトの名無しさん [2018/02/26(月) 12:21:09.58 ID:W3q5coR10.net]
- グーグル規約だと書き込む引数は参照ではなくポインタにしろってなってる
でも標準ライブラリが普通に参照で書き込んでるので意味ないかなと思う
- 335 名前:デフォルトの名無しさん mailto:sage [2018/02/26(月) 13:05:03.30 ID:LqmnPPXld.net]
- やC++糞
- 336 名前:デフォルトの名無しさん mailto:sage [2018/02/26(月) 13:30:49.55 ID:jQ6YvoyL0.net]
- 好きな方使えとしか言いようがない
ただ参照はnullポインタが無いという特性はある
- 337 名前:デフォルトの名無しさん mailto:sage [2018/02/26(月) 13:42:09.37 ID:z/vehsiL0.net]
- >>322
自分もその人の気持ちは理解できた。 func(a, &b); と書かれていると、bに結果を書き込んでいる感があるし。
- 338 名前:デフォルトの名無しさん mailto:sage [2018/02/26(月) 13:44:00.32 ID:yfGCkThX0.net]
- レスサンクス
cからだからポインタで書いちゃいそうだわ
- 339 名前:デフォルトの名無しさん [2018/02/26(月) 18:25:47.85 ID:aHz4HBvIM.net]
- ローカルで宣言したunique_ptrを他のメソッドに渡してデータをつめたいばあいってどういう引数で渡せば良いの?
unique_ptr<Hoge> ptr(new Hoge); hogehoge(ptr); Hogehoge::hoge(const unique_ptr<Hoge>& ptr){ ptr->aaa = 123; } これでいける? なんかウェブサイトみてると&&二つとかあったりするの見かけて混乱してきた
- 340 名前:デフォルトの名無しさん mailto:sage [2018/02/26(月) 18:46:48.22 ID:6OgFttId0.net]
- &&は所有権ごとぶん投げる時に使う
渡した後も呼び出し元で使うんだったらそれて合ってるぞ
- 341 名前:デフォルトの名無しさん mailto:sage [2018/02/26(月) 19:00:19.12 ID:r2m2Cr000.net]
- >>327
それだったらunique_ptrじゃなくて参照渡せば良いだけじゃ
- 342 名前:デフォルトの名無しさん mailto:sage [2018/02/26(月) 19:31:15.52 ID:NcBRNf650.net]
- 知らない間に、&& みたいな参照渡しもできた
Rust の所有権ムーブの事
- 343 名前:デフォルトの名無しさん mailto:sage [2018/02/26(月) 19:58:16.47 ID:jQ6YvoyL0.net]
- 何年も前からある
- 344 名前:デフォルトの名無しさん [2018/02/26(月) 21:01:42.73 ID:k0ghrbBh0.net]
- 所有権を渡すのってstd:move()だと思ってたんだけどconst &&でもいけるの??
- 345 名前:デフォルトの名無しさん mailto:sage [2018/02/26(月) 21:42:25.99 ID:adcc2IaV0.net]
- C++17でstd::iteratorが非推奨ってなっているみたいだけど代わりに何使うの?
- 346 名前:デフォルトの名無しさん mailto:sage [2018/02/26(月) 23:56:58.87 ID:4PPe6ndQ0.net]
- []
- 347 名前:デフォルトの名無しさん mailto:sage [2018/02/27(火) 00:00:22.09 ID:o+FKgYKC0.net]
- >>333
自分で実装する
- 348 名前:はちみつ餃子 mailto:sage [2018/02/27(火) 02:00:32.40 ID:+XEdVvf40.net]
- >>332
std::move は rvalue にキャストするだけで、それ自体にはムーブする機能はない。 実際にムーブの処理をするのはムーブコンストラクタやムーブ代入演算子の方やで。
- 349 名前:はちみつ餃子 mailto:sage [2018/02/27(火) 02:10:59.44 ID:+XEdVvf40.net]
- && は単純に右辺参照って意味しかないから、 rvalue を受け取れるってだけ。
だけど lvalue でもムーブしてぇってときは std::move で rvalue にキャストすんの。
- 350 名前:デフォルトの名無しさん mailto:sage [2018/02/27(火) 02:19:45.35 ID:o+FKgYKC0.net]
- そこら辺はめんどくさいからテンプレート使え
- 351 名前:デフォルトの名無しさん [2018/02/28(水) 18:07:41.72 ID:IZRayiSM0.net]
- 右辺値参照とか難しいなー
最近ようやくC++11使えるようになったから全然いってることがわからん
- 352 名前:片山博文MZ mailto:sage [2018/02/28(水) 18:34:51.95 ID:jmOf6Upnd.net]
- 右辺値参照が使えなかった頃は、std::swapでスピード最適化していた。ポインタとメモリー確保を含む構造体は、
単純にスワップしたり、単純にバイト単位コピーしたりするのはまずいことがある。 そういうときに、std::swapを使う。右辺値参照は、それよりちょっと速くて賢いが、テンプレート型を理解してないと多分理解できないと思われる。
- 353 名前:片山博文MZ mailto:sage [2018/02/28(水) 18:43:18.32 ID:jmOf6Upnd.net]
- 右辺値参照の型はテンプレートを使った特殊な型だと考えるのが自然。
T&& === rvalue_ref<T>. std::move(T&)はrvalue_ref<T>という型。
- 354 名前:片山博文MZ mailto:sage [2018/02/28(水) 18:44:28.64 ID:jmOf6Upnd.net]
- 訂正。
std::move(T&)の戻り値はrvalue_ref<T>という型。
- 355 名前:片山博文MZ mailto:sage [2018/02/28(水) 19:01:47.21 ID:jmOf6Upnd.net]
- すみません、テキトーなことを書いたので、銃殺されます。
- 356 名前:はちみつ餃子 mailto:sage [2018/02/28(水) 19:18:07.29 ID:7ezW7mFb0.net]
- 実際のところヘッダファイルから std::move の定義を抜き出すとこんな感じ。
template<typename _Tp> constexpr typename std::remove_reference<_Tp>::type&& move(_Tp&& __t) noexcept { return static_cast<typename std::remove_reference<_Tp>::type&&>(__t); } テンプレートの都合で面倒くさくなってるけど、実態としては static_cast してるだけ。
- 357 名前:片山博文MZ mailto:sage [2018/02/28(水) 19:24:03.59 ID:jmOf6Upnd.net]
- そのstd::remove_reference<T>::typeはTから左辺値参照や右辺値参照をはずした型になるね。それに&&を付けるんだから、左辺値参照が右辺値参照になる。
- 358 名前:片山博文MZ mailto:sage [2018/02/28(水) 19:25:31.22 ID:AZJp7LrB0.net]
- やはり、constexprやnoexceptを付けた方が性能がいいんだな。
- 359 名前:はちみつ餃子 mailto:sage [2018/02/28(水) 19:35:33.38 ID:7ezW7mFb0.net]
- C++17 では noexcept は型の一部という扱いに変更された。
例外を投げないなら投げないと書いておかないと他のライブラリとの組合せで型エラーになったりすることもあるかもしれんぞ。
- 360 名前:片山博文MZ mailto:sage [2018/02/28(水) 19:43:54.33 ID:jmOf6Upnd.net]
- やっぱ江添亮様ってスゲーや。
- 361 名前:デフォルトの名無しさん mailto:sage [2018/02/28(水) 21:22:30.07 ID:BlsGZA5I0.net]
- 江添本にこの辺りのチートシートと問題集いれたら100部くらい売り上げ増えるのでは
- 362 名前:デフォルトの名無しさん mailto:sage [2018/02/28(水) 21:27:43.47 ID:LDTKKB+20.net]
- 江添ってあれか
- 363 名前:。ニートの時にやることないからたまたま目についたC++の仕様書を読み込んでたら
いつの間にかすごく強くなったという、ホリランみたいな。 [] - [ここ壊れてます]
- 364 名前:デフォルトの名無しさん mailto:sage [2018/02/28(水) 21:32:34.60 ID:eOQjYTv40.net]
- おまえそれをバカにできるのか?
仕事ってそういうもんだぜ 目の前の案件のために必死こいても付け焼き刃にできることは知れてるんだよ 「ヒマ」なときに遠くを見て投機的にコツコツ努力したことが あとで花咲くことがあるし咲かないこともある 賭に勝った者を、降りたやつがバカにできるのか? え、おい
- 365 名前:デフォルトの名無しさん mailto:sage [2018/02/28(水) 22:02:12.40 ID:debsNNov0.net]
- >>320
>>322 書き込むときポインタ渡しにするのは C++には参照渡しがin/out/refのどの意味なのか表すシンタックスが現状無いから というのが主要な動機だと思うが inならconst T& aというのは比較的読み筋だが T* pと書いただけだとoutなのかrefなのかやっぱりわからん…
- 366 名前:デフォルトの名無しさん mailto:sage [2018/02/28(水) 22:22:45.57 ID:n9jVMobsM.net]
- >>352
outは**だろ
- 367 名前:デフォルトの名無しさん mailto:sage [2018/02/28(水) 22:38:47.40 ID:ugxprRf80.net]
- && は、Rust のmove の事。
所有権移転。移転元が空になる 基本的に数年は、ドワンゴ江添と共に、山ごもり! 江添が空海なら、漏れは最澄w 悟りを開くまで、空海・最澄の一問一答が、延々と続くw
- 368 名前:はちみつ餃子 mailto:sage [2018/02/28(水) 23:03:26.56 ID:7ezW7mFb0.net]
- rvalue reference 自体はムーブしねぇつってるだろ。
- 369 名前:デフォルトの名無しさん mailto:sage [2018/03/01(木) 02:40:44.97 ID:Cta7ST2f0.net]
- &&は所有権付き参照オブジェクトのようなものだな
- 370 名前:デフォルトの名無しさん mailto:sage [2018/03/01(木) 07:05:17.46 ID:/bb7E7Gp0.net]
- &&参照は「このオブジェクトもういらないからぶっ壊してもいいよ」というサイン
言うなれば肉屋へ行く馬車 野生のオブジェクトは誰に断る必要もないので勝手に連れてかれて解体される 家畜を渡す時は解体に同意するサイン(std::move())が必要
- 371 名前:デフォルトの名無しさん [2018/03/01(木) 07:13:49.75 ID:YKLxBKOvM.net]
- Fooクラスのunique_ptrがつまったvectorを作って、他クラスのメンバ変数にセットするときはどう渡すべき?
作った元ではもう使わないから所有権放棄していいとする const参照渡しにして、渡された側でvectorの中身を全部std:move()して新しいvectorにつめるのが一番最初に思い浮かんだ そんなことしなくても最近ここででてる、&&つけて渡してそのままセットすれば解決するのかな?
- 372 名前:デフォルトの名無しさん mailto:sage [2018/03/01(木) 07:20:14.18 ID:/bb7E7Gp0.net]
- vectorを丸ごとmove付けてコンストラクタに渡せばいいよ
出来上がった後で渡したいならswapすればいい
- 373 名前:デフォルトの名無しさん [2018/03/01(木) 08:22:01.82 ID:YKLxBKOvM.net]
- なるほどー
コードにするとこんな感じかな? std::vector<std::unique_ptr>vec_hoge; ... Hoge hoge; hoge.setHoge(std:move(vec_hoge)) Hoge::setHoge(vector<unique_ptr>&& vec_hoge) { this-> vec_hoge = vec_hoge; }
- 374 名前:デフォルトの名無しさん mailto:sage [2018/03/01(木) 08:51:22.88 ID:Z75vpagFM.net]
- >>360
最後にmove必要
- 375 名前:はちみつ餃子 mailto:sage [2018/03/01(木) 08:54:17.19 ID:1485DW7Q0.net]
- せやな。
rvalue reference は lvalue だぞ。
- 376 名前:デフォルトの名無しさん [2018/03/01(木) 10:38:08.68 ID:YKLxBKOvM.net]
- ありがとう!勉強になりました
- 377 名前:デフォルトの名無しさん mailto:sage [2018/03/01(木) 22:06:37.33 ID:fp7iC0tG0.net]
- >>353
ちげう
- 378 名前:デフォルトの名無しさん mailto:sage [2018/03/02(金) 07:10:33.20 ID:GbvR6g/La.net]
- noexceptにtrue,falseがある理由については
#include <type_traits> template<typename T> void test(T t)noexcept(is_unsigned<T>){ //Tの型がunsignedの時だけは例外は投げない } こういう事が出来ると書いてあ
- 379 名前:チたけど、c++17以降も問題なく使えるだろうか? []
- [ここ壊れてます]
- 380 名前:デフォルトの名無しさん mailto:sage [2018/03/02(金) 07:15:24.27 ID:bNTu0vGw0.net]
- is_unsigned_vだろ
なぜC++17以後で廃止になると思ったんだ?
- 381 名前:デフォルトの名無しさん mailto:sage [2018/03/02(金) 07:38:40.59 ID:GbvR6g/La.net]
- stdも抜けてた。。。
廃止になるじゃなく面倒な事になりそうだと。
- 382 名前:デフォルトの名無しさん mailto:sage [2018/03/02(金) 08:07:40.62 ID:mIGjbFX+0.net]
- unsigned は組み込み用だろ
0 〜 255 のカウンターなどで、無限にループする。 255の次に、0が来る overflow にされると困る
- 383 名前:デフォルトの名無しさん mailto:sage [2018/03/02(金) 08:51:13.35 ID:Du7whmdSM.net]
- >>368
組み込みでなくても極々普通に使うし、標準ライブラリ使ってれば知らぬ間に使ってる。
- 384 名前:デフォルトの名無しさん mailto:sage [2018/03/02(金) 09:14:23.17 ID:vziGgrtU0.net]
- size_t
- 385 名前:デフォルトの名無しさん mailto:sage [2018/03/02(金) 09:29:49.65 ID:bNTu0vGw0.net]
- それを言うなら
uintptr_t
- 386 名前:デフォルトの名無しさん mailto:sage [2018/03/02(金) 12:01:58.77 ID:D+SIA0G1d.net]
- 普段は uint_xxt と size_t しか使わんわ
int と ptr あんまり相互に変換しないし
- 387 名前:デフォルトの名無しさん mailto:sage [2018/03/02(金) 22:27:40.22 ID:3pZ6Fb9JF.net]
- visualstudio2017 でスタックトレースがしたいのですができません。
最初はBoost.StackTraceで試みたのですがMSVCでは行数やファイル名の出力が非対応で アドレスまでしか取れませんでした。 次にWinAPIを使って解決させようとしたのですがこれもうまく行きません。 SymGetSymFromAddrを使うとどうやってもエラー126が帰ってきてしまいます。 以下のプログラムがVisualstudio2017で動作している人はいないでしょうか? ttps://github.com/shive/blogpost/blob/master/20130918-stacktrace/main.cpp
- 388 名前:デフォルトの名無しさん [2018/03/02(金) 23:27:18.83 ID:KYEHMUiK0.net]
- スタートレックと空目した
- 389 名前:デフォルトの名無しさん mailto:sage [2018/03/02(金) 23:40:43.96 ID:vziGgrtU0.net]
- >>373
こうなった ---- BEGIN BACKTRACE ---- 1 : 0x00e76873 : Project1 : mycode::foo : c:\users\\source\repos\project1\project1\main.cpp(116) : backtrace(); 2 : 0x00e76513 : Project1 : mycode::bar : c:\users\\source\repos\project1\project1\main.cpp(120) : foo(); 3 : 0x00e76563 : Project1 : mycode::baz : c:\users\\source\repos\project1\project1\main.cpp(124) : bar(); 4 : 0x00e76b33 : Project1 : mycode::hoge : c:\users\\source\repos\project1\project1\main.cpp(128) : baz(); 5 : 0x00e76f0d : Project1 : main : c:\users\\source\repos\project1\project1\main.cpp(134) : try { 6 : 0x00e7870e : Project1 : invoke_main : f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl(78) : ? 7 : 0x00e785b0 : Project1 : __scrt_common_main_seh : f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl(283) : ? ---- END BACKTRACE ----
- 390 名前:片山博文MZ mailto:sage [2018/03/02(金) 23:47:44.16 ID:7K8TE86Qd.net]
- https://stackoverflow.com/questions/22481126/why-isnt-symgetsymfromaddr64-working-it-returns-error-code-126
未確認
- 391 名前:373 mailto:sage [2018/03/03(土) 01:05:16.48 ID:7bxI8Ps/M.net]
- >>375
プロジェクトの設定はdbghelp.libを追加しただけでしょうか? あとWindows10ですか?7ですか? >>376 自分もそれを読んでx86とx64両方試したのですがダメでした、、、
- 392 名前:デフォルトの名無しさん mailto:sage [2018/03/03(土) 01:52:28.21 ID:e0EB+SLu0.net]
- >>377
Windows10で実行 ライブラリは追加したのと このFileNameがchar*でmsvcでは通らないから適当に文字列のバッファを作って渡した >94 line.FileName = "?";
- 393 名前:373 mailto:sage [2018/03/03(土) 07:43:32.07 ID:MjEj/kk+F.net]
- >>378
自分はWindows7&VisualStudio2017なのですが dbghelp.lib、dgbhelp.hを探すと以下の場所にあるのでWin10でしか対応していないのかなと… C:\Program Files (
- 394 名前:x86)\Windows Kits\10\Lib\10.0.16299.0\um\x86
C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\um C:\Program Files (x86)\Windows Kitsの下には8.1と10 という名前のフォルダがあるのでOSの番号ぽいです。 dbghelp.dllならそこらじゅうにあるのでLoadModule関数で呼べばいけるのかも [] - [ここ壊れてます]
- 395 名前:373 mailto:sage [2018/03/03(土) 08:51:25.52 ID:MjEj/kk+F.net]
- VisualStudio Installerで構成の変更をしようとすると
'Windows XP Support for C++'というのがあって これがWindows7用のSDKらしいです。(どんな名前の付け方だ…) これをインストールするとめでたくdbghelp.libとdbghelp.hが追加されるので それでコンパイルしようとすると #include <dbghelp.h> とかくだけでコンパイルエラーになってしまいました。 エラー C2760 構文エラー: トークン '識別子' は予期されておらず、'型指定子' が予期されています scratch c:\program files (x86)\microsoft sdks\windows\v7.1a\include\objbase.h 239 Windows10を買うかVisualStudio2015をインストールするかしかないのかもしれません;;
- 396 名前:デフォルトの名無しさん mailto:sage [2018/03/03(土) 09:17:35.93 ID:iGrPHQq30.net]
- >>380
Visual Studio 2017 スレの919あたりから話題になっているけど、 VS2017 の Windows 旧バージョンサポートはおかしいみたい。 2015と同じツールセット、SDKを用いても動作が違う。 2015をインストールするのがいい気がする。 参考 Visual Studio 2017 Part4 ・ mevius.5ch.net/test/read.cgi/tech/1509244956/ https://www.visualstudio.com/ja/vs/older-downloads/
- 397 名前:デフォルトの名無しさん mailto:sage [2018/03/03(土) 10:29:47.52 ID:eUUf6Fhxd.net]
- コンパイラを作っているんですが、char 10bit short 18bitの時はsizeofはいくつを返せばいいんですか?
- 398 名前:デフォルトの名無しさん mailto:sage釣 [2018/03/03(土) 10:36:52.34 ID:/0Rk5gcF0.net]
- >>382
アドレス単位を返す。ワードアドレッシングなら通常全て1になる
- 399 名前:デフォルトの名無しさん mailto:sage [2018/03/03(土) 10:42:04.53 ID:iGrPHQq30.net]
- メモリ上のレイアウト次第
その18ビットを隙間だらけでchar8個分のメモリに置いてるなら8だし、 詰めて2個分で置いてるなら2
- 400 名前:デフォルトの名無しさん mailto:sage [2018/03/03(土) 10:51:46.74 ID:sKvL+uoJ0.net]
- sizeof(char)は必ず1じゃなかったっけ?
- 401 名前:デフォルトの名無しさん [2018/03/03(土) 12:49:02.99 .net]
- sizeofが小数を返しちゃいけないって誰が決めたの?🙄
- 402 名前:はちみつ餃子 mailto:sage [2018/03/03(土) 13:15:05.21 ID:uc6Z/AdW0.net]
- >>386
仕様。 C99 だと 7.17 に size_t は sizeof 演算子の結果の符号無し整数型って書いてある。 C++11 だと 5.3.3 に sizeof 演算子の返却値の型は size_t って書いてあって、 18.2 に size_t は符号無し整数型って書いてある。
- 403 名前:デフォルトの名無しさん mailto:sage [2018/03/03(土) 13:20:00.43 ID:Yc5zIgYv0.net]
- sizeof(bool) == 0.125 であって欲しいのかw
- 404 名前:はちみつ餃子 mailto:sage [2018/03/03(土) 13:43:14.93 ID:uc6Z/AdW0.net]
- どうせ汎整数昇格で int になることばかりなので、
アドレス単位以下の小さなオブジェクトにする意味なんてないよ。 大きな配列で扱いたいときは std::bitset が有るし。
- 405 名前:デフォルトの名無しさん [2018/03/03(土) 14:56:24.32 .net]
- >>387
ありがとう🤣
- 406 名前:デフォルトの名無しさん mailto:sage [2018/03/03(土) 15:45:51.52 ID:+GZAkR500.net]
- >>389
もしsizeofが小数を返したら汎整数昇格は適用されないんじゃない?
- 407 名前:デフォルトの名無しさん mailto:sage [2018/03/03(土) 16:09:32.75 ID:e0EB+SLu0.net]
- 使用者が混乱するような仕様はちょっと
- 408 名前:デフォルトの名無しさん mailto:sage [2018/03/03(土) 18:28:41.77 ID:OIzMcqKj0.net]
- この板に書いてあることがほとんどわかっていないようなクソ素人ですみませんがちょっとお聞きしたいことがあります。
Windows 7でOpenCVをTDM-GCCにて動かしたいと思っているのですが、どなたかこの設定で動かされている方など居られ
- 409 名前:ワすでしょうか?
もしくは素直にVisualStudioなど使ったほうが良いのでしょうか? 昨日からあれこれ試しているのですがまったく動かないです。 [] - [ここ壊れてます]
- 410 名前:片山博文MZ mailto:sage [2018/03/03(土) 19:01:36.20 ID:ZgUZF4A1d.net]
- >>393
俺ならパッケージマネージャがあるMSYS2+MinGW使うよ。 パッケージマネージャがないTDM-GCCなら、まず、OpenCVをビルドして、リンクできるようにしないといけない。 まあ、めんどうくさい訳で。
- 411 名前:片山博文MZ mailto:sage [2018/03/03(土) 19:37:06.06 ID:ZgUZF4A1d.net]
- 初心者はVSやるとよろし。NuGetというパッケージマネージャがあるよ。
- 412 名前:デフォルトの名無しさん [2018/03/03(土) 20:12:29.49 ID:OIzMcqKj0.net]
- 片山様
レスありがとうございます。 そうですね、VSは重いという理由で避けていましたがやはりまずはちゃんと王道からやっていこうと思います。 慣れたらソースからビルドもしてみたいですが、まずはOpenCVであれこれしたいのでやりやすい環境で頑張りたいと思います。 ありがとうございました。
- 413 名前:はちみつ餃子 mailto:sage [2018/03/03(土) 20:37:52.59 ID:uc6Z/AdW0.net]
- VS の統合開発環境を外したツールセットだけの SDK もあったはず。
でもまあ初心者は統合開発環境があった方がいいってのは同意だな。
|

|