저는 정적 인 멤버 함수를 가지고 있습니다. 그것은 정적 인 멤버 함수를 가지고 있습니다.이 멤버 함수는 저의 구문 적 설탕이며, 매개 변수를 매개 변수에 전달하는 대신에 그 몸체가 나타나기를 원합니다.정적 멤버 함수를 인라인 할 수 있습니까?
inline static foo(int a) {return a & 0x00000040;}
은 그것이 static
을하지 않고 inline
인 경우와 마찬가지로 인라인 될 것인가?
저는 정적 인 멤버 함수를 가지고 있습니다. 그것은 정적 인 멤버 함수를 가지고 있습니다.이 멤버 함수는 저의 구문 적 설탕이며, 매개 변수를 매개 변수에 전달하는 대신에 그 몸체가 나타나기를 원합니다.정적 멤버 함수를 인라인 할 수 있습니까?
inline static foo(int a) {return a & 0x00000040;}
은 그것이 static
을하지 않고 inline
인 경우와 마찬가지로 인라인 될 것인가?
컴파일러는 수행 할 작업을 선택하여 수행 할 작업을 선택할 수 없습니다. 즉, static
인 함수는 인라인되지 못하도록하지 않습니다. static
함수는 기본적으로 클래스의 private 멤버에 대한 다른 명명 스타일 및 액세스 권한을 가진 자유 함수입니다.
그들은 한 가지 중요한 점에서 무료 기능과 다릅니다 : 개인 회원에 대한 액세스 – John
@ 존 아 그렇습니다, 그것은 중요한 차이입니다. –
클래스 내부의 정의가 어쨌든 인라인 요청을 의미하지는 않습니까? –
정적 멤버 메서드에는 this
매개 변수가 없으므로 정적 멤버 변수에만 액세스 할 수 있습니다.
메서드가 인라인되었는지 여부와는 다릅니다. 그래서 두 사람은 서로 독립적입니다.
컴파일러는 메소드가 인라인 될 것인지 여부를 결정합니다. 키워드를 사용하는 것은 컴파일러에게 힌트 일뿐입니다.
인라이닝과 마찬가지로 대답은 "의존적"입니다. 어딘가에'foo'에 함수 포인터를 넘기고 싶다면? –