1
예를 들어, 벡터의 push_back 메소드를위한 얇은 래퍼를 작성한다고 가정 해 보겠습니다.간단한 인수 전달 (내 서명은 무엇이되어야합니까?)
class Foo
{
public:
void myPushBack(Bar b); // Line in question
private:
std::vector<Bar> vec;
}
void Foo::MyPushBack(bar b)
{
vec.push_back(bar);
}
main()
{
Foo f();
f.myPushBack();
}
제 질문은 기능에 대한 올바른 서명은 무엇입니까? myPushBack
? 그렇다면 다음 질문은 myPushBack
vec
이 std::vector<weak_ptr<Bar>>
인 경우 함수의 올바른 서명이 무엇입니까? 이 템플릿이기 때문에이 벡터의 실제 유형을 중요하지 않습니다,
template<typename T> void Foo::MyPushBack(T &&b)
{
vec.push_back(std::forward<T>(b));
}
:
범용 참조는 어떻습니까? – chris