What ends up happening is internally it routes through the templated constructor and std::to_string<ska::flat_hash_map<int,Value,ska::detailv3::IntegerIdentityHash,std::equal_to<int>,std::allocator<std::pair<int,Value>>>::convertible_to_value> tries to be called, which does not compile.
perhaps instead of using the conversion operator, an explicit default construct call can happen instead, ensuring the empty constructor is called.
This code will not compile (in MSVC 2019 or clang 12)
What ends up happening is internally it routes through the templated constructor and
std::to_string<ska::flat_hash_map<int,Value,ska::detailv3::IntegerIdentityHash,std::equal_to<int>,std::allocator<std::pair<int,Value>>>::convertible_to_value>
tries to be called, which does not compile.perhaps instead of using the conversion operator, an explicit default construct call can happen instead, ensuring the empty constructor is called.