Skip to content

Commit

Permalink
Replaced atoX and stroX with std::from_chars/to_chars to be locale-in…
Browse files Browse the repository at this point in the history
…dependent
  • Loading branch information
KaruroChori committed Jan 14, 2025
1 parent 25b830e commit c1d16af
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 4 deletions.
4 changes: 2 additions & 2 deletions src/stack-lang.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -200,7 +200,7 @@ std::optional<concrete_symbol> repl::eval(const char* expr) noexcept{
stack.pop();
if(std::holds_alternative<int>(t))stack.push(std::get<int>(t));
else if(std::holds_alternative<float>(t))stack.push((int)std::get<float>(t));
else if(std::holds_alternative<std::string>(t))stack.push(atoi(std::get<std::string>(t).c_str()));
else if(std::holds_alternative<std::string>(t)){auto& str = std::get<std::string>(t);int result{};std::from_chars(str.c_str(),str.c_str()+str.size(),result);stack.push(result);}
else return error_t::WRONG_TYPE;
return error_t::OK;
}, 1}},
Expand All @@ -209,7 +209,7 @@ std::optional<concrete_symbol> repl::eval(const char* expr) noexcept{
stack.pop();
if(std::holds_alternative<int>(t))stack.push((float)std::get<int>(t));
else if(std::holds_alternative<float>(t))stack.push(std::get<float>(t));
else if(std::holds_alternative<std::string>(t))stack.push((float)atof(std::get<std::string>(t).c_str()));
else if(std::holds_alternative<std::string>(t)){auto& str = std::get<std::string>(t);float result{};std::from_chars(str.c_str(),str.c_str()+str.size(),result);stack.push(result);}
else return error_t::WRONG_TYPE;
return error_t::OK;
}, 1}},
Expand Down
4 changes: 2 additions & 2 deletions src/vs-templ.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,8 @@ std::optional<concrete_symbol> preprocessor::resolve_expr(const std::string_view

int idx = 0;
if(str[0]=='.' || str[0]=='+' || str[0]=='-' || (str[0]>'0' && str[0]<'9')){
if(_str[_str.length()-1]=='f'){str[_str.length()-1]=0;return (float)atof(str);}
else return atoi(str);
if(_str[_str.length()-1]=='f'){str[_str.length()-1]=0;float result{};std::from_chars(str,str+_str.length()-1,result);return result;}
else{int result{};std::from_chars(str,str+_str.length()-1,result);return result;}
}
else if(str[0]==':') {
repl r(*this);
Expand Down

0 comments on commit c1d16af

Please sign in to comment.