小编Mar*_*cka的帖子

在Javascript中绑定更多已绑定函数的参数

我试着对javascript的bind()如何工作进行排序.

如果我这样做,我会看到

var f = function (a) { ... }
var g = f.bind(obj);
g(1)
Run Code Online (Sandbox Code Playgroud)

然后用objas as this1as 调用f a.

我认为g是围绕f的包装函数.

但是,当我这样做

var f = function (a) { ... }
var g = f.bind(obj);
g.call(1)
Run Code Online (Sandbox Code Playgroud)

然后使用1as thisaundefined 调用f .

因此,似乎g不仅仅是一个简单的包装器,而且call以某种方式区分正常和绑定函数.

还有一件事是我不能多次部分应用一个函数.

var f = function (a) { ... }
var g = f.bind(obj);
var h = g.bind(1);
h();
Run Code Online (Sandbox Code Playgroud)

然后使用objas thisaundefined 调用f . …

javascript bind call

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

是否可以从 CMake 命令行更改 CMAKE_MODULE_PATH?

编辑:接受的答案实际上表明通常可以将 CMAKE_MODULE_PATH 设置为任何其他 CMake 变量,例如通过-DCMAKE_MODULE_PATH pathCLI 参数。在我的情况下,似乎有一些包含的 CMake 脚本调用set(CMAKE_MODULE_PATH /library_path),它会删除所有先前设置为变量的路径。这就是为什么我不能让变量做我想要它做的事情。如果其他人面临这种​​情况,我会将问题留在这里。


我正在构建一个使用 Protobuf 库的(第 3 方)项目(但这个问题是通用的)。我的系统在系统范围内安装了比项目兼容的更新版本的 Protobuf。所以我从源代码下载并编译了旧版本的 Protobuf。

该项目使用 CMake,在其 CMakeLists.txt 中,有:

find_package(Protobuf REQUIRED)
Run Code Online (Sandbox Code Playgroud)

但是,它会找到(不兼容的)系统安装。当然,CMake 不知道我对 Protobuf 的自定义构建。但是我该怎么说呢?

例如,我已经在其中创建了一个FindProtobuf.cmake文件,~/usr/share/cmake-3.0/Modules/并希望构建过程使用这个文件来查找 Protobuf。但是我没有成功地迫使 CMake 选择这个而不是系统一个。我认为原因从 CMake 文档中很明显find_package

该命令有两种搜索包的模式:“模块”模式和“配置”模式。当使用上述简化签名调用命令时,模块模式可用。CMake 在 CMAKE_MODULE_PATH 中搜索名为 Find<package>.cmake 的文件,然后是 CMake 安装。如果找到该文件,则由 CMake 读取并处理该文件。... 如果未找到模块且未提供 MODULE 选项,则命令进入配置模式。

所以,直到成功来改变CMAKE_MODULE_PATH,CMake的将刚刚拿起FindProtobuf.cmake安装到系统默认路径和永远不会进入“配置”模式,我大概可以使用CMAKE_PREFIX_PATH

对我来说重要的是不要编辑CMakeLists.txt它,因为它属于我不维护的第 3 方项目。

我尝试过的(都没有成功):

  • 调用CMAKE_MODULE_PATH=~/usr/share/cmake-3.0/Modules cmake ...(env. 变量不会“转移”到具有相同名称的 CMake 变量)
  • 调用cmake -DCMAKE_MODULE_PATH=~/usr/share/cmake-3.0/Modules …

cmake

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

C++:模板<class>是什么意思?

我正在尝试理解一些C++代码.我是一名经验丰富的Java程序员,正在努力学习C++.我已经阅读了一些关于模板的详尽文章,但没有人回答我以下模板规范的含义.

template<
    template<template<class> class, class> class VisualOdometryTT, 
    template<class> class NodeBuilderTT,
    class PoseGraphT> 
class VORosInterface{ ... };
Run Code Online (Sandbox Code Playgroud)

我不明白的部分是template<class>我认为某些类型规范缺失的地方.但代码编译没有问题.

c++ templates

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

有没有办法对clang-format / clang-tidy中的类成员/方法强制使用“ this-&gt;”?

我到处搜索,但可能使用了错误的术语。我还没有找到一个选择。

我发现的唯一问题是这个未解决的问题(但是范围更广):CPP棉绒:您可以对类变量强制使用它吗?

c++ clang-format clang-tidy

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

在pyCharm上使用tensorflow

我是Deep Learning的新手,我刚刚在我的Mac上安装了tensorflow,但是,有一些问题.

我确信我安装成功,因为我可以使用python 3.5在终端上运行tensorflow

import tensorflow as tf  
node1 = tf.constant(3.0, tf.float32)  
node2 = tf.constant(4.0)  # also tf.float32 implicitly  
print(node1, node2)  
Run Code Online (Sandbox Code Playgroud)

我的bash上有一个输出

Tensor("Const:0", shape=(), dtype=float32) Tensor("Const_1:0", shape=(), dtype=float32)
Run Code Online (Sandbox Code Playgroud)

但是,当我import tensorflow as tf在PyCharm的Python控制台上运行时.出现问题:

>>> import tensorflow as tf
ImportError: No module named 'tensorflow'
Run Code Online (Sandbox Code Playgroud)

bash pycharm python-3.x tensorflow

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

如何在奇点构建中利用主机缓存?

我正在寻找优化奇点 HPC 容器构建时间的方法。我知道通过逐层构建它们可以节省一些时间。但仍然有优化的空间。

我感兴趣的是使用/缓存主机系统上有意义的任何内容。

  1. CCache 用于 C++ 构建工件缓存
  2. git 仓库克隆
  3. APT包下载

我做了一些实验,但在任何一点上都没有成功。

到目前为止我发现了什么:

缓存

我在容器中安装 ccache 并指示构建系统使用它。我知道因为我正在使用singularity buildsudo 运行,所以缓存将位于/root. 但运行构建后,/root/.ccache却是空的。我验证了生成的 CMake 构建文件,它们肯定使用了 ccache。

我什至创建了一个测试配方,其中包含%post

touch "$HOME/.ccache/test"
Run Code Online (Sandbox Code Playgroud)

但测试文件没有出现在主机系统上的任何地方(不在/root我用户的家中)。构建步骤是否挂载容器支持的目录而/root不是主机的根目录?

使用 ccache 还需要做些什么吗?

git

人们建议运行例如 git-cache-http-server (/sf/answers/3055053571/)并使用git config --global url."http://gitcache:1234/".insteadOf https://.

由于奇点可以读取主机文件系统的部分内容,我认为甚至可以有一种方法让它在没有代理程序的情况下工作。但是,如果主机 git 存储库不在$HOMEor内部/tmp,奇点如何在构建期间访问它们?singularity build没有--bind标志来指定其他安装目录。使用%files配方中的部分听起来效率很低 - 每次运行构建时都要复制所有内容。

易于

人们建议使用例如squid-deb-proxy(https://gist.github.com/dergachev/8441335)。同样,由于奇点能够读取主机文件系统文件,我想只利用主机的/var/cache/apt. 但/var默认情况下并没有挂载到容器上。/var/cache/apt那么同样的问题又来了——如何在容器构建期间挂载。总体而言这是一个好主意吗?鉴于主机和容器都基于相同版本的 …

caching ccache singularity-container

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