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)
  |