gpt4 book ai didi

c++ - 相同的外部结构只有一个功能不同

转载 作者:太空狗 更新时间:2023-10-29 23:35:52 26 4
gpt4 key购买 nike

除了修改什么变量之外,我有很多功能大致相同

struct example
{
std::string name;
std::string category;
};

using ObjName = std::string;
using Value = std::string;

bool updateName(const ObjName &name, const Value& value) ...
bool updateCategory(const ObjName &name,const Value& value)
{
// boost optional pointing to struct reference
auto obj = findOjb(name);
if (obj)
{
obj.get().category = value; // variable name changes
return true;
}
return false;
}

我想知道如何合并代码?我怀疑它会涉及模板,也许是特征/仿函数,但我不确定如何处理它的任何想法?

最佳答案

重写 Daerst 的代码以移除糟糕的 offsetof 以支持指向成员的指针...

struct example
{
std::string name;
std::string category;
};

bool updateVariable(const ObjName &name, std::string example::*member, std::string const &value)
{
// your code ...

// Access
rule.get().*member = value

// rest of your code
}

bool updateName(const ObjName &oldname, const ObjName& newName)
{
return updateVariable(name, &example::name, newName));
}

bool updateCategory(const ObjName &name, Category &cat)
{
return updateVariable(name, &example::category, cat));
}

关于c++ - 相同的外部结构只有一个功能不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27861926/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com