내 프로그램을 boost
사용없이 작동 시키려고하는데 유용한 패턴의 대안을 찾을 수 없습니다. 즉, 표준 라이브러리에 boost::optional
-likewise 패턴을 찾을 수 없습니다. boost::optional
(C++ 11 또는 다른 곳)에 대한 몇 가지 표준 대안이 있습니까?C++ 표준 라이브러리의 boost :: optional 대안
답변
짧은 답변 : 제
긴 대답은 : 부스트 사양에 따라 자신의 롤. 문서는 매우 포괄적이며 코드가 복잡하지는 않지만 여전히 평균 이상의 C++ 기술이 필요합니다.
이 답변을 업데이트하려면 : C++ 14는 불행히도 std::optional
과 함께 제공되지 않았습니다. 현재 제안 (개정 5)은 N3793이며 별도의 기술 사양으로 제공되거나 C++ 17의 일부가 될 것으로 예상됩니다.
현재 a proposal for C++14 (또는 C++ 17)이 있습니다. 그래서 대답은 (아마도) 아직 아닙니다.
분명히 C++ 14를 기술적으로 표기했습니다. 사양 (http://en.cppreference.com/w/cpp/utility/optional 참조) :( – Nova
C++위원회에서 '투표'하는 것이 실제로 '투표'를 의미하지 않습니까? –
pmr explained과 마찬가지로 현재로서는 불가능하며 C++ 17이 출시 될 때까지는 제공되지 않습니다.
그러나 github에서 single header library을 부스트 또는 표준 옵션의 대체 드롭으로 사용할 수 있어야합니다. 종속 관계가 없습니다 (C++ 11/C++ 14 가능 컴파일러 제외).
- 1. 부울로의 boost :: optional 변환
- 2. 상수 유형에 boost :: optional 사용 - C++
- 3. C 표준 라이브러리의 내부 작업
- 4. C 표준 라이브러리와 C POSIX 라이브러리의 차이점
- 5. C++ 표준 라이브러리의 헤더 위치는 어디입니까
- 6. 표준 C 라이브러리의 bsearch() 함수는 어떻게 구현됩니까?
- 7. C# : Optional method
- 8. boost :: optional <>은 지역 변수를 어떻게 처리합니까?
- 9. GNU C 라이브러리가 C 표준 라이브러리의 구현이라고하는 이유는 무엇입니까?
- 10. C# 4 Optional Null EventHandler
- 11. Java 표준 라이브러리의 부작용없는 메소드
- 12. 하스켈 표준 라이브러리의 인쇄 버전
- 13. 파이썬 표준 라이브러리의 악의적 코드
- 14. 표준 라이브러리가없는 C++ 스마트 포인터
- 15. 라이브러리의 공용 인터페이스에서 boost :: shared_ptr 사용
- 16. 지도의 대안
- 17. 표준 업로드 웹 컨트롤 대안
- 18. CONNECT BY에 대한 표준 대안?
- 19. C++ 부스트 라이브러리의 링크 오류
- 20. std :: fstream과 Boost Iostreams 라이브러리의 차이점
- 21. CMake를 사용하여 Boost 라이브러리의 정적 버전을 연결하십시오.
- 22. 모든 C 표준 라이브러리의 소스 코드는 어디에서 찾을 수 있습니까?
- 23. 표준 C++ 라이브러리의 대안은 무엇이며 명확한 구현으로 향상시킬 수 있습니까?
- 24. boost :: bind와 boost :: asio. boost :: bind가 작동하지 않습니다. 예제에서 복사했습니다.
- 25. Boost :: Function 및 Boost에 대한 대안 :: Bind
- 26. 표준 C++ 라이브러리
- 27. boost :: asio와 표준 C 소켓 인터페이스 사이의 협력
- 28. C++ 표준 라이브러리에서 boost :: variant에 해당하는 것은 무엇입니까?
- 29. Python 표준 라이브러리의 모듈을 로컬 디렉토리에 설치하는 표준 방법은 무엇입니까?
- 30. Optional Default Values
C++ 0x == C++ 11, 질문에서 제외되었습니다. :) – Xeo
'boost :: optional'에 비해 저렴하고 안전하지 않은 nullable 포인터를 사용할 수 있습니다. 또는 아마도'std :: unique_ptr', 여기서 값 0 (null_ptr, NULL)은 초기화되지 않은 선택적 타입으로 해석됩니다. 단점 외에, 좋은 것은 당신이 아무것도 구현할 필요가 없다는 것입니다; 그러나 추상화를 명심하십시오. 이것에 대한 단서는 부스트 매뉴얼 http://www.boost.org/doc/libs/1_53_0/libs/optional/doc/html/boost_optional/development.html#boost_optional.development.the_interface에 나와 있습니다. "결과적으로 경우에 따라 (선택 사항)을 T *로 바꿀 수는 있지만 항상 그런 것은 아닙니다. " –
alfC