Topics Search

Function template specialization

Function template specialization
Views: 0
When instantiating a function template for a given type, the compiler stencils out a copy of the templated function and replaces the template type parameters with the actual types used in the variable declaration. This means a particular function will have the same implementation details for each instanced type (just using different types). While most of the time, this is exactly what you want, occasionally there are cases where it is useful to implement a templated function slightly different for a specific data type.
Sponsored Links:

Similar posts...


C++ Function Templates

C++ Function Templates Icon
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.

Templates Tutorial

Templates Tutorial Icon
Function templates are special functions that can operate with generic types. This allows us to create a function template whose functionality can be adapted to more than one type or class without repeating the entire code for each type.

C++ STL Functors

C++ STL Functors Icon
STL includes a set of template classes that overload the function call operator (operator ()). Instances of those classes are called functors or function objects. Many algorithm functions in STL take those functors as input and apply them on the elements they operate. STL has two kinds of function objects: Unary Functor: Functor that can be called with one arguments

What is STL?

What is STL? Icon
This article provides an introductory look at the C++ Standard Template Library (STL). STL contains five kinds of components: containers, iterators, algorithms, function objects and allocators...

C++ Closures: Functors, Lamdas and std::function

C++ Closures: Functors, Lamdas and std::function Icon
Closures might not be a familiar term for most of the C++ programmers. C++ programmers are very much familiar with class, object and function. Instances of classes are first-class objects in C++ but functions are not first-class entity in C++. An object or function to be first-class, you should be able to create them, store them in data structures, pass them to a function as parameters, return them from a function and create copies of them. You may think that you can do all those actions with function by using function pointer. But function pointer is just an address of the function.

Advanced C++ : Standard Template Library (STL)

Advanced C++ : Standard Template Library (STL) Icon
As the name suggests STL is the part of the C++ standard library which provides a rich set of template classes and template functions to make application development faster. It is a software library, a very important part of the standard library and influenced other parts of the standard library. STL library implementation has used the power of generic programming and projected the huge potential of generic programming to the programmers.

Lamda Expression

Lamda Expression Icon
In C++ we have two types of functions: stand alone function and member function(non-static). After the compilation both are just function. Difference between a class member function and a standalone function is that the class data is bound to the member function but no external data can be bound to the stand alone function. Compiler does this data binding for member functions by passing this pointer. You can also use function pointer for normal as well as member functions. What you can’t do prior to C++11 is to create small function on the fly which can use variables from the containing scope and pass it as parameter to another function. C++11 lamda expression enables you to create functions without name and with data binding, store it, create copy of it, pass as parameter to a function and return from a function. All this property makes lamda as first class function or closer (We will discuss closure later)

Templates and Template Classes

Templates and Template Classes Icon
Learn how class and function templates can be used to increase readability and reduce code typing.This tutorial shows you how to reuse code, save typing time, prevent time spent on debugging and saving source-code space

Inline functions

Inline functions Icon
Explains the need of inline functions, when to / not to use them and how to use them. C++ inline function is powerful concept that is commonly used with classes. If a function is inline, the compiler places a copy of the code of that function at each point where the function is called at compile time.

Header files, namespaces and instructions

Header files, namespaces and instructions Icon
C++ works by giving (separate) instructions to the computer. These instructions can be treated as assignments. On this site, such an assignment will be called a function. The primary function used in C++ is called main. To distinguish a function from the other types of things you will be using in your programs, a function's name is followed by an opening and a closing parentheses.