मैं संकलन समय पर variadic टेम्पलेट के दो पैरामीटर स्वैप करने के लिए कोशिश कर रहा हूँ:संकलन समय पर एक विविध टेम्पलेट के दो पैरामीटर कैसे स्वैप करें?
template<int...Numbers>struct sequence{};
template<size_t first,size_t second>
struct Swap_Pair
{
const static size_t First = first;
const static size_t Second = second;
};
template <int...Numbers,class swap_pair>
struct Swap_Data
{
static std::array<int, sizeof...(Numbers)> data_;//How to swap Numbers base on the pair and store it in data_ ?
};
उपयोग के मामले में होना चाहिए:
sequence<1, 2, 3, 4, 5, 6> array;
auto result = Swap_Data < array, Swap_Pair<2, 5> > ::data_;
//result is now std::array which contains 1 2 6 4 5 3
मैं समझ नहीं उचित है क्या Swap_Data
लिखने का तरीका।
और मैं परिवर्तनीय पैरामीटर को स्वैप करने और संकलन समय पर std :: array में परिवर्तित करने के लिए एक पुनरावर्ती स्वैप कैसे बना सकता हूं?
चेक इस https://github.com/Manu343726/Turbo/blob/reboot/bind.hpp – Manu343726
कुछ की तरह 'पूर्णांक swapped_arr [] = {unswapped_arr [एन == swap_pair :: पहले? swap_pair :: दूसरा: एन == swap_pair :: दूसरा? swap_pair :: पहला: एन] ...}; 'जहां आपके पास अनचाहे तत्वों की एक सरणी है; आप ' (seq) 'फ़ंक्शंस के साथ कुछ' integer_sequence' का भी उपयोग कर सकते हैं। –
dyp
[लाइव उदाहरण] (http://coliru.stacked-crooked.com/a/df8eac60c18156bc) – dyp