草庐IT

builtin_object_size

全部标签

c++ - 使用省略号的回退函数 : can we force the size of the parameters pack?

考虑以下代码:#include#includestructS{templateautof(A&&...args)->decltype(std::declval().f(std::forward(args)...),void()){std::coutvoidf(...){std::cout(42);//->hasf(int)s.f(42);//->hasnotf(int)//oopss.f();//->hasnotf(int)}如示例所示,对f的第三次调用工作正常,即使参数数量错误,因为对于回退函数来说它根本没有错.当以这种方式涉及省略号时,有没有办法强制参数的数量?我的意思是,我可以在

c++ - std::span.size() 与数组/vector 大小

我们在工作中使用std::span()(目前使用gsl实现)。最近我们发现将std::span.size()与vector.size()进行比较会产生-Wsign-compare错误:if(span.size()>vector.size())//comparisonbetweensignedandunsignedintegerexpressions[-Wsign-compare]我认为我们不想对这些比较中的每一个进行转换。我们的编码指南将这些警告视为错误。想知道是否有人有任何想法或建议? 最佳答案 您可以使用迭代器并同时使用函数st

c++ - 对类型的非常量左值引用 - 使用 Class 类型的参数时 Objective-C++ 包装器中的错误

我有两个用Objective-C++编写的包装器类,用于它们等效的C++类。我们称它们为OABCClass和OXYZCallbackInterface。现在我在C++(ABCClass)中有一个方法,其中一个参数是一个接口(interface)-XYZCallbackInterface。例如:std::stringmethodWithArguments(std::stringreq,CommonNamespace::XYZCallbackInterface&callback);在我的Objective-C++包装器类中,即OABCClass我对上述C++方法的方法实现如下所示:-(NS

c# - 有没有支持C++和C#的ORM(Object Relational Mapper)框架

我正在寻找一个允许我编写C#用户界面和C++服务的ORM。两者都需要从同一个数据库访问数据。理想情况下,我希望从数据库模式生成C#和C++类,然后我可以根据这些模式进行编程。数据库可能是SQLServer,但尚未确定。注意:我在Windows环境中执行此操作,但由于我不想深入的原因,我实际上无法使用COM,因此COM解决方案不是一个选项。这类似于这个问题:ORM(objectrelationalmanager)solutionwithmultipleprogramminglanguagesupport但是,这个问题没有得到很好的回答,我无法为此筹集赏金。 最

c++ - 如何获取指向托管 activex 控件的 <object> 标记的 IHTMLElement 指针

我有一个由FireBreath框架(http://firebreath.org)生成的ActiveX控件。我需要在托管C++插件的页面中获取对标记的引用。如果我使用NPAPI,我会使用NPNVPluginElementNPObject常量和NPN_GetValue。为了确保我表达清楚,假设我在页面中有以下内容:我想获得对插件的引用,就像我使用document.getElementById("testPlugin")时一样,除了从为该mimetype插入的activex控件的C++代码中。请注意,将id作为传递对我来说不是一个好的选择,但如果有一种方法可以从activex控件内部获取ID

c++ - 如何使用 ARC 使 C++ 模板适用于 Objective C 类型?

举个简单的例子。如果我在没有ARC的情况下编译以下main.mm文件,它可以正常工作。#importtemplateinttesting(constT&whoCares){return0;}intmain(intargc,constchar*argv[]){returntesting(@"hello");}如果我用ARC编译它,会出现以下错误:/Users/sam/Projects/TemplateTest/TemplateTest/main.mm:10:12:error:nomatchingfunctionforcallto'testing'returntesting(@"hello

c++ - 如何将 Objective C 代码添加到 FireBreath 项目?

我正在为MacOS编写一个浏览器插件,它将在状态栏中放置一个状态栏图标,用户可以使用该图标与浏览器插件进行交互。我已经在XCode4.4.1中成功构建了一个FireBreath1.6项目,并且可以在浏览器中安装它。然而,FireBreath使用C++,而大多数现有的MacOS库都是用ObjectiveC编写的。在/Mac/projectDef.make文件中,我按照建议添加了CocoaFramework和FoundationFrameworkhere以及我在互联网上找到的其他资源:target_link_libraries(${PROJECT_NAME}${PLUGIN_INTERNA

c++ - Valgrind 在空析构函数上给出 "Invalid write of size 8"

我有一个声明:std::map*myMap;进入某个类A。这个映射是在A的构造函数中创建的:myMap=newstd::map;MyClass类基本上是一个结构,用于存储一些带有一些getter/setter的数据。MyClass中没有任何指针或新实例,只有一对枚举值、一个无符号整数和一个bool值。所以MyClass析构函数是空的。另一方面,在A的析构函数中我正在删除映射:A::~A(){if(myMap!=NULL){deletemyMap;myMap=NULL;}}这里Valgrind在删除行上告诉我“地址0x4c389b0是一个大小为48的block内的16个字节free'd[

c++ - &decltype(object)::memfn 是误用吗?

我上过这样的课:classTest{public:boolbar(int&i,charc)//someargumentsarepassedbyref,somearebyvalue{/*...*/}boolfoo(/*...*/){}};而且我不想重复调用bar1/bar2等然后一次又一次地检查返回值,所以我写了一个宏和可变参数模板来处理这些事情#definehelp_macro(object,memfn,...)help_func(#object"."#memfn,\object,&decltype(object)::memfn,##__VA_ARGS__)templatevoidhe

c++ - size_t 和 __w64、time_t 和 __int64 是如何工作的?

我不是C或C++的老手。我不知道time_t是如何定义和设计的。几个帖子,例如:Whatisultimatelyatime_ttypedefto?Whatissize_tinC?Differencebetweensize_tandstd::size_t但是这些帖子只说明什么是time_t或size_t。它没有明确说明time_t或size_t是如何以及在何处定义和声明的。我正在使用WIN8VS2012ExpressC++。我搜索了库,发现size_t是在crtdefs.h中定义的,而不是cstddef。为什么需要size_t、time_t这样的类型?我们可以让sizeof只返回unsi