Advertisement
Guest User

Untitled

a guest
May 22nd, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.71 KB | None | 0 0
  1.     template<typename T>
  2.     struct storage_trait {
  3.         static const bool value = false;  
  4.     };
  5.     template<>
  6.     struct storage_trait<Storage> {
  7.         static const bool value = true;
  8.     };
  9.     template<>
  10.     struct storage_trait<FileStorage> {
  11.         static const bool value = true;
  12.     };
  13.     template<class T>
  14.     constexpr bool is_storage = storage_trait<T>::value;
  15.  
  16.     template<class T, bool storage = is_storage<T>>
  17.     class MessageQueue {};
  18.  
  19.     template<class T>
  20.     class MessageQueue<T, true> {
  21.         // generic implementation
  22.     };
  23.  
  24.     template<>
  25.     class MessageQueue<FileStorage, is_storage<FileStorage>>: public MessageQueue<T, true> {
  26.         // filestorage implementation
  27.     };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement