跳转到内容

memory::StaticObject API

文档稀疏
符号
28
已记录
4
类型
2
继承关系
0
源码分支
main

24 / 28 个公开 API 符号没有说明。

共 2 个类型

类型目录
类

memory::StaticObject

查看源码

为一个永久对象预留固定地址的存储,不分配堆内存,也不自动析构 T。 T 完整、非数组、非 cv 限定的具体对象类型;不要求默认构造或复制/移动。 对象槽应具有静态存储期;先用 INIT_OBJECT 构造,再访问对象。 每个槽只能成功构造一次。重复初始化在 Debug 下断言失败;Release 由调用方保证。 ->、* 和指针转换均不检查状态;未构造时调用这些操作违反前置条件。 状态查询使用 is_initialized()、if (slot)、!slot 或与 nullptr 的比较。 bool ready = slot 会经由隐式指针转换;需要保存状态时使用 static_cast<bool>(slot)。 const 槽视图提供 const T 访问;取得的指针不拥有对象,禁止 delete。 不提供线程/ISR 同步;应在使用者开始访问前完成构造,或由调用方同步。 sizeof(StaticObject<T>) 包含 T 的存储、状态及对齐填充,不包含 T 自行申请的内存。 内存区域由实例声明和链接脚本决定;本类型不配置 DMA、MPU 或缓存属性。 使用约定:

构造与析构

3

成员函数

13

成员变量

3
结构体

memory::detail::StaticObjectInitializer

查看源码

上游未提供类型说明。

成员函数

1

initialize

函数公开静态
        static T * memory::detail::StaticObjectInitializer::initialize (StaticObject< T > &object, Constructor &&constructor)
      

上游未提供说明。

memory/StaticObject/static_object.hpp:108

其他公开符号

宏定义

3

INIT_OBJECT

宏定义

在函数体中原地构造对象,返回 T*;不进行堆分配。 object 必须是可变槽的左值,只求值一次。构造参数直接出现在 new T(...) 中, 因此支持裸 {...},不会遇到完美转发的列表推导限制。构造成功后才发布状态; 若 T 的构造函数抛出异常,异常原样传播,槽仍保持未初始化状态。 INIT_OBJECT(device, ) 示例:INIT_OBJECT(motors[index++], config, {1, 2}); 严格 C++17 的无参构造写作;,保留显式的空可变参数。 宏不属于 C++ 命名空间:使用 INIT_OBJECT,而不是 memory::INIT_OBJECT。

memory/StaticObject/static_object.hpp:143

文件

1