diff options
author | crupest <crupest@outlook.com> | 2018-09-25 13:08:40 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2018-09-25 13:08:40 +0800 |
commit | 4b86554a0354d78efeb40e551eaccaac0fecd1d1 (patch) | |
tree | c8a73d848401f523ff91fe8ed1b0887aa88bbfb8 /CruUI/base.h | |
parent | cea138417c54d6cf8043b6334c22e3af957d26f8 (diff) | |
download | cru-4b86554a0354d78efeb40e551eaccaac0fecd1d1.tar.gz cru-4b86554a0354d78efeb40e551eaccaac0fecd1d1.tar.bz2 cru-4b86554a0354d78efeb40e551eaccaac0fecd1d1.zip |
Change the structure of project.
Diffstat (limited to 'CruUI/base.h')
-rw-r--r-- | CruUI/base.h | 107 |
1 files changed, 0 insertions, 107 deletions
diff --git a/CruUI/base.h b/CruUI/base.h deleted file mode 100644 index 7ef78014..00000000 --- a/CruUI/base.h +++ /dev/null @@ -1,107 +0,0 @@ -#pragma once - -// ReSharper disable once CppUnusedIncludeDirective -#include "global_macros.h" - - -#ifdef CRU_DEBUG -#include <string> -#include <vector> -#else -#include <folly/String.h> -#include <folly/FBVector.h> -#endif - -#include <folly/Function.h> - -#include <utility> -#include <type_traits> -#include <stdexcept> -#include <memory> -#include <string_view> -#include <chrono> - -namespace cru -{ - template<typename T> struct is_shared_ptr : std::false_type {}; - template<typename T> struct is_shared_ptr<std::shared_ptr<T>> : std::true_type {}; - template<typename T> constexpr bool is_shared_ptr_v = is_shared_ptr<T>::value; - - enum class FlowControl - { - Continue, - Break - }; - -#ifdef CRU_DEBUG - using String = std::wstring; - using MultiByteString = std::string; -#else - using String = folly::basic_fbstring<wchar_t>; - using MultiByteString = folly::fbstring; -#endif - - using StringView = std::wstring_view; - using MultiByteStringView = std::string_view; - - template<typename FunctionType> - using Function = folly::Function<FunctionType>; - - template<typename FunctionType> - using FunctionPtr = std::shared_ptr<Function<FunctionType>>; - - using Action = Function<void()>; - using ActionPtr = FunctionPtr<void()>; - - template<typename Type, typename... Args> - Type CreatePtr(Args&&... args) - { - static_assert(is_shared_ptr_v<Type>); - return std::make_shared<typename Type::element_type>(std::forward<Args>(args)...); - } - - inline ActionPtr CreateActionPtr(Action&& action) - { - return std::make_shared<Action>(std::move(action)); - } - -#ifdef CRU_DEBUG - template<typename T> - using Vector = std::vector<T>; -#else - template<typename T> - using Vector = folly::fbvector<T>; -#endif - - using FloatSecond = std::chrono::duration<double, std::chrono::seconds::period>; - - class Object - { - public: - Object() = default; - Object(const Object&) = default; - Object& operator = (const Object&) = default; - Object(Object&&) = default; - Object& operator = (Object&&) = default; - virtual ~Object() = default; - }; - - struct Interface - { - virtual ~Interface() = default; - }; - - [[noreturn]] inline void UnreachableCode() - { - throw std::logic_error("Unreachable code."); - } - - struct ICancelable : virtual Interface - { - virtual void Cancel() = 0; - }; - - using CancelablePtr = std::shared_ptr<ICancelable>; - - MultiByteString ToUtf8String(const StringView& string); -} |