I've found this several days ago and i wrote a snippet to show it:

#include <iostream>
#include <vector>
#include <string>
using namespace std;

int main() {
    vector<string> v(10, "Hello, Bread");
    string s = v. // 1st completion
    string sBread;
    sBread = v. // 2nd completion
    return 0;

Semantic gave different completions candidates while the above 2 completions are requested.

All methods of class vector can be gotten from the 1st one while only several ones gotten from the 2nd one. So, maybe semantic implemented a mechanism to give completions according to the type which is assigned to ? But "s" and "sBread" are both string and that's why i think there might be something wrong here.


Zhiqiu Kong (孔直秋)

EDA Labs
Dept. Computer Science & Technology
Tsinghua University
P.R China