草庐IT

int_void

全部标签

c++ - 为 C++ Variant 类在 string、int、double 之间灵活转换

我正在实现一个变体类(不使用boost),我想知道您将如何处理存储字符串、整数或double中的任何一个并通过ToString将其相应地自动转换为所需类型的情况()、ToInt()或ToDouble()。例如,Varianta=7;coutToXXX函数应该返回您要转换成的类型的引用。现在,我有代码可以返回与最初分配给它相同的类型(Varianta=Int(7);a.ToInt()工作)并在分配类型时引发异常与您要转换为的目标不同。抱歉,不能使用boost。 最佳答案 #include#includeclassVariant{pub

c++ - 如何打印类型 vector<pair<char, int>> 来筛选 c++?

我有一个返回值vector的方法>,但我不知道如何打印这个vector的内容。我试图遍历内容,但出现编译器错误。这是我尝试过的示例。vector>output;for(inti=0;i 最佳答案 std::pair的元素是first和second数据成员,因此对循环的简单修改将打印出内容:for(inti=0;i在C++11中,元素也可以通过tuple方式访问,通过std::get,cout(output[i])(output[i])在C++11中,您还可以选择使用基于范围的循环来迭代容器的所有元素:for(constauto&p:

c++ - C++ 是否允许将任何整数文字隐式转换为 short int?

intmain(){shortn1=8ll;//nowarning//warningC4305:'initializing':truncationfrom'__int64'to'short'//warningC4309:'initializing':truncationofconstantvalueshortn2=88888ll;}我的编译器是VisualStudio2017。根据cppref:Thetypeoftheintegerliteralisthefirsttypeinwhichthevaluecanfit,fromthelistoftypeswhichdependsonwhi

c++ - 如何在 unsigned int 和 int 之间安全地进行 static_cast?

我有一个8字符的string表示一个十六进制数,我需要将它转换为一个int。此转换必须保留字符串"80000000"及更高版本的位模式,即这些数字应为负数。不幸的是,天真的解决方案:inthex_str_to_int(conststringhexStr){stringstreamstrm;strm>val;returnstatic_cast(val);}如果val>MAX_INT(返回值为0),则对我的编译器不起作用。将val的类型更改为int也会导致较大数字为0。我已经尝试了SO上各种答案的几种不同解决方案,但尚未成功。这是我所知道的:我在OpenVMS上使用HP的C++编译器(我相

c++ - 为什么在 g++ std::intmax_t 中不是 __int128_t?

我的问题很简单:因为std::intmax_t根据cppreference定义为maximumwidthintegertype,为什么不对应GCC中的__int128_t? 最佳答案 我认为这违反了C和C++标准——或者gcc不考虑__int128_t是一个整数类型。C标准(1999版和2011版)不需要intmax_t成为标准类型之一;它必须是“能够表示任何有符号整数类型的任何值的有符号整数类型”。特别是,它可以是一个扩展整数类型——如果有一个128位扩展整数类型,那么intmax_t必须至少为128位宽。C标准甚至建议使用实现定

c++ - 这个模板元程序中的 int*** 是如何工作的?

模板元编程在这里(staticconstintvalue=1+StarCounter::value;)如何打印出3?#includetemplatestructStarCounter{staticconstintvalue=0;};templatestructStarCounter{staticconstintvalue=1+StarCounter::value;};intmain(){std::cout::value 最佳答案 第一个模板创建了一个结构,当你调用StarCounter::value时它总是返回0.第二个模板专门用于

c++ - int 与无符号或有符号相同吗?

int和unsigned还是signed是同一种类型吗? 最佳答案 Plainint与signed相同与signedint相同 关于c++-int与无符号或有符号相同吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/3414233/

windows - 传递 CString 后跟 int 时 FFI 中的错误

我的Rust测试代码extern"C"{fntest_int_only(n:libc::c_int);fntest_int_and_str(s:CString,n:libc::c_int);}pubfntest1(){unsafe{test_int_only(0);test_int_only(1);test_int_only(2);test_int_only(4);test_int_only(-12);}}pubfntest2(){unsafe{test_int_and_str(CString::new("Foo").unwrap(),0);test_int_and_str(CStri

c++ - 如何将 TCHAR 转换为 int

我想将TCHAR转换为int,但是当我转换它时,我得到的ASCII值是int,而不是数字值。代码:#include"stdafx.h"#include#include#includeusingnamespacestd;intconverttoint(){TCHARtchar[2];wcscpy_s(tchar,TEXT("5"));inti=tchar[0];cout>in;}Output:53但我希望我是5岁。如何做到这一点? 最佳答案 如果你想把一个字符串(包含一个整数)转换成一个int,你可以使用一些C函数,比如atoi()(

c++ - 如何将 INT64 写入 CString

我在C++Windows中编码。INT64dirID=-1;CStringquerySQLStr=_T("");querySQLStr.Format(L"select*fromImageInfowhereFolderPath=%64d;",dirID);querySQLStralwayslikethis:select*fromImageInfowhereFolderPath=1214;使用%64d对吗?非常感谢 最佳答案 我没有方便的Windows机器来测试它,但我认为CString应该接受这个:querySQLStr.Format