草庐IT

static-variables

全部标签

c++ - static_cast wchar_t* 到 int* 或 short* - 为什么它是非法的?

在MicrosoftVC2005和g++编译器中,以下会导致错误:在win32VC2005上:sizeof(wchar_t)为2wchar_t*foo=0;static_cast(foo);结果errorC2440:'static_cast':cannotconvertfrom'wchar_t*'to'unsignedshort*'...在MacOSX或Linuxg++上:sizeof(wchar_t)为4wchar_t*foo=0;static_cast(foo);结果error:invalidstatic_castfromtype'wchar_t*'totype'unsignedi

java - c++ static 关键字对大括号有什么作用?

我在某处找到了这段代码,perlin噪声发生器,我认为:static{for(inti=0;i静态在那里做什么?它也在很多其他地方被发送垃圾邮件......代码实际上到处都是用静态{}构建的。我在某处丢失了原始代码,所以这是我唯一拥有的东西,但就像上面的代码一样:那里没有变量声明,这就是我不明白的原因。 最佳答案 我认为这是Java,而不是C++,这意味着它是一个staticinitializationblock. 关于java-c++static关键字对大括号有什么作用?,我们在Sta

c++ - 使用 g++ 和 clang++ 对 condition_variable 进行虚假唤醒

采用以下代码:#include#include#include#include#includeusingnamespacestd;intmain(){mutexm;condition_variablec;boolfired=false;inti=0;//Thisthreadcountsthetimesthecondition_variablewokeup.//Ifnospuriouswakeupsoccuritshouldbecloseto5.threadt([&](){unique_lockl(m);while(!fired){c.wait_for(l,chrono::millise

C++ lambda : Access static method in lambda leads to error 'this was not captured for this lambda function'

考虑以下代码://thisiswhatIwanttocall;Icannotmodifyitssignaturevoidsome_library_method(void(*fp)(void));classSingleton{public:staticSingleton*instance();voidfoo();voidbar();private:Singleton();};voidSingleton::foo(){//thisleadstoanerror('this'wasnotcapturedforthislambdafunction)void(*func_pointer)(void

c++ - 写static const uint变量和匿名枚举变量有什么区别?

正在查看boostasiossl_client.cppexample并在顶部找到了这个:enum{max_length=1024};想知道,这个和有什么区别吗namespace{constintmax_length=1024;}或staticconstintmax_length=1024;或者也许它们是绝对相等的,但这只是更短? 最佳答案 如果您将它用作值而不是引用,它们是等价的。enum{constantname=initializer};习语曾经在头文件中非常流行,因此您可以在类声明中毫无问题地使用它:structX{enum{

c++ - header 中的 private static const 成员变量与 cpp 中的 const 变量

为什么我应该在header中声明一个私有(private)的staticconst变量(并在cpp中初始化它)而不是仅仅在cpp中定义+声明它?即案例1.hclassMyClass{...private:staticconstMyTypesome_constant;}case1.cppconstMyTypeMyClass::some_constant=...;案例2.h//Nomentionofsome_constantatall案例2.cppconstMyTypesome_constant=...;假设遵循常见的c++约定(1个header和cpp仅与1个类相关联,从不与#inclu

c++ - 为什么定义静态成员变量时不遵循定义顺序?

我知道不同翻译单元的静态变量初始化顺序的问题。但是,我的问题是在一个翻译单元内,实际上是在一个结构内:templatestructSlidingTile{usingAllActions=std::array;usingAllMDDeltas=std::array;intmdDelta(inti)const{returnmdDeltas_[i];}staticAllActionscomputeAllActions(){std::coutconsttypenameSlidingTile::AllActionsSlidingTile::allActions_=SlidingTile::com

c++ - Visual Studio 2008 : how to pause the running program to see a variable value?

我已经开始了一个很长的循环,我不想重新开始(已经运行了3个小时,我计算它只运行了1个小时),我担心我的程序运行不正确,因为它花了这么长时间长。我太愚蠢了,无法为自己实际输出任何状态值(我认为这不会花费3个该死的小时)。那么,当程序以“发布”模式从visualstudio启动时,是否有某种方法可以监视一个特定的变量值? 最佳答案 你要做的是附加到正在运行的进程加载代表项目的解决方案工具->附加到流程选择正在运行的进程并点击附加点击IDE上的暂停按钮停止进程或设置断点此时你将在调试器中崩溃并能够检查正在运行的程序

c++ - C++ 中的 'static' 关键字

我意识到它在超出范围后保留了值(但变得无法访问),但我有几个问题。当人们说它在范围之外不可访问时,这只是意味着您不能在其标识范围之外更改值(它会出错)?我在考虑这段代码:#include"iostream"voidstaticExample();intmain(){staticExample();return0;}voidstaticExample(){for(inti=1;i我心想,在循环的每次迭代中,我都将“数字”变量设置为1。正如我最初预期的那样,它打印了1、2、3..10。编译器是否识别出将它设置为1的行是一个声明并忽略它的“更改”? 最佳答案

c++ - static const string 成员变量是否总是在使用前初始化?

在C++中,如果我想定义一些non-localconststring,可以在不同的类、函数、文件中使用,我知道的方法是:使用定义指令,例如#defineSTR_VALUE"some_string_value"const类成员变量,例如classDemo{public:staticconststd::stringConstStrVal;};//thenincppstd::stringDemo::ConstStrVal="some_string_value";const类成员函数,例如classDemo{public:staticconststd::stringGetValue(){ret