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

posted @   过往云烟吧  阅读(76)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示