| /* { dg-do compile } */ |
| |
| namespace std __attribute__ ((__visibility__ ("default"))) { |
| template<class _CharT> struct char_traits; |
| } |
| __extension__ typedef __PTRDIFF_TYPE__ ptrdiff_t; |
| namespace std __attribute__ ((__visibility__ ("default"))) { |
| typedef ptrdiff_t streamsize; |
| template<typename _CharT, typename _Traits = char_traits<_CharT> > class basic_ifstream; |
| typedef basic_ifstream<char> ifstream; |
| class ios_base { |
| }; |
| } |
| template<class T> class Vector4 { |
| public: |
| inline Vector4(); |
| inline Vector4(T, T, T, T); |
| T x, y, z, w; |
| }; |
| template<class T> class Matrix4 { |
| public: |
| Matrix4(const Vector4<T>&, const Vector4<T>&, const Vector4<T>&, const Vector4<T>&); |
| Matrix4(const Matrix4<T>& m); |
| Vector4<T> r[4]; |
| }; |
| typedef Vector4<float> Vec4f; |
| typedef Matrix4<float> Mat4f; |
| template<class T> Vector4<T>::Vector4() : x(0), y(0), z(0), w(0) { |
| } |
| template<class T> Vector4<T>::Vector4(T _x, T _y, T _z, T _w) : x(_x), y(_y), z(_z), w(_w) { |
| } |
| template<class T> Matrix4<T>::Matrix4(const Vector4<T>& v0, const Vector4<T>& v1, const Vector4<T>& v2, const Vector4<T>& v3) { |
| } |
| namespace std __attribute__ ((__visibility__ ("default"))) { |
| template<typename _CharT, typename _Traits> class basic_ios : public ios_base { |
| }; |
| template<typename _CharT, typename _Traits> class basic_istream : virtual public basic_ios<_CharT, _Traits> { |
| public: |
| typedef _CharT char_type; |
| typedef basic_istream<_CharT, _Traits> __istream_type; |
| __istream_type& read(char_type* __s, streamsize __n); |
| }; |
| template<typename _CharT, typename _Traits> class basic_ifstream : public basic_istream<_CharT, _Traits> { |
| }; |
| } |
| using namespace std; |
| static float readFloat(ifstream& in) { |
| float f; |
| in.read((char*) &f, sizeof(float)); |
| return f; |
| } |
| Mat4f readMeshMatrix(ifstream& in, int nBytes) { |
| float m00 = readFloat(in); |
| float m01 = readFloat(in); |
| float m02 = readFloat(in); |
| float m10 = readFloat(in); |
| float m11 = readFloat(in); |
| float m12 = readFloat(in); |
| float m20 = readFloat(in); |
| float m21 = readFloat(in); |
| float m22 = readFloat(in); |
| float m30 = readFloat(in); |
| float m31 = readFloat(in); |
| float m32 = readFloat(in); |
| return Mat4f(Vec4f(m00, m01, m02, 0), Vec4f(m10, m11, m12, 0), Vec4f(m20, m21, m22, 0), Vec4f(m30, m31, m32, 1)); |
| } |