var val;
var val2;
var val3;
val.loadFromFile("test.json");
val2 = val["obj1"][3];
val2["key1"] = "345";
int n = val2["key1"].getInteger();
val["obj1"][3]["key1"] = 123;
std::cout << val["obj1"][3]["key1"] << std::endl;
std::cout << val2["key1"] << std::endl;
Object는 LinkedHashMap 기반(입력순서유지 가능)
Array는 vector 기반
javascript의 구현과 마찬가지로 Object 및 Array는 대해서는 기본적으로 pass-by-reference로 동작
따라서 위의 코드는 Object를 복제한것이 아니고 참조한 것이므로 동일하게 123이 출력됨
Object및 Array가 아닌것들에 대해서는 기본적으로 pass-by-value로 동작(복제)
참조 카운트 기법을 사용했으므로 참조 카운트가 0이 될 시 자동 소멸
클론 동작이 필요할 경우는 new Object(objval) 식으로 복제
배열접근에서 정수 접근시 기본적으로 Array로 동작하지만 var가 Object일 경우는 해쉬키 접근으로 바꿔버림
반대의 경우도 고려하여 유연하게 동작.
하나 만들어두면 개꿀.
형 변환없이 된다고?
ㄴ 공부더하고 오거라
우와..저게 되?
대박인데..생각좀 해봐야겠당.
되니까 올렸지 안되는걸 올렸겠냥~
명시적으로 안해줘도됨
꼬마야//되->돼
연산자 생각은 했는데.. 설마 귀찮게 그렇게까지 했으리라고는.. ㅠㅠ
auto 있잖아. auto랑 var랑 다른게 뭐야
var같은거 가독성 떨어져서 극혐이라 안씀 너많이 써 근데 된다니 신기하네
다시 생각해보니 쓸모가 많을거같다. 나도 만들어봐야겠다.분명 쓰일데가 있을듯
boost::any 참고하렴
그러니까 auto가 있는데 왜 굳이 var같은 클래스 만드는 헛수고를 하냐는 거지. auto랑 똑같을 건데
c#의 var 인줄 알았는데 자세히 글 읽어보니까 많이 다른 듯 하네 ㅋ
캐스팅은 잘못생각함. 삼촌말이 맞음.
와..흉들 캐쩜..난 나이가 드니까 만사 귀찮음. 혹시나 관심 있는 흉들은
http://www.slideshare.net/aleks-f/dynamic-caccu2013
읽어봐 좋은 내용 많다. 난 개인적으로 Poco::Dynamic::Var나 Struct를 써왔다..근데 어차피 속도때문에 C++ 쓰는 경우가 많을텐데..이렇게 쓰는게 좀 그렇지 않음?
위에 속도 뿐만 아니라 코드 사이즈도 포함..
뭐 만사귀찮은 흉들에게는 Poco::Dynamic::Struct 적극 추천한다..
코세말대로 캐스팅 필요하네.. 귀찮다 ㅋㅋㅋㅋ
닉네임뒤에 . 붙은게 코세 세컨계정들 아니냐?
닉이 길면 .으로 생략인데열
전에 왜 아이디 여러개 돌려쓰냐 물어봤더니 뭐라뭐라 하길래 그냥 저사람은 그런갑다 했는데
헐 진짜? ㅋㅋㅋ 오해해부럿구만