Я не уверен, что здесь происходит, надеясь, что кто -то сможет просветить меня. , для которого я объявляю ограниченную семью специализаций, в том числе для аргументов UIN32_T. Когда я пытаюсь вызвать эту функцию с помощью аргумента «Unsigned Int», линкера GCC говорит, что не может найти такую функцию. Я проверил, Uint32_T и «Unsigned Int» оба имеют 4 байта на мою кору руки. Почему они не взаимозаменяемы? PrettyPrint-Override ">
Я не уверен, что здесь происходит, надеясь, что кто -то сможет просветить меня. , для которого я объявляю ограниченную семью специализаций, в том числе для аргументов UIN32_T. Когда я пытаюсь вызвать эту функцию с помощью аргумента «Unsigned Int», линкера GCC говорит, что не может найти такую функцию. Я проверил, Uint32_T и «Unsigned Int» оба имеют 4 байта на мою кору руки. Почему они не взаимозаменяемы? PrettyPrint-Override ">[code]#include
// uncommenting this resolves the compiler error. //template void func(unsigned int value, char * p_rtn, uint8_t rtn_len); < /code> test.cpp #include "util.h"
int main() { char buff[128]; func(sizeof(unsigned int), buff, 128); } < /code> Arm-none-eabi-c ++ говорит мне < /p> test.cpp:(.text+0x1c): undefined reference to `void func(unsigned int, char*, unsigned char)' [/code] Если я составляю это с Windows G ++, ошибки нет.