Attempt to satisfy G++4.6 and decltype usage

This commit is contained in:
Jason Turner
2014-09-20 08:31:18 -06:00
parent 8c31255012
commit 0e381e333e
2 changed files with 7 additions and 4 deletions

View File

@@ -19,13 +19,13 @@ namespace chaiscript
namespace detail
{
template<typename L, typename R>
auto assign(L l, R r) -> decltype((l = r))
auto assign(L l, R r) -> decltype((l = r))
{
return (l = r);
}
template<typename L, typename R>
auto assign_bitwise_and(L l, R r) -> decltype((l &r))
auto assign_bitwise_and(L l, R r) -> decltype((l &= r))
{
return (l &= r);
}
@@ -229,7 +229,7 @@ namespace chaiscript
template<typename T>
ModulePtr assign(ModulePtr m = ModulePtr(new Module()))
{
m->add(chaiscript::fun(&detail::assign<T &, const T&>), "=");
m->add(chaiscript::fun(static_cast<T& (*)(T&, const T&)>(&detail::assign<T &, const T&>)), "=");
return m;
}
@@ -299,7 +299,7 @@ namespace chaiscript
template<typename T>
ModulePtr assign_sum(ModulePtr m = ModulePtr(new Module()))
{
m->add(chaiscript::fun(&detail::assign_sum<T &, const T&>), "+=");
m->add(chaiscript::fun(static_cast<T & (*)(T &, const T&)>(&detail::assign_sum<T &, const T&>)), "+=");
return m;
}

View File

@@ -2,6 +2,7 @@
#include <chaiscript/chaiscript_defines.hpp>
#include <chaiscript/dispatchkit/type_info.hpp>
#include <iostream>
#include <cstdlib>
void test_type(const chaiscript::Type_Info &ti, bool t_is_const, bool t_is_pointer, bool t_is_reference, bool t_is_void,
@@ -30,5 +31,7 @@ int main()
test_type(chaiscript::user_type<const int *>(), true, true, false, false, false);
test_type(chaiscript::Type_Info(), false, false, false, false, true);
std::cout << "Size of Type_Info " << sizeof(chaiscript::Type_Info) << std::endl;
return EXIT_SUCCESS;
}