C++ 函数参数和函数体的本地可见类型定义
我想知道是否有任何方法可以在本地C++ 函数参数和函数体的本地可见类型定义,c++,C++,我想知道是否有任何方法可以在本地typedef用于函数参数和函数体 与以下情况类似: // typedef: solution 1, visible everywhere in the namespace void func(/*really long type*/ param1, /*many more params of same/different type*/) { // typedef: solution 2, cannot use for params /*mo
typedef
用于函数参数和函数体
与以下情况类似:
// typedef: solution 1, visible everywhere in the namespace
void func(/*really long type*/ param1, /*many more params of same/different type*/) {
// typedef: solution 2, cannot use for params
/*more variables using the same typedef inside the body */
}
我知道我可以将typedef
放在函数体中,但这对参数不可用。我希望它更具可读性,特别是考虑到长类型名和同一类型的多个参数。
函数外部的typedef
会污染名称空间,除非别无选择,否则我想阻止它
是否有一种我不知道的方法可以在更本地化的情况下实现上述目标?如果没有,建议使用哪种解决方案。您可以执行以下操作:
namespace inner {
using type = really_long_type; // typedef works as well
void func(type t, /* ... */) {
// ...
}
}
using inner::func;
将
func
放在内部名称空间中,然后使用内部::func
?我发现您的要求有点令人惊讶(或者我误解了您的意图)。假设您有一个仅在函数参数和主体中可见的类型。。。当你想从其他地方调用这个函数时,你打算用什么类型的参数?我会在那里把类型完整地拼写出来,这没关系,因为这样做不会太多次。@Jarod42这是个好主意