小编Deq*_*ing的帖子

如何获取我的环境的当前区域设置?

曾尝试在Linux中使用以下代码,但始终在不同的LANG设置下返回"C" .

#include <iostream>
#include <locale.h>
#include <locale>
using namespace std;

int main()
{
    cout<<"locale 1: "<<setlocale(LC_ALL, NULL)<<endl;
    cout<<"locale 2: "<<setlocale(LC_CTYPE, NULL)<<endl;

    locale l;
    cout<<"locale 3: "<<l.name()<<endl;
}

$ ./a.out
locale 1: C
locale 2: C
locale 3: C
$
$ export LANG=zh_CN.UTF-8
$ ./a.out
locale 1: C
locale 2: C
locale 3: C
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能在Linux中获得当前的语言环境设置(比如Ubuntu)?

另一个问题是,在Windows中获取区域设置的方式是否相同?

c c++ locale

27
推荐指数
2
解决办法
3万
查看次数

为什么= {}初始化对元组不起作用?

对我而言,a pair只是a的特例tuple,但令我惊讶的是:

pair<int, int> p1(1, 2);   // ok
tuple<int, int> t1(1, 2);  // ok

pair<int, int> p2={1, 2};  // ok
tuple<int, int> t2={1, 2}; // compile error
Run Code Online (Sandbox Code Playgroud)

我们{}用来初始化时为什么会有区别tuple

我试过甚至g++ -std=c++1y但仍然有错误:

a.cc: In function 'int main()':
a.cc:9:29: error: converting to 'std::tuple<int, int>' from initializer list would use explicit constructor 'constexpr std::tuple<_T1, _T2>::tuple(_U1&&, _U2&&) [with _U1 = int; _U2 = int; <template-parameter-2-3> = void; _T1 = int; _T2 = int]'
     tuple<int, int> t2={1, …
Run Code Online (Sandbox Code Playgroud)

c++ tuples initializer-list c++11 list-initialization

25
推荐指数
2
解决办法
5478
查看次数

Visual Studio中下一个断点的快捷键

我正在使用Visual Studio,并希望使用键盘转到上一个/下一个断点.我查看了选项|环境|键盘,但没有找到这样的命令.

有办法吗?

keyboard-shortcuts breakpoints visual-studio

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

为什么新的std :: nothrow版本没有被广泛使用

根据C++参考,您可以通过以下方式新建一个对象:

MyClass * p1 = new MyClass;
Run Code Online (Sandbox Code Playgroud)

或者

MyClass * p2 = new (std::nothrow) MyClass;
Run Code Online (Sandbox Code Playgroud)

第二个将返回空指针而不是抛出异常.

但是,根据我的经验,我几乎看不到这个版本.

例如,谷歌不建议在他们的代码中使用异常,但我们可以看到他们没有在Chromium中使用nothrow版本.

是否有任何理由我们更喜欢默认的一个而不是一个?即使在没有使用异常的项目中?

- 编辑 -

跟进问题:我应该检查返回值malloc()吗?

看起来,相反,许多人建议检查malloc的返回值,有些人说是因为:

许多分配失败与内存不足无关.碎片可能导致分配失败,因为即使有足够的可用内存,也没有足够的连续空间可用.

这是真的?为什么我们在这种情况下对待malloc()new()不同?

c++ malloc exception new-operator

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

手动dispatchEvent DOMContentLoaded

有没有办法手动触发DOMContentLoaded事件?我正在尝试为一些客户端javascript编写单元测试,它在DOMContentLoaded事件上做了一些事情.

以下不起作用:document.dispatchEvent("DOMContentLoaded")或document.body.dispatchEvent("DOMContentLoaded");

javascript dom javascript-events

19
推荐指数
2
解决办法
9275
查看次数

混合隐式和普通规则的错误

在构建开源项目时,我遇到了以下错误:

make  subdir=manual -C manual ..=../ subdir_lib
Makefile:235: *** mixed implicit and normal rules.  Stop.
Run Code Online (Sandbox Code Playgroud)

Makefile第235行的代码如下:

235: $(objpfx)stubs ../po/manual.pot $(objpfx)stamp%:
236:    $(make-target-directory)
237:    touch $@
Run Code Online (Sandbox Code Playgroud)

makefile

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

如何安装到LocalAppData文件夹?

以下目录设置对我来说非常适合.

<Directory Id='TARGETDIR' Name='SourceDir'>
  <Directory Id="ProgramFilesFolder">
    <Directory Id='INSTALLDIR' Name='MyApp'/>
  </Directory>
</Directory>
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试将"ProgramFilesFolder"更改为" LocalAppDataFolder "时,在使用light链接和生成我的msi 时遇到了很多错误:

D:\runGroup.wxs(53) : error LGHT0204: ICE38: Component cmpA5561BE36D80EB58252E69DDA0C2FF8C installs to user profile. It must use a registry key under HKCU as its KeyPath, not a file. D:\main.wxs(38) : error LGHT0204 : ICE64: The directory INSTALLDIR is in the user profile but is not listed in the Remove File table.

看起来"LocalAppDataFolder"对于WiX来说是不可接受的,而我相信它是这里定义的系统文件夹属性之一.

我应该为LocalAppData文件夹使用什么?

installer windows-installer wix

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

gdb每次打破时都能打印一个特定的变量吗?

我需要检查一个变量,以确定它是否设置正确,这可能是在几个循环之后发生的.

我现在正在做的事情如下:

(gdb) b myfile.cpp:180
(gdb) c
(gdb) p decoder.m_msg
(gdb) c
(gdb) p decoder.m_msg
(gdb) c
...
Run Code Online (Sandbox Code Playgroud)

decoder.m_msg每次程序中断时,我都可以自动打印此变量吗?

gdb

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

删除数组中的重复项而不更改元素的顺序

我说有一个阵列 List<Integer> 139, 127, 127, 139, 130

如何删除它的重复并保持其顺序不变?即139, 127, 130

java arrays duplicates

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

如何避免递归函数的堆栈溢出?

例如,如果我们通过跟随函数遍历一个相当大的树,我们可能会得到堆栈溢出.

void inorder(node* n)
{
  if(n == null) return;
  inorder(n->l);
  n->print();
  inorder(n->r); 
}
Run Code Online (Sandbox Code Playgroud)

如何在函数中添加条件或某些东西以防止这种溢出发生?

c c++ stack-overflow recursion

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