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++のデバッグむずい。