diff --git a/public/sm_argbuffer.h b/public/sm_argbuffer.h index f951f9f8a..e27c1338b 100644 --- a/public/sm_argbuffer.h +++ b/public/sm_argbuffer.h @@ -37,7 +37,7 @@ template class ArgBuffer { public: - ArgBuffer(T t, Rest... rest) { + ArgBuffer(const T& t, const Rest&... rest) { unsigned char *ptr = buff; buildbuffer(&ptr, t, rest...); } @@ -60,13 +60,13 @@ private: } template - void buildbuffer(unsigned char **ptr, K k) { + void buildbuffer(unsigned char **ptr, K& k) { memcpy(*ptr, &k, sizeof(k)); *ptr += sizeof(K); } template - void buildbuffer(unsigned char **ptr, K k, Kn... kn) { + void buildbuffer(unsigned char **ptr, K& k, Kn&... kn) { buildbuffer(ptr, k); if (sizeof...(kn)!=0) buildbuffer(ptr, kn...);