小编tah*_*ith的帖子

什么时候是lambda琐碎的?

一个lambda什么时候保证是微不足道的,如果有的话?

我认为,如果它只捕获琐碎的类型或什么都没有,那将是微不足道的.我没有任何标准可以支持它.

我的动机是将一些代码从Visual C++ 12转移到14,并发现一些静态断言在处理lambdas时失败了我认为是微不足道的.

例:

#include <type_traits>
#include <iostream>
using namespace std;

int main()
{
    auto lambda = [](){};

    cout << boolalpha << is_trivially_copyable<decltype(lambda)>{} << endl;
}
Run Code Online (Sandbox Code Playgroud)

false在vs140上产生,但true在vs120和clang中产生.由于没有gcc> = 5,我无法测试gcc.我希望这是vs140的回归,但我不确定这里的正确行为.

c++ lambda type-traits c++11

33
推荐指数
2
解决办法
2472
查看次数

我如何暗示类型与打字相当

假设我想写一个比较排序函数,我可以提示输入必须是一个序列 with Sequence[T](或MutableSequence[T]在这种情况下)。

from typing import MutableSequence, T

def comparison_sort(s: MutableSequence[T]) -> None:
    pass
Run Code Online (Sandbox Code Playgroud)

然而,似乎没有一种开箱即用的方式来暗示T必须具有可比性。(似乎没有ComparableOrdered任何东西typing。)我怎样才能做到这一点?我想避免指定一组特定的类型,例如int, float, 'str` 以便用户也可以暗示他们自己的类型是可比较的。

python python-3.x

12
推荐指数
2
解决办法
3305
查看次数

c ++ 03 libstdc ++与c ++ 11中的虚假副本

考虑以下代码:

#include <iostream>
#include <string>
#include <map>

using namespace std;

class Foo
{
public:
   Foo() : _x(0) 
   {
       cout << "Default" << endl;
   }
   Foo(int a) : _x(a)
   {
      cout << "Param" << endl;
   }

   Foo(Foo const &foo) :
      _x(foo._x)
   {
      cout << "Copy" << endl;
   }

   Foo& operator=(Foo const &foo)
   {
      cout << "Assignment" << endl;
      _x = foo._x;
      return *this;
   }

   int get(void)
   {
      return _x;
   }

private:
   int _x;
};

int main(int argc, char *argv [])
{ …
Run Code Online (Sandbox Code Playgroud)

c++ libstdc++ c++11

6
推荐指数
1
解决办法
193
查看次数

为什么我的简单的有限假设检验永远不会停止?

我正在使用假设4.24.6和pytest-5.0.0运行测试套件。我的测试有一组有限的可能输入,但是假设从未完成测试。

我将其简化为以下最小示例,我将其作为 pytest test.py

from hypothesis import given
import hypothesis.strategies as st


@given(x=st.just(0)
         | st.just(1),
       y=st.just(0)
         | st.just(1)
         | st.just(2))
def test_x_y(x, y):
    assert True
Run Code Online (Sandbox Code Playgroud)

我希望它在这里尝试所有六个组合然后再成功。或者可能是检查薄脆性的一小部分。相反,它会无限期运行(在大约15分钟的测试后,我将其杀死了。)

如果我中断测试,追溯记录似乎表明它只是不断产生新的例子。

我在这里做错了什么?

python pytest python-hypothesis

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