2013-06-17 2 views
0

내 책이getInfo를 사용할 때 cl_platform_info로 변환해야하는 이유는 무엇입니까?

platforms[i].getInfo((cl_platform_info)CL_PLATFORM_NAME , &platformName); 

처럼 된 getInfo()를 사용하지만

platforms[i].getInfo(CL_PLATFORM_NAME , &platformName); 

으로 잘 작동 ... 플랫폼은 다음과 같이 설정됩니다

cl::vector <cl::Platform> platforms; 
cl::Platform::get(&platforms); 
+0

아마도 저자가 너무 열광적 인 ...;) – Pragmateek

답변

1

을 내 자신의 일반 C를 들어 코드 프로젝트, 불필요한 typecasts를 피하십시오. 가끔 불필요한 타입 캐스트가 코드를 이해하는 데 도움이되는 경우도 있습니다. 복잡하게 만드는 요인은 C 프로그래머에게는 C++ 자체가 불필요한 형 변환 (void 포인터를 비 void 포인터에 할당 할 때)이 필요하다는 것입니다. C 및 C++ 코딩을 수행하는 일부 프로그래머는이 C/C++ 차이점을 잊어 버리고 결국 C 코드에서 불필요한 형식 캐스트를 처리하게됩니다. 불필요한 형 변환의 또 다른 원인은 지나치게 "유용한"컴파일러 경고 설정입니다 : http://notabs.org/coding/warningLevel4.htm. 필자가 생각하기에, 적어도 C 코드의 타입 캐스트는 코드가 비정상적이거나 비표준 적이거나 빠르거나 더러운 것을 독자에게 경고하는 붉은 깃발이다. 귀하의 예제에서, 나는 모든 컴파일러가 그것을 요구하더라도 타입 캐스트에 대해 논쟁 할 것이다. 모든 컴파일러에서 유형 변환이 필요한 경우 CL_PLATFORM_NAME의 정의에 포함되어야합니다. 내 생각에이 책의 저자는 C++ 컴파일러와 경고 수준을 사용하여 형식을 사용하도록 강요했습니다. 불필요한 타입 캐스트를 피하는 것이 좋습니다.

관련 문제