草庐IT

variable-declaration

全部标签

c++ - 有没有办法绕过 "returning reference to local variable"问题?

我有一个作业练习。我几乎可以肯定他们问的方式是无法解决的。但是,如果你们对下面提到的问题有任何解决方案,我很感兴趣,因为它似乎经常发生。说明不长,下面分享给大家:AmatrixS∈Rn×nisskewsymmetricifitholdsthatS(Transpose)=−S.DerivefromtheclassSquareMatrixfromthelecturetheclassSkewSymmetricMatrix.Useavectoroflengthn(n−1)/2tostorethematrixentries.Implementconstructors,typecastingand

c++ - Python API C++ : "Static variable" for a Type Object

我有一个关于静态变量和TypeObjects的小问题。我使用APIC包装一个c++对象(我们称它为Acpp),它有一个名为x的静态变量。让我们将我的TypeObject称为A_Object:typedefstruct{PyObject_HEADAcpp*a;}A_Object;TypeObject作为“A”附加到我的python模块“myMod”。我已经定义了getter和setter(tp_getset),这样我就可以从python访问和修改Acpp的静态变量:>>>importmyMod>>>myA1=myMod.A(someargs...)>>>myA1.x=34#usingth

C++ 零规则 & 什么是 "user-declared"构造函数?

根据LightnessRacesinOrbit的说明,我缩小了我的帖子范围。看完这篇文章:TheRuleofZero,我明白了最多,但我还是想解决一些我遇到的不明白的问题:1.看这个短语:IfthedefinitionofaclassXdoesnotexplicitlydeclareamoveconstructor,onewillbeimplicitlydeclaredasdefaultedifandonlyif:Xdoesnothaveauser-declaredcopyconstructor,andXdoesnothaveauser-declaredcopyassignmentop

C++ 内联函数 : declare as such, 是这样定义的,还是两者都定义?为什么?

以下代码段编译没有问题,即使foo被定义为内联但未声明为内联,bar被声明为内联但未定义为内联。intfoo();inlineintfoo(){return3;}inlineintbar();intbar(){return4;}inlineintfoobar();inlineintfoobar(){return5;}intmain(){//...}我的第一个问题:编译器是否将foo读取为内联?bar呢?这是C++标准规定的吗?我的第二个问题:以下哪一个是声明和定义内联函数的最佳实践?是foo吗?酒吧?还是foobar?为什么?inb4我阅读了一些与此相关的其他帖子,但没有一个直接回答我

c++ - 场景 : Global variables in DLL which is used by Multi-threaded Application

几个月前,我遇到了一个人(在orkut上)问的这个有趣的场景。虽然,我已经针对这个问题提出了一个“不可移植”的解决方案(已经用小代码对其进行了测试),但仍然想知道你们有什么要说的和建议的。假设,我创建了一个DLL,导出一些功能,用C++编写,用于单线程客户端。这个DLL声明了很多全局变量,一些可能是const变量(只读),其他的是可修改的。无论如何,后来情况发生了变化,现在我希望同一个DLL与多线程应用程序一起工作(无需修改DLL);这意味着,多个线程从DLL访问函数和全局变量,并修改它们……等等。所有这些都可能导致全局变量持有不一致的值。所以问题是,我们能否在客户端代码中做一些事情来

c++ - std::promise 是否在内部使用 std::condition_variable 来通知关联的 std::future?

我的问题是std::promise是否通过使用std::condition_variable通知关联的std::future?我搜索了std::promise的源代码并找到了这个website.但是我没有看到std::promise在其成员数据中有std::condition_variable。 最佳答案 这是libc++的答案。搜索condition_variable在只返回一个结果://lines531--538class_LIBCPP_TYPE_VIS_LIBCPP_AVAILABILITY_FUTURE__assoc_sub

c++ - SFINAE - 尝试确定模板类型是否具有返回类型为 'variable' 的成员函数

SFINAE有问题。我需要能够确定Type是否定义了成员函数operator->而不管其返回类型。示例如下。测试器中的这个类。它定义了返回类型为X*的operator->()。因此,我将不知道“X”是什么以在任何地方对其进行硬编码。templateclassPointerX{...X*operator->()const;...}此类尝试确定传入的T是否定义了方法operator->;不管operator->的返回类型是什么。templatestructHasOperatorMemberAccessor{templatestaticRGetReturnType(R(C::*)()cons

c++ - 链接 : fatal error LNK1104: cannot open file 'libcpmt.lib' after manually configuring the LIB environmental variable

我正在尝试从命令行使用clVisualStudio2010编译器。由于某些原因,我安装的VisualStudio2010无法正确配置INCLUDE和LIB目录,请参阅YetanotherpostonfatalerrorC1034:noincludepathset.如果我跑`vcvars32.bat`我收到以下错误消息:ERROR:CannotdeterminethelocationoftheVSCommonToolsfolder.然后我尝试手动设置这些环境变量。所以我创建了一个简单的bat文件,如下所示:SetINCLUDE="C:\ProgramFiles(x86)\Microsof

java - 在 C、C++ 和 Java 中提升/重新排序 : Must variable declarations always be on top in a context?

我读了一点hoistingandreordering,所以看起来JavaVM可能会选择提升一些表达式。我还阅读了有关在Javascript中提升函数声明的信息。第一个问题:有人可以确认提升是否通常存在于C、C++和Java中?还是它们都依赖于编译器/优化?我读了很多示例C代码,这些代码总是将变量声明放在顶部,在任何断言或边界条件之前。我认为在变量声明之前完成所有断言和边界情况会更快一些,因为函数可以终止。主要问题:变量声明必须始终在上下文中位于最前面吗?(这里有提升吗?)还是编译器通过首先检查这些独立的断言和边界情况(在不相关的变量声明之前)来自动优化代码?这是一个相关的例子:void

c++ - Qt 5 : unable to declare signal that takes rvalue reference

可能我遗漏了什么,但我找不到任何信号不能采用右值引用的信息。所以,我有一个包含以下信号声明的类:signals:voidmessageDecoded(HTDataMsg&&msg);当我尝试编译它时,出现错误:moc_htcodec.cpp:Instaticmemberfunction‘staticvoidHTCodec::qt_static_metacall(QObject*,QMetaObject::Call,int,void**)’:moc_htcodec.cpp:71:77:error:cannotbind‘HTDataMsg’lvalueto‘HTDataMsg&&’case