Open
Description
(1.84 gcc 13.2)
upgrading boost from 1.75 to 1.84 breaks existing code that boils down to:
#include <boost/core/detail/string_view.hpp>
struct Foo
{
Foo(std::string_view f) {}
Foo(const std::string& f) {}
};
int main() {
Foo{std::string_view()}; // works
Foo{boost::core::string_view()}; // fails
//Foo{boost::beast::http::fields{}.find("")->value()}; // same failure, works in 1.75
}
https://godbolt.org/z/8TKfP6Pj8
<source>: In function 'int main()':
<source>:11:39: error: call of overloaded 'Foo(<brace-enclosed initializer list>)' is ambiguous
11 | Foo{boost::core::string_view()};
| ^
<source>:6:9: note: candidate: 'Foo::Foo(const std::string&)'
6 | Foo(const std::string& f) {}
| ^~~
<source>:5:9: note: candidate: 'Foo::Foo(std::string_view)'
5 | Foo(std::string_view f) {}
| ^~~
Compiler returned: 1
it used to work with BOOST_BEAST_USE_STD_STRING_VIEW
. how do I get it to use std::string_view
like before?
Metadata
Metadata
Assignees
Labels
No labels