boost-proto

    5

    1답변

    나는 proto와 phoenix로 실험하고 있는데, 처음으로 장난감을 추락시킨 사례가 하나 있는데, 어디에서 봐야하는지 잘 모릅니다. #boost IRC 채널의 누군가가 phoenix 표현식 트리가 처음으로 완전히 복사되었는지 확인하기 위해 (x이 생성되었을 때 매달려있는 참조가 남지 않도록) boost::proto::deep_copy으로 표현식을 래핑했습

    1

    1답변

    나는 boost :: proto를 사용하여 매우 제한된 파서 연결자 라이브러리를 정의하려고 시도하고 있으며, 기본이 아닌 기본 proto 터미널을 정의 할 수 있는지 궁금해하고있다. 내가 프로토 식의 부스트 프로토 터미널로 사용하려는 struct symbol { symbol(const string &str): str_(str) {} bo

    5

    1답변

    어떻게하면 부스트 피닉스 표현식의 변환에 함수 본문을 포함시킬 수 있습니까? 예를 들어, 나는 Boost Phoenix Starter Kit의 게으른 기능 섹션에 구축하고, 게으른 추가 기능을 만들었습니다 struct my_lazy_add_impl { typedef int result_type; template <typename T>

    1

    1답변

    기존 코드 프로젝트에 게으른 평가를 도입하려고합니다. 프로젝트 코어는 기본적으로 사용자 정의 유형을 사용하는 많은 양의 계산으로 구성됩니다 (이중처럼 작동하지만 백그라운드에서 추가 작업 수행). 우리의 목표는 기존 표현을 최적화하기 위해 부스트 프로토를 사용하는 지연 평가 개념을 소개하는 것입니다. 제한 : 기존의 계산이 감동 할 수없는 그래서 유형 자체를

    2

    2답변

    템플릿 매개 변수를 사용하여 do_eval 변형 (이전에는 double)의 반환 유형을 지정하여 Boost Proto "Unpacking Expressions"예제를 here에서 빌드하고 싶습니다. struct do_eval2 : proto::callable { typedef double result_type; template <type

    0

    1답변

    "내부"로컬 변수가 "외부"로컬 변수를 숨기면 Boost Phoenix에서 중첩 된 let 블록에 문제가 있습니다. 심지어 문서 here에서 "가시성"예와, 여기에 표시 :이 GCC: "error: function returning an array" Clang: "error: function cannot return array type 'result_ty

    8

    1답변

    정기적으로 boost.lambda (및 phoenix)를 사용하여 C++에서 람다 함수를 정의합니다. 나는 그들의 다형성, 표현의 단순성, C++에서의 함수형 프로그래밍을 훨씬 더 쉽게하는 것을 정말로 좋아합니다. 경우에 따라 작은 함수를 정의하고 정적 범위에서 이름을 지정하는 데 더 명확하고 읽기 쉽습니다 (읽기에 익숙하다면). 가장 일반적인 기능과 유사

    2

    1답변

    내가 실험을하고있어 변환. 할당 표현식을 취하여 구성 요소를 현명하게 전개하는 변환을 작성하려고합니다. 예를 들어, 나는 지금까지 내가 수 있었다 p[0] = q[0] + r[0], p[1] = q[1] + r[1], ..., p[N] = q[N] + r[N], p; 에 의해 p = q + r; 을 대체 할 대부분 그것이 재귀 각 벡터 구성

    1

    1답변

    Boost Proto 식 중 언제 proto_tag 멤버가 필요합니까? typedef proto::tag_of<decltype(_1)>::type ta; typedef decltype(_1)::proto_tag tb; 을하지만 표현의 아이의 태그 유형에 대해 묻는다면, proto_tag 멤버가없는 것으로 나타납니다 : 나는 다음과 같은 방법 중 하

    4

    1답변

    범위가 지정된 Boost Phoenix 문에서 사용되는 지역 변수의 유형을 얻으려면 어떻게해야합니까? Phoenix와 Proto를 사용하여 Phoenix 표현의 다양한 측면을 추출 할 수 있습니다. 예를 들어, 다음 코드는 arity (3)를 노출합니다. 태그 유형 (lambda_actor); 및 피닉스 람다 식의 자식 -2- 태그 유형 (shift_lef