값을 반환하는 void 함수에 대한 xrefwrap 오류를 피할 수 있습니까?

Astinog

다음과 같이 정의 된 벡터가 있고 std::vector<std::function<void()>> functions항목을 저장하기 위해 다음과 같이 함수를 사용합니다.

template <typename Fun, typename Instance, typename ... Args>
void AddFunction(std::string name, Fun&& fun, Instance* instance, Args&& ... args)
{
  /*something is going on here*/
  functions.push_back(std::bind(fun, instance, std::forward<Args>(args)...));
  /*something is going on here*/
}

문제는 때때로 전달 된 함수가 std::bind어떤 종류의 값을 반환 수 있다는 것입니다. 나는 람다를 사용하는 것에 대해 생각했고 이런 식으로 시도했습니다.

template <typename Fun, typename Instance, typename ... Args>
void AddFunction(std::string name, Fun&& fun, Instance* instance, Args&& ... args)
{
  /*something is going on here*/
  auto lambda = [&]() -> void
  {
    fun(std::forward<Args>(args)...);
  };
  functions.push_back(std::move(lambda));
  /*something is going on here*/
}

그러나 내가 사용하려고 할 때마다 내가 전달하는 함수가 취하는 인수의 수는 어디에 AddFunction있다는 오류 메시지가 나타납니다 .term does not evaluate to a function taking n argumentsnAddFunction

std::function<void()>저장된 함수가 값을 반환하더라도 유형의 항목을 저장할 수 있도록 몇 가지 해결 방법이 있습니까?

이고르 쓰레기

양자 모두

functions.push_back(std::bind(fun, instance, std::forward<Args>(args)...));

  auto lambda = [&]() -> void
  {
    (instance->*fun)(std::forward<Args>(args)...);
  };
  functions.push_back(std::move(lambda));

작동 비주얼 스튜디오와 함께.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

void *를 함수에 대한 매개 변수로 사용할 수 있습니까?

분류에서Dev

void * 포인터를 기대하는 함수에 함수 객체를 어떻게 전달할 수 있습니까?

분류에서Dev

인수를 취하지 않고 void를 반환하는 함수 포인터 유형을 인수를 취하고 값을 반환하는 함수와 함께 사용할 수 있습니까?

분류에서Dev

각각 void를 반환하는 두 함수에 삼항 연산자를 사용할 수 있습니까?

분류에서Dev

매크로는 void로 캐스팅하여 void 반환 함수를 모방 할 수 있습니까?

분류에서Dev

'유효한'(?) 람다 식에 대한 "Void 메서드는 값을 반환 할 수 없습니다."

분류에서Dev

SQL에 값을 삽입하는 동안 다음 오류를 어떻게 피할 수 있습니까?

분류에서Dev

Result <(), Error>를 반환하는 함수에서 Serde의 오류를 어떻게 반환 할 수 있습니까?

분류에서Dev

생성기에서 연속 값을 반환하는 함수를 어떻게 래핑 할 수 있습니까?

분류에서Dev

반환 값을 인수로 사용하여 동일한 함수를 여러 번 실행할 수 있습니까?

분류에서Dev

루프의 각 항목 배열에 대한 약속을 반환하는 함수를 어떻게 호출 할 수 있습니까?

분류에서Dev

'void *'에서 'int'에 할당하는 정수 변환에 대한 호환되지 않는 포인터를 어떻게 수정할 수 있습니까?

분류에서Dev

형식 조건자가있는 함수에서`void`를 반환 할 수 있습니까?

분류에서Dev

청취자에 대한 참조를 유지하는 것을 피할 수 있습니까?

분류에서Dev

오류시 Apt 반환 값에 대한 문서는 어디에서 찾을 수 있습니까?

분류에서Dev

반환 값이있는 함수를 void로 포인터 함수에 할당 할 수없는 이유는 무엇입니까?

분류에서Dev

누군가 내 함수가 1 대신 0을 반환하는 이유를 설명 할 수 있습니까?

분류에서Dev

오류 TS2794 : 1 개의 인수가 필요하지만 0이 있습니다. 'Promise'에 대한 유형 인수에 'void'를 포함하는 것을 잊었습니까?

분류에서Dev

오류 매핑 함수와 함께 filter_map을 사용할 때 오류에 대한 반복기를 집계하는 방법은 무엇입니까?

분류에서Dev

변수를 할당하지 않고 else / if 문에 대한 답변을 반환 할 수 있습니까?

분류에서Dev

입력 값을 제한하거나 다중 입력 기능에 입력하려는 값을 벗어난 값을 입력하면 오류를 반환 할 수 있습니까?

분류에서Dev

함수에서 L- 값을 반환 할 수 있습니까?

분류에서Dev

피벗을 사용하여 MSSQL의 각 값 그룹에 대한 개수를 가져올 수 있습니까?

분류에서Dev

Mockito를 사용하여 Scala에서 Void 반환 유형을 어떻게 모의 할 수 있습니까?

분류에서Dev

Swift에서 함수 매개 변수를 사용하여 일반 함수에 대한 호출을 어떻게 명확하게 할 수 있습니까?

분류에서Dev

Pandas에서 특정 행 값을 기반으로 값을 할당 할 때 루프를 피할 수 있습니까?

분류에서Dev

람다 함수에 인수를 복사하는 것을 피할 수 있습니까?

분류에서Dev

AndroidStudio / IntelliJ에서 16 진수 값에 대한 오탐 오류 경고를 억제 할 수 있습니까?

분류에서Dev

"APT :: Default-Release에 대한 값 'stable'이 유효하지 않습니다."라는 오류를 어떻게 수정할 수 있습니까?

Related 관련 기사

  1. 1

    void *를 함수에 대한 매개 변수로 사용할 수 있습니까?

  2. 2

    void * 포인터를 기대하는 함수에 함수 객체를 어떻게 전달할 수 있습니까?

  3. 3

    인수를 취하지 않고 void를 반환하는 함수 포인터 유형을 인수를 취하고 값을 반환하는 함수와 함께 사용할 수 있습니까?

  4. 4

    각각 void를 반환하는 두 함수에 삼항 연산자를 사용할 수 있습니까?

  5. 5

    매크로는 void로 캐스팅하여 void 반환 함수를 모방 할 수 있습니까?

  6. 6

    '유효한'(?) 람다 식에 대한 "Void 메서드는 값을 반환 할 수 없습니다."

  7. 7

    SQL에 값을 삽입하는 동안 다음 오류를 어떻게 피할 수 있습니까?

  8. 8

    Result <(), Error>를 반환하는 함수에서 Serde의 오류를 어떻게 반환 할 수 있습니까?

  9. 9

    생성기에서 연속 값을 반환하는 함수를 어떻게 래핑 할 수 있습니까?

  10. 10

    반환 값을 인수로 사용하여 동일한 함수를 여러 번 실행할 수 있습니까?

  11. 11

    루프의 각 항목 배열에 대한 약속을 반환하는 함수를 어떻게 호출 할 수 있습니까?

  12. 12

    'void *'에서 'int'에 할당하는 정수 변환에 대한 호환되지 않는 포인터를 어떻게 수정할 수 있습니까?

  13. 13

    형식 조건자가있는 함수에서`void`를 반환 할 수 있습니까?

  14. 14

    청취자에 대한 참조를 유지하는 것을 피할 수 있습니까?

  15. 15

    오류시 Apt 반환 값에 대한 문서는 어디에서 찾을 수 있습니까?

  16. 16

    반환 값이있는 함수를 void로 포인터 함수에 할당 할 수없는 이유는 무엇입니까?

  17. 17

    누군가 내 함수가 1 대신 0을 반환하는 이유를 설명 할 수 있습니까?

  18. 18

    오류 TS2794 : 1 개의 인수가 필요하지만 0이 있습니다. 'Promise'에 대한 유형 인수에 'void'를 포함하는 것을 잊었습니까?

  19. 19

    오류 매핑 함수와 함께 filter_map을 사용할 때 오류에 대한 반복기를 집계하는 방법은 무엇입니까?

  20. 20

    변수를 할당하지 않고 else / if 문에 대한 답변을 반환 할 수 있습니까?

  21. 21

    입력 값을 제한하거나 다중 입력 기능에 입력하려는 값을 벗어난 값을 입력하면 오류를 반환 할 수 있습니까?

  22. 22

    함수에서 L- 값을 반환 할 수 있습니까?

  23. 23

    피벗을 사용하여 MSSQL의 각 값 그룹에 대한 개수를 가져올 수 있습니까?

  24. 24

    Mockito를 사용하여 Scala에서 Void 반환 유형을 어떻게 모의 할 수 있습니까?

  25. 25

    Swift에서 함수 매개 변수를 사용하여 일반 함수에 대한 호출을 어떻게 명확하게 할 수 있습니까?

  26. 26

    Pandas에서 특정 행 값을 기반으로 값을 할당 할 때 루프를 피할 수 있습니까?

  27. 27

    람다 함수에 인수를 복사하는 것을 피할 수 있습니까?

  28. 28

    AndroidStudio / IntelliJ에서 16 진수 값에 대한 오탐 오류 경고를 억제 할 수 있습니까?

  29. 29

    "APT :: Default-Release에 대한 값 'stable'이 유효하지 않습니다."라는 오류를 어떻게 수정할 수 있습니까?

뜨겁다태그

보관