Avoid template mess when importing base class constructors of heavily templated base class

This is just short inquiery if it is at all possible to somehow import base class constructors without all the template bloat. Consider this example where I’m inheriting from a templated std::variant: template <typename StringType, typename Allocator> class JSON : public std::variant<std::monostate, std::unordered_map<StringType, JSON<StringType, Allocator>, std::hash<JSON<StringType, Allocator>>, std::equal_to<StringType>, Allocator>, std::vector<JSON<StringType, Allocator>, Allocator>, bool, double, StringType>… Read More Avoid template mess when importing base class constructors of heavily templated base class

Unqualified name lookup does not look in local namespace after using declaration

namespace A { int overloaded_f(float some_float); enum class Enum { Value }; } namespace B { int overloaded_f(A::Enum some_enum); int f(A::Enum some_enum){ using A::overloaded_f; // using B::overloaded_f; // return B::overloaded_f(some_enum) + overloaded_f(0.0f); return overloaded_f(some_enum) + overloaded_f(0.0f); /* error: cannot convert ‘A::Enum’ to ‘float’ 14 | return overloaded_f(some_enum) + overloaded_f(0.0f); | ^~~~~~~~~ | | | A::Enum… Read More Unqualified name lookup does not look in local namespace after using declaration