I have this code :
#include <future>
#include <iostream>
struct Status
{
    std::string Available;
    std::string Connected;
    std::string DisConnected;
};
class Test
{
 public:
   Test();
   Status &status()
   {
       return _status;
   }
   void setStatus(const Status &newStatus)
   {
       _status = newStatus;
   }
   std::string show()
   {
       return Status::Available;
   }
private:
    Status _status ;
};
int main()
{
    Test tst;
    auto value= std::async([](std::string str) { return str;} ,tst.show());
    std::cout <<value.get();
    return 0;
}
as I compile it I get this error :
illegal reference to non-static member 'Status::Available'
I don't know how should I fix this but it happens because of I use that function in  std::async. also I don't know why this happens.

 
    