JNetLibray
로딩중...
검색중...
일치하는것 없음
include
Job.h
이 파일의 문서화 페이지로 가기
1
#pragma once
2
3
#include <iostream>
4
#include <functional>
5
#include <memory>
6
7
// 받고자 하는 Job 함수의 람다 타입 자체가 인자를 받는 것도 아니고, 반환이 있는 것도 아니다.
8
using
CallbackType
= std::function<void()>;
9
10
class
Job
11
{
12
public
:
13
Job
(
CallbackType
&& callback)
14
:
m_Callback
(std::move(callback))
15
{}
16
17
// 이 생성자와 일치 예상
18
template
<
typename
T,
typename
Ret,
typename
... Args>
19
Job
(std::shared_ptr<T> obj, Ret(T::* method)(Args...), Args&&... args)
20
{
21
m_Callback
= [obj, method, args...]()
22
{
23
(obj.get()->*method)(args...);
24
};
25
}
26
27
// 명시적으로 std::shared_ptr을 받는 생성자
28
template
<
typename
T>
29
Job
(std::shared_ptr<T> obj) {
30
std::cout <<
"Job 생성자 호출!"
<< std::endl;
31
}
32
33
void
Execute
() {
34
m_Callback
();
35
}
36
37
private
:
38
CallbackType
m_Callback
;
39
};
40
CallbackType
std::function< void()> CallbackType
Definition
Job.h:8
Job
Definition
Job.h:11
Job::Job
Job(std::shared_ptr< T > obj, Ret(T::*method)(Args...), Args &&... args)
Definition
Job.h:19
Job::Execute
void Execute()
Definition
Job.h:33
Job::Job
Job(std::shared_ptr< T > obj)
Definition
Job.h:29
Job::m_Callback
CallbackType m_Callback
Definition
Job.h:38
Job::Job
Job(CallbackType &&callback)
Definition
Job.h:13
다음에 의해 생성됨 :
1.12.0