ฉันมีแม่แบบที่มีลักษณะเช่นนี้
template <typename T> class Foo
{
public:
Foo(const T& t) : _t(t) {}
private:
const T _t;
};
มีเทมเพลต metaprogramming เข้าใจวิธีที่จะหลีกเลี่ยงการใช้ const อ้างอิงในกรณีที่ประเภทอาร์กิวเมนต์เป็นเรื่องเล็กน้อยเช่นบูลหรือถ่าน? ชอบ:
Foo(stl::smarter_argument<T>::type t) : _t(t) {}
Foo
ได้