0
void FakeMas::initLSRKeys() {
    const char* lsrKeysInit[]= {
        "platform.enhancedmetadata.categories.baseurl",
        "platform.enhancedmetadata.eventresolution.baseurl",
        "platform.enhancedmetadata.image.baseurl",
        "platform.enhancedmetadata.ondemands.baseurl",
        "platform.enhancedmetadata.programmes.baseurl",
        "platform.enhancedmetadata.recommend.baseurl",
        "platform.enhancedmetadata.schedule.baseurl",
        "platform.enhancedmetadata.scheduleevents.baseurl",
        "platform.enhancedmetadata.search.baseurl",
        "platform.enhancedmetadata.serviceresolve.baseurl",
        "platform.enhancedmetadata.applicationresolve.baseurl",
        "platform.enhancedmetadata.suggestions.baseurl",
        "platform.enhancedmetadata.summaries.baseurl",
        "platform.enhancedmetadata.bootstrap.baseurl"
    };
    endpointLSRKey(lsrKeysInit, lsrKeysInit+14);
}

Then get

error: no match for call to '(std::__debug::vector<std::basic_string<char> >)
(const char* [14], const char**)'

anyone get any idea about this? THanks

1
  • What is endpointLSRKey? Commented Jan 11, 2013 at 10:48

2 Answers 2

2

That is not an initialization: use vector::assign() instead:

endPointLSRKey.assign(lsrKeysInit, lsrKeysInit+14);

Calculate the number of elements in lsrKeysInit instead of hard-coding the 14 (which would require updating if elements were removed or added from lsrKeysInit):

endPointLSRKey
    .assign(lsrKeysInit, 
            lsrKeysInit + (sizeof(lsrKeysInit)/sizeof(lsrKeysInit[0])));

If C++11 support, you can use std::begin() and std::end():

endPointLSRKey.assign(std::begin(lsrKeysInit), std::end(lsrKeysInit));
Sign up to request clarification or add additional context in comments.

Comments

0

You can only use the form variable(arguments...) in an initializer (i.e. in a declaration). When assigning to a variable that already exists, use an assignment or in this case use assign:

endpointLSRKey.assign(lsrKeysInit, lsrKeysInit+14);

1 Comment

You should rather use sizeof(lsrKeysInit) / sizeof(*lsrKeysInit) instead of hardcoding 14.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.