traits
上游未提供说明。
libs/traits/interface_only.hpp:100.1.0+855c407f828e28 / 39 个公开 API 符号没有说明。
上游未提供说明。
libs/traits/interface_only.hpp:10上游未提供说明。
libs/traits/interface_only.hpp:14上游未提供说明。
libs/traits/no_copy.hpp:14上游未提供说明。
libs/traits/no_copy_move.hpp:14上游未提供说明。
libs/traits/no_delete.hpp:13上游未提供说明。
libs/traits/no_derive.hpp:14上游未提供说明。
libs/traits/no_heap.hpp:16上游未提供说明。
libs/traits/no_move.hpp:13上游未提供说明。
libs/traits/no_stack.hpp:14仅允许静态使用,不允许实例化。 一般用于纯工具类或静态配置类,避免外部误建对象。
libs/traits/static_only.hpp:17
traits::InterfaceOnly::InterfaceOnly ()=default
上游未提供说明。
libs/traits/interface_only.hpp:17
traits::InterfaceOnly::~InterfaceOnly ()=default
上游未提供说明。
libs/traits/interface_only.hpp:18
traits::NoCopy::NoCopy ()=default
上游未提供说明。
libs/traits/no_copy.hpp:16
traits::NoCopy::NoCopy (const NoCopy &)=delete
上游未提供说明。
libs/traits/no_copy.hpp:17
NoCopy & traits::NoCopy::operator= (const NoCopy &)=delete
上游未提供说明。
libs/traits/no_copy.hpp:18
traits::NoCopyMove::NoCopyMove ()=default
上游未提供说明。
libs/traits/no_copy_move.hpp:16
traits::NoCopyMove::NoCopyMove (NoCopyMove &&)=delete
上游未提供说明。
libs/traits/no_copy_move.hpp:19
traits::NoCopyMove::NoCopyMove (const NoCopyMove &)=delete
上游未提供说明。
libs/traits/no_copy_move.hpp:17
NoCopyMove & traits::NoCopyMove::operator= (NoCopyMove &&)=delete
上游未提供说明。
libs/traits/no_copy_move.hpp:20
NoCopyMove & traits::NoCopyMove::operator= (const NoCopyMove &)=delete
上游未提供说明。
libs/traits/no_copy_move.hpp:18
traits::NoDelete::~NoDelete ()=default
上游未提供说明。
libs/traits/no_delete.hpp:16
static void * traits::NoHeap::operator new (std::size_t)=delete
上游未提供说明。
libs/traits/no_heap.hpp:18
static void * traits::NoHeap::operator new[] (std::size_t)=delete
上游未提供说明。
libs/traits/no_heap.hpp:19
traits::NoMove::NoMove ()=default
上游未提供说明。
libs/traits/no_move.hpp:15
traits::NoMove::NoMove (NoMove &&)=delete
上游未提供说明。
libs/traits/no_move.hpp:16
NoMove & traits::NoMove::operator= (NoMove &&)=delete
上游未提供说明。
libs/traits/no_move.hpp:17
traits::NoStack::NoStack ()=default
上游未提供说明。
libs/traits/no_stack.hpp:17
traits::NoStack::~NoStack ()=default
上游未提供说明。
libs/traits/no_stack.hpp:18
traits::StaticOnly::StaticOnly ()=delete
上游未提供说明。
libs/traits/static_only.hpp:19仅允许作为接口基类使用,禁止外部直接构造和析构。 这个类型通常用于纯虚接口的基类。构造和析构都被保护起来以后,外部就无法直接实例化它, 只能把它当作父类来继承。
libs/traits/interface_only.hpp禁止对象拷贝。 适合描述拥有独占资源的对象,比如硬件句柄、锁、缓存区管理器等。 当对象被复制会导致“双重释放”或者状态混乱时,就应该用这种 trait 限制拷贝行为。
libs/traits/no_copy.hpp禁止对象拷贝和移动。 比 NoCopy 更严格:对象既不能复制,也不能转移所有权。 常见于地址稳定性很重要的资源对象,例如被中断回调持有的实例。
libs/traits/no_copy_move.hpp禁止通过 delete 释放对象。 这个限制通常和受控生命周期一起使用:对象可以创建,但销毁必须由特定接口或者框架接管。
libs/traits/no_delete.hpp禁止从该类型派生。 适合需要固定对象布局或者不希望外部扩展行为的类型。 直接把类型标记成 final,比靠文档提醒“不要继承”更可靠。
libs/traits/no_derive.hpp禁止在堆上分配对象。 适合那些必须放在静态存储区、栈上或者外部内存池里的对象。 一旦对象不允许 new / new[],就能强迫调用方显式管理生命周期来源。
libs/traits/no_heap.hpp禁止对象移动。 当对象被外部引用、地址被缓存,或者移动后会破坏系统内某些指针关联时,就应该禁用移动语义。
libs/traits/no_move.hpp禁止在栈上直接构造对象。 常见于必须通过工厂函数、内存池或者注册表创建的对象。 这样可以强制调用方走统一创建路径,避免局部自动变量生命周期过短。
libs/traits/no_stack.hpp禁止实例化,仅用于静态工具类约束。 这个 trait 用来表达“只允许静态成员函数和静态数据”的意图,避免有人误把工具类当对象来创建。
libs/traits/static_only.hpp统一导出对象语义约束 trait。 这个头文件本身不实现复杂逻辑,只负责把一组常见的对象语义限制集中导出。 你可以把它理解成“声明式的约束工具箱”:需要禁止拷贝、禁止堆分配、禁止继承时, 直接包含这个头文件即可。
libs/traits/traits.hpp