home *** CD-ROM | disk | FTP | other *** search
- #include <iostream.h>
- #include <stdio.h>
- #include <string.h>
-
- template <class T>
- unsigned int AddEquals(T val1, T val2, T compare)
- {
- return (val1 + val2) == compare;
- }
-
- // Specialization for character pointers
- unsigned int AddEquals(char *val1,
- char *val2,
- char *compare)
- {
- char Temp[512];
- sprintf(Temp, "%s%s", val1, val2);
- return !strcmp(Temp, compare);
- }
-
- void main()
- {
- // Legal - Uses template
- cout << "Does 4 + 5 = 9? ";
- cout << (AddEquals(4, 5, 9) ? "Yes" : "No") << "\n";
-
- // Legal - Uses template
- cout << "Does 7.0 + 5.5 = 12.0? ";
- cout << (AddEquals(7.0, 5.5, 12.0) ? "Yes" : "No") << "\n";
-
- // Legal - Uses specialization
- cout << "Does \"Big \" + \"Dog\" = \"Big Dog\"? ";
- cout << (AddEquals("Big ", "Dog", "Big Dog") ? "Yes" : "No")
- << "\n";
- }
-