labath added a comment.

In, @vsk wrote:

> > What do you think about a syntax like:
> > 
> > lldb_utility::CleanUp cleanup_our(::close, our_socket); // The CleanUp 
> > constructor creates the std::function internally
> @labath I find the current version of the code more readable, since the 
> behavior of the cleanup is apparent in less time. And I'd prefer to keep the 
> CleanUp utility very small, without any scope for expansion. I don't think 
> the ergonomics of the new syntax outweigh the advantages of a simpler 
> approach.

I don't think this would complicate anything. It should literally be a matter 
of replacing your constructor with:

  template<typename F, typename... Args>
  CleanUp(F &&f, Args &&..args)
      : PerformCleanup(true), Clean(std::bind(std::forward<F>(f), 
std::forward<Args>(args)...) {}

Although I can see how you may find the other usage syntax more understandable, 
so I am not adamant about this...

lldb-commits mailing list

Reply via email to