Trip report Fall ISO C++ standards meeting(Albuquerque) Sutter’s Mill

Trip report: Fall ISO C++ standards meeting (Albuquerque) | Sutter’s Mill
을 번역한 일본 문서를 일부 번역한 것이다.

  • range-based for 에 초기화자를 쓸 수 있도록 되었다.
    for( auto result = f(); auto&& value : result ) ;
    


  • 에 bit_casting이 추가 되었다 ``` short from = 42 ; auto to = bit_cast<std::uint16_t>(from) ; ```


  • operator <=> 가 추가 되었다. operator <=>는 2개의 오퍼랜드의 대소 비교와 등호 비교를 한번에 할 수 있는 연산자이다.
    이 연산자를 정의해 두면 나머지 비교 연산자는 컴파일러가 자동으로 생성해 준다.
    타입 시스템에 의해 strong order, weak order, partial order 어느쪽에 대응하고 있는지도 전환된다.


  • atomic<shared_ptr> 가 추가 되었다. shared_ptr을 atomic 하게 조작할 수 있다.


  • [[nodiscard]]가 일부 표준 라이브러리에서 사용할 수 있게 되었다


  • 동기(lock) 버퍼가 있는 ostream 랩퍼 라이브러리 osyncstream가 추가
    // 복수의 스레드에서 동시에 실행되는 함수
    void f()
    {
      std::osyncstream out( std::cout ) ;
      out << "hello, world!\n" ; 
    }
    

    스레드 세이프한 ostream 랩퍼로 사용할 수 있다.


  • 의 일부를 constexpr 대응


  • 를 constexpr 대응


  • atomic


  • string와 string_view에 start_with/end_with 추가


  • 현재 책정 중의 constexpr 대응 new, vector, string은 이후 몇 차례 회의에서 드래프트에 들어갈 전망이라고 할 정도로 본격 논의되고 있다

이 글은 2017-12-01에 작성되었습니다.