https://docs.microsoft.com/ko-kr/cpp/cpp/aliases-and-typedefs-cpp?view=msvc-170
: 유저만의 타입을 정하는 것이다.
template에서 teypdef 를 지정할 경우, template 에 의존적인 형식으로 정의된다고 함.
따라서 template 에 작성된 teypdef 별칭 타입을 타입 그대로 사용하기 위해서는 teypname 을 작성해야 한다.
: 타입에 대한 별칭을 정의할 때 사용함.
: 궁극적으로는 유저가 원하는 타입을 만들기 위해서다.
unsinged int -> using UINT = unsigned int;
이렇게 선언하면, UINT 만으로 사용 가능함.
자주 사용되는 shared_ptr< BundangDong > 을 별칭하면,
using Bundang = shared_ptr< BundangDong >;
Bundang 으로 쉽게 타입 지정이 가능함.
using 으로 int를 INT로 별칭만들고, 변수 a만들고, 타입 추출하라.
typeid로 double을 DOUBLE로 별칭 만들고, 변수 d 만들고, 타입 추출하자.
선언하는 방법.
using 별칭 타입
typedef 타입 별칭.
중요
- using f = void(*)(int, int) 에서 반환값이 포인터가 아니라, 함수의 주소를
참조할 수 있는 함수포인터 형식이라는 것을 의미함.- typedef로는 이렇게 표현함. typedef void(*f)(int, int)
-> 그니까 뭔소리냐면, 함수의 시그니처 형식을 저장한다는 의미임.
: 아래의 그림을 함수 포인터를 별칭으로 만든 것일 뿐이고,
함수를 만들때 직접접으로 사용을 할 수 없음.
이런식으로는 함수를 만들 수 없음.
결론
-> 함수의 시그니처만 동일하면 함수포인터는 어떤 함수든지 참조가 가능함.