public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/31855]  New: "using boo::work" does not resolve name resolution
@ 2007-05-07 13:19 cshinyee at gmail dot com
  2007-05-09 15:35 ` [Bug c++/31855] " bangerth at dealii dot org
  0 siblings, 1 reply; 2+ messages in thread
From: cshinyee at gmail dot com @ 2007-05-07 13:19 UTC (permalink / raw)
  To: gcc-bugs

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 1597 bytes --]

With or without "using boo::work" in func.h, it doesn't pick the template
function in the namespace. However, changing "work(a)" to "work(10)" in func.h
compiles.

g++ error report:
func.h: In function ‘void boo::rfunc(const boo::R<T>&) [with T = hpc::B]’:
main.cpp:11:   instantiated from here
func.h:14: error: call of overloaded ‘work(const boo::R<hpc::B>&)’ is ambiguous
func.h:4: note: candidates are: void boo::work(T) [with T = boo::R<hpc::B>]
main.cpp:17: note:                 void hpc::work(T) [with T = boo::R<hpc::B>]

file func.h:
namespace boo {

template <typename T>
void work(T n) {
    std::cout << "good bye work" << std::endl;
}

template <typename T>
class R { };

template <typename T>
void rfunc(const R<T>& a) {
    using boo::work;
    work(a);
}

} // namespace boo

File main.cpp:
#include <iostream>
#include "func.h"

using std::cout;
using std::endl;

namespace hpc {
class B { };
class A {
public:
        void bfunc(void) { rfunc(n); }
protected:
        boo::R<B> n;
};

template <typename T>
void work(T n) {
    cout << "hello world work" << endl;
}

} // namespace hpc

using hpc::A;
int main(int argc, char* argv[])
{
        A a;
        a.bfunc();
        return 0;
}


-- 
           Summary: "using boo::work" does not resolve name resolution
           Product: gcc
           Version: 4.1.2
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: cshinyee at gmail dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31855


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2007-05-09 15:35 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-05-07 13:19 [Bug c++/31855] New: "using boo::work" does not resolve name resolution cshinyee at gmail dot com
2007-05-09 15:35 ` [Bug c++/31855] " bangerth at dealii dot org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).