provider.h File Reference
#include <memory>
#include <sstream>
#include <string>
#include <type_traits>
#include "mpqc/util/core/exception.h"
#include "mpqc/util/keyval/keyval.h"
Include dependency graph for provider.h:
This graph shows which files directly or indirectly include this file:
Classes | |
struct | mpqc::detail::ProviderBase |
utility class to support runtime casting to property providers More... | |
class | mpqc::Provides< Properties > |
Base for classes that provide Properties . More... | |
class | mpqc::Provides< Property > |
struct | mpqc::detail::has_provider< T > |
has_provider<T>::value is true if T::Provider is a valid type More... | |
Namespaces | |
mpqc | |
The top-level namespace for all Massively Parallel Quantum Chemistry package. | |
mpqc::detail | |
Functions | |
template<typename Property , typename Provider > | |
bool | mpqc::provides (const std::shared_ptr< Provider > &provider) |
template<typename T > | |
T * | mpqc::detail::to_pointer (T *obj) |
template<typename T > | |
auto | mpqc::detail::to_pointer (T &obj) -> std::enable_if_t< utility::meta::is_shared_ptr< typename std::decay< T >::type >::value, decltype(obj.get())> |
template<typename T > | |
std::enable_if_t< !utility::meta::is_shared_ptr< typename std::decay< T >::type >::value, typename std::decay< T >::type * > | mpqc::detail::to_pointer (T &obj) |
template<typename T > | |
std::string | mpqc::detail::description (T *obj_ptr) |
obtains a description of the object pointer to by obj_ptr More... | |
template<typename Property , typename Object > | |
std::enable_if_t< detail::has_provider< Property >::value, typename Property::Provider * > | mpqc::as_provider_of (Object *ptr) |
template<typename Property , typename Object > | |
std::enable_if_t< detail::has_provider< Property >::value, typename Property::Provider * > | mpqc::as_provider_of (const std::shared_ptr< Object > &ptr) |
template<typename Property , typename Provider , typename... EvaluateArgs> | |
std::enable_if_t<(detail::has_provider< Property >::value &&!std::is_const< Property >::value), void > | mpqc::evaluate (Property &property, Provider &provider, EvaluateArgs... eval_args) |
Evaluates property using provider . More... | |
template<typename Property , typename Provider > | |
std::enable_if_t< detail::has_provider< Property >::value, Property & > | mpqc::operator<< (Property &property, Provider &provider) |
Evaluates property using provider . More... | |