오늘은 oglplus이라는 OpenGL 래퍼를 시험해보고 싶었습니다. 라이브러리를 사용할 수 있지만 IDE에서 나에게 오류 메시지 톤을 던지고 있습니다. QtCreator 및 EclipseCDT를 사용하여 시험해 보았습니다.IDE에서 구문 분석 할 수없는 코드를 작성할 수 있습니까?
기본적으로 IDE는 다양한 클래스의 멤버/메소드를 볼 수 없습니다. 그래서 나는 파기를했다. 예를 들어 클래스 FragmentShader
에는 소스와 컴파일이라는 두 가지 방법이 있습니다.
Eclipse와 QtCreator가 다음 소스 코드를 보여줍니다.
#if OGLPLUS_DOCUMENTATION_ONLY
/// Fragment shader wrapper
/**
* @see Shader
* @see Program
* @ingroup objects
*/
class FragmentShader
: public Shader
{ };
#elif GL_FRAGMENT_SHADER
typedef Specialized<
Shader,
OGLPLUS_CONST_ENUM_VALUE(ShaderType::Fragment),
SpecializedShaderInitializer
> FragmentShader;
#endif
아마도 모든 셰이더는 정확히 같고 이름이 다를 수 있습니다.
class Shader
: public ShaderOps
{
public:
Shader(ShaderType type);
Shader(ShaderType type, String description);
};
ShaderOps가 중요한 클래스 인 것으로 보입니다.
는 또한 ShaderOps의 방법 '소스'(이 대중 블록에)
const ShaderOps& Source(
const GLchar** srcs,
const GLint* lens,
int count
) const
{
assert(_name != 0);
OGLPLUS_GLFUNC(ShaderSource)(_name, count, srcs, lens);
return *this;
}
가 더 IDE 이러한 방법을 볼 수없는 이유 어떤 생각을 가지고 있습니까 발견? 소스 코드에 이상한 것이 있습니까?
IDE가 구문 분석하는 데 너무 다른 코드를 작성하는 것이 가능합니까?
Ps : eclipse cdt 및 Qtcreator를 사용하여 테스트했을뿐입니다.
IDE를 구문 분석하지 않습니다 관련된 클래스/메소드를 표시하지 않습니다
#if OGLPLUS_DOCUMENTATION_ONLY
. – deepmax
그래서 클래스에 어떤 메소드/멤버가 있는지 IDE에게 알리는 것은 컴파일러의 일입니다. –
예, 실제로는 IDE가 컴파일러 등을 사용하여 코드를 구문 분석합니다. 그러나, 아마 일부 희귀 한 IDE가 스스로 그것을 할 것입니다. – deepmax