小编cht*_*htz的帖子

使用非布尔返回值重载相等比较时,C++20 中的重大变化或 clang-trunk/gcc-trunk 中的回归?

以下代码在 c++17 模式下使用 clang-trunk 编译得很好,但在 c++2a(即将推出的 c++20)模式下会中断:

// Meta struct describing the result of a comparison
struct Meta {};

struct Foo {
    Meta operator==(const Foo&) {return Meta{};}
    Meta operator!=(const Foo&) {return Meta{};}
};

int main()
{
    Meta res = (Foo{} != Foo{});
}
Run Code Online (Sandbox Code Playgroud)

使用 gcc-trunk 或 clang-9.0.0 也可以很好地编译:https : //godbolt.org/z/8GGT78

clang-trunk 的错误和-std=c++2a

<source>:12:19: error: use of overloaded operator '!=' is ambiguous (with operand types 'Foo' and 'Foo')
    Meta res = (f != g);
                ~ ^  ~
<source>:6:10: …
Run Code Online (Sandbox Code Playgroud)

c++ language-lawyer eigen eigen3 c++20

14
推荐指数
3
解决办法
1057
查看次数

如何使用 Python (Django) 制作 SSE?

我有两个不同的页面,一个 (A) 显示从模型对象中获取的数据,另一个 (B) 更改其字段。我希望当发布数据从 B 发送到服务器时,服务器会更改 A 中的值。最好的方法是什么?

这个例子对我有用,但它是用 PHP 编写的……有没有办法用 Python 复制它? https://www.w3schools.com/html/html5_serversentevents.asp

python django django-models server-sent-events

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

在Eigen中复制模板化函数参数

我正在编写一个利用Eigen数据类型的通用类。我已经遇到了将构造函数参数分配给类成员变量的问题。我的代码的简化版本是:

template <typename Derived>
class A
{
public:
  Eigen::Matrix<Derived> M; // error C2976: too few template parameters

A(const Eigen::DenseBase<Derived> & V)
{
  M = V.eval(); // I would want to snapshot the value of V.
}
};
Run Code Online (Sandbox Code Playgroud)

我的问题是,现在M应该是哪种数据类型?我尝试了多种选择,例如:

Eigen::internal::plain_matrix_type_column_major<Derived> M;
Eigen::DenseBase<Derived> M;
Run Code Online (Sandbox Code Playgroud)

但是它们只会产生不同的错误。请注意,我使用C ++ 17并期望从构造函数中推断类模板参数。

c++ class-template eigen template-argument-deduction c++17

6
推荐指数
2
解决办法
620
查看次数

JavaScript - 使用部分通配符的 getElementsByName

我正在开发一个自动化项目,其中有一个带有搜索框的网络适配器,但没有搜索按钮,继续的唯一方法是按 Enter 键。我发现之前的一个线程提供了通过 ID 获取文本框元素的解决方案,但是在这种情况下,文本框 ID 是在每次页面加载时随机生成的。

文本框的名称也始终会更改,但名称结尾始终以 结尾_text

我尝试*_text在以下脚本中使用作为我的参数,但我不断收到错误。有什么想法我做错了吗或者有更好的建议吗?

eventname = "keydown"

elementID = "*_text"
Run Code Online (Sandbox Code Playgroud)
function os_RaiseEvent(eventname,elementId) {
    var element = document.getElementsByName(elementId)[0];
    var event;

    if(document.createEvent) {
        event = document.createEvent("HTMLEvents");
        event.initEvent(eventname, true, false);
        if(eventname == "keydown" || eventname == "keyup") {
            event.keyCode = 13;
        }
        element.dispatchEvent(event);
    }
    else if(document.createEventObject) {
        event = document.createEventObject();
        if(eventname == "keydown" || eventname == "keyup") {
            event.keyCode = 13;
        }
        element.fireEvent("on" + eventname, event);
    }
    return true;
}
Run Code Online (Sandbox Code Playgroud)

javascript automation element

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

同一架构的所有 CPU 都运行相同的汇编指令吗?

最近看到有人写ASM的视频,他们只提到代码是针对x86_64架构的,没有提到具体的CPU。在大学里,我被教导要查看CPU的指令集、OP代码、内存映射等...(特别是Intel 8051)所以我觉得很奇怪。

我有兴趣为我的 M 系列 MacBook 编写 Assembly,ARM64 Assembly 是否也可以在所有 ARM CPU 上运行?

x86 assembly arm instruction-set

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

Eigen LinSpaced - 不推荐使用的复制警告

在我的项目中,编译器抱怨以下(以及许多其他类似的)代码片段:

    Eigen::ArrayXf window =
            Eigen::ArrayXf::LinSpaced(2*M + 1, 0, M_PI)
            .head(2*M)
            .sin();
Run Code Online (Sandbox Code Playgroud)

警告信息很长且无法阅读,所以我不会在这里发布所有内容。触发的警告是-Wdeprecated-copy,警告消息的核心部分(在我看来)如下

warning: implicitly-declared ‘Eigen::Block<const Eigen::CwiseNullaryOp<Eigen::internal::linspaced_op<float, __vector(4) float>, Eigen::Array<float, -1, 1> >, -1, 1, false>::Block(const Eigen::Block<const Eigen::CwiseNullaryOp<Eigen::internal::linspaced_op<float, __vector(4) float>, Eigen::Array<float, -1, 1> >, -1, 1, false>&)’ is deprecated [-Wdeprecated-copy]
note: because ‘Eigen::Block<const Eigen::CwiseNullaryOp<Eigen::internal::linspaced_op<float, __vector(4) float>, Eigen::Array<float, -1, 1> >, -1, 1, false>’ has user-provided ‘Eigen::BlockImpl<XprType, BlockRows, BlockCols, InnerPanel, Eigen::Dense>& Eigen::BlockImpl<XprType, BlockRows, BlockCols, InnerPanel, Eigen::Dense>::operator=(const Eigen::BlockImpl<XprType, BlockRows, BlockCols, InnerPanel, Eigen::Dense>&) [with XprType = const Eigen::CwiseNullaryOp<Eigen::internal::linspaced_op<float, __vector(4) float>, Eigen::Array<float, -1, …
Run Code Online (Sandbox Code Playgroud)

c++ eigen c++11

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