草庐IT

entry-default-unsigned

全部标签

c++ - unsigned long 的类型不同于 Windows 上的 uint32_t 和 uint64_t (VS2010)

在Windows7、32位的VisualStudio2010上,unsignedlong似乎是与uint32_t和uint64_t截然不同的类型。看下面的测试程序:#include#includetemplatestructis_same_type{staticconstboolvalue=false;};templatestructis_same_type{staticconstboolvalue=true;};#defineTO_STRING(arg)TO_STRING_IMPL(arg)#defineTO_STRING_IMPL(arg)#arg#definePRINT_SAME

c++ - 带有 std::enable_if 和 std::is_default_constructible 的 SFINAE 用于 libc++ 中的不完整类型

我刚刚在使用SFINAE检测模板类型是否默认可构造时观察到libc++的一个奇怪问题。以下是我能够想出的一个最小示例:#include#includetemplatestructDummy;templatestructDummy{};templatestructhas_dummy:std::false_type{};templatestructhas_dummy>::value>>:std::true_type{};intmain(){std::cout{}(){}()它编译并输出预期的行true和false使用libstdc++使用g++或clang++编译时.但是,当我尝试使用li

c++ - 为什么std::assoc_laguerre的第二个参数是unsigned int?

在C++17中,标准库中加入了很多特殊函数。一个功能是associatedLaguerrepolynomials.第二个参数需要一个unsignedint,但是mathematicaldefinition对实数也有效。有什么理由说它只限于非负整数吗?这仅仅是因为当n和k都是正整数时,二项式(n,k)更容易/更快/更简单地计算吗? 最佳答案 据我所知,C++特殊函数之父WalterE.Brown从未明确回答过您的拉盖尔问题。然而,当一个人读到whatBrowndidwrite,一个可能的动机变得清晰:Manyoftheproposed

c++ - uint8_t 和 unsigned char 链接错误

我正在使用模板函数:templatevoidfunc(constT&value){obj->func(value);}其中obj是类的对象:voidmy_object::func(int64_tvalue){...}voidmy_object::func(uint64_tvalue){...}voidmy_object::func(uint32_tvalue){...}voidmy_object::func(uint16_tvalue){...}voidmy_object::func(uint8_tvalue){...}问题在于uint8_t重载了my_object::func()覆盖

c++ - "the procedure entry point _ZNSt8_detail15_List_node_base7_M_hookEPS0_ could not be located in the dynamic link library libstdc -6.dll."

有个小问题。我有C++代码,它链接到一些库。我以前有源代码的(原始)exe,它在第一台机器上运行完美。还有第二台机器,我在那里处理源代码,更改它,等等。在第二台机器上,该源代码的构建工作正常,当我复制second.exe并尝试在第一台机器上运行它时萌芽它显示错误信息"theprocedureentrypoint_ZNSt8_detail15_List_node_base7_M_hookEPS0_couldnotbelocatedinthedynamiclinklibrarylibstdc++-6.dll."有一件事,second.exe被复制到与original.exe相同的文件夹中,

c++-default_random_engine 始终创建相同的数字系列

我正在使用神经网络,我想随机创建权重。因此,如果我创建30个神经网络,它们中的每一个最终都具有相同的权重(应该是随机的),所以当我给它们所有相同的输入时,输出是相同的,而在不应该的时候。有帮助吗?这里是主要功能intmain(){std::vectorv;std::random_devicerd;std::default_random_enginegenerator(rd());std::uniform_real_distributiondistribution(-1.0,1.0);for(inti=0;iinitialize_weights在这里:voidImproved_NN::i

c++ - unsigned int 到 unsigned long long 定义明确吗?

我想看看当unsignedlonglong被赋值给unsignedint时幕后发生了什么。我制作了一个简单的C++程序来试用它,并将所有io移出main():#include#includevoidusage(){std::cout\n";exit(0);}voidatoiWarning(intfoo){std::cout生成的程序集为main生成了这个:0000000000400950:400950:55push%rbp400951:4889e5mov%rsp,%rbp400954:4883ec20sub$0x20,%rsp400958:897decmov%edi,-0x14(%rb

c++ - 为什么采用 int 的函数重载优于采用 unsigned char 的函数重载?

考虑这个程序:#includeusingnamespacestd;voidf(unsignedcharc){cout这会打印出97,表明选择的f()重载是采用int的重载。我觉得这很奇怪;直觉上unsignedchar不是更适合char吗? 最佳答案 wouldn'tintuitivelyanunsignedcharbeabettermatchforachar?嗯,我想,但不是根据标准。根据[conv.prom]p1:Aprvalueofanintegertypeotherthanbool,char16_­t,char32_­t,o

c++ - 为什么从 size_t 转换为 unsigned int 会给我一个警告?

我有代码:unsignedintlength=strlen(somestring);我正在编译警告级别为4,它告诉我“从size_t到unsignedint的转换,当size_t时可能丢失数据”是typedef对于unsignedint.为什么!?编辑:我刚刚解决了我自己的问题。我是XP用户,我的编译器正在检查64位兼容性。自size_t取决于平台,对于64位,它将是unsignedlonglong,这与unsignedint不同. 最佳答案 因为unsignedint在您的机器上是比size_t更窄的类型。size_t很可能是64

c++ - Win32 API : how to make Edit Text to accept unsigned float only in c++?

我正在努力学习win32api:)我在DialogBox中放置了一些编辑文本,我希望它只接受大于0的float我只能通过在资源文件中使用样式“ES_NUMBER”来使编辑文本接受整数,但我找不到任何方法让它接受正浮点值我需要你的帮助谢谢 最佳答案 除了处理EN_CHANGE通知之外,您还可以选择subclassingwindow。这将允许您限制哪些击键是有效的,并且只允许数字、点等。下面的示例显示了如何创建一个编辑控件,将其子类化并过滤输入,以便只允许特定字符。它不处理从剪贴板粘贴等操作,因此您需要扩展它以满足您的特定要求。这种方式