BitShares-Core  4.0.0
BitShares blockchain implementation and command-line interface software
fwd.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 namespace fc {
4 
9 template<typename T,unsigned int S, typename Align=double>
10 class fwd {
11  public:
12  template<typename U> fwd( U&& u );
13  template<typename U, typename V> fwd( U&& u, V&& v );
14  template<typename U, typename V, typename X, typename Y> fwd( U&& u, V&& v, X&&, Y&& );
15  fwd();
16 
17  fwd( const fwd& f );
18  fwd( fwd&& f );
19 
20  operator const T&()const;
21  operator T&();
22 
23  T& operator*();
24  const T& operator*()const;
25  const T* operator->()const;
26 
27  T* operator->();
28  bool operator !()const;
29 
30  template<typename U>
31  T& operator = ( U&& u );
32 
33  T& operator = ( fwd&& u );
34  T& operator = ( const fwd& u );
35 
36  ~fwd();
37 
38  private:
39  alignas(Align) char _store[S];
40 };
41 
42 
43 } // namespace fc
44 
Used to forward declare value types.
Definition: fwd.hpp:10
T & operator*()
Definition: fwd_impl.hpp:107
const T * operator->() const
Definition: fwd_impl.hpp:111
T & operator=(U &&u)
Definition: fwd_impl.hpp:123
bool operator!() const
Definition: fwd_impl.hpp:56
Definition: api.hpp:15