Boost.org의 example 융합 주어진 :: 변환입니다 ".을 받고"이종 컨테이너에 boost :: fusion :: transform을 사용하는 방법은 무엇입니까? 다음과 같이
struct triple
{
typedef int result_type;
int operator()(int t) const
{
return t * 3;
};
};
// ...
assert(transform(make_vector(1,2,3), triple()) == make_vector(3,6,9));
을하지만 난 아니에요 예제의 벡터는 모두 동일한 유형의 요소를 포함하지만 융합을 사용하는 주요 포인트는 이기종 유형의 컨테이너입니다. 대신 make_vector(1, 'a', "howdy")
을 사용했다면 어떻게 될까요?
template<typename T> T& operator()(T& const t)
가 될하지만 어떻게 내가는 result_type를 작성합니다
int operator()(int t)
필요? template<typename T> typedef T& result_type
은 확실히 유효한 문법이 아니며 함수에 묶여 있지 않기 때문에 구문이 맞지 않더라도 의미가 없습니다.
남자가 거기에 넣기를 좋아하기 때문에 result_type이 필요합니까? 위의 예제에서, 그는 결과 유형을 형성하기 위해 원시 타입의 decltype을 사용하는 것처럼 보입니다. – Puppy
우, 네 말이 맞아. 꼭 필요하지는 않아. 감사. 나는 boost :: fusion에 대한 실질적인 가이드를 요구하는 새로운 질문을 게시 할 예정이다. boost.org에있는이 문서는 코드 자체를 읽는 것보다 간신히 단계이다. – Kyle