草庐IT

void_type

全部标签

c++ - C++中void函数的重复计时

我正在尝试为void函数计时for(size_tround=0;round第一个计时产生300秒,而接下来的四个计时产生0.000002秒。这表明对assign_clusters的void函数调用已被优化。我怎样才能强制我的程序每次都执行这个耗时的函数调用,同时仍然对其余代码进行优化?我通常做的是保存相关函数的结果然后打印它,但由于这是一个void函数,我是否有相同的选项?我使用以下优化标志:-std=c++0x-march=native-O2 最佳答案 这取决于需要花时间进行修复。这可能是由于:-加载服务。您的集群可能是基于数据库

c++ - T declval() 而不是 T && declval() for common_type

用std::declval不是更好吗?声明形式:templateTdeclval();//(1)然后是当前的:templateT&&declval();//(2)std::common_type(可能仅出于当前目的使用不同的名称)?common_type的行为使用(1)比使用std::decay_t时的行为更接近三元运算符(但未使用(2))的行为:templateTdeclval();templatestructcommon_type;templateusingcommon_type_t=typenamecommon_type::type;templatestructcommon_ty

c++ - 如何在没有确切类型信息的情况下从 void* 转换为虚拟基类?

这个问题在这里已经有了答案:Conversionfromvoid*tothepointerofthebaseclass(4个答案)关闭5年前。classA:publicX;classB:publicvirtualA;classC:publicvirtualA;classD1:publicB,publicC;classD2:publicB,publicC;void*p1=newD1;//afterstoringthepointers,void*p2=newD2;//therewillbenoexacttypeinfo.A*pA1=(A*)p1;//Cast1A*pA2=(A*)p2;X*

c++ - GCC 和 clang 中奇怪的构造和析构函数语法(void * 返回类型)

在编写一些C++代码(使用clang、x86_64linux进行编译)时,我不小心编写了以下结构:classClass{*Class(){}};即在构造函数名称前加上星号(*)。再尝试一下,我注意到您可以在前面放置任意数量的*;它也适用于析构函数,即classClass{********Class(){}********~Class(){}};Clang编译它没有任何错误或警告。但是GCC给出了警告controlreachesendofnon-voidfunction这让我相信我实际上是在声明一个返回类型为void*(或void********)的构造函数/析构函数。写任何类型的带有值

c++ - gcc 相对于在新表达式中解析 type-id 发出错误

这个程序#includeintmain(){conststd::size_tN1=2;conststd::size_tN2=3;int(**p)[N1]=new(int(*[N2])[N1]);}doesnotcompile使用编译器C++gccHEAD10.0.020190。编译器报错prog.cc:Inlambdafunction:prog.cc:8:40:error:expected'{'before')'token8|int(**p)[N1]=new(int(*[N2])[N1]);|^prog.cc:Infunction'intmain()':prog.cc:8:34:err

c++ - 在 C++ 中传递 void(*)

我有一个std::map,我试图为值存储空指针。问题是,我试图存储的大部分指针都是类中的方法并且具有不同数量的参数。我知道对于参数,我可以使用va列表,所以这不是什么大问题,问题在于实际指针本身。这是我的:classA{public:A();voidmethodA(...);};classB{public:B();voidmethodB(...);};voidmethod_no_class(...){}std::mapmy_map;my_map[0]=&method_no_class;B*cb=newB();my_map[1]=&cb->methodB;//willreturnerro

c++ - boost::serialization Archive::register_type 如何工作?

boost::serialization能够序列化它们最派生类的多态对象,即使这些对象由指向基类的引用/指针指向。这不需要虚函数。要做到这一点,boost::serialization需要知道存在的多态类型:Archive::register_type必须在Archive用于序列化的对象。Thisexample展示了如何注册类型以及如何序列化它们。我想知道这是如何实现的。我试图查看boost::serialization源代码但失败了:我不太擅长模板元编程。 最佳答案 boost.serialization可以使用typeid()或

c++ - 为什么 Qt 对 void* 使用 reinterpret_cast 而不是 static_cast?

您可以使用static_cast将任何指向T的指针转换为void*或将其转换为void*,为什么Qt使用reinterpret_cast?intSOME_OBJECT::qt_metacall(QMetaObject::Call_c,int_id,void**_a){_id=QMainWindow::qt_metacall(_c,_id,_a);if(_id(_a[1])));break;default:;}_id-=1;}return_id;} 最佳答案 老实说,我也一直没弄明白。void**结构的创建方式相同,只需将int*转换

错误的“缺失必需参数:Grant_Type”使用Swift 3

我在TwitterAPI上工作,我想获得access_token,但我遇到了这个错误:{"errors":[{"message":"Missingrequiredparameter:grant_type","label":"forbidden_missing_parameter","code":170}]}.我的要求如下:letdict=["grant_type":"client_credentials"]requestPOSTURL("https://api.twitter.com/oauth2/token",params:dictas[String:AnyObject],headers:[

Name for argument of type [java.lang.String] not ... Ensure that the compiler uses the ‘-parameters’

更多信息:https://oldmoon.top/post/191简介使用最新版的Springboot3.2.1搭建开发环境进行开发,调用接口时出现奇怪的错。报错主要信息如下:Nameforargumentoftype[java.lang.String]notspecified,andparameternameinformationnotavailableviareflection.Ensurethatthecompilerusesthe‘-parameters’flag.官方说明中一直强调@PathVariable的使用,并没有提及@RequestParam,阅读官方文档@RequestPa