MCPcopy Create free account
hub / github.com/cppcheck-opensource/cppcheck / isStdContainer

Method isStdContainer

lib/checkio.cpp:1662–1692  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1660};
1661
1662bool CheckIOImpl::ArgumentInfo::isStdContainer(const Token *tok)
1663{
1664 if (!isCPP)
1665 return false;
1666 if (tok && tok->variable()) {
1667 const Variable* variable = tok->variable();
1668 if (variable->isStlType(stl_container)) {
1669 typeToken = variable->typeStartToken()->tokAt(4);
1670 return true;
1671 }
1672 if (variable->isStlType(stl_string)) {
1673 typeToken = variable->typeStartToken();
1674 return true;
1675 }
1676 if (variable->type() && !variable->type()->derivedFrom.empty()) {
1677 for (const Type::BaseInfo &baseInfo : variable->type()->derivedFrom) {
1678 const Token* nameTok = baseInfo.nameTok;
1679 if (Token::Match(nameTok, "std :: vector|array|bitset|deque|list|forward_list|map|multimap|multiset|priority_queue|queue|set|stack|hash_map|hash_multimap|hash_set|unordered_map|unordered_multimap|unordered_set|unordered_multiset <")) {
1680 typeToken = nameTok->tokAt(4);
1681 return true;
1682 }
1683 if (Token::Match(nameTok, "std :: string|wstring")) {
1684 typeToken = nameTok;
1685 return true;
1686 }
1687 }
1688 }
1689 }
1690
1691 return false;
1692}
1693
1694bool CheckIOImpl::ArgumentInfo::isArrayOrPointer() const
1695{

Callers

nothing calls this directly

Calls 4

variableMethod · 0.80
typeMethod · 0.80
tokAtMethod · 0.45
emptyMethod · 0.45

Tested by

no test coverage detected