Template keyword

leshak
Offline
Зарегистрирован: 29.09.2011

 Наткнулся тут на одно библиотечку www.arduino.cc/playground/Code/Utility

Интерестна даже не сколько она, сколько реализация. Там увидел вот такой код:

template <typename type, typename param1, typename param2, typename mod>
void foreach(type* pins, byte numberOfPins, void (*function)(param1,param2),mod modifier){
	for (byte i=0; i<numberOfPins; i++){
		function(pins[i],modifier);
	}
}

template <typename type, typename param1, typename param2, typename mod>
void foreach(type* pins, int from, int to, void (*function)(param1,param2),mod modifier){
	for (byte i=from; i<=to; i++){
		function(pins[i],modifier);
	

 Из чего возник вопрос "а что это за template такой?" (строчки 01 и 08).

То есть "примерно понятно", но найти в документации его упоминаний - не удалось. Гугл, в основном плюется ссылками на C++, где это используется больше для классов, а не функций. И неизвестно насколько C++ template соотвествует ардуинистому template.

Кто-нибудь видел какие-нибудь статьи/туториалы где объясняется его правильное использование?

 

step962
Offline
Зарегистрирован: 23.05.2011

leshak пишет:

То есть "примерно понятно", но найти в документации его упоминаний - не удалось. Гугл, в основном плюется ссылками на C++, где это используется больше для классов, а не функций. И неизвестно насколько C++ template соотвествует ардуинистому template.

Arduino IDE использует в качестве компилятора GCC, адаптированный под AVR. Добавьте в строку поиска "GCC" и изучайте страницы, учитывающие особенности Arduino.