PLaSK library
Loading...
Searching...
No Matches
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.