除了这个事实,它可能会让每个 Windows C++ 开发人员感到困惑,
_In_
扩展为强制const
(如果尚未存在)以确保 const 正确性不是谨慎的做法吗?
所以
int DoSomething( _In_ int * pInput);
变成
int DoSomething( const int * pInput);
显然 _[In] Out_仍应扩展为空。
编辑:显然第一个问题是,这只在指针或引用参数前面展开时才有意义。
所以也许一个简单的宏扩展是不够的。我还不想放弃强制执行的概念const
。座右铭是:我们已经有了一个SAL
符号来告诉我们什么是参数ro
,什么不是,让我们利用它。