类定义中的类型名可见性
尽管现在的编译器能够正确理解数据成员(含有隐式的 this 指针)的使用,并在看到整个类定义之后再查找名字,类型名的查找则发生的很早,导致使用时可能看不到、或者使用了错误的类型声明。
所以,应该尽可能在类定义的开头写好类型别名。
#include <iostream>
#include <type_traits>
typedef int length;
class Point3d {
public:
**void mumble(length val) { _val = val; }
length mumble() { return _val; }
static_assert(std::is_same_v<length, int>);
private:
typedef float length;
length _val;
};
int main() {}