Jump to content
  • Advertisement
Sign in to follow this  
FGFS

list of vectors

This topic is 1876 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi

 I try to get the second parameter to:

    (*it4).second = SDatabase::getIls(&name, m_ils_map);

 

but with the above error:

 

Multiple markers at this line
    - Invalid arguments ' Candidates are: void getIls(const
     std::basic_string<char,std::char_traits<char>,std::allocator<char>> &,
     std::vector<Waypoint *,std::allocator<Waypoint *>> *) '
    - candidate is:
    - no matching function for call to ‘SDatabase::getIls(const string*,
     IlsMap&)’

 

declared as:

    virtual void getIls(const std::string &id, StdWaypointList *list);

 

typedef vector<Waypoint*> StdWaypointList;

 

my problem is that I cannot find any list of waypoints. I only see alike:

 

        m_wpt.setFlag(flag);
        m_wpt.setId(m_wpt.id().append(" (HOLD)"));
        return m_wpt;

 

declared as:

 Waypoint m_wpt(name.c_str(), "", atof(lat.c_str()), atof(lon.c_str()));

 

Many thanks

Michael

 

 

 

Share this post


Link to post
Share on other sites
Advertisement

Several things wrong:

 

1. You're passing in a pointer to a string and a list to a function that expects references.

2. Your function doesn't RETURN anything, and you're attempting to assign that non-existant return value to an object.

3. Use code brackets and post some source, and the actual error directly from the error window. Please only include RELEVANT code.

Edited by Washu

Share this post


Link to post
Share on other sites

Below the function that I try to call. It seems that it creates *list itself? How to call it?

 

 

void SDatabase::getIls(const std::string &id,  StdWaypointList *list)
{
    int cnt = m_ils_map.count(id);
    if (cnt != 0) {
        IlsMapIterator it = m_ils_map.find(id);
        int i;
        for (i = 0; i < cnt; i++) {
            list->push_back((*it).second->asWaypoint());
            it++;
        }
    }
};

 

 

If I try:

 

    StdWaypointList list;
for (std::multimap<string, Ils*>::iterator it4=m_ils_map.begin(); it4!=m_ils_map.end(); ++it4)
   {
    (*it4).second = SDatabase::getIls(&name, list);

...

I get:

error: no matching function for call to ‘SDatabase::getIls(const string*, StdWaypointList&)’

 

Many thanks

Share this post


Link to post
Share on other sites

SDatabase::getIls() expects a pointer to a StdWaypointList and you're passing a StdWaypointList by value.  Bizarrely, that what the error message tells you.  Good things, error messages.

 

You'll also need to fix your return value -- you don't have one, but you use it. 

Share this post


Link to post
Share on other sites

Thanks and yes how to convert the value to pointer?

Why is a return value needed? The function pushes back list...well I don't know how long list lives. Probably visible in and living with the class?

Thanks

Share this post


Link to post
Share on other sites
When you say a = function_call() you're saying that you want to assign the return value of the function call to the variable. If the function call doesn't have a return value, how can it be assigned to the variable?

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!