env.hpp 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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/detail/traits/decl.hpp>
  8. namespace boost { namespace process {
  9. template<typename Char>
  10. class basic_environment;
  11. template<typename Char>
  12. class basic_native_environment;
  13. namespace detail {
  14. template<typename Char>
  15. struct env_tag {};
  16. template<typename Char> struct env_set;
  17. template<typename Char> struct env_append;
  18. template<typename Char> struct env_reset;
  19. template<typename Char> struct env_init;
  20. template<typename Char> struct initializer_tag<env_set<Char>> { typedef env_tag<Char> type; };
  21. template<typename Char> struct initializer_tag<env_append<Char>> { typedef env_tag<Char> type; };
  22. template<typename Char> struct initializer_tag<env_reset<Char>> { typedef env_tag<Char> type;};
  23. template<typename Char> struct initializer_tag<env_init <Char>> { typedef env_tag<Char> type;};
  24. template<typename Char> struct initializer_tag<::boost::process::basic_environment<Char>> { typedef env_tag<Char> type; };
  25. template<typename Char> struct initializer_tag<::boost::process::basic_native_environment<Char>> { typedef env_tag<Char> type; };
  26. template<> struct initializer_builder<env_tag<char>>;
  27. template<> struct initializer_builder<env_tag<wchar_t>>;
  28. }
  29. }}
  30. #endif /* INCLUDE_BOOST_PROCESS_DETAIL_ENV_HPP_ */