1#ifndef _TCUARRAY_HPP
2#define _TCUARRAY_HPP
3/*-------------------------------------------------------------------------
4 * drawElements Quality Program Tester Core
5 * ----------------------------------------
6 *
7 * Copyright 2015 The Android Open Source Project
8 *
9 * Licensed under the Apache License, Version 2.0 (the "License");
10 * you may not use this file except in compliance with the License.
11 * You may obtain a copy of the License at
12 *
13 *      http://www.apache.org/licenses/LICENSE-2.0
14 *
15 * Unless required by applicable law or agreed to in writing, software
16 * distributed under the License is distributed on an "AS IS" BASIS,
17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 * See the License for the specific language governing permissions and
19 * limitations under the License.
20 *
21 *//*!
22 * \file
23 * \brief Templatized array class.
24 *//*--------------------------------------------------------------------*/
25
26#include "tcuDefs.hpp"
27#include "tcuFormatUtil.hpp"
28
29#include <ostream>
30
31namespace tcu
32{
33
34template <typename T, int Size>
35class Array
36{
37public:
38					Array			(void) {}
39					~Array			(void) {}
40
41	inline T		operator[]		(int ndx) const		{ return m_data[ndx]; }
42	inline T&		operator[]		(int ndx)			{ return m_data[ndx]; }
43
44	inline const T*	getPtr			(void) const		{ return m_data; }
45	inline T*		getPtr			(void)				{ return m_data; }
46
47private:
48	T				m_data[Size];
49} DE_WARN_UNUSED_TYPE;
50
51
52template <typename T, int Size>
53std::ostream& operator<< (std::ostream& stream, const Array<T, Size>& arr)
54{
55	return stream << Format::Array<T*>(arr.getPtr(), arr.getPtr() + Size);
56}
57
58} // tcu
59
60#endif // _TCUARRAY_HPP
61