[過去ログ] C++相談室 part157 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
303: 2021/09/09(木)02:02 ID:aICFtjZy(1) AAS
>>297
規制議論板を一度でも見たことがあるの?
どれだけのIDを消して書き込んでる奴が浪人焼かれてるかその目で確かめてくるといい
304: 2021/09/09(木)02:39 ID:AtdpUvef(1) AAS
コテとトリ付けながらIDは消すとかいうガイジムーブ
他スレでの荒らしがバレたら困りますって宣言してるようなもんだな笑
305
(1): 2021/09/09(木)03:11 ID:GRtgENVW(1) AAS
>>298 外部リンク[html]:www.jpcert.or.jp
306: 2021/09/09(木)03:58 ID:k9fYYQrZ(1/3) AAS
>>305
何を言いたいのか分からない無言URL貼りは時間の無駄なのでやめて欲しいです。少なくとも該当していません。
307: 2021/09/09(木)04:10 ID:k9fYYQrZ(2/3) AAS
一応書いておくと、>>298のコードは見れば分かるとおりiをvolatile宣言して最適化の対象から外せば当然動きます。
これはlongjmpに限った話ではありません。

先のURLの個別のコードにはありませんが、一般論としての記述はありました。このサイトが元にしてるサイト(リンクのURLは違いましたが)ではvolatileも例に含まれているようです。
外部リンク:wiki.sei.cmu.edu
308: 2021/09/09(木)04:18 ID:k9fYYQrZ(3/3) AAS
すみません。見落としてただけみたいですね。日本語の方でも個別のコードありましたね。寝ぼけてたかも。
309: 2021/09/09(木)08:55 ID:+RnvyubR(1) AAS
>>295
嘘記事かどうかくらいは書いておくべきだと思うがね
だいぶ前に初めて見たとき俺も半信半疑だったし(D&Eをまだ読んでなかった頃だが

てかオブジェクト指向のとこをテンプレート(メタプログラミング)に置き換えるとすごいしっくり来るんだよなアレ
310: 2021/09/09(木)12:39 ID:emntwqXC(1/2) AAS
>>295
全然違う。
>>230は少なくとも本人の発言からの引用であり、(権威に訴える論証が混ざっているとはいえ)すべてを否定することはできない。
>>242は自分の主張を強化するためにでっち上げた嘘であり、本人の普段の主張を否定する邪悪な紛い物。本人も否定しているものをジョークと称するのはやはり正気を疑う。
311
(1): 2021/09/09(木)12:56 ID:emntwqXC(2/2) AAS
>>295
一言言い忘れた。
ジョークを「主張」するなよ。アホか。
312
(1): 2021/09/09(木)18:44 ID:9obv3E3K(1) AAS
ワクチン拒否とかしてそう
313: 2021/09/09(木)18:45 ID:I6ZDQIJr(1) AAS
ダニングクルーガー効果のなんちゃってマスター状態でも容易に書けちゃうのが問題。
そのクソコードの状態でも一応動くところがC++の恐ろしいところでもあり幅広いフリーフォーマットの適応力でもある。
314: 2021/09/09(木)19:54 ID:VcdPV4nP(1) AAS
jokeもhumorも馬鹿には理解できない
315: 2021/09/09(木)20:23 ID:M2q//47O(1) AAS
>>312
自粛警察乙
マスゴミに煽られるまま踊るのジュリアナのお立ち台みたいな気分?
316: 2021/09/09(木)20:26 ID:5B6QjFP1(1) AAS
お前らってホント人にケチつけるときだけイキイキとしてんな
317: 2021/09/09(木)20:41 ID:Ja2+yviO(1) AAS
シャリーア・ポリスとかスシ・ポリスとかみたいな人
318
(1): 2021/09/11(土)11:18 ID:ke/Tkn8S(1/3) AAS
オブジェクト指向も構造化も原理主義者がウザいだけで
ナンチャッテでいいからやってると問題がきれいに整理できるので
やめようとは全然思わない

テンプレートだってそうだ
319: 2021/09/11(土)11:23 ID:rfW8qH4V(1) AAS
画像リンク[jpg]:pbs.twimg.com
画像リンク[jpg]:pbs.twimg.com
320: 2021/09/11(土)12:26 ID:3OqmYb77(1/4) AAS
C++には酸っぱい葡萄もある
321: 2021/09/11(土)12:37 ID:FXACoymx(1) AAS
テンプレートってただの超絶便利機能だろ
オブジェクト指向笑とは比べ物にならない
322: 2021/09/11(土)12:45 ID:d+bn5JZd(1/2) AAS
>>318
歴史は繰り返す、ってことだろ
一時期C++コミュニティがJavaに悪影響受けたりしてたことからJavaを嫌悪してたやつが
何でもSTLの真似してりゃ自動的に価値のあるコードになると盲信してたからな
笑うしかない
323: 2021/09/11(土)12:49 ID:ke/Tkn8S(2/3) AAS
俺ら技術屋の辛いとこだよ
新しいものはとりあえず食ってみるしかない
あげくゲロマズで非常に気分が悪くなることもあるが怖がってらんない
324: 2021/09/11(土)12:59 ID:d+bn5JZd(2/2) AAS
技術屋というか、実用してる人は盲信はしないと思う
原理主義に走るのは、自分の頭で考えない(権威に頼る)からだ
自分の頭で考えて使ってれば、自ずと長所も短所もわかるもんだ
325: ハノン ◆QZaw55cn4c 2021/09/11(土)14:40 AAS
>>311
人を選ぶジョークとはまさに >>242 のことだったんですね‥‥
今回は勉強させていただきました
326
(1): 2021/09/11(土)15:50 ID:pU9Ou8D7(1) AAS
分かったら二度とデマ流すなよ
ワクチンにマイクロチップだのどこそこの銀行が潰れるだの朝鮮人が井戸に毒入れただのもだぞ
本人は軽いジョークのつもりでも、デマとして流行したら人が死ぬんだからな
327: 2021/09/11(土)18:07 ID:ke/Tkn8S(3/3) AAS
> 原理主義に走るのは、自分の頭で考えない(権威に頼る)からだ

ほんこれ
328: 2021/09/11(土)21:27 ID:3OqmYb77(2/4) AAS
そうはいってもC言語規格にfinally機構があったら便利なはず
PGが規格追加に後ろ向きになってしまうのはコンパイラの対応が信頼できるレベルになるまで時間がかかる不快な経験を積んできたから
329
(1): 2021/09/11(土)21:45 ID:mopEDxb+(1) AAS
デストラクタもないC言語にfinallyだけあってもねぇ…
330: 2021/09/11(土)21:55 ID:x2ZLDQix(1) AAS
じゃあC#使えで……
331
(1): 2021/09/11(土)21:59 ID:3OqmYb77(3/4) AAS
>>329
デストラクタがないからこそfinallyで資源解放処理を呼び出す需要があるともいえるんだけど
332: 2021/09/11(土)22:14 ID:rQxvOqzv(1) AAS
>>331
実際に書いてみたらわかると思うけどどこからfinallyに来るのかわからないから解放処理書くのはけっこう大変だぞ
333: 2021/09/11(土)22:44 ID:3OqmYb77(4/4) AAS
どこから来るかわからないのはgotoも同じ
334: 2021/09/11(土)22:51 ID:6kN4WIJa(1) AAS
だからたいして楽にはならんよって話ね
335: 2021/09/11(土)22:54 ID:zCvRZpSn(1) AAS
例外がいらんわ
必要としてるやつはC使うなよ
336: 2021/09/11(土)23:18 ID:EO9owr6G(1) AAS
関数毎に atexit かな
337: 2021/09/12(日)01:57 ID:z8yQu9Mw(1) AAS
Goのdefer文でいいんじゃないか
338
(1): 2021/09/12(日)11:03 ID:JRO5EM3e(1) AAS
ハノンフルボッコされて火病を起こしててワロス
自分が悪いのに逆ギレするほどみっともないことはないなあw
339: 2021/09/12(日)11:40 ID:AN8tG6su(1) AAS
整形後に関数が10行以上になったらコンパイルエラーにしよう
関数名1行+開きカッコ1行+return1行+閉じカッコ1行だから実質5行までな
340
(1): 2021/09/12(日)12:24 ID:SBMPlzna(1) AAS
たまにちびっこだらけのピアノ教室に一人だけ下手くそなおじさんが混ざってて臆面もなく発表会とかにも出てくるけど、それがその固定ハンドル
341
(1): 2021/09/12(日)17:30 ID:d/9I2lQ9(1/3) AAS
質問でsが
std::this_thread名前空間内の関数は、std::thread以外の手段で作ったスレッドで
実行しても大丈夫なんでしょうか、

一部のC標準ライブラリ関数みたいにスレッド起動手段次第でリークしたりすることは無い?
外部リンク[html]:cpplover.blogspot.com
342
(1): 2021/09/12(日)18:10 ID:TJh0S1vO(1) AAS
>>341
やってみないと分からないから自己責任でご自由にどうぞ、というのが正しい回答
343: 2021/09/12(日)18:54 ID:d/9I2lQ9(2/3) AAS
>>342
std::thread以外の手段で作ったスレッドで実行したときのふるまいは
規格上非規程ということでおk?
344: 2021/09/12(日)18:58 ID:d/9I2lQ9(3/3) AAS
未定義動作とか処理系依存とかではなく、規定されていないということ?
345: 2021/09/12(日)20:27 ID:x/1IPUIX(1) AAS
大丈夫なんじゃないすかね
mainはstd::thread以外の手段で呼び出されるんだし
346: 2021/09/12(日)21:31 ID:ewAYKYUU(1) AAS
どうやってアクセスするん
347
(1): ハノン ◆QZaw55cn4c 2021/09/13(月)01:29 AAS
>>326
米国民主党の宣伝=ロイター・ブルームバーグ=真実
米国共和党、なかんずくプレジデント・トランプの言ったこと=フェイクニュース
という理解でいいでしょうか?イヴェルメクチンの話 動画リンク[YouTube]

>>338
どこがフルボッコか詳しく、ジョークのわからない馬鹿一人だけが騒いでいた、という印象ですが

>>340
バッハコンクール大人の部には出てみたいですね‥‥たぶんよくできる中高生のなかに一人ヨボヨボが混ざるの図になりそうですけれどもね
348
(1): 2021/09/13(月)02:16 ID:ZygXXNwA(1/2) AAS
>>347
コンクールとは無縁の音楽歴だろうがクソバカが
見栄張んなよ
精々弱小音楽教室の発表会止まり
349: 2021/09/13(月)03:47 ID:PttYpQoG(1/4) AAS
わかるよ
C++とはつまりCから2キー(2半音)上げたDという意味
ピアノならCはドでDはレ
350
(1): 2021/09/13(月)04:01 ID:PttYpQoG(2/4) AAS
このスレにMIDIエンジンを自分で作ったことある人、どのくらいいる?
351
(2): 2021/09/13(月)06:59 ID:ZygXXNwA(2/2) AAS
ピアノじゃなくても「CはドでDはレ」だと思うが……
352: 2021/09/13(月)07:04 ID:B8QV0Pmm(1/3) AAS
MDLを入力してWAVを出力するコンパイラみたいのなら
353: 2021/09/13(月)07:13 ID:PttYpQoG(3/4) AAS
>>351
思うだけならあなたの自由だから好きにしなさい
354: 2021/09/13(月)07:15 ID:OJvNe7+i(1) AAS
>>351
世の中には移調楽器って言うものがあって、例えば普通によく見かけるトランペットはドの音はB♭だったりする
355: 2021/09/13(月)07:16 ID:PttYpQoG(4/4) AAS
Windowsの標準システムドライブがCであることの経緯を知らないでPGやってる人、どのくらいいる?
356: 2021/09/13(月)07:50 ID:B8QV0Pmm(2/3) AAS
UNIXから一歩も離れたくない人とか?
357: 2021/09/13(月)07:56 ID:9W3p606T(1) AAS
aとbドライブがフロッピー
358: 2021/09/13(月)07:59 ID:B8QV0Pmm(3/3) AAS
かつて日本ではAがHDDだった
359: 2021/09/13(月)09:28 ID:Kz73eSbE(1) AAS
>>350
SWFreaderのこと?
SoftwareSynthesizerのこと?
360: 2021/09/13(月)12:01 ID:DUyA86Uv(1) AAS
MIDIなんてPC-98以前のFM音源搭載機でしかいじらなかった
MIDIドライバとかならともかくMIDIエンジンが何なのかよく分からない
361
(1): ハノン ◆QZaw55cn4c 2021/09/13(月)13:47 AAS
>>348
スレチガイも大概だからここで終わりましょうか
バッハコンクール 外部リンク[html]:www.bach-concours.org 
趣旨「J.Sバッハの作品はクラシック音楽の真髄、導入期からポリフォニー音楽や舞曲に親しみ、ピアノの学習の中に取り入れて、そしてレパートリーにしていただきたい」、おっしゃるとおり誰でも参加可能です
2chスレ:piano

バッハはこんな曲を作った人:動画リンク[YouTube]
確かアニメ監督の押井守は若い頃バッハの合唱団にいたと聞いています
362: 2021/09/13(月)19:44 ID:O/wDGHc8(1) AAS
>>361
スレ違いはお前一人なんだが・・・
363
(4): 2021/09/15(水)11:32 ID:0GWRKP/3(1/3) AAS
関数のポインタを引数で受け取る関数に
予め定義した関数のポインタの代わりに
lambda関数のポインタを渡したいとき
どう書けばよいですか?
364: 2021/09/15(水)11:43 ID:KsZNjWDc(1) AAS
>>363
ラムダ式を呼び出すラッパー関数を作って、その関数ポインタを渡す
365
(1): 2021/09/15(水)11:57 ID:tjq2eHQi(1) AAS
std::functionでええやろか?
366
(2): 2021/09/15(水)12:01 ID:+suq2kti(1/2) AAS
>>363
こういうこと?
void func1(void (*arg)())
{
arg();
}

template <std::invocable F>
void func2(F arg)
{
arg();
省6
367: 2021/09/15(水)12:57 ID:gM7DTPzC(1) AAS
>>363
違うかも知れんけど、関数ポインタとラムダと型推論でなんかハマってこの記述に落ち着いた。
外部リンク:ideone.com
368
(1): はちみつ餃子 ◆8X2XSCHEME 2021/09/15(水)13:01 ID:/JHaU2Oz(1) AAS
>>363
クロージャ (ラムダ式によって作られた関数オブジェクト) は周囲の変数をキャプチャしないときに限り関数ポインタに変換可能。
外部リンク:timsong-cpp.github.io
逆に言えばそうでないときは関数ポインタと互換性はない。

受け取る側が関数ポインタとして受け取るという前提を動かせないのであれば
渡すラムダ式のほうをキャプチャしない形にしてくださいということになるし、
汎用的にラムダ式を受け取れるようにしたいのだということであれば >>365-366 という方法をとることになる。
369
(1): 2021/09/15(水)13:05 ID:0GWRKP/3(2/3) AAS
>>366
template<typename F> void func2(F arg) { arg(); }
int main() { func2([]{}); }

これだと動いています

void func1(void (*arg)()) { arg(); }
int main() { func1([]{}); }

やりたいのはこっちだったんですがこれはコンパイルエラーになりますた

# invocable は C++20 からみたいですね 目的にあってるかどうか判りませんが試す環境が今無いので後回しです
370: 2021/09/15(水)13:05 ID:0GWRKP/3(3/3) AAS
>>368
ああなるほど
[&] してたのが原因かも知れません
ありがとうございます
371: 2021/09/15(水)13:22 ID:+suq2kti(2/2) AAS
そういうオチか
372: 2021/09/15(水)16:27 ID:46YA8/2z(1) AAS
>>369
ヒント: コンセプト
373: 2021/09/16(木)21:11 ID:wgmfJty/(1) AAS
単項+が意味を持つ例のやつか
374: 2021/09/17(金)16:40 ID:J/w/zJeW(1) AAS
仕事が生きがい?会社員の分際で?そろそろ認めなさい…あなたたちは単なる駒です
⇒赤羽の父ひろゆきが教える仕事の本質とやりたいことの違いが凄過ぎて感動が止まらない…
動画リンク[YouTube]
【ひろゆき/切り抜き】サラリーマンって資本主義の奴隷なの?
動画リンク[YouTube]
【ひろゆき】社会人語っちゃうサラリーマンについて語りました
動画リンク[YouTube]
奴隷は身近にある?日本の奴隷について【ひろゆき 切り抜き】
動画リンク[YouTube]
【ひろゆき】会社員なんて楽しくない?⇒楽しいしラクな仕事の仕方とは※サラリーマン必見!
省7
375
(5): 2021/09/18(土)12:55 ID:fzYJNrfO(1/4) AAS
聞いてくれウィンドーズ10で
 GetLocalTime(&st1);
 const system_clock::time_point now = system_clock::now();
GetLocalTime&(st2);
とした後に、nowから
 const time_t tt = system_clock::to_time_t(tp);
 auto msec = duration_cast<milliseconds>(tp.time_since_epoch()).count() % 1000;
としてnowのms単位のUNIX Timeを算出したらば、
 st1 ≦ now
は当然成立しているが、
省5
376: 2021/09/18(土)12:57 ID:fzYJNrfO(2/4) AAS
処理系はMSVC2019でつ、
duration_cast<T>はTで指定した時間単位未満は切り捨てとC++の規格で決まっているはず……
377
(3): 2021/09/18(土)13:05 ID:fzYJNrfO(3/4) AAS
ちなみにst1 < st2 でありかつ (now ≦ st2) が非成立、というケースも発生するあるから
おかしいのは明らかにstd::chronoの方、
378
(1): 2021/09/18(土)13:23 ID:I+biH5jK(1/2) AAS
>>377
これだけじゃどっちがおかしいかは分からんでしょ
GetLocalTimeが正しいと思うからGetLocalTimeでsystem_clock::nowを挟んだんじゃないかい
379: 2021/09/18(土)13:43 ID:fzYJNrfO(4/4) AAS
>>378
>>377のは時刻のキャッシングみたいなことをしており呼び出した瞬間の時刻を返していないとしたらそれはGetLocalTime()の方ではない、という証左

つなみにマルチコアと最適化(いやしくもAPIの呼び出しがあるのであり得ないが)とプリエンプションの合わせ技で
実行順序が変になり得るかも、みたいな被害車妄想で
  GetLocalTime(&st1);
  const system_clock::time_point now = system_clock::now();
  _ReadWriteBarrier();
  GetLocalTime&(st2);
としてみたが>>377な現象は変わらんかったは、
380: 2021/09/18(土)13:48 ID:vjp4M7Ow(1) AAS
windowsのAPI同士で比較しろ
一般に違うAPIを使ってるなら一貫した結果にならなくてもおかしくない
381: 2021/09/18(土)13:53 ID:I+biH5jK(2/2) AAS
ちゃんと知りたいならsystem_clock::nowが内部でどのAPIを呼んでいるのか調べてみては
382: 2021/09/18(土)13:58 ID:EqZgRVmV(1/2) AAS
変数tpはなにものですか
383: 2021/09/18(土)14:01 ID:EqZgRVmV(2/2) AAS
というか% 1000っておかしくね???
384: 2021/09/19(日)00:12 ID:EWVuImUN(1) AAS
>>375
お前の頭がおかしいんだよ
385: 2021/09/19(日)00:47 ID:hcp/HEe5(1) AAS
不等号≦への理解、間違ってないか
386
(1): 2021/09/19(日)07:30 ID:CNUd2o2A(1) AAS
unsignedとintを比較してるとかどうせそういうオチだろ
387
(1): 2021/09/19(日)13:12 ID:/yxUr6Cy(1) AAS
中途半端なコードだけチラ見せされてもな
再現する完全なコードを出せとしか
388
(4): 2021/09/19(日)15:50 ID:neurUQ4a(1/6) AAS
>>386
天才なのでそんなヘマはしますしません、

>>387
再現コード貼る、
外部リンク:ideone.com
※ 冒頭コメントの通り、非Windows環境では現象再現しないコードなのので注意

ウィンドーズでの実行結果:
i=---: st1, chrono, st2: ORDER CHECK
i= 0: 1632034143228, 1632034143228, 1632034143228: OK.
i= 1: 1632034143229, 1632034143229, 1632034143229: OK.
省9
389: 2021/09/19(日)15:57 ID:neurUQ4a(2/6) AAS
こっそり訂正するが、>>377
>st1 < st2 でありかつ (now ≦ st2) が非成立、というケースも発生するあるから
と言ったがな、ありゃ誤報だスマンカッタ、

あとちなみに、>>375を書いた時点では、現象再現はFILETIMEを使わずに、以下の方法で、
SYSTEMTIMEと ( (time_point - epochタイム) を tm構造体に変換したもの、の
それぞれからから直接シリアル日時を出して比較すた、
  year * (12 * 31 * 24 * 60 * 60 * 1000)
 + month * (31 * 24 * 60 * 60 * 1000) // 一ヵ月の日数を31固定で換算しているが、大小比較目的なのでこれで問題無い。
 + day * (24 * 60 * 60 * 1000)
 + hour * (60 * 60 * 1000)
省3
390
(1): 2021/09/19(日)16:10 ID:HwX1dH8g(1) AAS
まともに読んでないがバリアの使い方がおかしくて実行順序入れ替わってるとかじゃね??
391: 2021/09/19(日)16:33 ID:neurUQ4a(3/6) AAS
>>390
(1) _ReadWriteBarrier()は最強のバリアーやぞ;;;
(2) GetLocalTime()がどんな副作用を持つ関数かコンパイラが知るはずは無いのだから
  最適化でコードの入れ替えや変数のレジスタ割り当てしっぱなしということはあり得ない
(3) ていうかそれ以前に、GetLocalTime()やstd::chronoの呼び出し元がシングルスレッドなのだから
  それで順序がおかしくなるとかCPUがおかしいか、スレッドをプリエンプトして再びディスパッチする際に
  別のコアに実行させようとする際にOSがヘマしているかのどちらかという話に……

ちなみに漏れは正常動作しており、本人が言うのだから間違いない
392
(1): 2021/09/19(日)16:39 ID:k8GedCcQ(1/3) AAS
外部リンク:gist.github.com

Windows10ならSYSTEMTIMEよりsystem_clockのほうが精度高そうですね
393
(4): はちみつ餃子 ◆8X2XSCHEME 2021/09/19(日)17:02 ID:nkVr2ypq(1) AAS
>>375
GetLocalTime の分解能は 10ms くらいっぽいぞ。
system_clock::now がもっと精度の高い API を使っていたら
そんくらいの前後はあってもおかしくないんじゃね。
394: 2021/09/19(日)17:17 ID:k8GedCcQ(2/3) AAS
外部リンク:ideone.com
system_clockの部分を生のFILETIMEで置き換えてみた
実行結果はこんな感じ
i= 0: 132765453416200000, 132765129416213861, 132765453416200000: NG!
i= 1: 132765453416210000, 132765129416218094, 132765453416210000: NG!
i= 2: 132765453416210000, 132765129416218837, 132765453416210000: NG!
i= 3: 132765453416210000, 132765129416219530, 132765453416210000: NG!

GetLocalTimeやめたら?
395
(1): 2021/09/19(日)17:28 ID:UeoKc9fZ(1/4) AAS
時刻取得用のAPIをパフォーマンス計測用に使っちゃったんだね
WIN32では大昔からQueryPerformanceFrequencyとQueryPerformanceCounterを使うよ
外部リンク:docs.microsoft.com
396: 2021/09/19(日)17:59 ID:UeoKc9fZ(2/4) AAS
時刻取得でそのまま精度を上げるAPIとしては
GetSystemTimePreciseAsFileTime
外部リンク:docs.microsoft.com
ただしWindows 8以降。それ以前だと以下を使うしかないっぽいね。
GetSystemTimeAsFileTime

std::system_time::nowの実装としては、_Xtime_get_ticksを使用している(2021年9月21日17:57JST現在)
外部リンク:github.com

これが使用しているAPIについて聞いたStackoverflowの質問
外部リンク:stackoverflow.com

上記によると最初に書いたAPIである模様
397: 2021/09/19(日)19:46 ID:neurUQ4a(4/6) AAS
>>393
GetLocalTime()の精度が10 ms台だというのは
Windowsのデフォルトのスレッドへの最大ディスパッチ時間15.6 ms(PCによっては10 ms)の影響が混入している可能性、
>>392のリンク先のような計測方法をとった場合、計測中に他のスレッドに実行権を横取りされたりすると、どうしても
期待する時間に対して15.6 msとか(高優先のスレッドが相次いでディスパッチされた場合はあるいはもっと)実際の時間が大きくなる
一方>>375の計測方法は時間の順序にのみ注目しており、プリエンプションの影響を受けない(はずだった
この話に猜疑があるなら後で述べる

>>392
>>392の情報提供は?クスやし実際乗り換えようかと考えているが、それはそうとして、std::chronoのふるまいを検証しなくて委員会?
398
(1): 2021/09/19(日)20:05 ID:neurUQ4a(5/6) AAS
というわけでms単位のUNIX timeを得るにあたってstd::chronoとGetFileTimeAsSystemTime()が同じ精度であり互換であることを
直接検証すた、
外部リンク:ideone.com

実行結果(Windows 10)
i=---: st1, chrono, st2: ORDER CHECK
i= 0: 1632049473157, 1632049473157, 1632049473157: OK.
i= 1: 1632049473158, 1632049473158, 1632049473158: OK.
i= 2: 1632049473159, 1632049473159, 1632049473159: OK.
i= 3: 1632049473159, 1632049473159, 1632049473159: OK.
i= 4: 1632049473159, 1632049473159, 1632049473159: OK.
省7
399
(2): 2021/09/19(日)20:13 ID:neurUQ4a(6/6) AAS
>>393
GetSystemTime()は確かに根本的に精度悪かったスマンカッタorz
この結果からすると、ウィンドーズのシステム時間のの実装は、
OSがプリエンプトした際に更新し、ディスパッチ中は値が変わらないというしくみな可能性が大きい
※ 取得時間の間隔が15.6 msの倍数にならないのは、15.6 msというのがあくまで1津のスレッドが
  ディスパッチされてからプリエンプトされるまでの「最大」時間であって実際は高優先のやつに横取りされたり
  自発的に待ちに入ったりで15.6 msより小さい時間で実行権をOSに返すからだと思う
400
(1): 2021/09/19(日)21:46 ID:UeoKc9fZ(3/4) AAS
古いWIN32開発者には常識的な話で検証の必要もなく、実際に検証用のプログラムは昔から大量に作られてるからだと思う

取得時間の間隔が15.6 msの倍数にならないのは「主に16ビット Windows との下位互換性のため」
外部リンク:docs.microsoft.com
401
(1): 2021/09/19(日)22:17 ID:k8GedCcQ(3/3) AAS
>>400
後半って「Windows時刻」の説明だよね?
GetSystemTimeで得られるのは「システム時刻」であって、また別の時刻体系だと読んだけど間違ってる?
外部リンク:docs.microsoft.com

WinAPIスレに持っていったほうがいいかもな
402
(1): 2021/09/19(日)22:38 ID:UeoKc9fZ(4/4) AAS
>>401
大元はWindows3.1時代からあったGetTickCountだと思うんだけど、説明的にそこしかなかったから書いた
WinAPIスレで聞きたければどうぞ
1-
あと 600 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.048s