사용 가능한 CPU 기능에 따라 사용되는 클래스를 어떻게 변경합니까? 클라이언트 측에서 지원 SIMD하여 사용 Vector4
- 클래스를 변경하는 예를 들어사용 가능한 CPU 지원시 다른 클래스 사용
:
bool has_sse = get_cpuid_info("sse");
if(has_sse) {
// use Vector4SIMD only in the entire app
} else {
// fallback to a plain Vector4-class
}
나는 몇 가지 방법 (편집 : 추가 제안) : 생각할 수
동적 라이브러리을 사용
- 동적 캐스트
- 가상 디스패치
- 컴파일러 특정 찬사
요즘 소프트웨어에서 이와 유사한 동작이 어떻게 발생합니까?
가상 메서드를 사용하고 모든 다른 구현을 일부 마스터의 하위 클래스로 사용합니다. 그런 다음 클래스를 인스턴스화 할 때'if' 문을 사용하여 만들 서브 클래스를 결정하십시오. –
별도의 실행 파일이있는 것을 선호합니다. 그런 다음 실행 프로그램에서 CPU를 확인하고 원하는 실행 파일을 실행하십시오. – Mysticial