timemory 3.3.0
Modular C++ Toolkit for Performance Analysis and Logging. Profiling API and Tools for C, C++, CUDA, Fortran, and Python. The C++ template API is essentially a framework to creating tools: it is designed to provide a unifying interface for recording various performance measurements alongside data logging and interfaces to other tools.
stl.hpp File Reference
#include "timemory/math/fwd.hpp"
#include "timemory/utility/macros.hpp"
#include <array>
#include <chrono>
#include <ostream>
#include <tuple>
#include <utility>
#include <vector>
+ 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.

Namespaces

namespace  tim
 
namespace  tim::stl
 the namespace is provided to hide stl overload from global namespace but provide a method of using the namespace without a "using namespace tim;"
 
namespace  std
 STL namespace.
 

Functions

template<typename Tp , size_t N, typename OtherT >
std::array< Tp, N > & tim::stl::operator+= (std::array< Tp, N > &lhs, OtherT &&rhs)
 
template<typename Lhs , typename Rhs , typename OtherT >
std::pair< Lhs, Rhs > & tim::stl::operator+= (std::pair< Lhs, Rhs > &lhs, OtherT &&rhs)
 
template<typename Tp , typename... ExtraT, typename OtherT >
std::vector< Tp, ExtraT... > & tim::stl::operator+= (std::vector< Tp, ExtraT... > &lhs, OtherT &&rhs)
 
template<typename... Types, typename OtherT >
std::tuple< Types... > & tim::stl::operator+= (std::tuple< Types... > &lhs, OtherT &&rhs)
 
template<typename Tp , size_t N>
std::array< Tp, N > & tim::stl::operator-= (std::array< Tp, N > &, const std::array< Tp, N > &)
 
template<typename Lhs , typename Rhs >
std::pair< Lhs, Rhs > & tim::stl::operator-= (std::pair< Lhs, Rhs > &, const std::pair< Lhs, Rhs > &)
 
template<typename Tp , typename... ExtraT>
std::vector< Tp, ExtraT... > & tim::stl::operator-= (std::vector< Tp, ExtraT... > &lhs, const std::vector< Tp, ExtraT... > &rhs)
 
template<typename... Types>
std::tuple< Types... > & tim::stl::operator-= (std::tuple< Types... > &, const std::tuple< Types... > &)
 
template<typename Tp , size_t N>
std::array< Tp, N > & tim::stl::operator*= (std::array< Tp, N > &, const std::array< Tp, N > &)
 
template<typename Lhs , typename Rhs >
std::pair< Lhs, Rhs > & tim::stl::operator*= (std::pair< Lhs, Rhs > &, const std::pair< Lhs, Rhs > &)
 
template<typename Tp , typename... ExtraT>
std::vector< Tp, ExtraT... > & tim::stl::operator*= (std::vector< Tp, ExtraT... > &lhs, const std::vector< Tp, ExtraT... > &rhs)
 
template<typename... Types>
std::tuple< Types... > & tim::stl::operator*= (std::tuple< Types... > &, const std::tuple< Types... > &)
 
template<typename Tp , size_t N>
std::array< Tp, N > & tim::stl::operator/= (std::array< Tp, N > &, const std::array< Tp, N > &)
 
template<typename Lhs , typename Rhs >
std::pair< Lhs, Rhs > & tim::stl::operator/= (std::pair< Lhs, Rhs > &, const std::pair< Lhs, Rhs > &)
 
template<typename Tp , typename... ExtraT>
std::vector< Tp, ExtraT... > & tim::stl::operator/= (std::vector< Tp, ExtraT... > &lhs, const std::vector< Tp, ExtraT... > &rhs)
 
template<typename... Types>
std::tuple< Types... > & tim::stl::operator/= (std::tuple< Types... > &, const std::tuple< Types... > &)
 
template<typename Lhs , size_t N, typename Rhs , enable_if_t< std::is_arithmetic< decay_t< Rhs > >::value, int > = 0>
std::array< Lhs, N > & tim::stl::operator*= (std::array< Lhs, N > &, const Rhs &)
 
template<typename Lhs , typename Rhs , typename ArithT , enable_if_t< std::is_arithmetic< decay_t< ArithT > >::value, int > = 0>
std::pair< Lhs, Rhs > & tim::stl::operator*= (std::pair< Lhs, Rhs > &, const ArithT &)
 
template<typename Lhs , typename Rhs , typename... ExtraT, enable_if_t< std::is_arithmetic< decay_t< Rhs > >::value, int > >
std::vector< Lhs, ExtraT... > & tim::stl::operator*= (std::vector< Lhs, ExtraT... > &lhs, const Rhs &rhs)
 
template<typename... Lhs, typename Rhs , enable_if_t< std::is_arithmetic< decay_t< Rhs > >::value, int > = 0>
std::tuple< Lhs... > & tim::stl::operator*= (std::tuple< Lhs... > &, const Rhs &)
 
template<typename Lhs , size_t N, typename Rhs , enable_if_t< std::is_arithmetic< decay_t< Rhs > >::value, int > = 0>
std::array< Lhs, N > & tim::stl::operator/= (std::array< Lhs, N > &, const Rhs &)
 
template<typename Lhs , typename Rhs , typename ArithT , enable_if_t< std::is_arithmetic< decay_t< ArithT > >::value, int > = 0>
std::pair< Lhs, Rhs > & tim::stl::operator/= (std::pair< Lhs, Rhs > &, const ArithT &)
 
template<typename Lhs , typename Rhs , typename... ExtraT, enable_if_t< std::is_arithmetic< decay_t< Rhs > >::value, int > >
std::vector< Lhs, ExtraT... > & tim::stl::operator/= (std::vector< Lhs, ExtraT... > &lhs, const Rhs &rhs)
 
template<typename... Lhs, typename Rhs , enable_if_t< std::is_arithmetic< decay_t< Rhs > >::value, int > = 0>
std::tuple< Lhs... > & tim::stl::operator/= (std::tuple< Lhs... > &, const Rhs &)
 
template<typename Lhs , typename Rhs , enable_if_t< std::is_arithmetic< decay_t< Rhs > >::value, int > = 0>
Lhs tim::stl::operator* (Lhs, const Rhs &)
 
template<typename Rhs , enable_if_t< std::is_arithmetic< decay_t< Rhs > >::value, int > = 0>
std::chrono::system_clock::time_point & tim::stl::operator/= (std::chrono::system_clock::time_point &lhs, Rhs)
 
template<typename Lhs , typename Rhs , enable_if_t< std::is_arithmetic< decay_t< Rhs > >::value, int > = 0>
Lhs tim::stl::operator/ (Lhs, const Rhs &)
 
template<typename Tp , size_t N>
std::array< Tp, N > tim::stl::operator+ (std::array< Tp, N > lhs, const std::array< Tp, N > &rhs)
 
template<typename... Types>
std::tuple< Types... > tim::stl::operator+ (std::tuple< Types... > lhs, const std::tuple< Types... > &rhs)
 
template<typename Lhs , typename Rhs >
std::pair< Lhs, Rhs > tim::stl::operator+ (std::pair< Lhs, Rhs > lhs, const std::pair< Lhs, Rhs > &rhs)
 
template<typename Tp , typename... Extra>
std::vector< Tp, Extra... > tim::stl::operator+ (std::vector< Tp, Extra... > lhs, const std::vector< Tp, Extra... > &rhs)
 
template<typename Tp , size_t N>
std::array< Tp, N > tim::stl::operator- (std::array< Tp, N > lhs, const std::array< Tp, N > &rhs)
 
template<typename... Types>
std::tuple< Types... > tim::stl::operator- (std::tuple< Types... > lhs, const std::tuple< Types... > &rhs)
 
template<typename Lhs , typename Rhs >
std::pair< Lhs, Rhs > tim::stl::operator- (std::pair< Lhs, Rhs > lhs, const std::pair< Lhs, Rhs > &rhs)
 
template<typename Tp , typename... Extra>
std::vector< Tp, Extra... > tim::stl::operator- (std::vector< Tp, Extra... > lhs, const std::vector< Tp, Extra... > &rhs)
 
template<typename Tp , size_t N>
std::array< Tp, N > tim::stl::operator* (std::array< Tp, N > lhs, const std::array< Tp, N > &rhs)
 
template<typename... Types>
std::tuple< Types... > tim::stl::operator* (std::tuple< Types... > lhs, const std::tuple< Types... > &rhs)
 
template<typename Lhs , typename Rhs >
std::pair< Lhs, Rhs > tim::stl::operator* (std::pair< Lhs, Rhs > lhs, const std::pair< Lhs, Rhs > &rhs)
 
template<typename Tp , typename... Extra>
std::vector< Tp, Extra... > tim::stl::operator* (std::vector< Tp, Extra... > lhs, const std::vector< Tp, Extra... > &rhs)
 
template<typename Tp , size_t N>
std::array< Tp, N > tim::stl::operator/ (std::array< Tp, N > lhs, const std::array< Tp, N > &rhs)
 
template<typename... Types>
std::tuple< Types... > tim::stl::operator/ (std::tuple< Types... > lhs, const std::tuple< Types... > &rhs)
 
template<typename Lhs , typename Rhs >
std::pair< Lhs, Rhs > tim::stl::operator/ (std::pair< Lhs, Rhs > lhs, const std::pair< Lhs, Rhs > &rhs)
 
template<typename Tp , typename... Extra>
std::vector< Tp, Extra... > tim::stl::operator/ (std::vector< Tp, Extra... > lhs, const std::vector< Tp, Extra... > &rhs)
 
template<typename Tp >
tuple & std::operator+= (tuple<> &_lhs, const Tp &)
 

Detailed Description

Provides operators on common STL structures such as <<, +=, -=, *=, /=, +, -, *, /

Definition in file stl.hpp.