小编zin*_*dle的帖子

C ++ 17中不可复制变量的成员初始化

在对不可复制变量(例如std::atomic<int>)执行成员初始化时,需要使用direct-initialization而不是copy-initialization根据此处的答案。然而,当我打开-std=c++17g++ 7.4.0,似乎后者也是行之有效的。

#include <atomic>

class A {
    std::atomic<int> a = 0;     // copy-initialization
    std::atomic<int> b{0};      // direct-initialization
};
Run Code Online (Sandbox Code Playgroud)
$ g++ -c atomic.cc -std=c++11    // or c++14
atomic.cc:4:26: error: use of deleted function ‘std::atomic<int>::atomic(const std::atomic<int>&)’
     std::atomic<int> a = 0;     // copy-initialization

$ g++ -c atomic.cc -std=c++17
// no error
Run Code Online (Sandbox Code Playgroud)

与编译时,它也没有g++ 6.5.0,甚至有-std=c++17。这里哪一个是正确的?

c++ initialization language-lawyer copy-elision c++17

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

使用 cuda 运行时构建 docker 镜像

我正在构建一个图像,同时需要测试 GPU 可用性。GPU 容器运行良好:

$ docker run --rm --runtime=nvidia nvidia/cuda:9.2-devel-ubuntu18.04 nvidia-smi
Wed Aug  7 07:53:25 2019
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 396.54                 Driver Version: 396.54                    |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  TITAN X (Pascal)    Off  | 00000000:04:00.0 Off |                  N/A |
| 24%   43C    P8    17W / 250W |   2607MiB / 12196MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU …
Run Code Online (Sandbox Code Playgroud)

docker nvidia-docker

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

动态选择git pager

我更喜欢diff-so-fancy通过设置来用作我的自定义 git 寻呼机.gitconfig

[core]
        pager = "diff-so-fancy | less --tabs=4 -RFX"
Run Code Online (Sandbox Code Playgroud)

但是在一些diff-so-fancy没有安装的机器上,我怎么能回到原来的 git pager 呢?

git

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