|
ElementType * | get () |
|
const ElementType * | get () const |
|
constexpr | operator bool () const |
|
template<class T = Wrapped, typename std::enable_if< std::is_pointer< T >::value||std::is_convertible< T, const ElementType * >::value, bool >::type = true> |
constexpr | operator const ElementType * () const |
|
template<class T = Wrapped, typename std::enable_if< std::is_pointer< T >::value||std::is_convertible< T, const ElementType * >::value, bool >::type = true> |
constexpr | operator ElementType * () |
|
ElementType & | operator* () |
|
const ElementType & | operator* () const |
|
ElementType * | operator-> () |
|
const ElementType * | operator-> () const |
|
PropagateConst & | operator= (PropagateConst &&)=default |
|
template<class T , typename std::enable_if< std::is_convertible< T &&, Wrapped >::value, bool >::type = true> |
constexpr PropagateConst & | operator= (PropagateConst< T > &&p) |
|
template<class T , typename std::enable_if< std::is_convertible< T &&, Wrapped >::value &&!meta::TypeTemplateTraits::IsInstanceOf< PropagateConst, typename std::decay< T >::type >::value, bool >::type = true> |
constexpr PropagateConst & | operator= (T &&p) |
|
constexpr | PropagateConst ()=default |
|
constexpr | PropagateConst (PropagateConst &&)=default |
|
template<class T , typename std::enable_if< std::is_constructible< Wrapped, T && >::value &&std::is_convertible< T &&, Wrapped >::value, bool >::type = true> |
constexpr | PropagateConst (PropagateConst< T > &&p) |
|
template<class T , typename std::enable_if< std::is_constructible< Wrapped, T && >::value &&!std::is_convertible< T &&, Wrapped >::value, bool >::type = true> |
constexpr | PropagateConst (PropagateConst< T > &&p) |
|
template<class T , typename std::enable_if< std::is_constructible< Wrapped, T && >::value &&std::is_convertible< T &&, Wrapped >::value &&!meta::TypeTemplateTraits::IsInstanceOf< PropagateConst, typename std::decay< T >::type >::value, bool >::type = true> |
constexpr | PropagateConst (T &&p) |
|
template<class T , typename std::enable_if< std::is_constructible< Wrapped, T && >::value &&!std::is_convertible< T &&, Wrapped >::value &&!meta::TypeTemplateTraits::IsInstanceOf< PropagateConst, typename std::decay< T >::type >::value, bool >::type = true> |
constexpr | PropagateConst (T &&p) |
|
constexpr | PropagateConst (Wrapped &p) |
|
constexpr void | swap (PropagateConst &pt) noexcept(noexcept(std::swap(std::declval< Wrapped & >(), std::declval< Wrapped & >()))) |
|
template<class Wrapped>
class armarx::PropagateConst< Wrapped >
Wrapper for a pointer to propagate const to the pointed to value.
\url{http://en.cppreference.com/w/cpp/experimental/propagate_const} Only difference: the armarx coding style is used (CamelCase instead of snake case) and some constexpr were deleted to work with gcc4.8
{
void f() {std::cout<<"non const\n";}
void f() const {std::cout<<" const\n";}
};
struct Test
{
};
{
Test t;
t.nc->f();
t.pc->f();
const Test tc;
tc.nc->f();
tc.pc->f();
}
Definition at line 69 of file PropagateConst.h.