草庐IT

c++ - 从 clang-format 样式中提取 emacs c 样式选项

一位同事为我正在处理的C++项目提供了一个clang格式的样式文件。我安装了clang-format.el为了能够从emacs格式化缓冲区。重新格式化按预期工作。不过,Emacs默认的c模式缩进仍然完全不同。我发现在编辑时破坏源代码格式并在以后恢复它非常令人不安。有什么方法可以读取clang格式的文件并应用相应的cc模式选项? 最佳答案 不知道有没有直接转换工具。但是,您可以尝试使用以下技巧:将项目中相当数量的C++文件连接成一个文件(例如cat*.cpp>single.cpp)将clang-format应用到single.cpp在

c++ - Qt:格式化QString中的整数

我想在QString中格式化一个整数.我想总是有6个数字。例如“1”应该是“000001”,“12”应该是“000012”。我试着用printf(%06d,number)来做.所以我写了这个QStringtest;test=QString("%06d").arg(QString::number(i));qDebug()i在循环中实现for.但它不起作用,因为我有:"0d""1d""2d""3d"...有人知道怎么做吗? 最佳答案 String的参数支持不像printf那样工作。这一切都记录在案。你想要的是:QStringtest=Q

c++ - 编写 c++ 函数 format_string 进行格式化,如 std::string 的 sprintf

为了方便使用,我想编写类似于sprintf的格式化函数,只返回std::string,如下所示:std::stringformat_string(constchar*format,...)我可以在那里使用vsnprintf但有问题-我事先不知道临时缓冲区应该有多长。Microsoft上有函数_vscprintf可以做到这一点,但我认为它不可移植?一个选项是让临时缓冲区开始一些已知的大小,然后如果发现它不够用vsnprintf增加它。有更好的方法吗?谢谢附言请在没有提升的情况下给出答案。我知道Boost,但我很好奇如何在没有Boost的情况下实现它。 最佳答案

基类的c++模板特化

我想要一个用于BASECLASS和所有派生类的特殊格式化程序。我有以下类(class):structBASECLASS{...};structSPECIALFORMAT:BASECLASS{...}structANOTHERSPECIALFORMAT:BASECLASS{...}templatestructLISTFORMATTER{listl;boolformat(){};}boolLISTFORMATTER::format(){...}LISTFORMATTERbcFt;LISTFORMATTERspFt;LISTFORMATTERaspFt;bcFt.format();//如何为

c++ - Qt - 获取 "warning: format not a string literal and no format arguments"

在这样的行上不断收到警告qDebug("Anerroroccuredwhiletryingtocreatefolder"+workdir.toAscii());workdir是QString()warning:formatnotastringliteralandnoformatarguments 最佳答案 大概应该是:qDebug("Anerroroccuredwhiletryingtocreatefolder%s",workdir.constData());自qDebug将constchar*作为第一个参数。

c++ - 有没有办法强制使用 "this->"用于 clang-format/clang-tidy 中的类成员/方法?

我到处搜索,但我可能用错了术语。我还没有为此找到选项。我唯一发现的是这个未回答的问题(但是有点宽泛):CPPlint:Canyouenforceuseofthisforclassvariables?. 最佳答案 鉴于existingoptions,我不相信这在clang-format中是可能的,future也不会。主要原因是程序的工作方式。它不会将C++代码解析为AST,而是将文本标记化而不需要包含(定义它的成员和全局变量)而不是编译数据库(影响定义、包含路径……)它是甚至可以给它一段代码并重新格式化。从问题的性质来看,如果它可以存

c++ - 自定义支持 __attribute__((format))

GCC和Clang都支持对可变参数函数(如printf)进行编译时检查。这些编译器接受如下语法:externvoiddprintf(intdlevel,constchar*format,...)__attribute__((format(printf,2,3)));/*2=format3=params*/在OSX上,Cocoa框架还使用了NSString的扩展:#defineNS_FORMAT_FUNCTION(F,A)__attribute__((format(__NSString__,F,A)))在我们公司,我们有一个自定义的C++框架,其中包含一堆类,例如BaseString,它

java - 在 c++/java 中创建 sql 查询?

您更喜欢哪种方法来创建动态sql查询?格式化或流式传输?仅仅是偏好还是有任何理由比另一个更好?或者您使用的任何特殊库。编辑:请在c++的情况下回答。 最佳答案 始终使用“prepare”,这里有一个与prepareStatement等效的函数,但确切的函数名称将取决于您的数据库和驱动程序组合。准备好的语句相对于execute(String)的优点有很多:-当“准备”语句被执行时,语句被解析并且访问计划只确定一次。这取决于你运行语句的次数导致更好的性能。传递字符串数据时无需担心字符串数据中的特殊字符设置字符串()。在execute(S

c++ - 如何修复 gcc -Wall "embedded '\0' in format"警告

这可能不是很重要,但我正在尝试修复g++提示的所有警告。在下面的代码中,我收到了snprintf()行的“embedded'\0'informat”警告。我该如何解决这个问题?intfilePathSize=path.size()+s.size()+1;charfilePath[filePathSize];snprintf(filePath,filePathSize,"%s%s\0",path.c_str(),s.c_str());提前致谢... 最佳答案 警告是有充分理由的:snprintf将认为\0标记字符串的结尾。如果您确实需

c# - 这是什么日期和时间格式?

我想知道是否有人知道这种时间格式:值635872032000000000表示2016年1月1日。值636502752000000000表示2017年12月31日。我用谷歌搜索了这个值,发现那个sharepoint也把它作为一个参数。有人知道格式、使用方法或来源吗? 最佳答案 这些日期以刻度表示:https://msdn.microsoft.com/en-us/library/z2xf7zzk(v=vs.110).aspxticksType:System.Int64Adateandtimeexpressedinthenumberof1