gpt4 book ai didi

c++ - 取消/清除 boost::tuple of pointers

转载 作者:行者123 更新时间:2023-11-30 03:36:29 25 4
gpt4 key购买 nike

我有一个由指针组成的 boost::tuple(指针的数量在模板元编程中是未知的)。

例如:

boost::tuple<int*, Foo*, std::string*> mytuple

有没有办法将指针初始化为 0 ?

我尝试创建一个谓词,例如:

struct Nullify
{
template <class TypePtr>
void operator()(TypePtr& ptr) const
{
ptr = 0
}
};

boost::fusion::for_each(mytuple, Nullify());

但我得到 error: no matching function for call to...

理想情况下,如果可能的话,我想在 for_each 循环中直接使用 boost::lambda 而没有单独的结构。 (我正在使用 c++03)

例如。取消

boost::fusion::for_each(mytuple, boost::lambda::_1 = 0);

例如。删除

boost::fusion::for_each(mytuple, delete boost::lambda::_1);

最佳答案

可以简单地通过相应地初始化它来完成:

boost::tuple<int*, Foo*, std::string*> mytuple(nullptr, nullptr, nullptr);

(如果 nullptr 在您的 C++ 版本中不可用,则使用 NULL)。

参见 here ,“构造元组”小节。

关于c++ - 取消/清除 boost::tuple of pointers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40678773/

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