libshit

Just some random shit
git clone https://git.neptards.moe/neptards/libshit.git
Log | Files | Refs | Submodules | README | LICENSE

vector (1869B)


      1 // -*- c++ -*-
      2 #pragma once
      3 
      4 #include <xmemory>
      5 #include <stdexcept>
      6 
      7 #pragma push_macro("vector") // move ctor
      8 #define vector(...) vector(__VA_ARGS__) noexcept _Pragma("pop_macro(\"vector\")")
      9 
     10 #pragma push_macro("vector")
     11 #define vector(...) vector(__VA_ARGS__) _Pragma("pop_macro(\"vector\")")
     12 
     13 #pragma push_macro("vector")
     14 #define vector(...) vector(__VA_ARGS__) _Pragma("pop_macro(\"vector\")")
     15 
     16 #pragma push_macro("vector")
     17 #define vector(...) vector(__VA_ARGS__) _Pragma("pop_macro(\"vector\")")
     18 
     19 #pragma push_macro("vector")
     20 #define vector(...) vector(__VA_ARGS__) _Pragma("pop_macro(\"vector\")")
     21 
     22 #pragma push_macro("vector")
     23 #define vector(...) vector(__VA_ARGS__) _Pragma("pop_macro(\"vector\")")
     24 
     25 #pragma push_macro("vector")
     26 #define vector(...) vector(__VA_ARGS__) _Pragma("pop_macro(\"vector\")")
     27 
     28 #pragma push_macro("vector")
     29 #define vector(...) vector(__VA_ARGS__) _Pragma("pop_macro(\"vector\")")
     30 
     31 #pragma push_macro("vector")
     32 #define vector(...) vector(__VA_ARGS__) _Pragma("pop_macro(\"vector\")")
     33 
     34 #pragma push_macro("vector") // default ctor
     35 #define vector() vector() noexcept _Pragma("pop_macro(\"vector\")")
     36 
     37 #pragma push_macro("emplace_back")
     38 #define emplace_back \
     39   DummyFun();                                         \
     40   template <typename... Args>                         \
     41   reference emplace_back(Args&&... args)              \
     42   {                                                   \
     43     OriginalEmplaceBack(std::forward<Args>(args)...); \
     44     return back();                                    \
     45   }                                                   \
     46   template <typename... _Valty>                       \
     47   void OriginalEmplaceBack                            \
     48   _Pragma("pop_macro(\"emplace_back\")")
     49 
     50 #pragma push_macro("emplace_back")
     51 #define emplace_back emplace_back _Pragma("pop_macro(\"emplace_back\")")
     52 
     53 #include_next <vector>