This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Bad C++ using-declaration semantics
- To: gcc-bugs at gcc dot gnu dot org
- Subject: Bad C++ using-declaration semantics
- From: Nathan Myers <ncm at nospam dot cantrip dot org>
- Date: Thu, 18 May 2000 20:28:51 -0700
- Reply-To: gcc-bugs at gcc dot bug dot org, ncm at nospam dot cantrip dot org
Given:
-------------
namespace A { struct S {}; void f(S); }
using A::f;
namespace A { void f(double); }
int main()
{
f(0.5);
};
-------------
I get:
abs.cc: In function `int main ()':
abs.cc:10: conversion from `double' to non-scalar type `A::S' requested
I believe that the "f" lookup should find both definitions of f,
and apply overloading to disambiguate them.
Nathan Myers
ncm at cantrip dot org
-----------------
Reading specs from v3/bin/../lib/gcc-lib/i686-pc-linux-gnu/2.96/specs
gcc version 2.96 20000515 (experimental)
v3/bin/../lib/gcc-lib/i686-pc-linux-gnu/2.96/cpp -lang-c++ \
-v -iprefix v3/bin/../lib/gcc-lib/i686-pc-linux-gnu/2.96/ \
-D__GNUC__=2 -D__GNUG__=2 -D__GNUC_MINOR__=96 \
-D__GNUC_PATCHLEVEL__=0 -D__cplusplus -D__ELF__ -Dunix \
-Dlinux -D__ELF__ -D__unix__ -D__linux__ -D__unix -D__linux \
-Asystem(posix) -D__EXCEPTIONS -Acpu(i386) -Amachine(i386) \
-Di386 -D__i386 -D__i386__ -D__tune_pentiumpro__ abs.cc /tmp/cczhaEbs.ii
GNU CPP version 2.96 20000515 (experimental) (cpplib)
(i386 Linux/ELF)
ignoring duplicate directory `/home/ncm/Libc/v3/include/g++-v3'
ignoring duplicate directory `/home/ncm/Libc/v3/lib/gcc-lib/i686-pc-linux-gnu/2.96/include'
ignoring duplicate directory `/home/ncm/Libc/v3/i686-pc-linux-gnu/include'
#include "..." search starts here:
#include <...> search starts here:
v3/include/g++-v3
v3/lib/gcc-lib/i686-pc-linux-gnu/2.96/include
v3/i686-pc-linux-gnu/include
/home/ncm/Libc/v3/include
/usr/include
End of search list.
v3/bin/../lib/gcc-lib/i686-pc-linux-gnu/2.96/cc1plus /tmp/cczhaEbs.ii -quiet -dumpbase abs.cc -version -o /tmp/cccMQ7RJ.s
GNU C++ version 2.96 20000515 (experimental) (i686-pc-linux-gnu) compiled by GNU C version 2.95.2 20000313 (Debian GNU/Linux).
abs.cc: In function `int main ()':
abs.cc:10: conversion from `double' to non-scalar type `A::S' requested