-1
BlockType
및 BlockInstance
의 두 클래스가 있습니다. BlockInstance
은 BlockType &
을 템플릿 매개 변수로 사용합니다. 나는 C++에 완전히 익숙하지 않고 BlockInstance
타입을 반환하는 함수를 정의 할 때 BlockType
안에 템플릿 매개 변수로 전달할 수없는 이유를 알고 싶습니다.C++ 'this'를 비 유형 템플릿 매개 변수로 사용할 수 없음
코드 :
class BlockType;
template <BlockType & blockType>
class BlockInstance;
class BlockType{
public:
virtual BlockInstance<this> & createInstance(block_pos pos) = 0;
virtual void render(BlockInstance<this> & blockInstance) = 0;
};
template <BlockType & blockType>
class BlockInstance{
public:
block_pos && pos;
BlockInstance(block_pos & pos);
virtual void onClientUpdate() = 0;
};
@ πάνταῥεῖ : 템플릿 매개 변수는 유형, 클래스 또는 기타 형식 일 필요는 없습니다. –
@ πάνταῥε that 그럴 경우'std :: integer_sequence'가 작동하지 않습니다. – NathanOliver
@ 경계선 글쎄, 완전히 정확한 문구가 아닐 수도 있습니다. –