PLaSK library
|
This file contains tools which provide compatibility with STL containers, etc. More...
#include <algorithm>
#include <cstddef>
#include <tuple>
#include <type_traits>
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. | |
This file contains tools which provide compatibility with STL containers, etc.
Definition in file stl.hpp.