mirror of
https://github.com/tfussell/xlnt.git
synced 2024-03-22 13:11:17 +08:00
fix long longs on linux
This commit is contained in:
parent
8dc7342137
commit
effe0e9340
|
@ -124,6 +124,10 @@ public:
|
|||
void set_value(std::uint64_t i);
|
||||
#ifdef _WIN32
|
||||
void set_value(unsigned long i);
|
||||
#endif
|
||||
#ifdef __linux__
|
||||
void set_value(long long i);
|
||||
void set_value(unsigned long long i);
|
||||
#endif
|
||||
void set_value(float f);
|
||||
void set_value(double d);
|
||||
|
|
|
@ -39,6 +39,10 @@ public:
|
|||
explicit value(std::uint64_t i);
|
||||
#ifdef _WIN32
|
||||
explicit value(unsigned long i);
|
||||
#endif
|
||||
#ifdef __linux__
|
||||
explicit value(long long i);
|
||||
explicit value(unsigned long long i);
|
||||
#endif
|
||||
explicit value(float f);
|
||||
explicit value(double d);
|
||||
|
|
|
@ -349,6 +349,18 @@ void cell::set_value(unsigned long i)
|
|||
}
|
||||
#endif
|
||||
|
||||
#ifdef __linux__
|
||||
void cell::set_value(long long i)
|
||||
{
|
||||
d_->value_ = value(i);
|
||||
}
|
||||
|
||||
void cell::set_value(unsigned long long i)
|
||||
{
|
||||
d_->value_ = value(i);
|
||||
}
|
||||
#endif
|
||||
|
||||
void cell::set_value(double d)
|
||||
{
|
||||
d_->value_ = value(d);
|
||||
|
|
|
@ -70,6 +70,16 @@ value::value(unsigned long i) : type_(type::numeric), numeric_value_(i)
|
|||
}
|
||||
#endif
|
||||
|
||||
#ifdef __linux__
|
||||
value::value(long long i) : type_(type::numeric), numeric_value_(i)
|
||||
{
|
||||
}
|
||||
|
||||
value::value(unsigned long long i) : type_(type::numeric), numeric_value_(i)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
value::value(float f) : type_(type::numeric), numeric_value_(f)
|
||||
{
|
||||
}
|
||||
|
@ -323,6 +333,46 @@ unsigned long value::as() const
|
|||
}
|
||||
#endif
|
||||
|
||||
#ifdef __linux__
|
||||
template<>
|
||||
long long value::as() const
|
||||
{
|
||||
switch (type_)
|
||||
{
|
||||
case type::boolean:
|
||||
case type::numeric:
|
||||
return static_cast<long long>(numeric_value_);
|
||||
case type::string:
|
||||
return std::stoi(string_value_);
|
||||
case type::error:
|
||||
throw std::runtime_error("invalid");
|
||||
case type::null:
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
template<>
|
||||
unsigned long long value::as() const
|
||||
{
|
||||
switch (type_)
|
||||
{
|
||||
case type::boolean:
|
||||
case type::numeric:
|
||||
return static_cast<unsigned long long>(numeric_value_);
|
||||
case type::string:
|
||||
return std::stoi(string_value_);
|
||||
case type::error:
|
||||
throw std::runtime_error("invalid");
|
||||
case type::null:
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
template<>
|
||||
std::string value::as() const
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue
Block a user