개발 라이브러리 & 툴
boost asio address from_string 사용시 주의할 점
하늘흐늘
2021. 10. 25. 15:42
반응형
아래와 같은 코드와 결과를 확인해 보자
string ip = "169.254.0.0";
ip::address addr;
addr.from_string(ip);
cout << addr.to_string() << endl;
addr = addr.from_string(ip);
cout << addr.to_string() << endl;
addr = ip::address_v4::from_string(ip);
cout << addr.to_string() << endl;
결과는 아래와 같다.
0.0.0.0
169.254.0.0
169.254.0.0
그냥 쉽게 생각하기에 addr.from_string(ip)하면 addr에 ip주소가 설정될 거 같은데 그렇지 않다.
이유는 우선 해당 함수의 정의가 다음과 같기 때문이다.
static address from_string(const char* str);
위에서 보듯 static 함수인 관계로 addr 객체에 주소를 설정하는 함수가 아니다. 그리고 함수 정의에서 보듯 address를 리턴하는 함수이다. 그러므로 address 객체의 ip를 string에서 부터 설정하기 위해서는 예제와 같이 from_string 함수의 리턴 값으로 설정해야 한다.
반응형