2023-12 << 2024-01 >> 2024-02

2024-01-28 (日)

QuickJS しばらく更新されてなかったけど top-level-await 使えるようになっていた。

Visual Studioを2022にアップデートしたら色々ビルドできなくなって修正していた。

結局、VS2019まではデフォルト指定のある関数テンプレートの型パラメータの数が違っても、普通にオーバーロードされて有効な方の関数を呼べていたのがダメになったっぽい。

template <typename R>
R convert(int x);

template <typename R, typename T = std::remove_pointer<R>::type>
requires std::derived_from<T, Hoge<T>>
R convert(int x);

があるとき、以前は前者のテンプレートがHogeのサブクラスを受け付ける特殊化がされてなければ、後者を呼び出してくれていたのだけど、できなくなってしまった。gccもダメなので呼び出せないのが正しい?

修正面倒なので、とりあえずダミーの引数で数を合わせてコンパイル通るようにしたけど、C++のデバッグむずい。

2023-12 << 2024-01 >> 2024-02