从局部变量的 class 中提取静态成员类型

Extract static member type from class of local variable

是否可以从局部变量的 class 中提取静态成员类型?又名

行中的东西
class A {
 public:
  typedef int constituent_type;
  constituent_type a;
  A(constituent_type _a) :a(_a) {};
}


int main() {
  auto a = A(42);

  // ... lots ... of other code; where I have long since forgottten, what the type of a really was

  std::max<a::constituent_type>(a, a); //<<<
}


您可以在 C++ 11 或更高版本中使用 decltype:

decltype(a)::x

现场演示:

https://godbolt.org/z/cTq9zhKxe