C++ typedef能维持多久?
我在一个函数中有一个宏,它实例化给定类型的变量,并执行一些其他不相关的操作 从本质上讲,f扩展为f 但是如果foo是std::map,那么扩展会由于额外的逗号而失败 我通过编写typedef std::map bar来解决这个问题;然后是宏条,b 我担心我正在将typedef泄漏到程序源代码中,这可能会在将来给我带来问题 那么,typedef能持续多久?typedef可用性规则与变量的规则相同,因此在您的情况下,它将持续函数体的时间 你可以自己写一封信来证实这一点 {typedef std::map location_map;} 观察编译器错误:只要作用域块存在,typedef本身就超出了作用域。typedef可用性规则与变量的规则相同,因此在您的情况下,它将持续函数体的时间 你可以自己写一封信来证实这一点 {typedef std::map location_map;} 观察编译器错误:只要作用域块存在,typedef本身就超出了作用域。typedef将持续到全局作用域或命名空间作用域中的翻译单元结束 或放在其他作用域中时作用域的结尾。typedef持续到全局作用域或命名空间作用域中转换单元的结尾C++ typedef能维持多久?,c++,C++,我在一个函数中有一个宏,它实例化给定类型的变量,并执行一些其他不相关的操作 从本质上讲,f扩展为f 但是如果foo是std::map,那么扩展会由于额外的逗号而失败 我通过编写typedef std::map bar来解决这个问题;然后是宏条,b 我担心我正在将typedef泄漏到程序源代码中,这可能会在将来给我带来问题 那么,typedef能持续多久?typedef可用性规则与变量的规则相同,因此在您的情况下,它将持续函数体的时间 你可以自己写一封信来证实这一点 {typedef std::m
或者当放入另一个作用域时,作用域的结尾。您可能会在阅读关于等待的内容时发现一些用处,所以您是说typedef std::map foo;MACROfoo,f不编译?我觉得很难相信。顺便说一句,做一些其他不相关的事情是一个很常见的误解。如果它与这个问题有关,就没有什么不相关的了。如果您的问题涉及到宏,那么请向我们展示宏或与该问题表现出相同行为的摘要版本,但请不要声称它不相关。不,它确实编译,但MACROstd::map,f不可能。您可能想查看此问题:您可能会在阅读关于等待的内容时发现一些用处,你是说typedef std::map foo;MACROfoo,f不编译?我觉得很难相信。顺便说一句,做一些其他不相关的事情是一个很常见的误解。如果它与这个问题有关,就没有什么不相关的了。如果您的问题涉及宏,请向我们展示宏或与该问题表现出相同行为的摘要版本,但请不要声称它不相关。不,它确实编译,但MACROstd::map,f不可能您想查看此问题: