나는 C++ 11 표준과 약간의 실험이 문제를 내놓았다했다 : 당신이 자동으로 함수에 대한 반환 유형을 얻을 수 auto
및 decltype
를 사용할 수있는 C++ 11에서decltype은 객체 인스턴스를 필요로
아래의 예를 들어 begin()
및 end()
기능 : 여기
#include <vector>
template <typename T>
class Container {
private:
std::vector<T> v;
public:
auto begin() -> decltype(v.begin()) { return v.begin(); };
auto end() -> decltype(v.end()) { return v.end(); };
};
내 문제는 내가 전에 내 코딩 스타일 반대 국민 선언을 민간 vector<T> v
를 선언해야한다는 것입니다. 내 모든 개인 회원 내 공무원을 선언하고 싶습니다. decltype
의 표현식은 벡터 멤버 함수 begin()
에 대한 호출이고 객체의 인스턴스가 필요하기 때문에 함수 선언 앞에 벡터를 선언해야합니다.
이 방법이 있습니까?
내가 auto''없이 작업을 수행하는 방법을 알고 추가 할 것이나, 질문은'auto'와'decltype'의 사용에 관한 것입니다. – Snps