C2679 — ошибка использования шаблонов в функциях

#c #templates #timestamp

Вопрос:

Я пытаюсь использовать шаблон для использования в методе класса. Однако я не могу напечатать значение.

 template lt;typename Tgt; class A{  uint64_t TTL;  size_t capacity;  struct cacheEntry {  uint32_t hash;  std::dequelt;Tgt; listofTimeStamps; };  unordered_maplt;uint32_t, pairlt;std::dequelt;Tgt;, typename listlt;cacheEntrygt;::iteratorgt;gt; map; listlt;cacheEntrygt; listOfEntries;  public:  //Constructor  A(std::size_t capacity, time_t ttl_in_seconds = 3600)  : capacity(capacity), TTL(ttl_in_seconds) {}   void insertOrUpdateOrEvict(uint32_t key, T timestamp) {  //code code  }  void print(T timestamp) {  cout lt;lt; timestamp;  }  

Объект создается как

 Alt;std::chrono::system_clock::time_pointgt; cache(10, 200);  

Столкнувшись с этой ошибкой — Не уверен, как напечатать эту метку времени типа std::chrono::system_clock::точка времени

 error C2679: binary 'lt;lt;': no operator found which takes a right-hand operand of type 'T' (or there is no acceptable conversion)  with  [  T=std::chrono::system_clock::time_point  ]  note: while compiling class template member function 'void   Alt;std::chrono::system_clock::time_pointgt;::print(T)'  with  [  T=std::chrono::system_clock::time_point  ]  

Комментарии:

1. STL не предоставляет оператор форматированного вывода ( lt;lt; ) для std::chrono::system_clock::time_point типа. С чего бы это? Вам придется написать свой собственный — кто-нибудь здесь может помочь, если вы скажете нам, что вы на самом деле хотите отобразить в этом выводе.