# Extra Clang Tools 18.1.8 documentation

## clang-tidy - bugprone-sizeof-container

# bugprone-sizeof-container

The check finds usages of `sizeof` on expressions of STL container types. Most likely the user wanted to use `.size()` instead.

All class/struct types declared in namespace `std::` having a const `size()` method are considered containers, with the exception of `std::bitset` and `std::array`.

Examples:

    std::string s;
    int a = 47 + sizeof(s); // warning: sizeof() doesn't return the size of the container. Did you mean .size()?

    int b = sizeof(std::string); // no warning, probably intended.

    std::string array_of_strings[10];
    int c = sizeof(array_of_strings) / sizeof(array_of_strings[0]); // no warning, definitely intended.

    std::array<int, 3> std_array;
    int d = sizeof(std_array); // no warning, probably intended.