Relative Content

Tag Archive for c++implicit-conversionoverload-resolutionexplicit-conversion

GCC14 performes multiple implicit conversions instead of one matching explicit conversion

#include <cstdio> #include <string> class A { std::string data; public: A() = default; explicit A (const char* data) : data(data) {} operator const char* () const; explicit operator std::string() &&; }; A::operator const char*() const { printf(“A -> const char*n”); return data.c_str(); } A::operator std::string() && { printf(“A -> std::stringn”); return data; } int main() […]