mirror of https://github.com/OpenTTD/OpenTTD
Codechange: use std::string_view for GetNextParameterString
parent
398524e49a
commit
4476ce804d
|
@ -1238,16 +1238,9 @@ static void FormatString(StringBuilder &builder, std::string_view str_arg, Strin
|
|||
builder += _openttd_revision;
|
||||
break;
|
||||
|
||||
case SCC_RAW_STRING_POINTER: { // {RAW_STRING}
|
||||
const char *raw_string = args.GetNextParameterString();
|
||||
/* raw_string can be nullptr. */
|
||||
if (raw_string == nullptr) {
|
||||
builder += "(invalid RAW_STRING parameter)";
|
||||
break;
|
||||
}
|
||||
FormatString(builder, raw_string, args);
|
||||
case SCC_RAW_STRING_POINTER: // {RAW_STRING}
|
||||
FormatString(builder, args.GetNextParameterString(), args);
|
||||
break;
|
||||
}
|
||||
|
||||
case SCC_STRING: {// {STRING}
|
||||
StringID string_id = args.GetNextParameter<StringID>();
|
||||
|
|
|
@ -112,12 +112,12 @@ public:
|
|||
* will be read.
|
||||
* @return The next parameter's value.
|
||||
*/
|
||||
const char *GetNextParameterString()
|
||||
std::string_view GetNextParameterString()
|
||||
{
|
||||
struct visitor {
|
||||
const char *operator()(const std::monostate &) { throw std::out_of_range("Attempt to read uninitialised parameter as string"); }
|
||||
const char *operator()(const uint64_t &) { throw std::out_of_range("Attempt to read integer parameter as string"); }
|
||||
const char *operator()(const std::string &arg) { return arg.c_str(); }
|
||||
std::string_view operator()(const std::monostate &) { throw std::out_of_range("Attempt to read uninitialised parameter as string"); }
|
||||
std::string_view operator()(const uint64_t &) { throw std::out_of_range("Attempt to read integer parameter as string"); }
|
||||
std::string_view operator()(const std::string &arg) { return arg; }
|
||||
};
|
||||
|
||||
const auto ¶m = this->GetNextParameterReference();
|
||||
|
|
Loading…
Reference in New Issue