Rudiments
/home/dmuse/src/rudiments/include/rudiments/private/linkedlistutilinlines.h
00001 // Copyright (c) 2003 David Muse
00002 // See the COPYING file for more information.
00003 
00004 #ifndef EXCLUDE_RUDIMENTS_TEMPLATE_IMPLEMENTATIONS
00005 
00006 #include <rudiments/charstring.h>
00007 
00008 #include <stdio.h>
00009 
00010 #include <rudiments/private/rudimentsinlines.h>
00011 
00012 #ifdef RUDIMENTS_NAMESPACE
00013 namespace rudiments {
00014 #endif
00015 
00016 template <class datatype>
00017 RUDIMENTS_TEMPLATE_INLINE
00018 int32_t linkedlistutil<datatype>::compare(datatype data1,
00019                                         datatype data2) const {
00020         if (data1<data2) {
00021                 return -1;
00022         } else if (data1==data2) {
00023                 return 0;
00024         } else {
00025                 return 1;
00026         }
00027 }
00028 
00029 RUDIMENTS_EXPLICIT_SPECIALIZATION
00030 RUDIMENTS_TEMPLATE_INLINE
00031 void linkedlistutil<char *>::print(char *data) const {
00032         printf("%s",data);
00033 }
00034 
00035 RUDIMENTS_EXPLICIT_SPECIALIZATION
00036 RUDIMENTS_TEMPLATE_INLINE
00037 void linkedlistutil<const char *>::print(const char *data) const {
00038         printf("%s",data);
00039 }
00040 
00041 RUDIMENTS_EXPLICIT_SPECIALIZATION
00042 RUDIMENTS_TEMPLATE_INLINE
00043 int32_t linkedlistutil<char *>::compare(char *data1, char *data2) const {
00044         return charstring::compare(data1,data2);
00045 }
00046 
00047 RUDIMENTS_EXPLICIT_SPECIALIZATION
00048 RUDIMENTS_TEMPLATE_INLINE
00049 int32_t linkedlistutil<const char *>::compare(const char *data1,
00050                                                 const char *data2) const {
00051         return charstring::compare(data1,data2);
00052 }
00053 
00054 RUDIMENTS_EXPLICIT_SPECIALIZATION
00055 RUDIMENTS_TEMPLATE_INLINE
00056 void linkedlistutil<char>::print(char data) const {
00057         printf("%c",data);
00058 }
00059 
00060 RUDIMENTS_EXPLICIT_SPECIALIZATION
00061 RUDIMENTS_TEMPLATE_INLINE
00062 void linkedlistutil<int32_t>::print(int32_t data) const {
00063         printf("%d",(int)data);
00064 }
00065 
00066 RUDIMENTS_EXPLICIT_SPECIALIZATION
00067 RUDIMENTS_TEMPLATE_INLINE
00068 void linkedlistutil<int16_t>::print(int16_t data) const {
00069         printf("%hd",data);
00070 }
00071 
00072 RUDIMENTS_EXPLICIT_SPECIALIZATION
00073 RUDIMENTS_TEMPLATE_INLINE
00074 void linkedlistutil<int64_t>::print(int64_t data) const {
00075         printf("%lld",(long long)data);
00076 }
00077 
00078 RUDIMENTS_EXPLICIT_SPECIALIZATION
00079 RUDIMENTS_TEMPLATE_INLINE
00080 void linkedlistutil<float>::print(float data) const {
00081         printf("%f",data);
00082 }
00083 
00084 RUDIMENTS_EXPLICIT_SPECIALIZATION
00085 RUDIMENTS_TEMPLATE_INLINE
00086 void linkedlistutil<double>::print(double data) const {
00087         printf("%f",data);
00088 }
00089 
00090 template <class datatype>
00091 RUDIMENTS_TEMPLATE_INLINE
00092 void linkedlistutil<datatype>::print(datatype data) const {
00093         printf("%p",data);
00094 }
00095 
00096 #ifdef RUDIMENTS_NAMESPACE
00097 }
00098 #endif
00099 
00100 #endif