Switch to 32-bit math by default.
I'll need a way to get back into 64-bit mode.
This commit is contained in:
@ -228,10 +228,11 @@ namespace Dillo::Hydrogen::JavaScriptForge ::detail:: StackMachine_m
|
||||
{
|
||||
if( std::holds_alternative< T >( peek() ) ) return std::get< T >( pop() );
|
||||
else if( std::holds_alternative< Integer >( peek() ) ) return boost::lexical_cast< T >( std::get< Integer >( pop() ) );
|
||||
else if( std::holds_alternative< Long >( peek() ) ) return boost::lexical_cast< T >( std::get< Long >( pop() ) );
|
||||
else return boost::lexical_cast< T >( std::get< std::string >( pop() ) );
|
||||
}
|
||||
|
||||
std::variant< std::string, StackMachine::Integer >
|
||||
StackMachine::Value
|
||||
StackMachine::pop()
|
||||
{
|
||||
const auto rv= std::move( peek() );
|
||||
@ -239,7 +240,7 @@ namespace Dillo::Hydrogen::JavaScriptForge ::detail:: StackMachine_m
|
||||
return rv;
|
||||
}
|
||||
|
||||
std::variant< std::string, StackMachine::Integer > &
|
||||
StackMachine::Value &
|
||||
StackMachine::peek()
|
||||
{
|
||||
if( stack.empty() ) throw std::runtime_error{ "FATAL: No more elements in stack." };
|
||||
@ -247,7 +248,7 @@ namespace Dillo::Hydrogen::JavaScriptForge ::detail:: StackMachine_m
|
||||
}
|
||||
|
||||
void
|
||||
StackMachine::push( std::variant< std::string, Integer > element )
|
||||
StackMachine::push( Value element )
|
||||
{
|
||||
stack.push_back( std::move( element ) );
|
||||
}
|
||||
@ -264,11 +265,18 @@ namespace Dillo::Hydrogen::JavaScriptForge ::detail:: StackMachine_m
|
||||
stack.push_back( std::move( element ) );
|
||||
}
|
||||
|
||||
void
|
||||
StackMachine::push( Long element )
|
||||
{
|
||||
stack.push_back( std::move( element ) );
|
||||
}
|
||||
|
||||
template< typename T >
|
||||
void
|
||||
StackMachine::push( const T &t )
|
||||
{
|
||||
if constexpr( std::is_same_v< Integer, T > ) push( t );
|
||||
else if constexpr( std::is_same_v< Long, T > ) push( t );
|
||||
else if constexpr( std::is_same_v< std::string, T > ) push( t );
|
||||
else push( boost::lexical_cast< std::string >( t ) );
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user