我使用keil uvision5创建了以下代码。
// in .h
#include <vector>
#include <string>
template <class T>
class RxPacket
{
private:
std::string idx_str;
public:
RxPacket();
bool Rx_isQrcode(std::vector<T> in_pack);
};
// in .cpp
#include <stdint.h>
#include <algorithm>
template class RxPacket<uint8_t>;
template <class T>
RxPacket<T>::RxPacket()
{
idx_str = "TEST:";
};
template <class T>
bool RxPacket<T>::Rx_isFound(std::vector<T> in_pack)
{
auto _idx = search(in_pack.begin(), in_pack.end(), idx_str.begin(),
idx_str.end());
if(_idx == in_pack.end())
return false;
return true;
};
它适用于VS.但在keil中出现错误: 错误:#20:标识符&#34;搜索&#34;未定义 auto _idx = search(in_pack.begin(),in_pack.end(),idx_str.begin(),idx_str.end());
你能告诉我如何在这个编译器上执行这个错误。 要么 是否有另一种方法可以在uint8_t的矢量中找到字符串。