function object 연구의 8add_value_*
template< class T, int I > struct add_value_2
{
typedef boost::arg<I> type;
};
template< class T > struct add_value_2< T, 0 >
{
typedef _bi::value< T > type;
};
template<class T> struct add_value
{
typedef typename add_value_2< T, boost::is_placeholder< T >::value >::type type;
};
이것은 템플릿 특화 응용이다.boost::arg
0이 되면 컴파일러는add_value_2
template<class T> class value
{
public:
value(T const & t): t_(t) {}
T & get() { return t_; }
T const & get() const { return t_; }
bool operator==(value const & rhs) const
{
return t_ == rhs.t_;
}
private:
T t_;
};
이 틀은 매우 간단합니다. 우리가 자주 쓰는 것입니다.T 형식의 매개 변수를 구성원 변수로 저장하고 get 방법으로 이 변수를 가져옵니다.복사부치 함수도 제공했다.따라서 0의 경우 type 유형은_bi::value
그렇지 않으면 첫 번째 add_ 를 사용합니다.value_2 템플릿, 이때 유형add_value_2::type은 boost::arg
요약:
add_value 템플릿의 기능은 boost::arg
T 템플릿 매개 변수가 boost::arg
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.