| .. title:: clang-tidy - bugprone-dangling-handle |
| |
| bugprone-dangling-handle |
| ======================== |
| |
| Detect dangling references in value handles like |
| ``std::experimental::string_view``. |
| These dangling references can be a result of constructing handles from temporary |
| values, where the temporary is destroyed soon after the handle is created. |
| |
| Examples: |
| |
| .. code-block:: c++ |
| |
| string_view View = string(); // View will dangle. |
| string A; |
| View = A + "A"; // still dangle. |
| |
| vector<string_view> V; |
| V.push_back(string()); // V[0] is dangling. |
| V.resize(3, string()); // V[1] and V[2] will also dangle. |
| |
| string_view f() { |
| // All these return values will dangle. |
| return string(); |
| string S; |
| return S; |
| char Array[10]{}; |
| return Array; |
| } |
| |
| Options |
| ------- |
| |
| .. option:: HandleClasses |
| |
| A semicolon-separated list of class names that should be treated as handles. |
| By default only ``std::experimental::basic_string_view`` is considered. |