루비와 파이썬에서 메타 프로그래밍의 장점을 보았지만 실제 작업을 위해서는 C++과 C과 같은 저급 언어에 묶여 있었기 때문에 두 가지를 결합하는 매너를 생각하고 있습니다. . 하나의 인스턴스는 임의의 구조/클래스의리스트를 정렬하기위한 간단한 문제로 온다. 예를 들어,커스텀 C++ 전 처리기/타입 넘치는 매크로
struct s{
int a;
int b;
};
vector<s> vec;
for(int x=0;x<10;x++){
s inst;
inst.a = x;
inst.b = x+10;
vec.push_back(inst);
}
궁극적으로 최소한의 상용구 코드로 임의로 정렬 할 수 있기를 바랍니다.
sort(vec.begin(),vec.end());
아직이 "구조체의"의 비교할 수있는 방법을 쓰는 저를 요구한다 : 나는이 일을 볼 수있는 가장 쉬운 방법은 STL의 종류를 사용하는 것입니다. 내가하고 싶은 것은 :
sort(vec,a ASC,b DESC);
매우 명확하게 C++가 유효하지 않습니다.
내 꿈을 이루는 가장 좋은 방법은 무엇입니까? 형식 매크로를 사용하면 벡터 요소의 유형이 무엇인지 알 수 있습니다. 전 처리기 매크로를 사용하여 정렬 작업을 수행하는 데 필요한 함수를 작성하는 것이 쉽습니다.
다른 대안은 내 자신의 전처리기를 쓰는 것 같습니다. 이것은 "vec"의 유형을 다시 추론해야만하는 지점까지 잘 작동합니다. 이 작업을 수행하는 쉬운 방법이 있습니까?
컨텍스트 : 적은 코드 = 적은 경쟁, 프로그래밍 경쟁.
화려한, 나는 누군가가 이것을 템플릿으로해야만한다는 것을 알았다. 감사! –