내가 이렇게 보이는 클래스가 이런 종류의 일을 처리 할 수 있습니다.스토어 값 및 클래스의 특정 범위의 값은
- 저장 세트 유형의 양, 완전히 유형을
- 을 만드는 방법으로 개체를 저장해야 (내가 캐스팅 할 수있는 무언가가 충분) 유지 :
Physical_component는 수에 있어야한다 그들로부터 전달 된 것들로부터 개인 (따라서 orignial 클래스의 변화로부터 안전하다)
나는 열거 형과 함께 c를 excisting하지만 나는 그 이름을 모른다. 또한 C++에는 아마도 더 좋은 방법이있을 것입니다.
Storage_component이 가정된다 :
- 스토어 모든 종류의
- (옵션) 내가 제대로 이것을 달성하는 방법을 몰라 원래 유형
을 기억한다. 나는 std :: any를 보았다. 그러나 그것은 오히려 새로운 것처럼 보인다. 그러므로 나는 이것에 대해 갈 좋은 방법인지 모른다. 또한 나는 벡터에 저장할 수 없기 때문에 storage_component를 템플릿으로 만들 수 없다.
이러한 클래스를 구현하는 적절한 방법은 무엇입니까?
컴파일러와 라이브러리가 C++ 17 ([std :: any'] (http://en.cppreference.com/w/cpp/utility/any)가 도입 된 최신 버전이 아닌 경우) 그런 다음 [Boost any] (http://www.boost.org/doc/libs/1_65_1/doc/html/any.html)? 또는 아마도 ['std :: variant'] (http://en.cppreference.com/w/cpp/utility/variant) (또는 그 [Boost equivalent] (http://www.boost.org/doc/libs) /1_65_1/doc/html/variant.html)). 또는 요구 사항 분석을 확인하고 디자인에 그런 유형 삭제가 필요하지 않은지 확인하십시오. 아마도 그것은 다른 방법으로 해결 될 수 있습니까? –
@Someprogrammerdude 사람들이 왜 boost :: btw를 사용합니까? 나는 그것을 어디에서나 볼 수 있습니까? 그것은 단지 모든 std :: functions을 포함하고 있기 때문인가요, 실제로는 더 좋고/빠릅니까? 여기서 무슨 일이 일어나고있는거야? 네, 감사합니다. 표준의 외부 리소스를 발견 : : 잘 작동하는 것 같습니다.나 do not가 아프다고 생각한다. – MoustacheSpy
현재 표준 라이브러리에있는 기능 중 일부 또는 표준 라이브러리의 향후 버전에서 제공 될 기능 중 일부는 Boost 라이브러리에서 시작되었다. 예를 들어 부스트. 'std :: any'를 위해 충분히 새로운 컴파일러를 가지고 있지 않다면, Boost any가 적당한 대체물이다. [Boost] (http://www.boost.org/)는 단일 라이브러리가 아니며 많은 라이브러리의 * 콜렉션 *입니다. 어떤 것은 표준 라이브러리 (또는 다른 방법으로)에서 동작을 복제하지만, 많은 * * * 더 많은 것을 가지고 있습니다. –