[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#391334: marked as done (error: no matching function for call)



Your message dated Fri, 6 Oct 2006 20:14:47 -0400
with message-id <20061007001447.GL18958@zewt.org>
and subject line error: no matching function for call
has caused the attached Bug report to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what I am
talking about this indicates a serious mail system misconfiguration
somewhere.  Please contact me immediately.)

Debian bug tracking system administrator
(administrator, Debian Bugs database)

--- Begin Message ---
Package: g++-4.1
Version: 4.1.1-15
Severity: normal

With attached code,

t.cc: In member function ‘void ThemeMetric<T>::Read() [with T = GoalType]’:
t.cc:32:   instantiated from here
t.cc:22: error: no matching function for call to ‘FromStack(GoalType&)’
t.cc:3: note: candidates are: void LuaHelpers::FromStack(bool&)
t.cc:4: note:                 void LuaHelpers::FromStack(float&)
t.cc:5: note:                 void LuaHelpers::FromStack(int&)

This happens on 3.4 through 4.1.  This error goes away if

 - LuaHelpers::FromStack(GoalType&) is declared above the template,
 - FromStack is removed from the namespace, or "using namespace LuaHelpers"
 - "using namespace LuaHelpers" is used and FromStack is used without
   LuaHelpers:: qualifier (3.4 through 4.0, not 4.1);
 - ThemeMetric<T>::Read() is not virtual;
 - FromStack is a template and each type is a specialization

If this code isn't valid, I'm not seeing why, or why Read being virtual
or FromStack being in a namespace would affect it.

-- System Information:
Debian Release: testing/unstable
  APT prefers unstable
  APT policy: (500, 'unstable'), (200, 'experimental')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.5
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)

Versions of packages g++-4.1 depends on:
ii  gcc-4.1                       4.1.1-15   The GNU C compiler
ii  gcc-4.1-base                  4.1.1-15   The GNU Compiler Collection (base 
ii  libc6                         2.3.6-7    GNU C Library: Shared libraries
ii  libstdc++6-4.1-dev            4.1.1-15   The GNU Standard C++ Library v3 (d

g++-4.1 recommends no packages.

-- no debconf information
namespace LuaHelpers
{
        void FromStack( bool &Object );
        void FromStack( float &Object );
        void FromStack( int &Object );
};

struct IThemeMetric
{
public:
        virtual ~IThemeMetric() { }
        virtual void Read() = 0;
};

template <class T>
struct ThemeMetric : public IThemeMetric
{
public:
        void Read()
        {
                T x;
                LuaHelpers::FromStack(x);
        }
};

enum GoalType { a, b, c };
namespace LuaHelpers
{
        void FromStack( GoalType &o );
};

ThemeMetric<GoalType> EDIT_MODE;


--- End Message ---
--- Begin Message ---
This looks like a series of bizarre warts in the C++ standard; while
gross, 4.1's behavior is correct according to the standard.  

-- 
Glenn Maynard

--- End Message ---

Reply to: