Здравствуйте, Коваленко Дмитрий, Вы писали:
КД>Реально стрёмно.
Классика, но да, с этим string_view примером новый повод наступить.
Наткнулся на похожее, когда NULL заменить на nullptr, начинает вызываться строковая версия.
(При этом, так получалось, что в месте, где NULL, нужна была именно булочная перегрузка)
Примерно так реконструировать можно для этого примера:
#include <iostream>
#include <vector>
class TVAR
{
public:
explicit TVAR(bool /*v*/) { std::cout << "TVAR: bool\n"; }
explicit TVAR(const std::string_view& /*v*/) { std::cout << "TVAR: std::string_view\n"; }
};
int main()
{
std::vector<TVAR> vec;
vec.emplace_back(NULL); // bool
vec.emplace_back(nullptr); // string_view
}