-
Notifications
You must be signed in to change notification settings - Fork 2.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Make wchar_t overloads usable in module #2260
Make wchar_t overloads usable in module #2260
Conversation
This might be a defect in msvc's modules implementation, but it unlocks a big chunk of my module-related compile checks. Code like this compiles now:
Basically, I could use modularized {fmt} in production with a pre-production version of msvc 🎉 |
For future reference could you post an error that you get without this change? |
|
This might be another defect in msvc's modules implementation. There are other problems with names not found when there are partial or total class template specifications involved. Here it's a similar situation but with function templates. May be the compiler mistakenly thinks ADL is involved even though it should be in a template specialization context resurrected from the BMI. At least the proposed change is innocent. |
This is most likely the same problem as with |
@@ -2992,6 +2992,7 @@ FMT_CONSTEXPR const Char* parse_replacement_field(const Char* begin, | |||
template <bool IS_CONSTEXPR, typename Char, typename Handler> | |||
FMT_CONSTEXPR_DECL FMT_INLINE void parse_format_string( | |||
basic_string_view<Char> format_str, Handler&& handler) { | |||
using detail::find; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you add a short comment saying that this is a workaround for an MSVC bug?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sure.
Bring ''detail::find()' into scope.
632cf45
to
30d4474
Compare
Thank you |
Bring
detail::find()
into scope.