C++冷门语法/关键字
这篇文章将用来记录平时第一次遇到的语法或关键字,仅记录我使用到的功能,不进行拓展。
volatile
C/C++ 中的 volatile 关键字和 const 对应,用来修饰变量,通常用于建立语言级别的 memory barrier(内存壁垒)。是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,告诉编译器不要对这个变量进行任何形式的优化,而是始终从变量在内存中的位置进行读取变量的值。
constexpr
定义变量时可以用 constexpr 修饰,从而使该变量获得在编译阶段即可计算出结果的能力,变量必须经过初始化且初始值必须是一个常量表达式。
constexpr static TCHAR * ms_FileSuffix = const_cast<TCHAR*>(_T(#FileSuffix));
FORCEINLINE
代替inline 关键字.这个关键字将命令编译器跳过一般的ROI 分析,将所对应的代码强行内联。
左值转右值
template <typename T> struct TRemoveReference { typedef T Type; };
template <typename T> struct TRemoveReference<T& > { typedef T Type; };
template <typename T> struct TRemoveReference<T&&> { typedef T Type; };
template <typename T>
FORCEINLINE T&& Forward(typename TRemoveReference<T>::Type& Obj)
{
return (T&&)Obj;
}
template <typename T>
FORCEINLINE T&& Forward(typename TRemoveReference<T>::Type&& Obj)
{
return (T&&)Obj;
}
__stdcall
stdca11 调用约定用于调用 Win32 API函教。被调用方将清理堆栈,以便让编译器生成 vararg 函数 __dec1。使用此调用约定的函数需要一个函数原型。_stdca11 修饰符是 Microsoft 专用的。
STDMETHOD
STDMETHOD_是一个宏,用于定义指定返回类型的接口方法,包含virtual关键字,可用于定义方法声明,宏展开是 __stdcall。
THIS_
//TODO
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!