Lines Matching refs:First
39 template<typename First, typename Second>
43 Either (const First& first);
47 Either (const Either<First, Second>& other);
48 Either& operator= (const Either<First, Second>& other);
50 Either& operator= (const First& first);
56 const First& getFirst (void) const;
72 First* m_first;
78 deUint8 m_data[sizeof(First) > sizeof(Second) ? sizeof(First) : sizeof(Second)];
86 template<typename Type, typename First, typename Second>
89 template<typename First, typename Second>
90 struct Get<First, First, Second>
92 static const First& get (const Either<First, Second>& either) in get()
98 template<typename First, typename Second>
99 struct Get<Second, First, Second>
101 static const Second& get (const Either<First, Second>& either) in get()
107 template<typename Type, typename First, typename Second>
108 const Type& get (const Either<First, Second>& either) in get() argument
110 return Get<Type, First, Second>::get(either); in get()
113 template<typename Type, typename First, typename Second>
116 template<typename First, typename Second>
117 struct Is<First, First, Second>
119 static bool is (const Either<First, Second>& either) in is()
125 template<typename First, typename Second>
126 struct Is<Second, First, Second>
128 static bool is (const Either<First, Second>& either) in is()
134 template<typename Type, typename First, typename Second>
135 bool is (const Either<First, Second>& either) in is() argument
137 return Is<Type, First, Second>::is(either); in is()
142 template<typename First, typename Second>
143 void Either<First, Second>::release (void) in release()
146 m_first->~First(); in release()
154 template<typename First, typename Second>
155 Either<First, Second>::Either (const First& first) in Either()
158 m_first = new(m_data)First(first); in Either()
161 template<typename First, typename Second>
162 Either<First, Second>::Either (const Second& second) in Either()
168 template<typename First, typename Second>
169 Either<First, Second>::~Either (void) in ~Either()
174 template<typename First, typename Second>
175 Either<First, Second>::Either (const Either<First, Second>& other) in Either() argument
179 m_first = new(m_data)First(*other.m_first); in Either()
184 template<typename First, typename Second>
185 Either<First, Second>& Either<First, Second>::operator= (const Either<First, Second>& other) in operator =() argument
195 m_first = new(m_data)First(*other.m_first); in operator =()
202 template<typename First, typename Second>
203 Either<First, Second>& Either<First, Second>::operator= (const First& first) in operator =()
208 m_first = new(m_data)First(first); in operator =()
213 template<typename First, typename Second>
214 Either<First, Second>& Either<First, Second>::operator= (const Second& second) in operator =()
224 template<typename First, typename Second>
225 bool Either<First, Second>::isFirst (void) const in isFirst()
230 template<typename First, typename Second>
231 bool Either<First, Second>::isSecond (void) const in isSecond()
236 template<typename First, typename Second>
237 const First& Either<First, Second>::getFirst (void) const in getFirst()
243 template<typename First, typename Second>
244 const Second& Either<First, Second>::getSecond (void) const in getSecond()
250 template<typename First, typename Second>
252 const Type& Either<First, Second>::get (void) const in get()
254 return EitherDetail::get<Type, First, Second>(*this); in get()
257 template<typename First, typename Second>
259 bool Either<First, Second>::is (void) const in is()
261 return EitherDetail::is<Type, First, Second>(*this); in is()