'content' is not captured
Let's look at a simpler example:

void setup ()
{
  String content = "Basic";

  attachInterrupt (digitalPinToInterrupt (2),
                   []()
  {
    Serial.println(content);
  }, 

  FALLING );

}  // end of setup

void loop () { }


This gives the error:

/tmp/arduino_modified_sketch_182173/sketch_jan25a.ino: In lambda function:
sketch_jan25a:8: error: 'content' is not captured
     Serial.println(content);


Why? Because you are using a local variable content in a lambda function which runs at global scope. That is, content is not available to it, because it is inside setup.

To capture it, you can put it in the capture list:

  attachInterrupt (digitalPinToInterrupt (2),
                   [content]()  // capture content


However I found that my example doesn't compile even then.



I think the reason for that can be found here: Lambda Functions in C++11 - the Definitive Guide


  How are Lambda Closures Implemented?
  
  So how does the magic of variable capture really work? It turns out that the way lambdas are implemented is by creating a small class; this class overloads the operator(), so that it acts just like a function. A lambda function is an instance of this class; when the class is constructed, any variables in the surrounding enviroment are passed into the constructor of the lambda function class and saved as member variables. 


You can't pass an instance of a class to attachInterrupt because there is a hidden *this variable that needs to be passed to class instances, and ISRs don't do that.

Now your example isn't an ISR, but probably the same remarks apply.



I don't think there is an enormous amount of point of using lambda functions here. If you must, move content inside the lambda, since that is where you are using it.

Or failing that, make it global scope.



The closest I could get to something that compiled was:

void setup ()
{
  const int content = 42;

  attachInterrupt (digitalPinToInterrupt (2),
                   [=]()
  {
    Serial.println(content);
  },

  FALLING );

}  // end of setup

void loop () { }


Honestly though, I think using lambda functions here just makes your code obscure.