c++11 模板支持可变参数
对于可变参数使用递归方式, 实现参数处理
实现 insert into %?(%?, %?) values(%?, %?) 字符替换
#include <iostream>
#include <string>
#include <sstream>
class cMyFormat
{
std::string src_;
size_t ipos_;
public:
explicit cMyFormat( const char* src ):src_(src)
{
ipos_ = 0;
}
void MyFormat()
{
std::cout<<src_<<std::endl;
}
template<typename T>
void fmt( const T& a )
{
(*this)(a);
}
template<typename T, typename ...Args>
void fmt( const T& a, const Args... args )
{
fmt(a);
fmt(args...);
}
template<typename T>
void operator()(const T& a)
{
std::stringstream s;
s << a;
do_replace(s.str());
}
private:
void do_replace( const std::string& content )
{
if( src_.size() < 2 + ipos_ ) return;
size_t size = src_.size();
for( ; ipos_ < size-1; ipos_++ )
{
if( src_[ipos_] == &#