小编Ond*_*tík的帖子

为什么我需要17位有效数字(而不是16位)才能代表双倍数?

有人能给我一个浮点数(双精度)的例子,需要超过16个有效十进制数来表示它吗?

我在这个帖子中发现,有时候你需要多达17位,但我无法找到这样一个数字的例子(16对我来说似乎足够了).

有人可以澄清一下吗?

非常感谢!

c floating-accuracy

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

在Ubuntu 16.04中切换键盘布局时,setxkbmap设置丢失了

我使用以下方法将我的Caps Lock设置为Ubuntu 16.04中的Ctrl: setxkbmap -option 'caps:ctrl_modifier' 但是当我将键盘从En更改为Cs时,Caps Lock再次成为Caps Lock,而不是Ctrl.

要修复它,我必须setxkbmap从终端再次执行上述命令.

即使切换键盘布局,如何使设置永久化?

keyboard ubuntu ctrl capslock ubuntu-16.04

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

功能中的模板模板替换

我正在实现自己的UniquePtr,我想测试它具有相同的界面std::unique_ptr.所以我写了一个函数:

class A
{
  A() { }
  ~A() { }
};

class B
{
  B() { }
  ~B() { }
};


template <template <typename Type> class UPtr>
void test_unique_ptr_interface()
{
  UPtr<A> p1(new A);
  {
    UPtr<A> p2(std::move(p1));
    p1 = std::move(p2);
  }

  UPtr<B> p1(new B);
  {
    UPtr<B> p2(std::move(p1));
    p1 = std::move(p2);
  }
  ...
}
Run Code Online (Sandbox Code Playgroud)

然后我想这样称呼它:

test_unique_ptr_interface<std::unique_ptr>(); 
test_unique_ptr_interface<UniquePtr>();
Run Code Online (Sandbox Code Playgroud)

第一次调用测试std::unique_ptr通过测试,因此我正在测试正确的接口.第二个调用测试我自己的UniquePtr实现作为替代品.这个功能test_unique_ptr_interface会长很多,我刚发布了一个简单的例子.

但是,我收到一个错误:

error: no matching function for call to ‘test_unique_ptr_interface()’
   test_unique_ptr_interface<std::unique_ptr>();
Run Code Online (Sandbox Code Playgroud)

我应该如何声明该test_unique_ptr_interface()函数以便编译?

c++ templates

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

是应该通过函数的值还是通过"std :: string&s"作为参数返回std :: string?

为了从函数中返回一个字符串,这两个中的哪一个更有效(即我应该使用哪一个):

std::string f(const std::string& s)
{
    return s + "some text";
}
Run Code Online (Sandbox Code Playgroud)

要么

void f(const std::string& s, std::string &result)
{
    result = s + "some text";
}
Run Code Online (Sandbox Code Playgroud)

我明白答案可能取决于特定的编译器.但我想知道现代C++代码中推荐的方法(如果有的话)是什么.

根据下面的"轨道轻度竞赛"评论,这里是我问到这个问题之前在stackoverflow上找到的一些相关问题:

将const std :: string&作为参数传递的日子是多少?

通过Value或Reference传递std :: string

通过值或const引用?

"std :: string"或"const std :: string&"参数?(该参数在内部复制和修改)

这些都没有回答我关于从函数返回值而不是将字符串作为额外参数返回的特定问题.

c++ string performance c++11

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