내 C ++ 프로젝트에는 Expression이라는 유형이 있습니다.
typedef std::function<uint64_t(uint64_t)> Expression;
또한 생성자처럼 작동하는 함수가 있습니다.
Expression ExpressionConstructor(std::string Expr, MicroCodeDescriptor* descriptor) {
//implementation doesn't matter in this case
}
이 코드는 작동하며 다음과 같이 Expression 유형을 사용할 수 있습니다.
Expression expr= ExpressionConstructor(code, descriptor);
그러나 구문 적으로 별도의 함수가 아닌 생성자처럼 작동하는 Expression에 대한 생성자를 선언하는 방법이 있습니까? 생성자가 생성하는 클래스의 반환 유형이있는 함수일 뿐이므로 이것이 근본적으로 불가능한 이유를 알 수 없습니다. .
- 답변 # 1
- 답변 # 2
ㅏ
typedef
새로운 유형이 아니라 별칭을 생성합니다.Expression
여전히 유형입니다std::function<uint64_t(uint64_t)>
.I don't see any reason why this is fundamentally impossible as constructors are just functions with the return type of the class they construct.
그것은 근본적으로 불가능한 것은 아니지만 (사양이 그러한 것을 허용 할 수 없다는 의미에서), 사양에 주어진 그러한 기능이 없기 때문에 당신은 그것을 할 수 없습니다. 기존 유형에 새 멤버 함수를 추가 할 수없는 것과 같습니다.
관련 자료
- countif - tableau - for 루프에서 계산하는 방법은 무엇입니까?
- c++ - std - : initializer_list 로 생성자를 만드는 방법
- c++ - c로 작성된 큐 코드에 대한 테스트 케이스를 만드는 방법은 무엇입니까?
- python - 각 개별 배열에 대한 for 루프를 어떻게 만듭니 까?
- javascript - ajax가 완료되기를 기다리는 방법
- Flutter for 루프로 목록을 표시하는 방법
- python - long if else 및 문자열 일반을 어떻게 만들 수 있습니까?
- mysql - Yii2에서 DB의 두 테이블에서 드롭 다운 목록을 만드는 방법은 무엇입니까?
- c++ - QProgressDialog 생성을 기다리는 방법?
- javascript - 두 가지 기능 중 하나를 만드는 방법
- rpg 언어 - 루프를 만드는 방법?
- How to make foreach work with this PHP script - 이 php 스크립트로 foreach를 작동시키는 방법 - get api
- html - 을 과 같은 줄에 유지하려면 어떻게해야합니까?
- python - django에서 API를 어떻게 만들 수 있습니까?
- ggplot2 - R을 사용하여 다중 상자 그림을 만드는 방법
- xamarin - C #에서 ContentPage에 대해 ShellNavBarIsVisible = "false"를 어떻게 설정할 수 있습니까?
- flutter - API에 어떻게 요청할 수 있습니까?
- cypress - 요소가 표시 될 때까지 기다리는 방법
- keras - 텍스트 분류에 GPT 3를 어떻게 사용할 수 있습니까?
대신에
typedef
Expression은 다음에서 파생 된 클래스 일 수 있습니다.std::function<uint64_t(uint64_t)>
. 그런 다음 정의 할 수 있습니다.생성자,폐물 소각로그리고 그것을std::function
:또는 더 나은 템플릿 만들기 :