草庐IT

c++ - C++11 : is there a simple way to seed the generator in one place of the code, 中的随机数然后在不同的函数中使用它?

在C++11之前,我使用rand()来自选择在main()中播种(或不播种)生成器非常简单函数(例如),然后在libraryA中使用由libraryB中某个函数生成的随机数。代码如下所示:LibraryB(生成随机数,老式的方式):#include//rand,RAND_MAXdoubleGetRandDoubleBetween0And1(){return((double)rand())/((double)RAND_MAX);}主程序:#include//srand#include//time,clockintmain(){booliWantToSeed=true;//orfalse,

c++ - 什么是 C++11 扩展 [-Wc++11-extensions]

我需要一些帮助来了解此错误发生的位置:warning:in-classinitializationofnon-staticdatamemberisaC++11extension[-Wc++11-extensions]这是它来自的代码部分:typedefstructHand{boolstraight=false;boolflush=false;boolfour=false;boolthree=false;intpairs=0;}Hand; 最佳答案 这不是错误,这是警告。它告诉您,您只能初始化以C++11标准(之所以这样称呼是因为它于

c++ - Visual Studio Code c++11 扩展警告

我正在学习C++,并且正在使用适用于Mac的VisualStudio代码。我使用CodeRunner来运行我的程序。我的问题是,当我使用c++11中的某些东西(如“auto”)进行变量声明时,visualstudio代码会给我这样的警告,但如果我尝试在Xcode或Eclipse上运行它,它不会:warning:'auto'typespecifierisaC++11extension[-Wc++11-extensions]for(autoy:nstrVec)如果有必要,这是程序:#include#include#include#include#include#includeintmain

c++ - 是否可以在不修改 C++ 的情况下使用 C11 原子包含 C header ?

我正在尝试编写使用thisClibrary在C++应用程序中未经修改。它使用C11原子。考虑以下程序,我们可以将其放入名为main.cc的文件中。#include"mpscq.h"intmain(){}如果我用g++-std=c++11-cmain.cc编译它,我会得到一整套错误,如下所示。usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdatomic.h:68:9:error:‘_Atomic’doesnotnameatypetypedef_Atomic__UINT_FAST32_TYPE__atomic_uint_fast32_t;^/usr/

c++ - 在 C++11 函数中使用尾随返回类型的优势

与普通返回类型相比,在C++11中指定尾随返回类型有什么优势?在此处查看foo1与foo2:intfoo1(){return1;}autofoo2()->int{return1;}intmain(){foo1();foo2();} 最佳答案 在这个例子中,它们的意思完全相同。但是,始终如一地使用尾随返回类型形式有一些优势(PhilNash称这些为"EastEndFunctions",因为返回类型位于东端)。使用参数。显然,在使用参数确定返回类型时,您必须使用尾随返回类型。templateautoprint(Tconst&t)->de

采用依赖于模板参数的 std::function 的 C++11 模板函数

我正在尝试编写一个接受依赖于模板参数的std::function的模板函数。不幸的是,编译器无法正确推导出std::function的参数。这里有一些简单的示例代码:#include#includeusingnamespacestd;voidDoSomething(unsignedident,unsignedparam){coutvoidCallFunc(Identident,Paramparam,std::functionop){op(ident,param);}intmain(){unsignedid(1);unsignedparam(1);//Thefollowingfailst

c++ - 是否可以定义一个 C++11 可变参数类模板,其可变参数基数取决于整数模板参数?

很抱歉问了这个令人费解的问题,但基本上这个想法很简单。我有一个可变类模板:templateclassA{...};我想要一个A类生成器,它接受一个整数模板参数N并实例化一个具有N个P3s参数的A类。喜欢:templateclassGenA:/*somehow*/:publicA{...};所以用法是://GeneratesAGenAa;我已经尝试过使用编译时递归和部分特化来做到这一点templateclassGenA:publicGenA{...}templateclassGenA:publicA{...}但是C++11不承认第二个模板是第一个模板的特化(因为它实际上是不同的)并且永远

c++ - 从 Xcode 链接到 Boost

我想使用Boost库编译一个Xcode(4.5.2版)项目。我已经在我的Mac上成功安装了Boost,我收到了以下消息:Thefollowingdirectoryshouldbeaddedtocompilerincludepaths:XXX/boost_1_52_0Thefollowingdirectoryshouldbeaddedtolinkerlibrarypaths:XXX/boost_1_52_0/stage/lib如何在Xcode中添加编译器包含路径和链接器库路径?非常感谢。 最佳答案 我应该提到以下是针对Xcode4.5

c++ - 在 C++11 中检查对象类型

我有继承自A的类B。classA{};classB:publicA{};我有三个对象。A*a=newA();A*a2=newB();B*b=newB();我想检查a是A类型的对象,a2是B类型的对象(不是A),b是B类型的对象。我试过输入比较,但没有给出正确答案。cout1cout1cout0cout0cout0cout1我尝试了动态转换,但出现了编译错误。B*derived=dynamic_cast(a);if(derived){cout(a2);if(derived){cout(b);if(derived){cout(a);^typename.cpp:31:34:error:can

c++ - 加速 C++ 练习 11-6

在ch11练习11-6中卡在了删除函数中。我已经销毁了对象,但我不知道如何使用分配器库中的释放来返回空间。请保释我。PS:这不是作业,但我在家练习下面是来自AcceleratedC++的代码,之后是我修改过的删除函数。谢谢`templateclassVec{public:typedefT*iterator;typedefconstT*const_iterator;typedefsize_tsize_type;typedefTvalue_type;typedefT&reference;typedefconstT&const_reference;Vec(){create();}explic