“Go to Definition/Declaration” mispairs constructors with multiple overloads in custom class

I encountered an issue with “Go to Definition/Declaration” when working with a custom class that has multiple constructor overloads.

 

header:

explicit String(const std::string& str);
String(std::initializer_list<char> init);
String(const char* str);
String(const char* str, size_t length);
String(const char* begin, const char* end);

cpp:
    String::String(const std::string& str): data(str)
    {}
    String::String(std::initializer_list<char> init): data(init.begin(), init.end())
    {}
    String::String(const char* str, size_t length): data(str, length)
    {}
    String::String(const char* str): data(str ? str : "")
    {}
    String::String(const char* begin, const char* end): data(begin, end)
    {}

 

example:

When I click “Go to Declaration” on String::String(const std::string& str), it incorrectly goes to String(std::initializer_list<char> init) in the header, instead of explicit String(const std::string& str).

0

Please sign in to leave a comment.