Software Information

C++ Function Templates


C++ Function templates are those functions which can handle different data types without separate code for each of them. For a similar operation on several kinds of data types, a programmer need not write different versions by overloading a function. It is enough if he writes a C++ template based function. This will take care of all the data types.

There are two types of templates in C++, viz., function templates and class templates. This article deals with only the function templates.

There are lot of occasions, where we might need to write the same functions for different data types. A favorite example can be addition of two variables. The variable can be integer, float or double. The requirement will be to return the corresponding return type based on the input type. If we start writing one function for each of the data type, then we will end up with 4 to 5 different functions, which can be a night mare for maintenance.

C++ templates come to our rescue in such situations. When we use C++ function templates, only one function signature needs to be created. The C++ compiler will automatically generate the required functions for handling the individual data types. This is how a programmer's life is made a lot easier.

C++ Template functions - Details:

Let us assume a small example for Add function. If the requirement is to use this Add function for both integer and float, then two functions are to be created for each of the data type (overloading).

int Add(int a,int b) { return a+b;} // function Without C++ template

float Add(float a, float b) { return a+b;} // function Without C++ template

If there are some more data types to be handled, more functions should be added.

But if we use a c++ function template, the whole process is reduced to a single c++ function template. The following will be the code fragment for Add function.

template

T Add(T a, T b) //C++ function template sample

{

return a+b;

}

This c++ function template definition will be enough. Now when the integer version of the function, the compiler generates an Add function compatible for integer data type and if float is called it generates float type and so on.

Here T is the typename. This is dynamically determined by the compiler according to the parameter passed. The keyword class means, the parameter can be of any type. It can even be a class.

C++ Template functions - Applicability:

C++ function templates can be used wherever the same functionality has to be performed with a number of data types. Though very useful, lots of care should be taken to test the C++ template functions during development. A well written c++ template will go a long way in saving time for programmers.

About The Author

Muthukumar

More articles can be found at http://www.codersource.net/.


MORE RESOURCES:

McLane Company to Control Inbound Freight With Retalix Traffic ...
MarketWatch - 16 hours ago
a leading provider of software solutions for distributors and retailers, today announced that McLane Company, Inc., one of the world's largest foodservice ...


Software allows social sites to share info
Bizjournals.com, NC - Oct 11, 2008
JACKSONVILLE — A Jacksonville software company is knocking down walls between social networks, such as MySpace and LinkedIn, by giving users more control ...
Going to the dentist? Get ready for the ads Youngstown Vindicator
all 22 news articles


SYS-CON Media

WSO2 Named "Silver Sponsor" of SYS-CON's SOA World Conference & Expo
SYS-CON Media, NJ - 9 hours ago
... Recursion Software, Red Hat, Reflex Security, Research & Markets, RadiantLogic, Ring Cube Technologies, Riptide Software, Rogue Wave Software, rPath, ...
LinuxWorks Named "Bronze Sponsor" of SYS-CON's Virtualization and ... SYS-CON Media
Krugle to Exhibit at SYS-CON's Virtualization and Cloud Computing ... SYS-CON Media
EMC Named "Gold Sponsor" of SYS-CON's SOA World and Virtualization ... SYS-CON Media
SYS-CON Media
all 66 news articles


Ruling ends uncertainty for software developers
Contractor UK, UK - 4 hours ago
Ominously for small software developers, the UK IPO said it would continue to follow the practice, contrary to a High Court ruling in March that it should ...
Limits on bank compensation Financial Times
Here’s an idea — US patent system needs reform Bizjournals.com
all 13 news articles


21st Century Software, Inc. Announces DR/VFI v4.3 for IBM Mainframes
PR Web (press release), WA - 3 hours ago
Las Vegas, NV and Wayne, PA (PRWEB) October 12, 2008 -- Today, at the 2008 IBM System z Expo Conference, 21st Century Software, Inc., announced a major ...


Economic climate weighs on oracle, but it makes gains
Newsday, NY - 19 hours ago
Nonetheless, its dominant position in database software gives it a degree of pricing power most other technology companies can only dream about. ...


Software gives top students another boost
The Nation Newspaper, Barbados - 18 hours ago
Through this partnership, Aries Technologies has provided the school edition of the software to primary schools across the island at no cost to the Ministry ...


INTERNET LAW - Free Software Under French Law
IBLS INTERNET LAW (subscription), CA - 37 minutes ago
As opposed to proprietary software, which use, redistribution or modification is prohibited, or requires the authorization of the author, free software is ...


Software firms defy the gloom
Times Online, UK - Oct 11, 2008
SCOTLAND’S software sector is defying economic gloom to attract millions of pounds in new business, according to a new survey. ...


GulfNews

Orange suspends Blackberry Bold handsets over software glitches
Telegraph.co.uk, United Kingdom - Oct 10, 2008
By Matthew Moore Phone provider Orange has stopped dispatching Blackberry Bold handsets due to software problems with the devices, in a move that threatens ...
Software problems hit BlackBerry Bold IT PRO
Third-party BlackBerry Software Development a Learning Process for RIM Brighthand
Orange UK Suspends Sales of BlackBerry Bold Due to Software Bugs Cellular-News
CRN - U.S. News & World Report
all 1,068 news articles

Software - Google News

home | site map
© 2006