programing

std::labs()의 용도는 무엇입니까?

goodsources 2022. 8. 3. 23:15
반응형

std::labs()의 용도는 무엇입니까?

에 대해 읽었습니다.std::abs()cpp reference를 참조할 때 기능합니다.

그 페이지에서 나는 또한 본 적이 있다std::labs()기능.그 시제품은 그 시제품 중 하나와 같죠.std::abs()과부하long).

long abs( long n );

long labs( long n );

그리고.

long long abs( long long n );

long long llabs( long long n );

그렇게,

  • 정확히 뭐?std::labs()그렇습니까?
  • 언제 어디에 사용합니까?std::labs()?
  • 와의 차이는 무엇입니까?std::abs()그리고.std::labs()?

C++11은,std::labs그리고.std::llabs가 추가되었습니다.이것은 C++ 표준 라이브러리와 C99 표준 라이브러리의 부분 동기화의 일부입니다.

C++ 코드로는 필요 없습니다.왜냐하면,long과부하std::abs아주 오래 전부터요그러나 만약 당신이 약간의 C 코드를 가지고 있다면(그것은 순전히 우연에 의해서도 C++ 컴파일러와 컴파일 된다), 그리고 그것은labsC++11 컴파일러와 표준 라이브러리를 사용하여 구축할 수 있습니다.


돌이켜보면, 이러한 기능에 약간 유용한 사용 사례가 하나 있습니다.그리고 그때가 바로 그 시도로std::abs애매해요.예:

template<typename T>
T run_func(T (&f)(T)) {
  return f({});
}

그럼 전화하는 중run_func(std::abs);형식이 잘못되었습니다.템플릿 인수를 명시적으로 지정하거나 캐스트해야 합니다.std::abs적절한 타입으로.반면에run_func(std::labs);애매하지도 않고 너무 장황하지도 않아요.

그래도 별로 유용하진 않군

언급URL : https://stackoverflow.com/questions/46441123/what-exactly-is-stdlabs-there-for

반응형