草庐IT

int_void

全部标签

c++ - 为什么 `std::copy` 在我的测试程序中从 char 缓冲区读取一个 int 比 `memcpy` 慢 5 倍(!)?

这是thisquestion的后续行动我在哪里发布了这个程序:#include#include#include#include#include#include#include#include#includeclassStopwatch{public:typedefstd::chrono::high_resolution_clockClock;//!ConstructorstartsthestopwatchStopwatch():mStart(Clock::now()){}//!Returnselapsednumberofsecondsindecimalform.doubleelapse

c++ - `int main(int argc, char* argv<::>)` 如何成为 main 的有效签名?

这个问题在这里已经有了答案:Howisthisbracketless/bracelesscodevalid?[duplicate](4个答案)关闭7年前。我在网站上看到intmain(intargc,char*argv)也可以用作main的签名.令人惊讶的是,以下程序:intmain(intargc,char*argv){return0;}编译时会发出GCC中的任何警告以及clang。它还在C++中编译。那么,intmain(intargc,char*argv)是怎么回事?是main的有效签名?

c++ - 从 void* 到基类指针的转换

我有一些层次结构:基类、派生类和一些将用户数据存储为void*的结构。该void可以存储Base和Derived类指针。主要问题是我不知道那里存储的是基指针还是派生指针。classBase{public:inttype;};classDerived:publicBase{};Base*base;//initbasepointerDerived*derived;//initderivedpointervoid*base_v=base;void*derived_v=derived;//voidpointersarecorrect.Theypointtobaseandderivedvaria

c++ - 是否可以检查函数是否具有 void 返回类型

出现了这个非常奇怪的请求......我需要在编译时检查当前函数是否有void返回类型,如果返回类型为void则编译失败。我试着用http://en.cppreference.com/w/cpp/types/result_of施展魔法和decltype也一样,但是我无法接近解决方案。#includevoidother_func(void){}voidtest_maxi(void){typedefdecltype(&::other_func)TYPE;static_assert(std::is_same::value,"notvoid");}intmain(){}那么问题来了:当前函数是否

c++ - "AnySTLContainer<int>"c++ 的模板

我正在寻找一种方法来提供采用模板化(STL)容器的函数,但要求其元素属于特定类型(例如int)。这些函数调用应该是有效的:std::vectorArgument;voidfoo(Argument);std::listArgumentvoidfoo(Argument);std::dequeArgumentvoidfoo(Argument);...etc这些函数调用应该是无效的:std::vectorArgument;voidfoo(Argument);std::listArgumentvoidfoo(Argument);std::dequeArgumentvoidfoo(Argument

c++ - <错误 C2059 : syntax error : 'constant' > when compiling with const int

编译以下代码时出现以下错误:3>c:\hedge\hedge\hedge\AisTarget.h(22):errorC2059:syntaxerror:'constant'3>c:\hedge\hedge\hedge\AisTarget.h(22):errorC2238:unexpectedtoken(s)preceding';'#if!defined(AisTarget_h)#defineAisTarget_h#include"GeneralAviationItems.h"#includenamespaceHEDGE{usingnamespaceGeneralAviation;cla

c++ - : Bit, byte 和 int 哪个更有效?

假设您的结构类似于以下内容:structPerson{intgender;//betwwen0-1intage;//between0-200intbirthmonth;//between0-11intbirthday;//between1-31intbirthdayofweek;//between0-6}就性能而言,哪种数据类型是存储每个字段的最佳数据类型?(例如位域、int、char等)它将在x86处理器上使用并完全存储在RAM中。需要存储相当大的数字(超过50,000),因此需要考虑处理器缓存等。编辑:好的,让我改一下问题。如果内存使用不重要,并且无论使用哪种数据类型都无法将整个数

c++ - 在结构/类中使用 static const int

structA{staticconstinta=5;structB{staticconstintb=a;};};intmain(){returnA::B::b;}上面的代码可以编译。但是,如果您阅读ScottMyers的《EffectiveC++》一书(第14页);除了声明之外,我们还需要a的定义。谁能解释为什么这是一个异常(exception)? 最佳答案 C++编译器允许staticconst整数(并且仅限于整数)在它们声明的位置指定它们的值。这是因为基本上不需要该变量,它只存在于代码中(通常是编译出来的)。其他变量类型(例如s

c++ - 评估为 "void..."的非类型参数包不是非法的吗?

gcc-4.8接受这段代码,但它不是错误的,因为非类型参数包等同于void...这是非法的吗?template::value>::type...>voidtest(T){}我也用clang-3.5尝试过,它也接受它。这是编译器错误,还是我误解了什么?完整测试代码如下,使用非类型空参数包来简化enable_if。这与FlamingDangerzone'sRemasteredenable_if中的几乎相同除非替换后包变为void...。#includetemplateusingenable_if_t=typenamestd::enable_if::type;template>...>voi

详解C语言中的int8_t、uint8_t、int16_t、uint16_t、int32_t、uint32_t、int64_t、uint64_t

2023年8月8日,周二上午目录为什么会产生int8_t、uint8_t等这类数据类型int8_t、uint8_t等这类数据类型有什么用头文件int8_t、uint8_t等这类数据类型是怎么实现的为什么会产生int8_t、uint8_t等这类数据类型根本原因在于,C语言标准只是规定了各个基本类型的最小字节长度,但并没有指定它们的确切字节长度:char类型: char 类型的最小大小为1字节,用来存储字符的基本类型。short类型: short 类型的最小大小为2字节,用来存储短整数的基本类型。int类型: int 类型的最小大小为2字节,用来存储整数的基本类型。long类型: long 类型的