公司的内部c ++编码标准文档声明即使对于基本数据类型(如int,char等),也应该定义自己的typedef,如"typedef int Int".这有利于代码的可移植性.但是,是否存在关于何时(在哪种类型的项目中)确实有意义的一般考虑/建议?提前致谢..
typedef似乎是C++特定的(可能在其他一些语言中).我发现它隐藏了该值的真实数据类型,因此令项目新手感到困惑.也许有时缩短打字很有用.你什么时候推荐使用typedef?
我还注意到我不能将typedef-ed值传递给接受底层类型的函数?
就像是:
typedef string VAL;
VAL s = "x";
func(string x); // if I try to pass `s`, I get something like no instance of function template match argument list
Run Code Online (Sandbox Code Playgroud) 让我们说:
set<int, less<int> > m_intset;
Run Code Online (Sandbox Code Playgroud)
这是有效的,但现在我将其更改为typedef,我最终得到两行代码:
typedef set<int, less<int> > SetInt;
SetInt m_intset;
Run Code Online (Sandbox Code Playgroud)
这样的优势是typedef什么?我正确使用它吗?