小编Ale*_*exV的帖子

与编译时未解析的字符串文字进行比较

我最近发现了类似于以下几行的内容:

#include <string>

// test if the extension is either .bar or .foo
bool test_extension(const std::string& ext) {
    return ext == ".bar" || ".foo";
    // it obviously should be
    // return ext == ".bar" || ext == ".foo";
}
Run Code Online (Sandbox Code Playgroud)

该功能显然没有按照评论的建议去做。但这不是重点。请注意,这不是Can you use 2 or more OR conditions in an if statement? 因为我完全知道您将如何正确编写函数!


我开始想知道编译器会如何处理这个片段。我的第一个直觉是这将被编译为return true;基本上。将示例插入到Godbolt 中,表明 GCC 9.2 和 clang 9 都没有通过优化进行这种优化-O2

但是,将代码更改为1

#include <string>

using namespace std::string_literals;

bool test_extension(const std::string& ext) { …
Run Code Online (Sandbox Code Playgroud)

c++ string compiler-optimization c++14

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

在python中使用pdist(),并使用您定义的自定义距离函数

我一直对scipy.spatial.distance.pdist(...)python的使用感兴趣,这对我一直在研究的一些应用程序来说非常有用和快速.

我需要使用成对距离函数,它是自定义的而不是由度量定义的标准默认距离度量.让我们举一个简单的例子,假设我不想使用euclidean距离函数,如下所示:

 Y = pdist(X, 'euclidean')
Run Code Online (Sandbox Code Playgroud)

相反,我想自己定义欧几里德函数并将其作为函数或参数传递给pdist().如何将euclidean距离函数的实现传递给此函数以获得完全相同的结果.这个问题的答案将帮助我以我感兴趣的方式使用该功能.

在MATLAB中,我知道如何在python中使用`pdist()',我还没有.谢谢你的建议

python distance scipy

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

Python-Sphinx:来自超类的"继承"方法文档

编辑: 截至目前(Sphinx 1.4.9)似乎没有办法告诉Sphinx做我想做的事(参见GitHub上的问题).该接受的答案,从布莱希特Machiels解决以其他方式问题,直到狮身人面像可能是能够做到一天.

描述: 我正在尝试使用sphinx-apidoc记录Python项目.Sphinx配置几乎是默认的,我只是包括在内'sphinx.ext.autodoc'.

它一般工作,但派生类不会像我期望的那样继承其超类的方法文档.

示例: 考虑一个非常简约的Python包project.除了空__init__.py,它只包含一个文件(base.py见下文)

# -*- coding: utf-8 -*
import abc


class Superclass(object):
    """The one to rule them all"""

    @abc.abstractmethod
    def give(self, ring):
        """Give out a ring"""
        pass


class Derived(Superclass):
    """Somebody has to do the work"""

    def give(self, ring):
        print("I pass the ring {} to you".format(ring))
Run Code Online (Sandbox Code Playgroud)

运行sphinx-apidoc(sphinx-apidoc -o apidoc project -f)会生成以下文件:

python python-sphinx

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