C++11 error: ‘sleep_for’ is not a member of ‘std::this_thread’

來源:互聯網
上載者:User

背景:為了學習c++11的多線程和lamda運算式的特性,升級了gcc(從4.4.6到4.7.1),寫完thread程式編譯時間卻發現還是遇到了一些問題。

原因:GCC沒有定義這個宏:_GLIBCXX_USE_NANOSLEEP

解決辦法:編譯時間加上選項:-D_GLIBCXX_USE_NANOSLEEP

或者:修改gcc的c++config.h檔案去定義這個宏
再或者:重新安裝gcc且使用選項:--enable-libstdcxx-time

詳情
(1)std::this_thread::sleep_for() and GCC
(2)來自Jonathan Wakely(a maintainer of the GNU C++ Standard Library (libstdc++) )的回答:
      What is _GLIBCXX_USE_NANOSLEEP all about?   

see also:C++11 'yield' is not
a member of 'std::this_thread'

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.