zturner added a comment.

Also I think it doesn't need to be specific to member variables.  We could just 
have

  template <typename T> class Lazy {
    std::function<T()> Update;
    Optional<T> Value;
  public:
    LazyValue(std::function<T()> Update) : Update(std::move(Update)) {}
  };

Then, to get the same member functionality, you could just say:

  struct Foo {
    Foo() : LazyBool([this]() { return expensiveComputeBool(); }) {}
  
    Lazy<bool>  LazyBool;
  
    bool expensiveComputeBool();
  };


Repository:
  rLLDB LLDB

https://reviews.llvm.org/D51557



_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to