相关疑难解决方法(0)

C++ 17结构化绑定,还包括现有变量

这个SO答案列出了C++ 17分解声明(以前称为"结构化绑定")的一些缺点.例如,您不能为新变量提供显式类型,依此类推.但是我遇到的一个很大的缺点就是没有提到,所以我想知道是否有一个已知的解决方法,我只是没想到.

考虑这个JSON解析代码(可能包含其他错误;请出于此问题的目的忽略它们):

using Value = std::any;
using String = std::string;
using Object = std::map<String, Value>;

std::pair<String, const char *> load_string(const char *p, const char *end);
std::pair<Value, const char *> load_value(const char *p, const char *end);
const char *skip_spaces(const char *p, const char *end);

std::pair<Object, const char *> load_object(const char *p, const char *end)
{
    p = skip_spaces(p, end);
    if (p == end || *p++ != '{') throw ParseError("Expected {");
    p = skip_spaces(p, end);
    Object result;
    if …
Run Code Online (Sandbox Code Playgroud)

c++ refactoring c++17 structured-bindings

9
推荐指数
3
解决办法
2266
查看次数

标签 统计

c++ ×1

c++17 ×1

refactoring ×1

structured-bindings ×1