제한없는 라이센스가있는 교차 플랫폼 C++ lighweight 구성 라이브러리를 찾고 있습니다. 섹션이있는 표준 속성 파일보다 더 복잡한 무언가가 필요하지만 XML을 사용하고 싶지는 않습니다.C++ 경량 구성 라이브러리
나는 구성이 방법을 쓰고 싶습니다
는render =
{
window =
{
width = 800,
height = 600
}
}
제한없는 라이센스가있는 교차 플랫폼 C++ lighweight 구성 라이브러리를 찾고 있습니다. 섹션이있는 표준 속성 파일보다 더 복잡한 무언가가 필요하지만 XML을 사용하고 싶지는 않습니다.C++ 경량 구성 라이브러리
나는 구성이 방법을 쓰고 싶습니다
는render =
{
window =
{
width = 800,
height = 600
}
}
부스트의 property_tree있다. license은 상업적으로 사용할 수 있습니다.
귀하의 예 :
ptree pt;
pt.put("render.window.width", 800);
pt.put("render.window.height", 600);
이 예를 들어, 수 JSON
write_json("my_config.json", pt);
로 내보낼 수 다음
{
"render":
{
"window":
{
"width": 800;
"height": 600;
}
}
}
처럼 당신이 XML, INI 및 정보에 내보낼 수 있습니다 같은 방법으로 보일 것이다.
내 경험에 따르면 Boost는 경량 라이브러리와는 거리가 멀지 만 유망 해 보이기 때문에 살펴볼 것입니다. – runnydead
@hubrobin : IIRC를 만들기 위해 전체 Boost 라이브러리가 필요하지 않습니다. Boost에는 개별 라이브러리를 추출하기 위해 특별히 설계된 [bcp] (http://www.boost.org/doc/libs/release/tools/bcp/doc/html/index.html)라는 도구가 있습니다. –
또한 JsonCpp을 시도하고 당신이 좋아하는 것과 매우 유사한 구문은 Json
에 구성 파일을 작성할 수 있습니다
// Configuration options
{
// Default encoding for text
"encoding" : "UTF-8",
// Plug-ins loaded at start-up
"plug-ins" : [
"python",
"c++",
"ruby"
],
// Tab indent size
"indent" : { "length" : 3, "use_space": true }
}
가 MIT License
아래 그래서 아주 관대의합니다.
[libconfig] (http://www.hyperrealm.com/libconfig/)를 발견했습니다. 괜찮아 보이지만 오류보고를 위해 예외를 사용합니다 ... – runnydead
또한 libconfig가 꽤 좋다고 생각합니다. 내가 C++ API를 가지고있는 몇 가지 이슈가 있으며 Java (C/C++ 응용 프로그램 만 구성 파일을 읽을 수 있음을 의미) 구현이 아닌 것 같습니다.하지만 지금은 아직 내 go-to config 라이브러리입니다. . –