| 1956 | } |
| 1957 | |
| 1958 | const Library::SmartPointer* Library::detectSmartPointer(const Token* tok, bool withoutStd) const |
| 1959 | { |
| 1960 | if (!tok) |
| 1961 | return nullptr; |
| 1962 | if (tok->isKeyword()) |
| 1963 | return nullptr; |
| 1964 | std::string typestr = withoutStd ? "std::" : ""; |
| 1965 | if (tok->str() == "::") |
| 1966 | tok = tok->next(); |
| 1967 | while (Token::Match(tok, "%name% ::")) { |
| 1968 | typestr += tok->str(); |
| 1969 | typestr += "::"; |
| 1970 | tok = tok->tokAt(2); |
| 1971 | } |
| 1972 | if (tok && tok->isName()) { |
| 1973 | typestr += tok->str(); |
| 1974 | } |
| 1975 | auto it = mData->mSmartPointers.find(typestr); |
| 1976 | if (it == mData->mSmartPointers.end()) |
| 1977 | return nullptr; |
| 1978 | return &it->second; |
| 1979 | } |
| 1980 | |
| 1981 | const Library::Container * getLibraryContainer(const Token * tok) |
| 1982 | { |