env.hpp 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. // Copyright (c) 2016 Klemens D. Morgenstern
  2. //
  3. // Distributed under the Boost Software License, Version 1.0. (See accompanying
  4. // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  5. #ifndef BOOST_PROCESS_DETAIL_TRAITS_ENV_HPP_
  6. #define BOOST_PROCESS_DETAIL_TRAITS_ENV_HPP_
  7. #include <boost/process/v1/detail/config.hpp>
  8. #include <boost/process/v1/detail/traits/decl.hpp>
  9. namespace boost { namespace process { BOOST_PROCESS_V1_INLINE namespace v1 {
  10. template<typename Char>
  11. class basic_environment;
  12. template<typename Char>
  13. class basic_native_environment;
  14. namespace detail {
  15. template<typename Char>
  16. struct env_tag {};
  17. template<typename Char> struct env_set;
  18. template<typename Char> struct env_append;
  19. template<typename Char> struct env_reset;
  20. template<typename Char> struct env_init;
  21. template<typename Char> struct initializer_tag<env_set<Char>> { typedef env_tag<Char> type; };
  22. template<typename Char> struct initializer_tag<env_append<Char>> { typedef env_tag<Char> type; };
  23. template<typename Char> struct initializer_tag<env_reset<Char>> { typedef env_tag<Char> type;};
  24. template<typename Char> struct initializer_tag<env_init <Char>> { typedef env_tag<Char> type;};
  25. template<typename Char> struct initializer_tag<::boost::process::v1::basic_environment<Char>> { typedef env_tag<Char> type; };
  26. template<typename Char> struct initializer_tag<::boost::process::v1::basic_native_environment<Char>> { typedef env_tag<Char> type; };
  27. template<> struct initializer_builder<env_tag<char>>;
  28. template<> struct initializer_builder<env_tag<wchar_t>>;
  29. }
  30. }}}
  31. #endif /* INCLUDE_BOOST_PROCESS_DETAIL_ENV_HPP_ */