You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
28 lines
759 B
28 lines
759 B
/*
|
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*/
|
|
#include <string>
|
|
|
|
// inspired by folly::Range
|
|
struct Range {
|
|
const char *b_, *e_;
|
|
|
|
Range(const std::string& str) : b_(str.data()), e_(b_ + str.size()) {}
|
|
|
|
char operator[](size_t i) { return b_[i]; }
|
|
};
|
|
|
|
const Range setLanguage(const std::string& s) {
|
|
return s[0] == 'k' ? s.substr(0, 1) // cast to Range returns pointers
|
|
// into stack-allocated temporary string
|
|
: "en";
|
|
}
|
|
|
|
bool use_range_of_invalidated_temporary_string_bad(const std::string& str) {
|
|
auto s = setLanguage(str);
|
|
return s[0] == 'k';
|
|
}
|