草庐IT

0x00000001

全部标签

c++ - C++、D 和 C++0x 之间的主要区别是什么?

很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭11年前。我们最近都更频繁地遇到和听到它们,我想在stackoverflow上对它们进行一些很好的比较。链接、引用和文章也很好。

c++ - C++0x 中是否有本地化支持的更新?

我使用C++语言环境方面的工作越多,我就越了解---它们已损坏。std::time_get--与std::time_put不对称(因为它在Cstrftime/strptime中)并且不允许使用AM轻松解析时间/PM标记。我discovered最近,简单的数字格式可能会在某些区域设置下产生非法的UTF-8(例如ru_RU.UTF-8)。std::ctype非常简单,假设可以在每个字符的基础上完成上/下(大小写转换可能会改变字符数并且它取决于上下文)。std::collat​​e--不支持排序强度(区分大小写或不区分大小写)。无法在时间格式中指定不同于全局时区的时区。还有更多...有人知道

C++0x 问题:恒定时间插入 std::set

根据thispage,如果我使用,我可以实现恒定时间插入iteratorstd::set::insert(iteratorposition,constvalue_type&x);我提供的position迭代器直接“先于”正确的(按顺序)插入点。现在我关心的情况是,如果我知道我要插入的值在最后(因为它是最大的),例如:setfoo={1,2,3};foo.insert(4);//thisisaninefficientinsert根据上述标准,我应该将最后一个元素foo.end()-1传递给insertnotfoo。结束()。我的理解正确吗?如果我通过foo.end()会发生什么?它是O(

c++ - 为什么 vtables 有 sizeof(void*) * 2 字节的 0x00 填充?

我想这是特定于实现的,但是对于使用libstdc++和libc++(gcc或clang)构建的armv7、arm64和x86_64,似乎vtables开头总是有8个字节(64位上为16个)的填充,并获取一个vtable通常看起来像这样:ldr.wr0,addsr0,0x8strr0,[r1];wherer1istheinstancevtable看起来像这样:vtable+0x00:0x00000000vtable+0x04:0x00000000vtable+0x08:0xfirstfuncvtable+0x0c:0xsecondfuncvtable+0x10:0xthirdfunc等.

c++ - 在即将到来的 c++0x 标准下,我们可以通过这种语法将数组作为参数传递给函数吗?

假设我们有以下函数:voidsomeFunction(int*araye){for(inti=0;i在即将到来的c++0x标准下,我们能否通过以下语法将数组传递给此函数?:someFunction({1,2,3,4,5});如果那是真的,我们甚至可以在任何情况下使用这种语法,其中数组元素来自POD类型,如下所示:classTest{intadad1;intadad2;};voidsomeFunction(Test*araye){for(inti=0;i编辑->根据人们所说:所以你们告诉大括号之间的表达式基本上将被视为initializer_list并建议使用一个额外的函数,从该init

c++ - 如何使用新的 c++0x regex 对象在字符串中重复匹配?

我有一个字符串:"hello1,hello2,hello17,anddone!"我想对它重复应用这个正则表达式:hello([0-9]+)并且能够以某种方式遍历匹配项及其捕获组。我已经在c++0x中成功地使用了“正则表达式”来找到字符串中某物的第一个匹配项并检查捕获组的内容;但是,在找到所有匹配项之前,我不确定如何在字符串上多次执行此操作。帮助!(平台是visualstudio2010,以防万一。) 最佳答案 不要使用regex_match,使用regex_search。您可以在此处找到示例:http://www.codeguru.

c++ - 如果包含 "-ansi"编译器选项,为什么我的 C++0x 代码无法编译?

我遇到了一个非常奇怪的错误,只有在我使用ansi标志时才会弹出。#includeclassTest{public:explicitTest(std::shared_ptrptr){}};这是编译,使用gcc4.5.2和4.6.0(20101127)测试:g++-std=c++0x-Wall-pedantic-ansitest.cpptest.cpp:6:34:error:expected')'before'但是不用​​-ansi编译也可以。为什么? 最佳答案 对于GNUC++编译器,-ansi是-std=c++98的另一个名称,它覆

c++ - std::swap 是否仍会通过在 C++0x 中包含算法来定义?

swap功能模板已从移出至在C++0x中。前者在C++0x中包含后者吗?或者它们是否都包含一个共同的header定义swap?换句话说,下面的代码是否保证可以在C++0x中编译?#include//willthispullinstd::swap?//...usingstd::swap;swap(a,b); 最佳答案 FDIS(n3290),在附件C,“兼容性”,C.2.7中说:17.6.3.2Effectonoriginalfeature:FunctionswapmovedtoadifferentheaderRationale:Remo

c++ - `#pragma once` 是否进入了 C++0x?

标题说明了一切。#pragmaonce是否针对C++0x进行了标准化?我不知道有哪个编译器不提供它的实现,几乎总是具有相同的语义和名称。 最佳答案 所有#pragma指令都会导致实现以实现定义的方式运行。这在C++03和最新的C++0x草案(n3225.pdf)之间没有变化。包括守卫是可移植替代品。 关于c++-`#pragmaonce`是否进入了C++0x?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.

windows - 样式 0x00000010 的用途

用Spy++监视WindowsXPRegedit后,我发现状态栏使用了未知样式0x00000010。我尝试使用或不使用此值制作自己的状态栏,但我看不出有什么不同。我觉得,这个款式少了CommonControlStyles值,因为commctrl.h中缺少此值。谁能解释这个值的用途? 最佳答案 经过一些研究,看起来这个常量被命名为CCS_NOHILITE。奇怪的是,它不在Win32头文件(commctrl.h)中,但它在(或曾经)在MFC头文件(winres.h)中。可能它存在于CommonControls的早期,它没有记录,但它通过