草庐IT

format-conversion

全部标签

c++ - clang-format:如何防止下一行的所有函数参数?

我有一个C++函数调用,我手动和有意格式化为这个:DoSomethingForAPurposeThatCausesALongFunctionName(arg_0,arg_1,arg_2);clang-format想像这样重新格式化它:DoSomethingForAPurposeThatCausesALongFunctionName(arg_0,arg_1,arg_2)我不想要这个。AllowAllParametersOfDeclarationOnNextLine似乎控制函数声明的这种行为,但是函数调用呢?有相应的设置吗?我的.clang-format看起来像这样:BasedOnStyl

c++ - 私有(private)转换函数导致 "ambiguous default type conversion"错误 (c++)

首先,一个演示问题的小例子:structBar{enumBaz{aa,bb,cc};Bazbaz_;operatorBaz()const{returnbaz_;}private:templateoperatorT()const;};intmain(){Barbar;switch(bar){caseBar::aa:break;caseBar::bb:break;caseBar::cc:break;default:break;}return0;}使用g++4.7.0编译此代码会出现以下错误:foo.cpp:Infunction‘intmain()’:foo.cpp:12:16:error:

C++ 错误 : Conversion to Execution Character set

问题是我试图在ASCII之外打印一些字符,例如德语变音字符、“ß”等。这些字符不适合普通的char变量,所以显然我试图将它们放在wchar_t中并用L"...."初始化字符串。但是每当这个字符串包含上面的一个字符时,我都会得到提到的错误,但是对于ASCII的所有其他字符都没有问题。u"....",U"......"也会发生这种情况,如果我使用u8"......"它不会产生错误但会打印垃圾。所以问题:如何从ASCII集之外打印这些字符和其他字符?无论如何,这个错误是什么意思?我可以打印字符的唯一方法是调用setlocale()将语言环境设置为环境默认值(德语),然后通过简单地创建一个包含

c++ - 使用 boost/format 的安全隐患是什么?

我开始使用boost/format。使用boost/format编码时,在安全方面需要注意什么?我可以在不担心安全的情况下执行以下操作吗?std::cout在什么情况下使用boost/format会出现安全问题? 最佳答案 你的例子是安全的。事实上,使用printf是安全的。和printf一样,Boost.Format只解析它的格式字符串一次,所以没有机会插入额外的格式说明符。将不完整的format对象传递给boost::format会引发异常。我猜你害怕的是formatstringexploits.我认为,使用Boost.Form

c++ - 这是什么意思? : note: no known conversion for argument 1 from ‘int’ to ‘const account&’

我试图理解我们通常在C++程序中遇到的错误的含义。在编译程序时我遇到了一个错误(我故意犯了这个错误,请不要告诉我如何更正它)并且存在一个注释:note:noknownconversionforargument1from‘int’to‘constaccount&’我想看懂这张纸条的意思。我的程序是:#includeclassaccount{private:inta_no;public:account(){a_no=0;}voidshowData(){std::cout我知道我还没有定义一个可以接受一个参数的构造函数,这样做会消除我的错误。好的,编译时我得到了:file1.cpp:Infu

C++, Linux : error: conversion from ‘boost::unique_future<void>’ to non-scalar type ‘boost::shared_future<void>’ requested. 如何绕过它?

我尝试使用boostthreadfutures.所以如图here我们可以得到sharedfuture来自packagedtask.所以我在linux上尝试这样的功能:templatevoidpool_item(boost::shared_ptr>pt){boost::shared_futurefi=pt->get_future();//error//...但调用它时出错:../../src/cf-util/thread_pool.h:Inmemberfunction‘voidthread_pool::pool_item(boost::shared_ptr>)[withtask_retu

c++ - 不使用 USES_CONVERSION 宏

我的这段代码在C++项目中使用了USE_CONVERSION宏...我想知道这是否写得好(不是我写的),如果没有USES_CONVERSION和W2A宏,是否有更好的方法。STDMETHODIMPCInterpreter::GetStringVar(BSTRbstrNamespace,BSTRbstrVar,BSTR*pbstrValue){USES_CONVERSION;try{if(!pbstrValue)returnE_POINTER;char*pszNamespace=W2A(_bstr_t(bstrNamespace).operatorwchar_t*());char*psz

c++ - 在 boost::lambda 中使用 boost::format

出于某种原因,我未能在boost::lambda中使用boost::format。这是我的代码的(希望)可编译的简化:#include#include#include#include#include#includenamespacebl=boost::lambda;intmain(){conststd::vectorv=boost::assign::list_of(1)(2)(3);std::for_each(v.begin(),v.end(),bl::var(std::cout)第一个std::for_each产生预期的输出第二个std::for_each只输出没有任何数字的空格这是

C++ 错误 : Conversion to Non-Scalar Type

这个问题不太可能帮助任何future的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况有关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visitthehelpcenter.关闭10年前。我似乎在下面的代码段中遇到了一个特殊的错误(忽略多余的头文件和空白的主函数,我只是想将这个问题隔离到一个可编译的.cpp文件中以便在这里发布)。它说从“[我定义的某些类型]”到非标量类型“[我定义的某些类型]”的错误转换。这个特定示例中的代码应该将一组字符串列表作为一个输入参数(命名输入),并将对字符串列表的引用作为另一个(命名输出)并计算最长的公共(p

c++ - ar 无法创建存档 : "File format not recognized"

我有这个makefilelibjackpot.a:jackport.ojackpot.oar-rcsjackport.ojackpot.ojackpot.o:jackpot.cppjackpot.hg++jackpot.cpp-std=c++11-O2-cjackport.o:jackport.cppjackpot.hjackport.hg++jackport.cpp-std=c++11-O2-c不知何故(在我的Linux机器上),我得到了ar:jackport.o:Fileformatnotrecognizedar--help给出ar:supportedtargets:elf64-x