採取「偷懶」的構造函數,可能有以下接口: template<class T>
struct LazyConstruct {
// accept any number of arguments,
// which would later be used to construct T
template<class... U>
LazyConstruct(U&&
我非常滿意C++ 11中的完美轉發,並且想要做更復雜的事情。這有點經典。我有一個模板軸對齊框類。模板參數是一個矢量類。所以我有一個經典的構造,即需要2個載體: template <class T> struct base_vec2 {
typedef T scalar_type;
base_vec2 (T a, T b); // counsruct for two scalar
據我所知,在C++ 11中,通用引用應該始終與std::forward一起使用,但我不確定如果不使用std::forward會出現什麼樣的問題。 template <T>
void f(T&& x);
{
// What if x is used without std::forward<T>(x) ?
}
您能提供一些在這種情況下可能發生的問題的插圖嗎?