tomolatoon

Results 2 issues of tomolatoon

## 概要 枠なし(`WindowStyle::Frameless`の見た目)のウィンドウかつ、マウスによるリサイズが出来るウィンドウがあると、ピクチャーインピクチャーなどで有用だと思います。 ## Windowsでの実現方法 当方Windowsでのみ開発していますので、Windowsでの実装について少し調べてきました。 結論ですが、枠なしウィンドウに「独自に当たり判定から実装する」か、「フレーム部分にも描画する」(下記資料)か、の2択だと思われます。 Win32のウィンドウスタイルを`WS_SIZEBOX`にする方法は、Windows Vista以降で上辺境界線が完全に消えない仕様があるのでダメでした。(上辺境界線への描画が出来れば有用な気はしますが…) 資料:https://stackoverflow.com/questions/39731497/create-window-without-titlebar-with-resizable-border-and-without-bogus-6px-whit

proposal

## 概要 `const`な`JSON`に対して、`access`/`operator[]`などでアクセスした後の`JSON`に書き込み出来てしまう、という話です。 https://twitter.com/tomosann_tomo/status/1634458572246638592?s=20 ## 状況 以下のような例を考えます。 ```cpp // auto の推論結果は JSON auto json = parent_json[U"key"]; ``` `const`な`JSON`に対する`access`/`operator[]`等では、返り値に`const JSON`が採用されています。しかしながら、その`const`は decay の発生によって失われてしまい、同時に、変数宣言での`auto`は推論規則から`JSON`に推論されるため、結局`const`性は失われることとなります。(この際に呼び出されるコンストラクタはムーブコンストラクタです。) ## 解決策 `access`/`operator[]`等の返り値を参照(`const JSON&`)等にするのが理想的な解決策ではありますが、実際の所、nlohmann_json をラップしているという現状ではそれを行うのは非常に難しいものとなってしまいます。 現実的には、`JSONDetail`で`const`性を保持しておく方針になるのではないかと思います。しかしながら、これでは折角の型システムを無視しており、型から`const`性がわからないという非常に問題な挙動となり、これもあまり良いものでは無いように思えます。