Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

This is the documentation for an old version of Boost. Click here to view this page for the latest version.
PrevUpHomeNext

Struct template bound_launcher

boost::process::v2::bound_launcher — Utility class to bind initializers to a launcher.

Synopsis

// In header: <boost/process/v2/bind_launcher.hpp>

template<typename Launcher, typename ... Init> 
struct bound_launcher {
  // construct/copy/destruct
  template<typename Launcher_, typename ... Init_> 
    bound_launcher(Launcher_ &&, Init_ &&...);

  // public member functions
  template<typename ExecutionContext, typename Args, typename ... Inits> 
    auto operator()(ExecutionContext &, 
                    const typename std::enable_if< std::is_convertible< ExecutionContext &, boost::asio::execution_context & >::value, filesystem::path >::type &, 
                    Args &&, Inits &&...);
  template<typename ExecutionContext, typename Args, typename ... Inits> 
    auto operator()(ExecutionContext &, error_code &, 
                    const typename std::enable_if< std::is_convertible< ExecutionContext &, boost::asio::execution_context & >::value, filesystem::path >::type &, 
                    Args &&, Inits &&...);
  template<typename Executor, typename Args, typename ... Inits> 
    auto operator()(Executor, 
                    const typename std::enable_if< boost::asio::execution::is_executor< Executor >::value||boost::asio::is_executor< Executor >::value, filesystem::path >::type &, 
                    Args &&, Inits &&...);
  template<typename Executor, typename Args, typename ... Inits> 
    auto operator()(Executor, error_code &, 
                    const typename std::enable_if< boost::asio::execution::is_executor< Executor >::value||boost::asio::is_executor< Executor >::value, filesystem::path >::type &, 
                    Args &&, Inits &&...);

  // private member functions
  template<std::size_t ... Idx, typename ExecutionContext, typename Args, 
           typename ... Inits> 
    auto invoke(unspecified, ExecutionContext &, 
                const typename std::enable_if< std::is_convertible< ExecutionContext &, boost::asio::execution_context & >::value, filesystem::path >::type &, 
                Args &&, Inits &&...);
  template<std::size_t ... Idx, typename ExecutionContext, typename Args, 
           typename ... Inits> 
    auto invoke(unspecified, ExecutionContext &, error_code &, 
                const typename std::enable_if< std::is_convertible< ExecutionContext &, boost::asio::execution_context & >::value, filesystem::path >::type &, 
                Args &&, Inits &&...);
  template<std::size_t ... Idx, typename Executor, typename Args, 
           typename ... Inits> 
    auto invoke(unspecified, Executor, 
                const typename std::enable_if< boost::asio::execution::is_executor< Executor >::value||boost::asio::is_executor< Executor >::value, filesystem::path >::type &, 
                Args &&, Inits &&...);
  template<std::size_t ... Idx, typename Executor, typename Args, 
           typename ... Inits> 
    auto invoke(unspecified, Executor, error_code &, 
                const typename std::enable_if< boost::asio::execution::is_executor< Executor >::value||boost::asio::is_executor< Executor >::value, filesystem::path >::type &, 
                Args &&, Inits &&...);
};

Description

This can be used when multiple processes shared some settings, e.g.

Template Parameters

  1. typename Launcher

    The inner launcher to be used

  2. typename ... Init

bound_launcher public construct/copy/destruct

  1. template<typename Launcher_, typename ... Init_> 
      bound_launcher(Launcher_ && l, Init_ &&... init);

bound_launcher public member functions

  1. template<typename ExecutionContext, typename Args, typename ... Inits> 
      auto operator()(ExecutionContext & context, 
                      const typename std::enable_if< std::is_convertible< ExecutionContext &, boost::asio::execution_context & >::value, filesystem::path >::type & executable, 
                      Args && args, Inits &&... inits);
  2. template<typename ExecutionContext, typename Args, typename ... Inits> 
      auto operator()(ExecutionContext & context, error_code & ec, 
                      const typename std::enable_if< std::is_convertible< ExecutionContext &, boost::asio::execution_context & >::value, filesystem::path >::type & executable, 
                      Args && args, Inits &&... inits);
  3. template<typename Executor, typename Args, typename ... Inits> 
      auto operator()(Executor exec, 
                      const typename std::enable_if< boost::asio::execution::is_executor< Executor >::value||boost::asio::is_executor< Executor >::value, filesystem::path >::type & executable, 
                      Args && args, Inits &&... inits);
  4. template<typename Executor, typename Args, typename ... Inits> 
      auto operator()(Executor exec, error_code & ec, 
                      const typename std::enable_if< boost::asio::execution::is_executor< Executor >::value||boost::asio::is_executor< Executor >::value, filesystem::path >::type & executable, 
                      Args && args, Inits &&... inits);

bound_launcher private member functions

  1. template<std::size_t ... Idx, typename ExecutionContext, typename Args, 
             typename ... Inits> 
      auto invoke(unspecified, ExecutionContext & context, 
                  const typename std::enable_if< std::is_convertible< ExecutionContext &, boost::asio::execution_context & >::value, filesystem::path >::type & executable, 
                  Args && args, Inits &&... inits);
  2. template<std::size_t ... Idx, typename ExecutionContext, typename Args, 
             typename ... Inits> 
      auto invoke(unspecified, ExecutionContext & context, error_code & ec, 
                  const typename std::enable_if< std::is_convertible< ExecutionContext &, boost::asio::execution_context & >::value, filesystem::path >::type & executable, 
                  Args && args, Inits &&... inits);
  3. template<std::size_t ... Idx, typename Executor, typename Args, 
             typename ... Inits> 
      auto invoke(unspecified, Executor exec, 
                  const typename std::enable_if< boost::asio::execution::is_executor< Executor >::value||boost::asio::is_executor< Executor >::value, filesystem::path >::type & executable, 
                  Args && args, Inits &&... inits);
  4. template<std::size_t ... Idx, typename Executor, typename Args, 
             typename ... Inits> 
      auto invoke(unspecified, Executor exec, error_code & ec, 
                  const typename std::enable_if< boost::asio::execution::is_executor< Executor >::value||boost::asio::is_executor< Executor >::value, filesystem::path >::type & executable, 
                  Args && args, Inits &&... inits);

PrevUpHomeNext