forked from enlightenment/efl
eina_cxx: fix build on 32bits systems.
This commit is contained in:
parent
2d52015823
commit
1fb3822893
|
@ -8,28 +8,15 @@
|
||||||
|
|
||||||
namespace efl { namespace eina {
|
namespace efl { namespace eina {
|
||||||
|
|
||||||
|
template <typename T, typename Enable = void>
|
||||||
|
struct _eina_value_traits;
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
struct _eina_value_traits_base;
|
struct _eina_value_traits_base;
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
struct _eina_value_traits_aux;
|
struct _eina_value_traits_aux;
|
||||||
|
|
||||||
// Indirection for uint64_t. uint64_t can be a typedef for unsigned
|
|
||||||
// long, so we can't specialize on the same template
|
|
||||||
template <>
|
|
||||||
struct _eina_value_traits_aux<uint64_t>
|
|
||||||
{
|
|
||||||
static ::Eina_Value_Type const* value_type()
|
|
||||||
{
|
|
||||||
return EINA_VALUE_TYPE_UINT64;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
template <typename T, typename Enable = void>
|
|
||||||
struct _eina_value_traits : _eina_value_traits_aux<T>
|
|
||||||
{
|
|
||||||
};
|
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
struct _eina_value_traits_base
|
struct _eina_value_traits_base
|
||||||
{
|
{
|
||||||
|
@ -62,6 +49,23 @@ struct _eina_value_traits_base
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Indirection for uint64_t. uint64_t can be a typedef for unsigned
|
||||||
|
// long, so we can't specialize on the same template
|
||||||
|
template <>
|
||||||
|
struct _eina_value_traits_aux<uint64_t>
|
||||||
|
: _eina_value_traits_base<uint64_t>
|
||||||
|
{
|
||||||
|
static ::Eina_Value_Type const* value_type()
|
||||||
|
{
|
||||||
|
return EINA_VALUE_TYPE_UINT64;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
template <typename T, typename Enable>
|
||||||
|
struct _eina_value_traits : _eina_value_traits_aux<T>
|
||||||
|
{
|
||||||
|
};
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct _eina_value_traits<unsigned char>
|
struct _eina_value_traits<unsigned char>
|
||||||
: _eina_value_traits_base<unsigned char>
|
: _eina_value_traits_base<unsigned char>
|
||||||
|
@ -241,6 +245,11 @@ public:
|
||||||
: _raw(_eina_value_traits<char>::create())
|
: _raw(_eina_value_traits<char>::create())
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
template <typename T>
|
||||||
|
eina_value(T v)
|
||||||
|
{
|
||||||
|
primitive_init(v);
|
||||||
|
}
|
||||||
eina_value(char v)
|
eina_value(char v)
|
||||||
{
|
{
|
||||||
primitive_init(v);
|
primitive_init(v);
|
||||||
|
|
Loading…
Reference in New Issue