From 09baa36f7d1298e54a291b0d486cf366a3c3257c Mon Sep 17 00:00:00 2001
From: "Tadashi G. Takaoka" <takaoka@google.com>
Date: Fri, 3 Feb 2012 21:24:53 +0900
Subject: [PATCH] Use C++ template for min/max

To be more friendly for off-device regression test.

Change-Id: I7edf4c9de73915aad9c1760ace7df3177ed3c4e9
---
 native/src/correction.cpp         | 1 +
 native/src/defines.h              | 4 ++--
 native/src/words_priority_queue.h | 4 +++-
 3 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/native/src/correction.cpp b/native/src/correction.cpp
index 8275c5d7e2..a71a599625 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 02c1fe0a22..9f237c5895 100644
--- a/native/src/defines.h
+++ b/native/src/defines.h
@@ -240,8 +240,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 e8cd983b1c..249962eec0 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();
-- 
GitLab