草庐IT

片偏移

全部标签

c++ - 指向成员的指针的偏移量

templateptrdiff_tfoo(TU::*m){//returnoffset}在此上下文中如何获取字段“m”的偏移量?我更愿意使用am编译时表达式。在此先感谢您的帮助。最好的问候 最佳答案 @迈克尔J感谢您的回答。这不是我一直在寻找的东西,但它给了我这样做的灵感:templatestd::ptrdiff_tmember_offset(UT::*member){returnreinterpret_cast(&(reinterpret_cast(NULL)->*member));}

c++ - C++ 中的结构偏移量和指针安全

这个问题是关于使用带结构偏移量的指针算法派生的指针。考虑以下程序:#include#include#includestructA{floata;doubleb;intc;};staticconstexprautooff_c=offsetof(A,c);intmain(){A*a=newA{0.0f,0.0,5};char*a_storage=reinterpret_cast(a);int*c=reinterpret_cast(a_storage+off_c));std::cout这个程序似乎可以在我测试的编译器上运行并给出预期的结果,使用默认设置和C++11标准。(一个密切相关的程序,

c++ - 是否可以手动计算类成员的字节偏移量?

也就是说,编译器生成类的标准是什么?例如,假设我有一个包含成员x、y和z的类C,我想知道该类中z的偏移量。我可以只将其他成员的数据类型大小相加,就像我对结构所做的那样吗? 最佳答案 不,你不能。编译器可以根据自己的选择自由对齐成员。这是编译器的一个实现细节。如果您使用的是POD,那么你可以使用offsetof宏。但是如果使用非POD,那么我想不会有任何可移植的方法来这样做。 关于c++-是否可以手动计算类成员的字节偏移量?,我们在StackOverflow上找到一个类似的问题:

c++ - 如何获取当前的 UTC 偏移量(时区)?

如何获取当前的UTC偏移量(如在时区中,但只是当前时刻的UTC偏移量)?我需要一个像“+02:00”这样的答案。 最佳答案 这个问题有两个部分:获取UTC偏移量作为boost::posix_time::time_duration按照指定格式化time_duration显然,获取本地时区在广泛实现的API中并没有很好地公开。然而,我们可以通过取相对于UTC的时刻和相对于当前时区的同一时刻的差异来获得它,如下所示:boost::posix_time::time_durationget_utc_offset(){usingnamespac

c++ - 虚拟继承的虚拟函数表中的虚拟基址偏移量

代码如下(在Ubuntu16.04上用G++-5.4编译的C++11代码):#includeusingnamespacestd;classBase{public:virtualvoidshow(){cout我尝试使用GDB检查对象“obj_a”的内存布局(首先,我设置了“setprintobjecton”、“setprintprettyon”、“setprintvtblon”、“setprintasm-demangleon"在GDB中):(gdb)psizeof(obj_a)$1=32(gdb)x/8aw&obj_a0x7fffffffe320:0x400d200x00x1f0x00x

c++ - 如何在 C/C++ 中从运行时卸载内存偏移量计算?

我正在实现一个简单的VM,目前我正在使用运行时算法来计算各个程序对象地址作为基指针的偏移量。我今天问了几个关于这个主题的问题,但我似乎无处可去。我从第一个问题中学到了一些东西-Objectandstructmemberaccessandaddressoffsetcalculation-我了解到现代处理器具有虚拟寻址功能,无需任何额外的算术周期即可计算内存偏移量。从问题二-AreaddressoffsetsresolvedduringcompiletimeinC/C++?-我了解到手动进行偏移时无法保证会发生这种情况。现在应该很清楚,我想要实现的是利用硬件的虚拟内存寻址功能并从运行时卸载

c++ - 如何将结构元素设置为所需的偏移量

在嵌入式编程中,当描述硬件时,通常需要将结构元素放置在硬件工程师设计的已知预定义位置。例如,让我们定义一个结构FPGA,它有大约100个寄存器/区域,如下面的简化示例:struct__attribute__((__packed__))sFPGA{ucharSpare1[0x24];ushortDiscreteInput;ucharSpare2[0x7A];//CPLD_Versionisrequiredtobeatoffset0xA0,so0xA0-0x24-2=0x7AushortCPLD_Version;};现在,我对手动计算和在结构变化的情况下可能出现的错误感到沮丧和愤怒。有什么

c++ - 给定元素数组、子列表的偏移量和长度的有效部分归约

对于我的应用程序,我必须处理一堆对象(比方说int),这些对象随后被划分并分类到更小的桶中。为此,我将元素存储在一个连续的数组中arr={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14...}有关桶(子列表)的信息由相应桶中第一个元素的偏移量和子列表的长度给出。所以,例如,给定offsets={0,3,8,..}sublist_lengths={3,5,2,...}将导致以下拆分:012||34567||89||...我正在寻找的是一种通用且高效的方法,仅使用自定义内核或thrust库在桶上运行算法(如缩减)。对桶求和应该得到:3||25||17||...我想出的

c++ - C++ 头文件的 emacs 公共(public)/ protected /私有(private)标签缩进不适用于零偏移

即使我在我的.emacs文件中定义了一些东西,我也无法在emacs中为我的C++头文件获得零偏移量。下面的头文件显示了两个命名空间内的类定义,最重要的是我希望具有零偏移量的public关键字,如下所示。namespacen1{namespacen2//nooffset{classSomeClass//nooffsetfromnamespaceopencurly{public://thislinewithzerooffsetSomeClass();//offset4...};inlineSomeClass::SomeClass()//nooffset{}}//n2}//n2在我的.ema

c++ - 如何将日期时间 + 时间偏移量的字符串解析为 boost::posix_time::ptime?

我有一个字符串“2011-10-20T09:30:10-05:00”有人知道我如何使用boost::date_time库解析它吗? 最佳答案 好的,我找到答案了代码(VS)它将字符串转换为local_date_time,但对我来说这是可以接受的:#pragmawarning(push)#pragmawarning(disable:4244)#pragmawarning(disable:4245)#include#pragmawarning(pop)#include#includeintmain(){usingnamespacestd