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>