/* Voorbeeldcode behorende bij het college "Programmeertechnieken",
* LIACS, Universiteit Leiden.
*/
#include <iostream>
/* We mogen ook meerdere template argumenten opgeven. */
template <typename T, size_t N>
struct FixedArray
{
T values[N];
size_t size(void)
{
return N;
}
/* Overload de [] operator, zie hieronder hoe dit wordt gebruikt. */
T &operator[](size_t offset)
{
return values[offset];
}
};
int main(void)
{
/* Hier geven we dus twee template argumenten op. */
FixedArray<float, 10> array;
for (size_t i = 0; i < array.size(); ++i)
/* Dit is mogelijk door de overload van de [] operator! */
array[i] = ((int)i) + 3;
for (size_t i = 0; i < array.size(); ++i)
std::cout << array[i] << " ";
std::cout << std::endl;
return 0;
}