diff --git a/include/chaiscript/dispatchkit/type_conversions.hpp b/include/chaiscript/dispatchkit/type_conversions.hpp index 1fcabe9..aaa089e 100644 --- a/include/chaiscript/dispatchkit/type_conversions.hpp +++ b/include/chaiscript/dispatchkit/type_conversions.hpp @@ -310,48 +310,6 @@ namespace chaiscript private: Callable m_func; }; -#ifndef CHAISCRIPT_MSVC_12 - //http://stackoverflow.com/questions/18895583/convert-a-vectort-to-initializer-listt - constexpr size_t DEFAULT_MAX_LENGTH = 128; - - template struct backingValue { static V value; }; - template V backingValue::value; - - template struct backingList { static std::initializer_list list; }; - template - std::initializer_list backingList::list = { static_cast(backingValue::value)... }; - - template - static typename std::enable_if< sizeof...(Vcount) >= maxLength, - std::initializer_list >::type generate_n(It begin, It end, It current) - { - throw std::length_error("More than maxLength elements in range."); - } - - template - static typename std::enable_if< sizeof...(Vcount) < maxLength, - std::initializer_list >::type generate_n(It begin, It end, It current) - { - if (current != end) - { - return generate_n(begin, end, ++current); - } - - current = begin; - for (auto it = backingList::list.begin(); - it != backingList::list.end(); - ++current, ++it) - *const_cast(&*it) = *current; - - return backingList::list; - } - - template - std::initializer_list range_to_initializer_list(It begin, It end) - { - return detail::generate_n(begin, end, begin); - } -#endif } class Type_Conversions diff --git a/unittests/compiled_tests.cpp b/unittests/compiled_tests.cpp index 4d65bee..28e7d4c 100644 --- a/unittests/compiled_tests.cpp +++ b/unittests/compiled_tests.cpp @@ -913,46 +913,4 @@ TEST_CASE("Return of converted type from script") chai.add(chaiscript::user_type(), "Returned_Converted_Config"); } -#ifndef CHAISCRIPT_MSVC_12 -TEST_CASE("Return initializer_list") -{ - chaiscript::ChaiScript chai; - - chai.add(chaiscript::initializer_list_conversion>()); - - auto initlist = chai.eval>(R"( - return [11, 22, 33, 44]; - )"); - - CHECK(initlist.size() == 4); - CHECK(typeid(decltype(initlist)) == typeid(std::initializer_list)); -} - -bool initializer_list_of_enums_interface(std::initializer_list initlist) -{ - return initlist.size() == 3 && *initlist.begin() == THREE; -} - -TEST_CASE("Call from script with initializer_list argument") -{ - chaiscript::ChaiScript chai; - - chaiscript::ModulePtr m = chaiscript::ModulePtr(new chaiscript::Module()); - chaiscript::utility::add_class(*m, - "Utility_Test_Numbers", - { { ONE, "ONE" }, - { TWO, "TWO" }, - { THREE, "THREE" } - } - ); - chai.add(m); - - chai.add(chaiscript::initializer_list_conversion>()); - chai.add(chaiscript::fun(&initializer_list_of_enums_interface), "initializer_list_of_enums_interface"); - - auto interface_result = chai.eval("return initializer_list_of_enums_interface([THREE, TWO, ONE]);"); - - CHECK(interface_result == true); -} -#endif