modernize-use-starts-ends-with
Checks for common roundabout ways to express starts_with
and ends_with
and suggests replacing with the simpler method when it is available. Notably,
this will work with std::string
and std::string_view
.
Covered scenarios:
Expression |
Replacement |
u.find(v) == 0
|
u.starts_with(v)
|
u.rfind(v, 0) != 0
|
!u.starts_with(v)
|
u.compare(0, v.size(), v) == 0
|
u.starts_with(v)
|
u.substr(0, v.size()) == v
|
u.starts_with(v)
|
v != u.substr(0, v.size())
|
!u.starts_with(v)
|
u.compare(u.size() - v.size(), v.size(), v) == 0
|
u.ends_with(v)
|
u.rfind(v) == u.size() - v.size()
|
u.ends_with(v)
|