草庐IT

接受端

全部标签

c++ - boost::asio::acceptor - 在旧连接仍然打开时接受新的传入连接

我正在编写基于boostasio的代理服务器。在负责接受从浏览器到代理服务器的传入连接的代码部分,我面临着我不完全理解的行为。所以-我正在使用下一个构造函数创建接受器对象:_acceptor(_io_service,boost::asio::ip::tcp::endpoint(boost::asio::ip::tcp::v4(),port),true)从这里开始收听(start_accept):_new_connection.reset(newconnection(*_io_services.front(),_connection_id));_acceptor.async_accept

c++ - 为什么 C++ 模板接受数组并不比一个接受指针 (bis) 更专业?

引用thisquestion,它确实具有相同的标题,但我在标准中找到了答案。我继续深入研究这个主题,并最终找到了一个示例代码,该答案不适用。让我们考虑这段代码:templatevoidfunc(T*buf);//templateItemplatevoidfunc(char(&buf)[N]);//templateIIvoidg(char(&buf)[3]){func(buf)//Error:ambiguousfunctioncall(Clang,GCC,ICC,MSVC)}根据[temp.func.order]中的偏序规则和[temp.deduct.partial],templateI

c++ - GCC 4.4.1 是否因不接受 ctor-initializer 中的注入(inject)类名而出现错误?

GCC4.4.1拒绝在ctor-initializer中找到我的injected-class-name:templatestructBase{Base(intx){}};structDerived:Base{Derived():Base(2){}};intmain(){Derivedd;}test2.cpp:Inconstructor"Derived::Derived()":test2.cpp:9:error:class"Derived"doesnothaveanyfieldnamed"Base"test2.cpp:9:error:nomatchingfunctionforcallto

c++ - gcc 不接受默认模板参数中的包扩展

以下代码使用clang编译成功,但gcc失败:structfn{templatestaticconstexprboolcall(Args...){returntrue;}};templatestaticconstexprboolf=false;template...)>voidhoge(){}intmain(){}gcc5.1.0(-Wall-Wextra-std=c++14-pedantic)说prog.cc:10:52:error:expansionpattern'f'containsnoargumentpackstemplate...)>clang3.6.0和3.5.0没有错误。

c++ - 为什么在 void 函数中接受 return throw std::exception()?

我在return之后错误地粘贴了一个throw语句,最终结果如下:voidDXManager::initialize(conststd::shared_ptr&ctx_ptr){//...if(FAILED(result)){returnthrowstd::exception("Failedtoenumeratedisplaymodelist");}//...}我在注意到错误之前成功构建了解决方案,我很好奇哪个规范允许上述语法。通过阅读cppreference.com(在注释下),我明白了Thethrow-expressionisclassifiedasprvalueexpressio

c++ - 接受 STL_container_type<string>::iterator 的模板化参数

我有一个函数,其中有一个包含字符串的容器(例如vector、set、list),并且给定一个开始迭代器和一个结束迭代器,通过迭代器范围处理字符串。目前函数声明如下:templatevoidProcessStrings(ContainerIterbegin,ContainerIterend);现在这将接受任何符合实现operator*的隐式接口(interface)的类型,前缀operator++以及函数体中的任何其他调用。我真正想做的是像下面这样明确限制输入量的定义(伪代码警告):template::iterator>voidProcessStrings(Container::iter

c++ - 对于任意精度,是否有普遍接受的 GMP 替代方案?

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭8年前。Improvethisquestion在寻找BigInt库的过程中,我看到了这篇文章:CorC++BigIntlibraryonMicrosoftWindows接受的答案提到了GMP库,但其中一位评论者声称该库不会非常优雅地出错并且不适合生产代码。有人用这个库做过任何长期开发吗?有什么好的选择吗?提前致谢。

c++ - 为什么 std::function 在签名中接受 this 引用?

成员函数有一个隐含的this指针参数。为什么std::function接受这个签名,那么,这里的S是一个简单的类?(completesample)std::functionfunc=&S::foo;调用它也可以,并且可以区分对象:Ss1={5};Ss2={6};func(s1);//prints5func(s2);//prints6我通常期望的是它需要一个指针,它也能正常工作:(completesample)std::functionfunc=&S::foo;Ss1={5};Ss2={6};func(&s1);//prints5func(&s2);//prints6当隐式this参数是

c++ - 接受参数的函数指针

int(*ptr)(char(*ch)[]);上面的声明是什么意思?是不是意味着ptr是指向接受参数的函数的指针,该参数是指向返回整数的字符的指针数组?如何评价? 最佳答案 ptr是指向一个函数的指针,该函数接受一个参数,该参数是一个指向字符数组的指针,返回整数。 关于c++-接受参数的函数指针,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/17030281/

c++ - 标准算法比较器接受不同类型的对象是否合法?

AnanswerrecentlypostedonStackOverflow展示了为标准算法提供采用不同类型操作数的比较器的代码:2.Useacomparatorwithtemplatedoperator().Insteadofusingalambda,defineafunctorwithatemplatedoperator().structcomparator{templatebooloperator()(Tconst&lhs,Uconst&rhs)const{returnlhs.mCommonFieldThen,it'saseasyas:std::sort(aStructs.begi