demotool/externals.hh
2017-11-04 21:23:50 +01:00

85 lines
1.6 KiB
C++

// C
#include <stdio.h>
// System (C)
#include <sys/stat.h>
#include <sys/inotify.h>
#include <fcntl.h>
#include <libgen.h>
#include <unistd.h>
// Misc (C)
#include <SDL.h>
#include <GL/glew.h>
// C++ std
#include <vector>
#include <string>
#include <algorithm>
#include <functional>
#include <memory>
#include <fstream>
#include <map>
#include <set>
#include <regex>
#include <unordered_map>
using std::swap;
// ImGui
#include <imgui.h>
// GLM
#include <glm/mat3x3.hpp>
#include <glm/gtx/euler_angles.hpp>
// PicoJSON
#include <picojson.h>
// EBCL
#include <ebcl/Arrays.hh>
#include <ebcl/Strings.hh>
#include <ebcl/HashTables.hh>
using ebcl::T_OwnPtr;
using ebcl::NewOwned;
using ebcl::T_SharedPtr;
using ebcl::NewShared;
using ebcl::T_Optional;
using ebcl::T_Union;
using ebcl::T_Variant;
using ebcl::T_Array;
using ebcl::T_AutoArray;
using ebcl::T_String;
using ebcl::T_StringBuilder;
using ebcl::T_HashIndex;
using ebcl::T_ObjectTable;
using ebcl::T_KeyValueTable;
// Silly decoration macros I use everywhere
#define __rd__
#define __wr__
#define __rw__
// Macros that enable/disable copying/moving
#define NO_COPY( CLS ) \
CLS( CLS const& ) = delete; \
CLS& operator =( CLS const& ) = delete
#define NO_MOVE( CLS ) \
CLS( CLS&& ) = delete; \
CLS& operator =( CLS&& ) = delete
#define DEF_COPY( CLS ) \
CLS( CLS const& ) = default; \
CLS& operator =( CLS const& ) = default
#define DEF_MOVE( CLS ) \
CLS( CLS&& ) noexcept = default; \
CLS& operator =( CLS&& ) noexcept = default
#define COPY( CLS ) \
CLS( CLS const& ); \
CLS& operator =( CLS const& )
#define MOVE( CLS ) \
CLS( CLS&& ) noexcept; \
CLS& operator =( CLS&& ) noexcept