https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81239
Jonathan Wakely <redi at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Last reconfirmed|2017-06-28 00:00:00 |2018-12-17
--- Comment #4 from Jonathan Wakely <redi at gcc dot gnu.org> ---
I fixed the std::__cxx11::string case on trunk, the output is now:
81239.cc: In function 'int main()':
81239.cc:15:17: error: too few arguments to function 'void test_params(const
string&, std::string&)'
15 | test_params();
| ^
81239.cc:7:6: note: declared here
7 | void test_params(const string & mystr1, string & out_str)
| ^~~~~~~~~~~
However the problem still exists in general:
namespace a {
inline namespace b {
template<typename C> class foo { };
using cfoo = foo<char>;
}
}
using namespace a;
void test_params(const cfoo&, cfoo&)
{
}
int main (void)
{
test_params();
}
The error: line shows the namespace for one parameter and not the other:
81239.cc: In function 'int main()':
81239.cc:16:15: error: too few arguments to function 'void test_params(const
cfoo&, a::b::cfoo&)'
16 | test_params();
| ^
81239.cc:10:6: note: declared here
10 | void test_params(const cfoo&, cfoo&)
| ^~~~~~~~~~~