草庐IT

transform_logs

全部标签

c++ - 有没有办法用带有多个参数的函数调用 std::transform

你好,我有一个函数,签名是std::stringf(doublex,doubleparam1,doubleparam2,doubleparam3);我想在参数x的std::vectorxvalues上调用它,使用类似std::transform的东西来调用param1、param2和param3的特定值。这相当于:doubleparam1(1.);doubleparam2(1.1);doubleparam3(1.2);std::vectorresults();for(std::vector::const_iteratorit=xvalues.begin();it!=xvalues.en

c++ - Boost Log运行时优化

我正在为我的应用程序的日志记录平台使用Boost-Log和全局严重性记录器。分析显示boost::log::v2s_mt_posix::core::open_record最多可以占用总执行时间的25%。我确实有很多日志消息,但我不认为它们会如此昂贵,因为它们是较低的严重性,它们被过滤。有没有办法让这些消息在运行时的开销不那么大?(再次强调:我希望即使在过滤时也会有很小的开销,当然在未过滤时开销会更大)。通过创建一些包装器宏,编译时相对容易“解决”这个问题。更新了示例工作代码:#include#include#include#include#include#include#include

c++ - 如何使用 boost.log 以 dec 格式打印 ProcessID 和 ThreadID

我在我的程序中使用boost.log,默认格式化程序以十六进制格式输出进程ID和线程ID,任何人都知道如何以十进制格式打印它们,谢谢。这是我的代码的github:https://github.com/owenliang/boost_asio,谢谢。boost::log::formatterscope_formatter=boost::log::expressions::stream("TimeStamp","%Y-%m-%d%H:%M:%S")("ProcessID")("ThreadID")("Severity") 最佳答案 Bo

c++ - constexpr log10 整数函数

所以我需要log10功能来查找存储给定整数所需的字符数。但我想在编译时获取它,以根据我的代码中定义的这些整数常量静态确定char数组的长度。不幸的是log10不是constexpr函数,即使是整数版本也是如此。我可以像这样制作一个完整的版本:templateconstexprenable_if_t,size_t>intlen(Tparam){size_tresult{1U};while(T{}!=(param/=T{10}))++result;returnresult;}这最终将允许我这样做:constcharfoo[intlen(13)+1U]是否c++已经为此提供了一个工具,还是我

c++ - Log4cplus真的这么慢吗?

我一直在用C++测试我的日志子系统的三个选项。一个是Log4cplus,一个是Pantheios,最后一个是我们自己编写的简单日志记录库。Log4cplus比其他两个慢得多。以下是记录1,000,000个日志条目的结果:log4cplus:200秒编辑:设置缓冲区大小将其减少到120秒我的记录器:55秒Pantheios:35秒我想知道我是否遗漏了任何性能调整。我应该补充一点,我一直在使用根记录器,我正在记录到文件并记录:LOG4CPLUS_INFO(rootLogger,"用文本替换我!");谢谢,礼萨 最佳答案 在perform

c++ - 为什么我不能在 std::transform 中使用 std::get<0>?

在尝试编译以下将复制map的代码时vector的键:mapmss;vectorvs;transform(mss.begin(),mss.end(),back_inserter(vs),get);VS2013分不清哪个get是有意的,但这种更简单的用法效果很好:vs.push_back(get(*mss.begin()));指定get没有帮助。我错过了什么? 最佳答案 std::get有很多重载,此外,其中每个都是一个函数模板本身,因此编译器无法在您请求其中一个地址的调用站点上分辨出您想要哪个。如果你坚持使用std::get,你需要使

c++ - 为什么 ofstream ("log.txt", ios::app|ios::trunc);总是失败?

以下代码是在Windows7x64上使用VC++2012年11月CTP编译的。#includeusingnamespacestd;intmain(){ofstreamfout("log.txt",ios::app|ios::trunc);if(!fout){coutThecppreference.comwebsite并没有说ios::app不能与ios::trunc组合。ios::app和ios::trunc的确切语义是什么? 最佳答案 传递这些标志的filebuf构造函数†具有基于C++11表132中定义的那些标志的行为:+---

c++ - 元组的 std::transform 等价物

我想要一个行为类似于std::transform的函数对于元组。基本上要实现的功能是templatevoidtuple_transform(Tuple&&source,Tuple&&target,Funcf){//elementsof`target`tibecome`f(si)`,where//siisthecorrespondingelementof`source`};我相信要实现这一点,我需要一个编译时整数范围结构,它是std::index_sequence的概括。我已经实现了它here与cti::range.我也相信this编译时间遍历的类型在这里是理想的:templatevoi

c++ - g++-4.8 中缺少 AVX 日志内在函数 (_mm256_log_ps)?

我试图在我的代码中使用一些AVX内在函数,但遇到了对数内在函数的障碍。使用适用于Linux的IntelIntrinsicsGuidev3.0.1,我看到内在_mm256_log_ps(__m256)被列为“immintrin.h”的一部分,并且在我当前的arch上也受支持。然而,尝试编译这个简单的测试用例失败并显示“错误:‘_mm256_log_ps’未在此范围内声明”这个例子是用g++-4.8-march=native-mavxtest.cpp编译的#includeintmain(){__m256i;_mm256_log_ps(i);}我是否遗漏了一些基本的东西?某些内在函数是否不受

c++ - Boost.Log 配置文件

我正在向旧的C++程序添加日志记录。经过一番研究,我决定使用BoostLog.该文档充满了创建接收器和过滤器的示例。但是,我找不到任何日志配置文件的示例。有没有办法从一个不需要编译的文件配置日志记录?类似于log4net有什么?还是Python(好吧,反正Python还没有编译...)? 最佳答案 终于找到了官方文档,不是最近才加的,就是隐藏的太好了,之前没看到:http://www.boost.org/doc/libs/1_57_0/libs/log/doc/html/log/detailed/utilities.html#log