Boost C++ Libraries Home Libraries People FAQ More

PrevUpHomeNext

Reference -- EXPERIMENTAL

Parallel V1
Header <experimental/exception_list.hpp>
Parallel V2
Concepts
Header <experimental/task_region.hpp>
namespace boost
{
namespace experimental
{
namespace parallel
{
inline namespace v1
{

  class exception_list;

} // v1
} // parallel
} // experimental
} // boost
namespace boost
{
namespace experimental
{
namespace parallel
{
inline namespace v1
{

  class exception_list: public std::exception
  {
  public:
    typedef 'implementation defined' const_iterator;

    ~exception_list() noexcept {}

    void add(exception_ptr const& e);
    size_t size() const noexcept;
    const_iterator begin() const noexcept;
    const_iterator end() const noexcept;
    const char* what() const noexcept;

  };

} // v1
} // parallel
} // experimental
} // boost
namespace boost
{
namespace experimental
{
namespace parallel
{
inline namespace v2
{

  class task_canceled_exception;

  template <class Executor>
  class task_region_handle_gen;

  using default_executor = 'implementation defined';

  class task_region_handle;

  template <typename Executor, typename F>
    void task_region_final(Executor& ex, F&& f);
  template <typename F>
    void task_region_final(F&& f);

  template <typename Executor, typename F>
    void task_region(Executor& ex, F&& f);
  template <typename F>
    void task_region(F&& f);

} // v2
} // parallel
} // experimental
} // boost
namespace boost
{
namespace experimental
{
namespace parallel
{
inline namespace v2
{

  class task_canceled_exception: public std::exception
  {
  public:
    task_canceled_exception() noexcept;
    task_canceled_exception(const task_canceled_exception&) noexcept;
    task_canceled_exception& operator=(const task_canceled_exception&) noexcept;
    virtual const char* what() const noexcept;
  };

} // v2
} // parallel
} // experimental
} // boost
namespace boost
{
namespace experimental
{
namespace parallel
{
inline namespace v2
{

  template <class Executor>
  class task_region_handle_gen
  {
  protected:
    task_region_handle_gen(Executor& ex);

    ~task_region_handle_gen();

  public:
    task_region_handle_gen(const task_region_handle_gen&) = delete;
    task_region_handle_gen& operator=(const task_region_handle_gen&) = delete;
    task_region_handle_gen* operator&() const = delete;

    template<typename F>
    void run(F&& f);

    void wait();
  };

} // v2
} // parallel
} // experimental
} // boost
namespace boost
{
namespace experimental
{
namespace parallel
{
inline namespace v2
{

  using default_executor = 'implementation defined';

} // v2
} // parallel
} // experimental
} // boost
namespace boost
{
namespace experimental
{
namespace parallel
{
inline namespace v2
{

  class task_region_handle :
    public task_region_handle_gen<default_executor>
  {
  protected:
    task_region_handle();
    task_region_handle(const task_region_handle&) = delete;
    task_region_handle& operator=(const task_region_handle&) = delete;
    task_region_handle* operator&() const = delete;

  };

} // v2
} // parallel
} // experimental
} // boost
namespace boost
{
namespace experimental
{
namespace parallel
{
inline namespace v2
{

  template <typename Executor, typename F>
    void task_region_final(Executor& ex, F&& f);
  template <typename F>
    void task_region_final(F&& f);

} // v2
} // parallel
} // experimental
} // boost
namespace boost
{
namespace experimental
{
namespace parallel
{
inline namespace v2
{

  template <typename Executor, typename F>
    void task_region(Executor& ex, F&& f);
  template <typename F>
    void task_region(F&& f);

} // v2
} // parallel
} // experimental
} // boost

PrevUpHomeNext