在对不可复制变量(例如std::atomic<int>)执行成员初始化时,需要使用direct-initialization而不是copy-initialization根据此处的答案。然而,当我打开-std=c++17的g++ 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。这里哪一个是正确的?
我正在构建一个图像,同时需要测试 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) 我更喜欢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 呢?