Mr.*_*Boy 2 c++ visual-c++ visual-studio-2013
我发现一些代码,这是为了通话__uuidof(IMyInterface),但实际上是调用__uuidof(pIMyInterface)其中pIMyInterface的类型的指针IMyInterface。__uuidof调用值而不是类型时的行为如何?
例如int x=123; __uuidof(x),这是否等于__uuidof(int)或__uuidof(123)
__uuid是关键字,而不是函数。它不是“调用”的,而是由编译器直接解析的。哪个当然可以很容易地认识到操作数是一个变量。而且它知道变量的类型,因此毫无疑问地查找__declspec(uuid)类型的属性。
来自MSDN:
__uuidof (
expression
)
Run Code Online (Sandbox Code Playgroud)
表达式可以是类型名称、指针、引用或该类型的数组、专门用于这些类型的模板或这些类型的变量。只要编译器可以使用它来查找附加的 GUID,该参数就有效。