小编tgo*_*art的帖子

生成下一个最大或最小可表示的浮点数而不会产生比特错误

给定一个任意有限的浮点数,有没有办法确定下一个可表示的浮点数?例如,给定1.0f,根据定义,下一个最大可表示的数字是1.0f + std :: numeric_limits <float> :: epsilon().有没有一种方法可以合成任何值的epsilon - 而不仅仅是1.0f - 而不需要依赖于对机器如何表示浮点值的位置和/或显式知识?

c++ floating-point

18
推荐指数
1
解决办法
1731
查看次数

weak_ptr的static_pointer_cast

在c ++ 0x中,对于std :: shared_ptr有一个std :: static_pointer_cast,但std :: weak_ptr没有等效的方法.这是故意还是疏忽?如果疏忽,我该如何定义合适的功能?

weak-ptr c++11

14
推荐指数
2
解决办法
4084
查看次数

在运行时从语法构建解析器

C++的许多(大多数)正则表达式库允许在运行时从字符串创建表达式.是否有人知道任何C++解析器生成器允许在运行时将表示为字符串的语法(最好是BNF)提供给生成器?我发现的所有实现都需要运行显式代码生成器,或者需要通过巧妙的模板元编程来表达语法.

c++ grammar parsing runtime parser-generator

10
推荐指数
1
解决办法
1684
查看次数

从输入中导出最小正则表达式

我有一个远程"代理",当递给一个字符串时返回"是"或"否".与这个代理进行通信是很昂贵的,所以我希望找到一个库,它允许我在给出正面和负面反馈的情况下迭代地构建正则表达式,同时对其构造有所了解.这将允许我在发送方缓存答案.

例如,假设我们用"good"查询代理并收到"yes".初始派生的正则表达式应该是"好的".

假设我用"goop"查询然后收到"是".我希望派生的正则表达式是"goo [dp]",而不是"good | goop".

等等.

我在派生的正则表达式中不需要回溯或任何其他花哨的非线性时间操作.据推测,生成的正则表达式将成为引擎盖下的DFA.有谁知道任何能够做到这一点的c/c ++正则表达式库?或者,为什么这是一个愚蠢的想法和更好的解决我的真正问题的原因也将是有用的.

c c++ regex dfa

9
推荐指数
2
解决办法
590
查看次数

在构造函数中指向this的弱指针

我理解通过从类的构造函数中调用shared_from_this()来获取shared_ptr是不可能的,因为该对象尚未构造.但是有可能从构造函数中获取对象的weak_ptr吗?一些提升论坛帖子讨论"weak_from_raw()"方法表明它可能是有可能的.

编辑:提升形式讨论weak_from_raw http://lists.boost.org/boost-users/2010/08/61541.php

c++ constructor boost shared-ptr weak-ptr

8
推荐指数
2
解决办法
4544
查看次数

从std :: tuple解压缩的值的返回值优化

是否有任何编译器能够通过std :: tuple对函数返回的多个值进行返回值优化?需要说明的是,在下面的代码中,是否有任何编译器能够避免不必要的副本?

std::vector<int> a;
std::list<float> b;
std::tie(a,b) = myFunctionThatReturnsAVectorAndList();
Run Code Online (Sandbox Code Playgroud)

c++ tuples return-value-optimization c++11

7
推荐指数
1
解决办法
476
查看次数

为什么在C++ 0x中没有为std :: weak_ptr定义std :: hash?

在阅读了关于operator <for std :: weak_ptr的讨论之后,我看不出有什么理由为什么定义std :: hash来使用std :: weak_ptr的控制块是行不通的.我也无法相信标准委员会忽视了这一点.有没有人阅读有关该主题的相关讨论?

编辑:讨论运营商<for std :: weak_ptr http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1590.html

hash weak-ptr c++11 stdhash

5
推荐指数
1
解决办法
749
查看次数

合作框架中Linux中线程数的实际限制

所以我知道我可以使用setrlimit和朋友增加Linux中进程的线程数.据,在线程的数量的理论极限是由存储器(某处大约100,000k)测定.对于我的使用,我正在考虑以协作方式使用FIFO调度程序,因此虚假的上下文切换不是一个问题.我知道我可以将活动线程数限制为核心数.我的问题是线程数量的实际限制是什么,之后调度程序中的假设开始被消除.如果我保持真正的合作风格是额外的线程"免费"?研究的任何案例或实际的例子都会特别有趣.

Apache服务器似乎是最适合这种情况的程序.有没有人有任何数字与他们在变得无用之前看到Apache产生了多少线程相关?

相关,但与Windows,先发制人代码有关.

c++ linux multithreading

5
推荐指数
1
解决办法
438
查看次数

Vtable放置完全纯虚拟类

根据我对C++规范的了解(有限),具有虚拟成员的类的vtable被放置在第一个非纯非内联虚拟方法的定义中.编译器如何处理从具有ALL纯虚方法(例如接口)的类继承的类?在这种情况下,vtable放在哪里?

c++ interface pure-virtual vtable

4
推荐指数
1
解决办法
1760
查看次数

Spring逗号分隔了bean引用列表

在Spring中,是否可以将逗号分隔的bean引用列表提供给另一个bean,理想情况下不需要任何自定义属性编辑器.此列表来自我无法控制的占位符.

例如(不起作用):

<bean id="bean1" class="java.lang.Integer />
<bean id="bean2" class="java.lang.Integer />

<bean class="customclass">
  <constructor-arg><ref bean="bean1,bean2" /></constructor-arg>
</bean>
Run Code Online (Sandbox Code Playgroud)

哪个与以下内容完全相同:

<bean id="bean1" class="java.lang.Integer />
<bean id="bean2" class="java.lang.Integer />

<bean class="customclass">
  <constructor-arg>
    <list>
      <ref bean="bean1"/>
      <ref bean="bean2"/>
    </list>
  </constructor-arg>
</bean>
Run Code Online (Sandbox Code Playgroud)

java spring

4
推荐指数
1
解决办法
1862
查看次数

std :: bind对std :: make_shared的调用

我正在尝试通过在std :: make_shared上调用std :: bind来创建一个返回shared_ptr的仿函数,但是语法超出了我,或者甚至可能不可能?假设MyBar的构造函数对MyFoo采用const引用,则类似于以下内容:

std::function<std::shared_ptr<MyBar>(const MyFoo &)> functor = std::bind(&std::make_shared<MyBar>, std::placeholders::_1);
Run Code Online (Sandbox Code Playgroud)

bind make-shared c++11

3
推荐指数
1
解决办法
1160
查看次数

如果需要支持物理页面,如何告诉Linux不需要将mmap()页面写入交换?

希望标题清楚.我有一块通过mmap()获得的内存.过了一段时间,我得出结论,我不再需要这个范围内的数据.不过,我仍然希望保持这个范围.也就是说,我不想调用mummap().我想成为一个好公民,而不是让系统交换超出需要.

有没有办法告诉Linux内核,如果给定的页面是由物理页的支持和如果内核决定它需要一个物理页面,也懒得写一个页面交换?

我想在幕后这个神奇的函数调用会破坏给定虚拟页面和物理页面之间的任何映射(如果存在),而不首先写入交换.

linux swap mmap pagefile virtual-memory

2
推荐指数
1
解决办法
658
查看次数