草庐IT

How-do-you-handle-authentication-

全部标签

C++ boost 日志记录 : how to zip logs?

我需要压缩由BoostLogging库生成的日志。我看到两种方法:将日志动态压缩为BZip或GZip-最好旋转时压缩日志(复制日志并压缩)。我该如何实现? 最佳答案 Boost具有gzipfilters,这可能是attachedtoaloggingsink. 关于C++boost日志记录:howtoziplogs?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/15410421/

c++ - 编译器如何传递 `std::initializer_list` 值? (或 : how can I get around a universal overload with one? )

Continuingmysaga,我意识到我可以使用单个std::initializer_list参数来重载我的访问函数:classarray_md{//...my_type&operator[](size_typei){/*Lotsofcode*/}my_typeconst&operator[](size_typei)const{/*sameLotsofcode,with"const"sprinkledin*/}my_type&operator[](std::initializer_listi){/*Lotsofdifferentcode*/}my_typeconst&operato

c++ - cpplint.py 和 cmake : how to specify include files

假设我有一个目录结构如下的项目:myproject├──.git[...]├──CMakeLists.txt└──src├──CMakeLists.txt├──foo.cc└──foo.h如果在src/foo.cc中,我包含像#include"foo.h"这样的头文件,然后运行​​Google的cpplint.py在它上面,它提示src/foo.cc:8:Includethedirectorywhennaming.hfiles[build/include][4]所以我将它包含为#include"./foo.h"。现在我收到另一个投诉:src/foo.cc:8:src/foo.ccsho

c++ - 内存屏障 : How to ensure initialization writes are seen by worker threads?

我对使用内存屏障/栅栏进行编程还很陌生,我想知道我们如何才能保证设置写入在随后在其他CPU上运行的辅助函数中可见。例如,请考虑以下内容:intsetup,sheep;voidSetupSheep()://RunonceCPU1:setup=0;...muchlaterCPU1:sheep=9;CPU1:std::atomic_thread_fence(std::memory_order_release);CPU1:setup=1;之后运行(不是并发),很多很多次:voidManipulateSheep():CPU2:intmySetup=setup;CPU2:std::atomic_t

c++ - 使用 native_handle() + pthread_cancel() 取消 std::thread

我正在将之前围绕pthreads的线程包装器转换为std::thread。但是c++11没有办法取消线程。尽管如此,我还是需要取消线程,因为它们可能正在外部库中执行非常冗长的任务。我正在考虑在我的平台中使用给我pthread_id的native_handle。我在Linux(Ubuntu12.10)中使用gcc4.7。这个想法是:#include#include#includeusingnamespacestd;intmain(intargc,char**argv){cout线程被pthreads抛出的异常取消。我的问题是:这种做法会不会有什么问题(除了不可移植)?

java - 从 C++ 调用 Java : how to catch/detect a fatal JVM error?

我正在开发一个C++程序(Win32、MSVisualStudio2008),它通过JNI创建一个JavaVM,如概述here.它在Java6和Java7上运行了很长时间。今天我安装了新版本的JRE;安装程序出了点问题,JRE损坏了。我注意到我的C++程序没有启动,也没有发出任何警告消息。调试程序显示它运行成功,直到调用JNI_CreateJavaVM;但是调用JNI_CreateJavaVM会导致程序立即终止。没有返回值,没有错误消息,什么都没有。是的,我知道我只需要重新安装JRE。但是尽管如此,我还是希望我的C++程序能够为这种情况做好准备。如果它无法创建JavaVM,它应该显示一

c++ - VS2013 : How to disable warnings for included header files outside of the project

在我的项目中,我包含了一个由外部库提供的头文件。使用/W3,所有内容都可以在没有警告的情况下编译。但是,我希望我的项目能够使用/W4进行干净地编译。这对我的代码来说没有问题,但外部header会发出大量警告。我知道我可以做这样的事情:#pragmawarning(push)#pragmawarning(disable:####)//includehere#pragmawarning(pop)但是有一长串要禁用的警告。有没有一种方法可以在包含此header时将警告级别设置回/W3,同时仍使用/W4编译我的其余代码?谢谢! 最佳答案 #

c++ - 铛 libTooling : How to find which header an AST item came out of?

在网上找到的clang工具示例总是在玩具示例上运行,这些示例通常都是非常简单的C程序。我正在构建一个对C++代码执行源到源转换的工具,这显然是一项非常非常具有挑战性的任务,但clang可以胜任这项任务。我现在面临的问题是,clang为任何使用STL的C++代码生成的AST非常庞大。例如,我有一些C++代码,clang++-ast-dump...|wc-l是67,018行可怕的AST官话!其中99%是标准库的东西,我打算在我的源到源元编程任务中忽略它们。所以,为了实现这一点,我想简单地过滤掉文件。假设我只想查看正在分析的项目header中的类定义(并忽略所有标准库header的内容),我

c++ - 排序 : Is this performance difference for real or am I doing something wrong?

我需要对很多由8个float组成的小数组进行排序。最初我使用的是std::sort但对其性能不满意,我尝试了由此生成的比较交换算法:http://pages.ripco.net/~jgamble/nw.html测试代码如下:templateboolPredDefault(constT&a,constT&b){returna>b;}templateboolPredDefaultReverse(constT&a,constT&b){returnavoidSort8(T*Data,bool(*pred)(constT&a,constT&b)=PredDefault){#defineCmp_S

C++ 模板元编程 : how to deduce type in expression pattern

我想要静态检查lambda的参数类型。我在下面编写了这段代码,它似乎产生了正确的结果。structB{};autolamBc=[](Bconst&b){std::coutconstexprautoArgType(R(ClosureType::*)(Arg)const)->Arg;templateusingArgType_t=decltype(ArgType(&T::operator()));//ArgType_tis"referencetoBconst"但是,我注意到,例如,标准库使用类模板特化从std::remove_reference中的引用类型中提取引用类型。所以我尝试了这种方法