cppbind: Use separet Context::to_nasal_vec instead of overload

This commit is contained in:
Thomas Geymayer
2018-01-23 16:15:56 +01:00
parent b831d2b64a
commit 5cb2360985
2 changed files with 6 additions and 14 deletions
+4 -12
View File
@@ -44,13 +44,6 @@ namespace nasal
Hash newHash(); Hash newHash();
String newString(const char* str); String newString(const char* str);
/** Create a new nasal vector and fill it with the given values */
template<class... Vals>
naRef newVector(Vals ... vals)
{
return newVector({to_nasal(vals)...});
}
/** Raise a nasal runtime error */ /** Raise a nasal runtime error */
template<class... Args> template<class... Args>
void runtimeError(const char* fmt, Args ... args) const void runtimeError(const char* fmt, Args ... args) const
@@ -70,12 +63,11 @@ namespace nasal
return nasal::to_nasal(_ctx, array); return nasal::to_nasal(_ctx, array);
} }
// Workaround for compilers which can not convert a braced-init-list /** Create a nasal vector filled with the given values */
// to const T(&)[N] template<class... Vals>
template<class T> naRef to_nasal_vec(Vals ... vals)
naRef to_nasal(std::initializer_list<T> list) const
{ {
return nasal::to_nasal(_ctx, list); return newVector({to_nasal(vals)...});
} }
template<class T> template<class T>
+2 -2
View File
@@ -132,7 +132,7 @@ BOOST_AUTO_TEST_CASE( cppbind_arrays )
{ {
TestContext ctx; TestContext ctx;
naRef na_vec = ctx.to_nasal({1., 2., 3.42}); naRef na_vec = ctx.to_nasal_vec(1., 2., 3.42);
BOOST_REQUIRE( naIsVector(na_vec) ); BOOST_REQUIRE( naIsVector(na_vec) );
BOOST_CHECK_EQUAL(ctx.from_nasal<int>(naVec_get(na_vec, 0)), 1); BOOST_CHECK_EQUAL(ctx.from_nasal<int>(naVec_get(na_vec, 0)), 1);
BOOST_CHECK_EQUAL(ctx.from_nasal<int>(naVec_get(na_vec, 1)), 2); BOOST_CHECK_EQUAL(ctx.from_nasal<int>(naVec_get(na_vec, 1)), 2);
@@ -484,7 +484,7 @@ BOOST_AUTO_TEST_CASE( cppbind_misc_testing )
BOOST_AUTO_TEST_CASE( cppbind_context ) BOOST_AUTO_TEST_CASE( cppbind_context )
{ {
nasal::Context ctx; nasal::Context ctx;
naRef vec = ctx.newVector(1, 2, 3.4, "test"); naRef vec = ctx.to_nasal_vec(1, 2, 3.4, "test");
BOOST_REQUIRE( naIsVector(vec) ); BOOST_REQUIRE( naIsVector(vec) );
BOOST_CHECK_EQUAL(ctx.from_nasal<int>(naVec_get(vec, 0)), 1); BOOST_CHECK_EQUAL(ctx.from_nasal<int>(naVec_get(vec, 0)), 1);