- 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
- 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 もあったはず。
でもまあ初心者は統合開発環境があった方がいいってのは同意だな。
- 414 名前:デフォルトの名無しさん mailto:sage [2018/03/03(土) 21:19:46.86 ID:oo1zjTPVa.net]
- C++の文字列、u16やu32stringとか乱立してるけど今時TCHARとか使わないでしょうか?
string,wstring,u16string,u32string...どれか決め打ち?
- 415 名前:デフォルトの名無しさん mailto:sage [2018/03/03(土) 21:37:46.21 ID:iGrPHQq30.net]
- 主に使ってるライブラリ/フレームワークに合わせれば?
何でもいいなら multibyte で utf-8 一択だろう ucs2 (16bit) にしても ucs4 (32bit) にしてもどうせ 合字とかで1コードポイント1文字にならないから意味ないし コンテナは string でも何でも好きなものを
- 416 名前:はちみつ餃子 mailto:sage [2018/03/03(土) 21:52:22.75 ID:uc6Z/AdW0.net]
- どうやろな?
Windows だと API が UTF-16 前提だからそれで揃えるってのは悪くない選択だと思うし。
- 417 名前:デフォルトの名無しさん mailto:sage [2018/03/03(土) 21:55:03.34 ID:e0EB+SLu0.net]
- >>398
TCHARはcharとwchar_tをvisual studioのプロジェクトの設定で切り替えてtypedefしてる型だ マイクロソフトのライブラリの一部 u16stringとu32stringはstd::basic_string<char16_t>とstd::basic_string<char32_t>のエイリアス UTF-16とUTF-32の文字列を扱うクラスで標準ライブラリの一部 そもそもどっちかというものではない std::basic_string<TCHAR>とか使ってもいい
- 418 名前:デフォルトの名無しさん mailto:sage [2018/03/03(土) 22:02:34.74 ID:i5AAIiVZ0.net]
- OpenCVのビルドぐらいCMakeでGUIでできる
- 419 名前:デフォルトの名無しさん mailto:sage [2018/03/03(土) 22:07:02.05 ID:i5AAIiVZ0.net]
- >std::basic_string<TCHAR>とか使ってもいい
ほんとそれ ていうかWin32APIでサポートされるうちはやっぱマルチバイトが無難
- 420 名前:デフォルトの名無しさん mailto:sage [2018/03/03(土) 22:12:10.73 ID:q1dNIabI0.net]
- ShiftJisなんて廃止して、UTF8に統一してしまえば良かったよね
- 421 名前:デフォルトの名無しさん mailto:sage釣 [2018/03/03(土) 22:19:12.96 ID:/0Rk5gcF0.net]
- UTFはソートのコストが高いから痛し痒しだけどね
SJISはその点は優秀かと
- 422 名前:デフォルトの名無しさん mailto:sage [2018/03/03(土) 22:38:49.13 ID:pbvBV+5A0.net]
- Windows10はutf8モードにできたような
- 423 名前:はちみつ餃子 mailto:sage [2018/03/03(土) 22:56:38.78 ID:uc6Z/AdW0.net]
- 文字コードを統一したところでロケールの切替えはどうせ必要なわけだし、
内部的な処理が UNICODE に統一されたので良しとするしかなかろ。
- 424 名前:デフォルトの名無しさん mailto:sage [2018/03/03(土) 23:43:29.67 ID:q1dNIabI0.net]
- utf8に統一したら、ロケールの切替って表示する文字列の言語を決める位の意味しか無いのではないかな
異なる言語の文字列でもそのまま字化けせずに表示出来た方が都合が良いように思うけど
- 425 名前:はちみつ餃子 mailto:sage [2018/03/04(日) 00:38:00.37 ID:R9gQD4Ga0.net]
- Windows はもう 20 年以上前から Unicode 化はやってるんだってば。
UNICODE 版の API を正しく使う限り文字化けしない。 フォントの設定とかで化けることはあるかもしれんけど、 それも今はフォントリンクとかでおおよそ上手いこと処理してまうしな。 UNICODE 化できていない今までに作られたカスなアプリが消し去れないし、 カスなアプリのために ANSI 版の API (の挙動を制御するためのコードページの切替えの仕組み) は残しておかなきゃならないけど、 Unicode への統一そのものは出来てるから満足するしかない。 っていう話ね。
- 426 名前:デフォルトの名無しさん mailto:sage [2018/03/04(日) 00:59:55.95 ID:LharAyAs0.net]
- だったらVisualStudioで作ったソースファイルのデフォルトがShiftJIS固定なのをそろそろなんとかしてくれよ
- 427 名前:はちみつ餃子 mailto:sage [2018/03/04(日) 01:01:33.87 ID:R9gQD4Ga0.net]
- せやな。
- 428 名前:デフォルトの名無しさん mailto:sage [2018/03/04(日) 01:07:55.85 ID:BtVPmkEs0.net]
- LinuxとかのシステムコールもUnicode化されたら考えるわアデューノシ
- 429 名前:デフォルトの名無しさん mailto:sage [2018/03/04(日) 01:14:01.78 ID:fY1aJvVU0.net]
- >>410
2017で治ったんじゃなかったか
- 430 名前:デフォルトの名無しさん mailto:sage [2018/03/04(日) 01:15:23.20 ID:BtVPmkEs0.net]
- だいたいwchar_tとかcharの倍容量を食うじゃん?
2が3になるとかならまだしも1が2になるというのは精神的にインパクトがデカイ L"Hello World!"のバイナリをダンプしてみたらトラウマを抱え込むレヴェル というのもあるし他環境とのソースコード共通化も視野に入れる場合やっぱマルチバイトしか…
- 431 名前:デフォルトの名無しさん mailto:sage [2018/03/04(日) 01:35:20.32 ID:pARrwnK20.net]
- WindowsのUNICODE版APIはUTF-8と相性が悪いからクソ
- 432 名前:はちみつ餃子 mailto:sage [2018/03/04(日) 01:39:19.42 ID:R9gQD4Ga0.net]
- せやろか?
内部表現として使う文には UTF-16 って良いと思うけどな。 UTF-8 との間なら変換コストも大したことないし。
- 433 名前:デフォルトの名無しさん mailto:sage [2018/03/04(日) 02:20:02.75 ID:8pLLmBBd0.net]
- >>416
iOS / macOS / Windows / Java と多くのプラットフォームの API で文字列としてUTF-16 が使われてるから割と使うけど、 近年多用される絵文字とかが全然1文字1符号にならんので ロジックを基準する上ではUTF-8より便利ってわけでもない。 文字列の処理を描くときは合字以外は1文字1符号になるUCS4 の方が良い。
- 434 名前:デフォルトの名無しさん mailto:sage [2018/03/04(日) 02:23:18.11 ID:FSOQNU6I0.net]
- なぜ世界中の頭脳を集結させても完璧な文字コードは作れないのか
- 435 名前:デフォルトの名無しさん mailto:sage [2018/03/04(日) 02:28:31.88 ID:BtVPmkEs0.net]
- x86アーキテクチャーがRISC-Vに置き換わったら考えるわノシ
- 436 名前:デフォルトの名無しさん mailto:sage [2018/03/04(日) 02:42:05.74 ID:BtVPmkEs0.net]
- ていうかコルモゴロフ複雑性が計算可能関数だったら考えるわノシ
- 437 名前:デフォルトの名無しさん mailto:sage [2018/03/04(日) 02:53:03.62 ID:QKjmCs/V0.net]
- 韓国がUNICODEにすごい文字数予約済みにしてあるとか聞いたことある
- 438 名前:デフォルトの名無しさん mailto:sage [2018/03/04(日) 03:02:28.08 ID:ymM0nha90.net]
- あの言語動的に文字生成でもしないと無駄多杉だろ
- 439 名前:はちみつ餃子 mailto:sage [2018/03/04(日) 03:02:39.39 ID:R9gQD4Ga0.net]
- >>417
どうせイテレータでアクセスするから、合字はどうしようもないにしても 先頭からコードポイント単位で読む分にはどの符号化を使っててもあんまり変わらん気がするが。
- 440 名前:デフォルトの名無しさん mailto:sage [2018/03/04(日) 03:56:38.94 ID:8pLLmBBd0.net]
- >>423
UTF-16 だとサロゲートペアが出てくるからマルチバイトがマルチワードになるだけ ucs4 だとそれが要らなくて符合とコードポイントが1:1対応になるんだよ。 何年か前まではサロゲートペア?なにそれおいしいの?でも済んでたけど 今の時代それは無理だし
- 441 名前:デフォルトの名無しさん mailto:sage [2018/03/04(日) 04:09:09.92 ID:8pLLmBBd0.net]
- 要は
utf-8、utf-16 → 1符合 ≠ 1コードポイント ≠ 1文字 ucs4 → 1符合 = 1コードポイント ≠ 1文字 だから完全自作の文字列処理ではucs4が楽だよという意見でした テキストなんてたいしてメモリ食わないしね おしまい
- 442 名前:デフォルトの名無しさん mailto:sage [2018/03/04(日) 04:09:59.70 ID:FSOQNU6I0.net]
- charset_cast<utf_8>()みたいなの欲しい
- 443 名前:はちみつ餃子 mailto:sage [2018/03/04(日) 08:42:48.43 ID:R9gQD4Ga0.net]
- おっと、 u16string のイテレータはサロゲートペアは解決してくれないのか。
まあそれも小さなラッパを作ればどうとでもなる。
- 444 名前:デフォルトの名無しさん mailto:sage [2018/03/04(日) 09:34:29.91 ID:LharAyAs0.net]
- UTF16でサロゲートでガチャガチャやるくらいならUTF8でちゃんとやった方が実り多いし
そんなんやりたくないならUTF32使えばいいし 中途半端だよねUTF16
- 445 名前:デフォルトの名無しさん mailto:sage [2018/03/04(日) 09:38:06.05 ID:ZPPAxORI0.net]
- ワイドのようで実はマルチ
- 446 名前:デフォルトの名無しさん mailto:sage [2018/03/04(日) 10:55:23.96 ID:kJ02m0gha.net]
- どこかでみたけど歴史的にはutf32やutf16よりutf8が新しいんだろ?
- 447 名前:デフォルトの名無しさん mailto:sage [2018/03/04(日) 12:59:59.04 ID:hIgSiiXH0.net]
- オリジナルのXEROXのコードへの先祖返りではないかな?
- 448 名前:デフォルトの名無しさん mailto:sage [2018/03/04(日) 14:09:11.62 ID:GeBypOU0F.net]
- visualstudio2017でBoost.Testを試したいのですがうまく行きません。
Nugetでboost-vc141をインストールしてテストプロジェクトをWindowsコンソールアプリケーションとして 追加し、Helloworld的なテストプログラムを書きました。 ビルドは通るのですが、テストエクスプローラーにテストが認識されません。 #include "stdafx.h" #define BOOST_TEST_MODULE MyTest #include <boost/test/included/unit_test.hpp> BOOST_AUTO_TEST_CASE(my_boost_test) { const int x = 1; BOOST_CHECK(x == 1); BOOST_CHECK(x != 1); } VisualStudio2017のバージョンは15.5.7で 「Boost.Testのテスト アダプター」はデフォルトでインストールされるようになっていたので インストールされています。
- 449 名前:デフォルトの名無しさん [2018/03/06(火) 00:41:37.37 ID:MSLc23us0.net]
- 標準ライブラリを前方宣言にすることに意味ってありますか?
- 450 名前:デフォルトの名無しさん [2018/03/06(火) 00:45:13.63 ID:jqoml9jL0.net]
- メイヤーズは普通にインクルードしろって言ってた
- 451 名前:デフォルトの名無しさん mailto:sage [2018/03/06(火) 01:45:01.96 ID:RorZBCxf0.net]
- >>434
それどこに書いてあるの?
- 452 名前:デフォルトの名無しさん mailto:sage [2018/03/06(火) 06:16:57.53 ID:HL6NWtm0a.net]
- newした配列がいつの間にか解放されてて、
プログラムの最後でdeleteすると必ずアクセスエラーで落ちるんですが、 newは勝手に解放されることあるんですか?
- 453 名前:デフォルトの名無しさん mailto:sage [2018/03/06(火) 07:19:59.92 ID:18YefqDd0.net]
- >>436 どっかで未定義動作に堕ちてるならそんな結果になることもあるだろね。
- 454 名前:デフォルトの名無しさん mailto:sage [2018/03/06(火) 07:39:27.47 ID:YXZKPZh60.net]
- ・どっかでメモリの取り扱い間違えてnewの管理情報を踏んづけて壊してる
・unique_ptrやshared_ptr、その他スマートポインタ的なものに理解せずに渡してる 多分このどっちか
- 455 名前:デフォルトの名無しさん mailto:sage [2018/03/06(火) 07:56:08.66 ID:4Jw7uGdF0.net]
- ポインタがnewで帰ってきたアドレスと違う可能性
- 456 名前:デフォルトの名無しさん mailto:sage [2018/03/06(火) 11:04:41.26 ID:PuW1uuBL0.net]
- >>436
「解放されてて」というのは、どうやって確認した? たとえば要素のデストラクタが実行されているとか、 別件で確保するメモリに再使用されているとか、 そういうことが起きているのか?
- 457 名前:デフォルトの名無しさん mailto:sage [2018/03/06(火) 13:48:19.62 ID:xvhpcg6j0.net]
- >>436
constructor destructor copy constructor operator=() のいずれかに誤りがあるのでは? 概念コードを書いてみなさい
|

|