2012-07-24 2 views
2

그래서 나는 공백 플래그를 트리밍 '꽤 인쇄'여기 참조 발견 boost::property_tree XML pretty printing재산권 트리 1.50

내가 :: Property_Tree에게 1.50의 read_xml을 부스트에 대한 문서를 발견() 함수는 다음과 같습니다. http://www.boost.org/doc/libs/1_50_0/doc/html/boost/property_tree/xml_parser/read_xml_id1073248.html

하지만 저는 읽고 쓸 때 주석을 무시하고 공백을 제거하는 방법을 설명하고 XML을 작성하는 방법을 찾아 낼 수는 없습니다. 어떤 도움을 주시면 감사하겠습니다.

제 주요 문제는 기능 프로토 타입에 있다고 생각합니다. 함수 원형이 요청하는 것처럼, 사용 된 플래그가 int로 어떻게 변환됩니까?

답변

2

비트 OR (세로 막대 문자 |)과 함께 플래그를 연결해야합니다. 단일 인수를 사용하여 여러 플래그를 지정하는 것이 일반적인 방법입니다. 예 :

#include <boost/property_tree/ptree.hpp> 
#include <boost/property_tree/xml_parser.hpp> 

int main(int argc, char* argv[]) 
{ 
    ptree pt; 
    using namespace boost::property_tree::xml_parser; // just to keep the flags nice and short 

    read_xml("file.xml", pt, trim_whitespace | no_comments); 
    return 0; 
}  

두 번째 질문에 대해서는 플래그가 int로 선언됩니다. 비트 또는를 할 때 int를 나타내는 비트가 결합되어 고유 한 값을 갖는 새로운 int를 만듭니다. 예를 들어 숫자 2는 비트 (이진수) 표현 00000010을 가지며 숫자 4는 비트 표현 00000100을 갖습니다 (정수를 나타내는 데 8 비트를 사용한다고 가정). 비트 또는 연산은 각 비트를 비교하고, 둘 중 하나가 1이거나 둘 다 1이면 결과는 1입니다. 그렇지 않으면 0입니다. 우리의 경우 :

00000010 
| 00000100 
---------- 
    00000110 

이것은 6 비트 표기법입니다.