함수의 여러 계층을 통해 포인터를 전달해야하는 일부 코드에 문제가 있습니다. 포인터는 null이 될 수 있으므로 nullptr의 경우 최종 함수에 오버로드가 발생했습니다. test
는 test_ptr
의 첫 번째 버전을 호출하지만이 경우가 아니라면,C++ 여러 함수를 통해 nullptr 전달
void test_ptr(std::nullptr_t)
{
std::cout << "nullptr" << std::endl;
}
void test_ptr(double *d)
{
std::cout << *d << std::endl;
}
void test(double *d)
{
test_ptr(d);
}
int main()
{
test(nullptr);
}
나를 위해, 이상적인 행동은 다음과 같습니다 개념 나는 이런 일을했습니다. test
을 조작하여 "올바른"버전을 호출 할 수 있습니까?
당연히 과부하는 필요하지 않지만 나는 개인적으로 두 가지 다른 과부하로 표시해야 할 경우를 구분해야합니다. 그런 식으로 작동하지 않으면 제안대로 구현할 것입니다. – Mazzi