Is there a nice way to have a non static value as default argument in a function? I've seen some older responses to the same question which always end up in explicitly writing out the overload. Is this still necessary in C++17?
What I'd like to do is do something akin to
class C {
  const int N; //Initialized in constructor
  void foo(int x = this->N){
    //do something
  }
}
instead of having to write
class C {
  const int N; //Initialized in constructor
  void foo(){
    foo(N);
  }
  void foo(int x){
    //do something
  }
}
which makes the purpose of the overload less obvious.
 
    