小编Bjö*_*lex的帖子

如何使用Eclipse处理Boost.Test输出

我正在使用Eclipse CDT和Boost.Test(使用Boost.Build).我希望Eclipse解析在构建期间运行测试套件期间生成的Boost.Test的输出.
有谁知道如何实现这一目标?提前致谢

c++ unit-testing eclipse-cdt boost-test

8
推荐指数
1
解决办法
3522
查看次数

检查__eq__中的身份是否有意义?

为类实现自定义相等函数时,首先检查身份是否有意义?一个例子:

def __eq__(self, other):
    return (self is other) or (other criteria)
Run Code Online (Sandbox Code Playgroud)

这有趣的是其他标准可能更昂贵的情况(例如比较一些长串).

python equality

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

在长度为1的列表中解包1元组

假设我在这样的列表中有一个元组:

>>> t = [("asdf", )]
Run Code Online (Sandbox Code Playgroud)

我知道列表总是包含一个1元组.目前我这样做:

>>> dummy, = t
>>> value, = dummy
>>> value
'asdf'
Run Code Online (Sandbox Code Playgroud)

是否有更短更优雅的方式来做到这一点?

python tuples list iterable-unpacking

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

采用单个对象或可迭代的Python函数中的参数名称

我的代码中有一些函数接受一个对象或一个可迭代的对象作为输入.我被教导要为所有事情使用有意义的名字,但我不确定如何遵守这里.我应该将一个参数称为sinlge对象或可迭代对象?我提出了两个想法,但我不喜欢其中任何一个:

  1. FooOrManyFoos - 这表达了正在发生的事情,但我可以想象一个不习惯它的人可能无法立即理解它意味着什么
  2. param - 一些通用名称.这清楚地表明它可以是几件事,但没有解释参数的用途.

通常我将对象的迭代称为我称之为单个对象的复数.我知道这可能看起来有点强迫,但Python应该是(其中包括)可读性.

python naming-conventions

8
推荐指数
1
解决办法
1847
查看次数

如何对列表和集合进行成员资格测试?

我无法弄清楚为什么第一个断言是正常的,第二个引发错误.

subject_list = [Subject("A"), Subject("B"), Subject("C")]
subject_set = set()
subject_set.add(Subject("A"))
subject_set.add(Subject("B"))
subject_set.add(Subject("C"))

self.assertIn(Subject("A"), subject_list)
self.assertIn(Subject("A"), subject_set)
Run Code Online (Sandbox Code Playgroud)

这是错误:

Traceback (most recent call last):
  File "C:\Users\...\testSubject.py", line 34, in testIn
    self.assertIn(Subject("A"), subject_set)
AssertionError: <Subject: A> not found in set([<Subject: B>, <Subject: C>, <Subject: A>])
Run Code Online (Sandbox Code Playgroud)

Subject类中的相等性测试很简单self.name == other.name,在另一个UnitTest中我验证了Subject("A") == Subject("A").我真的无法弄清楚为什么主题在列表中而不在集合中.理想情况下,我希望这两个主题都存在.

python list set member

8
推荐指数
1
解决办法
1952
查看次数

所有不同尺寸类型如何相互关联?

目前我有一个场景,我想检查将给定字符串写入文件流是否会使文件超出给定大小(这用于日志文件轮换).现在,std::ofstream::tellp()返回一个streampos,但std::string::size()返回一个size_t.结果是,这不起作用:

out_stream.tellp() + string.size() < limit
Run Code Online (Sandbox Code Playgroud)

因为operator +这些类型显然存在模糊的重载.这引出了两个问题:

  1. 如何解决上述歧义?
  2. 如何各种不同类型的(size_t,streamsize,streampos,streamoff)之间的相互关系?什么时候可以安全地转换,以及可能存在的陷阱.我对这些类型感到困惑.我所知道的是,它们是依赖于实现的,并且它们提供了某些保证(例如size_t,总是足够大以容纳大型对象的大小,该大小对象将适合编译应用程序的体系结构的内存),但是它们是什么关于这些类型的互操作性的保证(参见上面的例子,或比较a streamsize到a size_t)?

c++ size-type

8
推荐指数
1
解决办法
2324
查看次数

如何使用""初始化std :: string?

我在使用""(即空字符串)初始化std :: string变量时遇到问题.它导致以前工作的代码中的奇怪行为.以下陈述是错误的吗?

std::string operationalReason = "";
Run Code Online (Sandbox Code Playgroud)

当我使用以下代码时一切正常:

std::string operationalReason;
operationalReason.clear();
Run Code Online (Sandbox Code Playgroud)

我相信字符串文字存储在一个独立于编译器的内存位置.我看到的问题实际上是否表明存储器已损坏?如果是这样,我将使用该clear() 函数隐藏它.

谢谢.

c++ stdstring

8
推荐指数
3
解决办法
4万
查看次数

std:numeric_limits <double> :: epsilon定义

numeric_limits::espilon返回1和下一个double之间的差值.那么,我是否应该理解两个相邻双打之间的距离并不总是相同,例如在2和下一个双精度之间?

如果是,我可以解释一下吗?

c++ double

8
推荐指数
1
解决办法
1683
查看次数

C++函数用于整数除法,具有良好定义的舍入策略

我想要一些C++中的东西,它允许我使用指定的舍入行为进行有效的整数除法,如下所示:

div_down(-4,3)        ==> -2
div_up(4,3)           ==> 2
div_to_zero(-4,3)     ==> -1
div_to_nearest(5,3)   ==> 2
Run Code Online (Sandbox Code Playgroud)

我希望它能够在编译时检测目标机器的行为并生成适当的最佳实现.类似于模数的东西也会很好,在编译时抽象出负操作数的未定义行为.

这存在吗?

如果没有,有什么好办法呢?我可以想到几种可能的方法:

  • 尝试将它们实现为静态优化的单个表达式
  • 使用常量表达式来检测目标行为并从多个实现中进行选择,使用模板进行选择(但具体如何?)

c++ c++11

8
推荐指数
3
解决办法
3167
查看次数

Java Practice:返回作为参数传递的相同对象

在下面的代码中,updateWithContex返回作为参数的相同对象是否真的是不好的做法?

class SomeClass{
   Foo updateWithContex(Foo foo){
       foo.setAppId(i);
       foo.setXId(index);
       //.....
       return foo;
   }
}

class Foo{

    public void setAppId(int appId)
    {
       //
    }
    public void setXId(int appId)
    {
        //
    }
    public void changeState(X x)
    {
       //
    }
}
Run Code Online (Sandbox Code Playgroud)

在C++中,我看到过这样的代码:

 BigObject&
   fastTransform( BigObject& myBO )
   {
      // When entering fastTransform(), myBO is the same object as the function
      // argument provided by the user. -> No copy-constructor is executed.
      // Transform myBO in some way
      return myBO;   // Transformed myBO …
Run Code Online (Sandbox Code Playgroud)

java

8
推荐指数
1
解决办法
6530
查看次数