PLaSK library

Loading...
Searching...
No Matches
Classes | Namespaces | Typedefs | Functions
stl.hpp File Reference

This file contains tools which provide compatibility with STL containers, etc. More...

`#include <algorithm>`
`#include <cstddef>`
`#include <tuple>`
`#include <type_traits>`
Include dependency graph for stl.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

## Classes
struct | plask::VariadicTemplateTypesHolder< Types >
struct | plask::AssignWithBackup< T >
| Assign new value to variable and back the old value in destructor. More...
struct | plask::indices<... >
| Don't use this directly, use applyTuple instead. More...
struct | plask::make_seq_indices_impl< Begin, End, indices< Indices... > >
struct | plask::make_seq_indices_impl< End, End, indices< Indices... > >
struct | plask::DontCopyThisField< T >
| This template can be used to show fileds shich should be just ignore by copy constructors and assign operators of the class. More...

## Namespaces
namespace | plask
| Patterson quadrature for complex function along specified line.

## Typedefs
template<std::size_t Begin, std::size_t End>
using | plask::make_seq_indices = typename make_seq_indices_impl< Begin, End, indices<> >::type
template<typename F >
using | plask::return_type = typename std::result_of< F >::type

## Functions
template<typename map_t >
map_t::mapped_type | plask::map_find (map_t &map, const typename map_t::key_type &to_find, typename map_t::mapped_type &&if_not_found=nullptr)
| Try find value in map by key and return if_not_found value if object was not found.
template<typename Iter , typename Val >
Iter | plask::find_nearest_using_lower_bound (Iter begin, Iter end, const Val &to_find, Iter lower_bound)
| Find position in ascending ordered, radnom access, sequence [begin, end) of floats or doubles nearest to `to_find`.
template<typename Iter , typename Val >
Iter | plask::find_nearest_binary (Iter begin, Iter end, const Val &to_find)
| Find position in ascending ordered, radnom access, sequence [begin, end) of floats or doubles nearest to `to_find`.
template<typename ForwadIterator >
std::ostream & | plask::printRange (std::ostream &out, ForwadIterator begin, ForwadIterator end, const char *separator=", ")
| Print range separating elements by `separator` (which is not printed after last element).
template<typename Tuple >
constexpr std::size_t | plask::tuple_size ()
template<typename Op , typename T , template< std::size_t... > class I, std::size_t... Indices>
constexpr auto | plask::apply_tuple_return_type_impl (Op &&op, T &&t, I< Indices... >) -> return_type< Op(decltype(std::get< Indices >(std::forward< T >(t)))...)>
template<typename Op , typename T >
constexpr auto | plask::apply_tuple_return_type (Op &&op, T &&t) -> decltype(apply_tuple_return_type_impl(op, t, make_seq_indices< 0, tuple_size< T >()>{}))
template<typename Ret , typename Op , typename T , template< std::size_t... > class I, std::size_t... Indices>
Ret | plask::apply_tuple (Op &&op, T &&t, I< Indices... >)
template<typename Op , typename Tuple >
auto | plask::apply_tuple (Op &&op, Tuple &&t) -> decltype(apply_tuple_return_type(std::forward< Op >(op), std::forward< Tuple >(t)))
| Call `f` using arguments from tuple.

## Detailed Description

This file contains tools which provide compatibility with STL containers, etc.

Definition in file stl.hpp.