다음 코드를 고려하십시오.임의의 수의 임의의 값을 단일 문자열로 결합하는 간단한 명령
int id = 666;
stringstream stream(stringstream::in | stringstream::out);
stream << "Object " << id << " active.";
file.write(stream.str());
그것은 아주 잘 문자열 < < 앞에 모든 값을 결합합니다. 나는 더 적은 코드 중복으로 더 짧고 사용하기 쉬운 버전을 찾고 싶다. 또한 위의 코드는 예제 일 뿐이며 명령은 변수와 문자열의 임의 조합을 허용해야합니다. 이상적으로 같은 :
int id = 666;
WRITE("Object ", id, " active.");
도 Boost.Preprocessor, 인라인 기능과 트릭의 모든 가방, C++ 이식 가능한 방법에서 이 가능하다. 템플릿 기능,
//filewrite.h
#define WRITE(first, second, third) \
{\
stringstream stream(stringstream::in | stringstream::out);\
stream << first << second << third;\
file.write(stream.str());\
}
또는 청소기 :
을 나는 당신이 서 당신이 방금'WRITE'라는 함수에 원래의 코드를 포장 할 수 있어야하기 때문에, 구체적 필요가 있다고 생각. –
'write'개념을'print' 개념과''''개념으로 만들 수 있습니까? – MartyE
그러면 임의의 수의 다른 유형 값을 파일에 넣기 만하면됩니까? 가변성 템플릿을 사용해 볼 수 있습니다. – Nobody