有没有办法在编写C ++代码时理解Visual Studio 2012的提示?

时间:2013-09-04 08:29:59

标签: c++ visual-studio-2012

visual studio editor

有什么方法可以理解_Ux,_Dx,_Dt的含义吗?这些助记符告诉我关于参数的信息。

2 个答案:

答案 0 :(得分:2)

这些“助记符”就像你所说的那样只不过是Visual Studio IntelliSense生成的一个提示,用于 在编写代码时帮助你 (语法)而不是意义(语义)。

如果您需要更多信息来帮助您了解API及其正确用法,请参阅文档。在这种情况下,它可能是the reference for std::shared_ptr's constructor

答案 1 :(得分:2)

这个“奇怪的名字”事物(至少部分地)与reserved identifiers有关。程序员(你,我)是允许定义像_Ux这样的名称,以下划线后跟大写字母开头(也不是__x或{{1}这样的名字在他的源代码中包含相邻下划线的 where 。因此,C ++实现(标准库详细信息,编译器内部......)可以使用此保留的“名称空间”,而不必担心名称冲突与用户代码。

这是双赢的:实现永远不会定义a__bfooBar等名称(预留FOO_BAR等关键字和int等公共名称,{{1或std),因此您可以安全地在代码中使用这些名称,相反,您永远不应该定义printfCHAR_BIT_FooBar等名称,以便您不会搞砸实现(对于宏来说尤其如此)。

至于他们使用__foo_bar而不是{1}}的原因。 FOO__BAR(也是_Ux * _Px, _Dx _Dt而非_U * __p, _Deleter __d),嗯,我想这只是他们的内部命名约定。