Subversion Repositories Games.Descent

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. /*
  2.  * This file is part of the DXX-Rebirth project <http://www.dxx-rebirth.com/>.
  3.  * It is copyright by its individual contributors, as recorded in the
  4.  * project's Git history.  See COPYING.txt at the top level for license
  5.  * terms and a link to the Git history.
  6.  */
  7. #pragma once
  8. #include <cstddef>
  9. #include <type_traits>
  10.  
  11. namespace detail {
  12.  
  13. template <typename T>
  14. std::is_rvalue_reference<T> is_ephemeral_range(...);
  15.  
  16. template <typename T>
  17. typename std::remove_reference<T>::type::range_owns_iterated_storage is_ephemeral_range(std::nullptr_t);
  18.  
  19. }
  20.  
  21. template <typename... Tn>
  22. using any_ephemeral_range = std::disjunction<decltype(detail::is_ephemeral_range<Tn>(nullptr))...>;
  23.