다른 유형의 여러 값을 보유하고있는 string values = "hello 2 88.9 true"
과 같은 문자열이 있다고 가정 해 보겠습니다. 적절한 타입 (여기에는 문자열, int, float 및 bool)으로 선언 된 여러 변수가 있습니다.구문 분석 형식 이름
field0 = getValue(0,values);
field1 = getValue(1,values);
... etc
그래서 내가 원하는 것은 누구의 반환 유형 해당 필드의 유형과 일치하는 getValue
입니다 : 내가 기본적으로하고 싶은 것은 이것이다. 이것은 단순한 템플릿으로 가능합니까? 템플릿 함수의 매개 변수에 템플릿 유형을 지정하지 않고 사용할 반환 유형을 지정할 수없는 것 같습니다. 함수 자체의 몸체는 아마도 boost의 lexical_cast와 stringstream을 사용할 것입니다.하지만 더 나은 솔루션을 가지고 있다면, 저는 그것도 잘 알고 있습니다!
내가 설명을 대단히 감사하겠습니다 그래서 템플릿에 새로운 해요 ...
이 끈적 거리는을 보이는 : 나는 그것을 원유 -하지만 효율적인 방법을 할 수 d, 고마워! stringstream에 의해 처리되지 않는 bool과 같은 다른 유형이 있습니까? 'values' 문자열은 실제로 TCP 포트에서 들어오는 것입니다. 런타임 전에 무엇을 수신하는지 알 필요가 없습니다. 하지만 나는 분명히 불쾌한 놀라움을 가지기를 원치 않으므로 코드를 가능한 한 일반적인 것으로 만들고 싶습니다. – wrousseau
입력이 "1 2.3 true"인 경우 첫 번째 문자열 필드가없는 경우 변수 a, b, c 및 d는 각각 1, 2, 0.3, true가됩니다. 그러나 입력이 잘못 되었기 때문에 그것을 해석 할 올바른 방법이 없습니다. –