15#include <boost/range/algorithm/copy.hpp>
16#include <boost/shared_array.hpp>
21 template <
class String>
25 using Char =
typename String::value_type;
28 explicit set_cmd_line_(
const String& s) : cmd_line_(new Char[s.size() + 1])
30 boost::copy(s, cmd_line_.get());
31 cmd_line_[s.size()] = 0;
34 template <
class WindowsExecutor>
38 e.cmd_line = cmd_line_.get();
42 boost::shared_array<Char> cmd_line_;
45#if defined(_UNICODE) || defined(UNICODE)
46 inline set_cmd_line_<std::wstring>
49 return set_cmd_line_<std::wstring>(ws);
52 inline set_cmd_line_<std::wstring>
55 return set_cmd_line_<std::wstring>(ws);
58 inline set_cmd_line_<std::string>
64 inline set_cmd_line_<std::string>
set_cmd_line_(const String &s)
void on_CreateProcess_setup(WindowsExecutor &e) const
set_cmd_line_< std::string > set_cmd_line(const char *s)