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 6 #ifndef BOOST_PROCESS_DETAIL_TRAITS_ENV_HPP_ 7 #define BOOST_PROCESS_DETAIL_TRAITS_ENV_HPP_ 8 9 10 #include <boost/process/detail/traits/decl.hpp> 11 12 13 namespace boost { namespace process { 14 15 template<typename Char> 16 class basic_environment; 17 18 template<typename Char> 19 class basic_native_environment; 20 21 namespace detail { 22 23 template<typename Char> 24 struct env_tag {}; 25 26 27 28 29 template<typename Char> struct env_set; 30 template<typename Char> struct env_append; 31 32 template<typename Char> struct env_reset; 33 template<typename Char> struct env_init; 34 35 36 template<typename Char> struct initializer_tag<env_set<Char>> { typedef env_tag<Char> type; }; 37 template<typename Char> struct initializer_tag<env_append<Char>> { typedef env_tag<Char> type; }; 38 39 template<typename Char> struct initializer_tag<env_reset<Char>> { typedef env_tag<Char> type;}; 40 template<typename Char> struct initializer_tag<env_init <Char>> { typedef env_tag<Char> type;}; 41 42 template<typename Char> struct initializer_tag<::boost::process::basic_environment<Char>> { typedef env_tag<Char> type; }; 43 template<typename Char> struct initializer_tag<::boost::process::basic_native_environment<Char>> { typedef env_tag<Char> type; }; 44 45 template<> struct initializer_builder<env_tag<char>>; 46 template<> struct initializer_builder<env_tag<wchar_t>>; 47 48 } 49 50 51 }} 52 53 #endif /* INCLUDE_BOOST_PROCESS_DETAIL_ENV_HPP_ */ 54