AVR CPU 용 클래스를 개발 중입니다.컴파일 타임에 클래스 인스턴스가 하나만 있는지 확인
클래스는 Set, Read 등과 같은 모든 포트 관련 작업을 처리합니다. 생성자는 다음과 같습니다
(...)
public:
Port(volatile uint8_t * DDR, volatile uint8_t * PORT);
(...)
그리고는 main()
의 시작 부분에 구성된다 :
int main()
{
Port PortA(&DDRA, &PORTA);
(...)
}
가 지금은 어디에서도 동일한 매개 변수를 사용하여 프로그램 객체가 구축 될 수 있는지 확인하려면. 그것을 발견하고 예외를 throw 배열 또는 맵을 만들 수 없다는 것이 확실합니다. 컴파일 할 때 수행해야합니다. 그래서 근본적으로 저는 현재의 프로젝트에서 다른 포트 (동일한 첫 번째 매개 변수 또는 두 번째 매개 변수)가 존재하는지 확인하기 위해 avr-g ++을 강제 실행하려고합니다.
모든 함수는 Port 개체에 대한 포인터/참조를 사용합니다.
[싱글 톤 패턴] (http : //en.wikipedia.org/wiki/Singleton_pattern). –
atmega에서 'new'및 'delete'를 사용하는 것이 가장 좋은 생각이 아닙니다. – peku33
@ peku33 배치를 새로 사용하거나 정적 변수를 사용할 수 있습니다. – Anycorn