move template specializations to inline functions in the header to make windows happy again

BUG=

Review URL: https://codereview.appspot.com/7099053

git-svn-id: http://skia.googlecode.com/svn/trunk@7164 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/utils/SkRTConf.cpp b/src/utils/SkRTConf.cpp
index 38bc64c..4e4e577 100644
--- a/src/utils/SkRTConf.cpp
+++ b/src/utils/SkRTConf.cpp
@@ -76,7 +76,7 @@
 // declared a correponding configuration object somewhere.
 void SkRTConfRegistry::validate() const {
     for (int i = 0 ; i < fConfigFileKeys.count() ; i++) {
-        if (fConfs.find(fConfigFileKeys[i]->c_str()) == -1) {
+        if (fConfs.find(fConfigFileKeys[i]->c_str())) {
             SkDebugf("WARNING: You have config value %s in your configuration file, but I've never heard of that.\n", fConfigFileKeys[i]->c_str());
         }
     }
@@ -262,7 +262,7 @@
     
     for (SkRTConfBase **confBase = confArray->begin(); confBase != confArray->end(); confBase++) {
         // static_cast here is okay because there's only one kind of child class.
-        SkRTConf<bool> *concrete = static_cast<SkRTConf<bool> *>(*confBase);
+        SkRTConf<T> *concrete = static_cast<SkRTConf<T> *>(*confBase);
         
         if (concrete) {
             concrete->set(value);
@@ -277,42 +277,6 @@
 template void SkRTConfRegistry::set(const char *name, double value);
 template void SkRTConfRegistry::set(const char *name, char * value);
 
-template<> void SkRTConf<bool>::doPrint(char *s) const {
-    char tmp[30];
-    sprintf(tmp, "%s # [%s]", fValue ? "true" : "false", fDefault ? "true" : "false");
-    sprintf(s, "%-30.30s", tmp);
-}
-
-template<> void SkRTConf<int>::doPrint(char *s) const {
-    char tmp[30];
-    sprintf(tmp, "%d # [%d]", fValue, fDefault);
-    sprintf(s, "%-30.30s", tmp);
-}
-
-template<> void SkRTConf<unsigned int>::doPrint(char *s) const {
-    char tmp[30];
-    sprintf(tmp, "%u # [%u]", fValue, fDefault);
-    sprintf(s, "%-30.30s", tmp);
-}
-
-template<> void SkRTConf<float>::doPrint(char *s) const {
-    char tmp[30];
-    sprintf(tmp, "%6.6f # [%6.6f]", fValue, fDefault);
-    sprintf(s, "%-30.30s", tmp);
-}
-
-template<> void SkRTConf<double>::doPrint(char *s) const {
-    char tmp[30];
-    sprintf(tmp, "%6.6f # [%6.6f]", fValue, fDefault);
-    sprintf(s, "%-30.30s", tmp);
-}
-
-template<> void SkRTConf<const char *>::doPrint(char *s) const {
-    char tmp[30];
-    sprintf(tmp, "%s # [%s]", fValue, fDefault);
-    sprintf(s, "%-30.30s", tmp);
-}
-
 SkRTConfRegistry &skRTConfRegistry() {
     static SkRTConfRegistry r;
     return r;