Jump to content

  • Log In with Google      Sign In   
  • Create Account


list of vectors


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
6 replies to this topic

#1 FGFS   Members   -  Reputation: 196

Like
0Likes
Like

Posted 03 August 2013 - 12:04 AM

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

 

 

 



Sponsor:

#2 Washu   Senior Moderators   -  Reputation: 5002

Like
2Likes
Like

Posted 03 August 2013 - 02:59 AM

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, 03 August 2013 - 02:59 AM.

In time the project grows, the ignorance of its devs it shows, with many a convoluted function, it plunges into deep compunction, the price of failure is high, Washu's mirth is nigh.
ScapeCode - Blog | SlimDX


#3 FGFS   Members   -  Reputation: 196

Like
0Likes
Like

Posted 03 August 2013 - 05:23 AM

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



#4 Bregma   Crossbones+   -  Reputation: 5008

Like
1Likes
Like

Posted 03 August 2013 - 07:33 AM

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. 


Stephen M. Webb
Professional Free Software Developer

#5 FGFS   Members   -  Reputation: 196

Like
0Likes
Like

Posted 03 August 2013 - 07:43 AM

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



#6 SiCrane   Moderators   -  Reputation: 9565

Like
0Likes
Like

Posted 03 August 2013 - 09:01 AM

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?

#7 FGFS   Members   -  Reputation: 196

Like
-1Likes
Like

Posted 03 August 2013 - 10:48 AM

deleted


Edited by FGFS, 04 August 2013 - 01:16 AM.





Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS