template<typename Command, typename T>
inline void bind_field(Command& command, size_t index, T& value)
{
bind_field(command, index, std::forward(value));
}
template<typename Command, typename T>
inline void bind_field(Command& command, const char* name, T& value)
{
size_t index=command.find_field(name);
if(index==-1)
value=T();
else
bind_field(command, index, std::forward(value));
}
//! 下面编译报错,编译器不知道该使用上面哪个模板进行实例化!
template<>
inline void bind_record<qtl::mysql::statement, TestMysqlRecord>(qtl::mysql::statement& command, TestMysqlRecord&& v)
{
qtl::bind_field(command, 0, v.id);
}
template<typename Command, typename T>
inline void bind_field(Command& command, size_t index, T& value)
{
bind_field(command, index, std::forward(value));
}
template<typename Command, typename T>
inline void bind_field(Command& command, const char* name, T& value)
{
size_t index=command.find_field(name);
if(index==-1)
value=T();
else
bind_field(command, index, std::forward(value));
}
//! 下面编译报错,编译器不知道该使用上面哪个模板进行实例化!
template<>
inline void bind_record<qtl::mysql::statement, TestMysqlRecord>(qtl::mysql::statement& command, TestMysqlRecord&& v)
{
qtl::bind_field(command, 0, v.id);
}