草庐IT

string-comparison-functions

全部标签

c++ - 将带有 unique_ptr 的可变 lambda 传递给 const& std::function

我有一个调度函数,它在主线程中执行给定的lambda。为了这个问题,假设它看起来像下面这样:voiddispatch(conststd::function&fn){fn();}我需要在不中断主线程的情况下在新线程中加载新对象。所以我执行以下操作:1)启动一个新线程并在线程内创建一个新的唯一指针,2)调用dispatch并将新的唯一指针传播到它所属的位置。std::unique_ptrfoo;//nullptr//dotheloadinginanewthread:std::threadt([&](){//inthenewthread,loadnewvalue"Blah"andstorei

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++ - include <string> 错误

我是c++的新手,正在编写教程。我已经完全复制了教程,但在编译时出现此错误:'Stringfilenotfound'对于行#include;有人可以告诉我如何修改吗? 最佳答案 Ok,soIchangedthenameofmyfilefrom.Cto.cppandthisparticularissueseemstohavegone.您似乎找到了解决方案,我添加这个是为了阐明为什么会发生这种情况。一些与IDE集成的编译器会处理.c文件作为C源代码.cpp(或.cc、.c++等)作为C++代码。当你编译.c文件,不包括C++支持,并且使

c++ - 什么是 'valid' std::function?

这里:http://en.cppreference.com/w/cpp/utility/functional/functionoperatorbool描述为:“检查存储的可调用对象是否有效”。大概默认构造的std::function是无效的,但这是唯一的情况吗?另外,它如何检查它是否有效?operator()引发std::bad_function_call的情况是否正是对象无效的情况? 最佳答案 它写得不好,你的困惑是有道理的。“有效”的意思是“有目标”。std::function在被分配了一个函数时“有一个目标”:std::fun

c++ - 我怎样才能得到一个返回自身的 boost::function (或其他通用函数包装器)?

我最近迷上了Erlang的基于角色的并发模型的简单性,并且正在研究用C++实现它的某些部分的想法。沿着这些思路,我也喜欢将有限状态机实现为一组表示状态的函数的想法,其中通过从一个函数到下一个函数的尾调用进行转换。我想在C++中尝试类似的东西。但是一个天真的实现很可能会遇到这样一个事实,即在我的编译器(带有-O0的GCC4.1)中进行尾调用最终会导致堆栈溢出。所以相反,我想做的是让每个状态/函数返回一个仿函数(下一个要进入的状态),并有一个底层循环,它只是顺序调用一个仿函数,然后调用返回的仿函数,然后调用仿函数因此返回,等等。类似的东西:typedef...context_t;//Ast

c++ - __glibcxx_function_requires 和 __glibcxx_requires_valid_range 宏是如何工作的?

templateinline_Tpaccumulate(_InputIterator__first,_InputIterator__last,_Tp__init,_BinaryOperation__binary_op){//conceptrequirements__glibcxx_function_requires(_InputIteratorConcept)__glibcxx_requires_valid_range(__first,__last);for(;__first!=__last;++__first)__init=__binary_op(__init,*__first);r

c++ - 检查 std::function 是否分配给 nullptr

我想知道是否有任何方法可以检查您分配给std::function的函数指针是否为nullptr。我期待!运算符来执行此操作,但它似乎仅在为函数分配了nullptr_t类型的内容时才起作用。typedefint(*initModuleProc)(int);initModuleProcpProc=nullptr;std::functionm_pInit;m_pInit=pProc;std::cout我编写了这个辅助函数来暂时解决这个问题。templatevoidAssignToFunction(std::function&func,T*value){if(value==nullptr){f

c++ - 使用 boost 检查 std::string 是否是有效的 uuid

我想使用boost检查给定的字符串是否是有效的UUID。这是我通过查看boost网站上的文档得出的结论:voidvalidate_uuid(conststd::string&value){try{boost::uuids::string_generatorstringGenerator;(void)stringGenerator(value);}catch(conststd::exception&ex){//...}}但是,这并不总是有效。如果我使用对于有效UUID来说太短的字符串调用该函数,则会按预期抛出异常。但是,如果我使用无效的UUID(例如00000000-0000-0000-

c++ - 我应该使用 operator+= 而不是 operator+ 来连接 std::string 吗?

我经常看到这个结构是有原因的吗:std::stringmyString=someString+"text"+otherString+"moretext";...而不是这个(我很少看到):std::stringmyString;myString+=someString+="text"+=otherString+="moretext";阅读std::stringAPI,在我看来operator+创建了很多临时对象(可能被编译器RVO优化掉了?),而operator+=变体仅append文本。在某些情况下,operator+变体将是可行的方法。但是,当您只需要将文本append到现有的非常量

c++ - 使用 float 给出 "call to overloaded function is ambiguous"错误

这个问题在这里已经有了答案:Referencetofunctionisambiguous[duplicate](2个答案)关闭6年前。我正在重载函数add(),但是当我使用float数据类型时它显示错误。但是,当我将其更改为double时,它工作正常。为什么float会导致错误?代码是:#includeusingnamespacestd;classstudents{private:inti;floatf;public:voidadd(intb){i=b;cout错误:Infunction'intmain()':[Error]callofoverloaded'add(double)'is