Attempt to satisfy G++4.6 and decltype usage
This commit is contained in:
@@ -19,13 +19,13 @@ namespace chaiscript
|
|||||||
namespace detail
|
namespace detail
|
||||||
{
|
{
|
||||||
template<typename L, typename R>
|
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);
|
return (l = r);
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename L, typename 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);
|
return (l &= r);
|
||||||
}
|
}
|
||||||
@@ -229,7 +229,7 @@ namespace chaiscript
|
|||||||
template<typename T>
|
template<typename T>
|
||||||
ModulePtr assign(ModulePtr m = ModulePtr(new Module()))
|
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;
|
return m;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -299,7 +299,7 @@ namespace chaiscript
|
|||||||
template<typename T>
|
template<typename T>
|
||||||
ModulePtr assign_sum(ModulePtr m = ModulePtr(new Module()))
|
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;
|
return m;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
#include <chaiscript/chaiscript_defines.hpp>
|
#include <chaiscript/chaiscript_defines.hpp>
|
||||||
#include <chaiscript/dispatchkit/type_info.hpp>
|
#include <chaiscript/dispatchkit/type_info.hpp>
|
||||||
|
#include <iostream>
|
||||||
#include <cstdlib>
|
#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,
|
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::user_type<const int *>(), true, true, false, false, false);
|
||||||
test_type(chaiscript::Type_Info(), false, false, false, false, true);
|
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;
|
return EXIT_SUCCESS;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user