草庐IT

localized_string

全部标签

c++ - 不合格的名称查找 : Why local declaration hides declaration from using directive

考虑这段代码:namespaceA{inti=24;}namespaceB{usingnamespaceA;inti=11;intk=i;//findsB::i,noambiguity}和basic.lookup.unqual.2:§6.4.1Unqualifiednamelookup[basic.lookup.unqual]Thedeclarationsfromthenamespacenominatedbyausing-directivebecomevisibleinanamespaceenclosingtheusing-directive;see[namespace.udir].F

c++ - strings.h 并用宏检查包装这个宏是否

我从Google搜索结果中推断出strings.h(来自here)适用于UNIX系统。我想用主机操作系统是否为Linux/UNIX的宏观检查来包装以下行。听到有关它的建议将不胜感激。提前致谢。#include 最佳答案 strings.h只包含几个函数,其中大部分只是标准库中函数的不同名称(例如bcmp()memcmp())。如果您的代码使用这些函数,而不是到处乱扔#ifdef为什么不编写您自己的集合呢?然后每个人都可以使用它们并愉快地免费进行条件编译。这是公共(public)领域中的一组未完全测试的函数,您可以自行承担使用风险:#

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

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

c++ - Mac OS X 和静态 boost 库 -> std::string 失败

我在使用GCC4.5的MacOSX10.6.6下遇到静态boost库(来自MacPorts的Boost1.45.0-2,编译为fat/universal(x86/x86_64)库)的一些非常奇怪的问题。错误信息是main(78485)malloc:***errorforobject0x1000e0b20:pointerbeingfreedwasnotallocated***setabreakpointinmalloc_error_breaktodebug[1]78485abort(coredumped)还有一小段会触发这个问题的示例代码:#defineBOOST_FILESYSTEM_

c++ - std::string 到 std::array?

将字符串转换为数组的推荐方法是什么?我正在寻找类似的东西:templatestd::arrayto_array(constV&v){assert(v.size()==N);std::arrayd;std::copy(v.begin(),v.end(),d.data());returnd;}C++11或Boost是否提供类似的东西?其他人如何做到这一点?每次我在项目中需要时都必须自己复制/粘贴这个函数,这似乎很愚蠢。 最佳答案 这看起来不错。C++11中没有这样的东西,我认为Boost中也没有。如果你不想把它到处粘贴,你可以把它放在一

c++ - std::string::max_size() 作为静态成员

为什么max_size不是std::string的静态成员?这可以编译,但我觉得奇怪的是所有字符串共有的属性只能通过字符串的实例访问:std::size_tmax_size=std::string().max_size();为什么会这样实现? 最佳答案 Whyisn'tmax_sizeastaticmemberofstd::string?因为max_size返回值取决于字符串实例内部使用的分配器实例。 关于c++-std::string::max_size()作为静态成员,我们在Stac

c++ - 为什么 boost::assign::list_of 不适用于 pair<string, vector<string>>?

我不明白为什么这不起作用(VisualC++2012):#include#include#include#includeusingnamespacestd;intmain(){pair>("^",boost::assign::list_of("rules"));}错误是:include\utility(138):errorC2668:'std::vector::vector':ambiguouscalltooverloadedfunctionwith[_Ty=std::string]include\vector(786):couldbe'std::vector::vector(std:

c++ - QtCreator 调试器不显示 std::string 的值

我试图调试我的小词法分析器并遇到了这个问题:QtCreator-Debugger不显示我的std::string-variable的任何内容。我尝试在控制台中对其进行调试,但得到了相同的结果,只是简单的结构信息。我前几天用的那个版本的QtCreator确实显示了字符串的内容。所有其他STL元素,如std::vector、std::map、std::multimap等显示正确的数据,只是std::string类不正确。经过几个小时的谷歌搜索后,我发现了很多描述pretty-print创建的网页,我解决这个问题的非常笨拙的方法并没有帮助。我有什么想法可以摆脱这个错误吗?注意:字符串变量的“

c++ - std::string 的 type_traits 段错误

从UsingSFINAEtocheckforglobaloperator收集信息和templates,decltypeandnon-classtypes,我得到了以下代码:http://ideone.com/sEQc87基本上,我将两个问题的代码结合起来,如果它有ostream声明,则调用print函数,否则调用to_string方法。摘自问题1namespacehas_insertion_operator_impl{typedefcharno;typedefcharyes[2];structany_t{templateany_t(Tconst&);};nooperatorstruct

使用JavaScript将base64String转换为可下载的文件

我想在单击链接时下载文件。untitled.pngJavaScript代码functiondownload(id,name,contenttype,filebyte){}看答案您可以使用此简单的下载功能,将其传递给您所需的URL,文件名和类型。functiondownload(url,filename,mimeType){return(fetch(url).then(function(res){returnres.arrayBuffer();}).then(function(buf){returnnewFile([buf],filename,{type:mimeType});}));}down