diff --git a/native/src/correction.cpp b/native/src/correction.cpp index 2fc0569fa7be60b1e6b991bc5f9bcd888c597a5b..4df1c4efbd2738a5e0f4078e13623b65b60e8d8d 100644 --- a/native/src/correction.cpp +++ b/native/src/correction.cpp @@ -24,6 +24,7 @@ #include "char_utils.h" #include "correction.h" +#include "defines.h" #include "dictionary.h" #include "proximity_info.h" diff --git a/native/src/defines.h b/native/src/defines.h index 1e108cb17f52c53afab3749bf71a8369e427b586..5b5c548509233816cda21ad2cf86627eb25a1d06 100644 --- a/native/src/defines.h +++ b/native/src/defines.h @@ -241,8 +241,8 @@ static void prof_out(void) { #define MIN_USER_TYPED_LENGTH_FOR_MULTIPLE_WORD_SUGGESTION 3 #define MIN_USER_TYPED_LENGTH_FOR_EXCESSIVE_CHARACTER_SUGGESTION 3 -#define min(a,b) ((a)<(b)?(a):(b)) -#define max(a,b) ((a)>(b)?(a):(b)) +template<typename T> inline T min(T a, T b) { return a < b ? a : b; } +template<typename T> inline T max(T a, T b) { return a > b ? a : b; } // The ratio of neutral area radius to sweet spot radius. #define NEUTRAL_AREA_RADIUS_RATIO 1.3f diff --git a/native/src/words_priority_queue.h b/native/src/words_priority_queue.h index e8cd983b1c23580a83e1bbb450d34beb47f72f4c..249962eec0592132c322a69ec0022f6ea8589dc0 100644 --- a/native/src/words_priority_queue.h +++ b/native/src/words_priority_queue.h @@ -17,6 +17,7 @@ #ifndef LATINIME_WORDS_PRIORITY_QUEUE_H #define LATINIME_WORDS_PRIORITY_QUEUE_H +#include <cstring> // for memcpy() #include <iostream> #include <queue> #include "defines.h" @@ -93,7 +94,8 @@ class WordsPriorityQueue { int outputSuggestions(int *frequencies, unsigned short *outputChars) { mHighestSuggestedWord = 0; - const unsigned int size = min(MAX_WORDS, mSuggestions.size()); + const unsigned int size = min( + MAX_WORDS, static_cast<unsigned int>(mSuggestions.size())); int index = size - 1; while (!mSuggestions.empty() && index >= 0) { SuggestedWord* sw = mSuggestions.top();