gpt4 book ai didi

c++ - Boost 1.59 mutable_constant 的问题

转载 作者:行者123 更新时间:2023-11-28 05:56:39 24 4
gpt4 key购买 nike

我关注了这篇文章:http://www.boost.org/doc/libs/1_59_0/libs/log/doc/html/log/detailed/attributes.html

log( string nameValue) {
attrs::mutable_constant< string > Name(nameValue);
logger::get().add_attribute("Name", Name);
Name.set(nameValue);
cout << "name is: " << Name;
}

只有一次 Name 属性被设置为 nameValue 并且每次都保持不变。所以我使用 set() 方法来设置新值。但是当我们在 log() 方法中传递一个新值时,名称不会更新为新的 nameValue。

Boost 版本:1.59 操作系统:Ubuntu 15.04

这个问题的任何解决方案。

提前致谢。

最佳答案

问题是您尝试在每次调用时添加该属性,但实际上只有第一次调用成功。

记录器的 add_attribute 方法与关联容器上的 insert 类似。它返回一个迭代器和一个 bool ,指示是否已添加新属性或记录器的属性集中是否已存在同名属性。在后一种情况下,插入没有发生,返回的迭代器指向集合中的现有属性。

您应该使用返回的迭代器来设置新值。您将需要使用 attribute_cast 将通过迭代器获得的通用 attribute 包装器转换为 mutable_constant

关于c++ - Boost 1.59 mutable_constant 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34037530/

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