首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++程序隐藏指针的良好定义

C++程序隐藏指针的良好定义
EN

Stack Overflow用户
提问于 2013-02-06 06:16:36
回答 1查看 240关注 0票数 3

根据维基百科

C++11定义了指针值从其他值“安全派生”的条件。实现可以指定它在“严格指针安全”下操作,在这种情况下,没有根据这些规则派生的指针可能变得无效。

当我读到它时,您可以得到实现使用的安全模型,但是编译器的安全模型是固定的(可能是带有命令行开关的变量)。

假设我有隐藏指针的代码,这些代码肯定不会在垃圾收集器上使用简单的螺栓运行。然而,收集器(像我自己的一样)和Boehm提供了在某些对象中查找指针的钩子。

我特别想到的是JudyArrays。这些都是数字尝试,它们必然隐藏密钥。我的问题基本上是,使用这样的数据结构是否会使程序的行为在C++11中不被定义。

我不希望(因为Judy数组的性能优于其他一切)。而且碰巧..。我用它们来实现垃圾收集器。然而,我很担心,因为“最低要求”根本不具有一般性工作,并且在关于C++一致性模型的最初辩论中(由英国和澳大利亚)强烈反对。参数要求较好。但是与C++11 GC相关的文本似乎两者都有一点,所以我很困惑!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-06 07:56:15

它的实现定义了实现是提供轻松的指针安全(您似乎想要的)还是严格的指针安全(指针只有在safely derived时才有效)。正如您所暗示的,您可以调用get_pointer_safety来了解策略是什么,但是标准没有提供指定/更改策略的方法。

然而,你可以回避这个问题.如果您可以在隐藏指针之前调用declare_reachable (传递该指针值),则在对undeclare_reachable的匹配调用(这里的“匹配”表示调用nest)之前,它仍然有效。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14722780

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档