[C++] Fix value.mk
diff --git a/var.h b/var.h
index 1d35c8f..d9839fe 100644
--- a/var.h
+++ b/var.h
@@ -23,6 +23,8 @@
 
   virtual void AppendVar(Evaluator* ev, Value* v);
 
+  virtual StringPiece String() const = 0;
+
   virtual string DebugString() const = 0;
 
  protected:
@@ -47,6 +49,8 @@
 
   virtual void AppendVar(Evaluator* ev, Value* v);
 
+  virtual StringPiece String() const override;
+
   virtual string DebugString() const override;
 
  private:
@@ -56,7 +60,7 @@
 
 class RecursiveVar : public Var {
  public:
-  RecursiveVar(Value* v, const char* origin);
+  RecursiveVar(Value* v, const char* origin, StringPiece orig);
 
   virtual const char* Flavor() const {
     return "recursive";
@@ -69,11 +73,14 @@
 
   virtual void AppendVar(Evaluator* ev, Value* v);
 
+  virtual StringPiece String() const override;
+
   virtual string DebugString() const override;
 
  private:
   Value* v_;
   const char* origin_;
+  StringPiece orig_;
 };
 
 class UndefinedVar : public Var {
@@ -90,6 +97,8 @@
 
   virtual void Eval(Evaluator* ev, string* s) const override;
 
+  virtual StringPiece String() const override;
+
   virtual string DebugString() const override;
 };