GCC 6.1 (C++17) doesn't compile std::atomic<std::chrono::system_clock::time_point> with default ctor
2016-11-10 11:46
549 查看
#include <iostream> #include <atomic> #include <chrono> int main() { std::atomic<std::chrono::system_clock::time_point> at; // won't compile in GCC 6.1 (C++17) std::cout << std::boolalpha << "is lock free? " << std::atomic_is_lock_free(&at) << '\n'; std::cin.get(); }
GCC 6.1 (C++17) doesn't compile std::atomic<std::chrono::system_clock::time_point> with default constructor.
Compiler messages:
main.cpp: In function 'int main()':
main.cpp:6:53: error: use of deleted function 'std::atomic<_Tp>::atomic() [with _Tp = std::chrono::time_point<std::chrono::_V2::system_clock, std::chrono::duration<long int, std::ratio<1l, 1000000000l> > >]'
std::atomic<std::chrono::system_clock::time_point> at;
^~
In file included from main.cpp:2:0:
/usr/local/include/c++/6.1.0/atomic:185:7: note: 'std::atomic<_Tp>::atomic() noexcept [with _Tp = std::chrono::time_point<std::chrono::_V2::system_clock, std::chrono::duration<long int, std::ratio<1l, 1000000000l> > >]' is implicitly deleted because its exception-specification does not match the implicit exception-specification ''
atomic() noexcept = default;
^~~~~~
However, clang 3.8 (C++ 14) and visual c++ 2013 compiler do.
The code below will help you get through:
#include <iostream> #include <atomic> #include <chrono> int main() { std::atomic<std::chrono::system_clock::time_point> at(std::chrono::system_clock::now()); std::cout << std::boolalpha << "is lock free? " << std::atomic_is_lock_free(&at) << '\n'; std::cin.get(); }
tag: atomic<time_point>
相关文章推荐
- 《C++ Concurrency in Action》笔记23 std::atomic<bool>
- 《C++ Concurrency in Action》笔记24 std::atomic<T*>、std::atomic<整型>
- c++日期和时间相关操作-<time.h>(ctime)
- Storyboard (<UIStoryboard: 0x15e989a0>) doesn't contain a view controller with identifier "***C"
- 推荐一篇文章<<Time, Clocks, and the Ordering of Events in a Distributed System>>
- C++ <chrono> 时间库
- 实战c++中的string系列--std:vector<char> 和std:string相互转换(vector to stringstream)
- 实战c++中的string系列--std:vector<char> 和std:string相互转换(vector to stringstream)
- c++日期和时间相关操作-<time.h>(ctime)
- C++11 并发指南六( <atomic> 类型详解二 std::atomic )
- C++11 并发指南六( <atomic> 类型详解二 std::atomic )
- 打印数字金字塔 <Introduction to Programming with C++ comprehensive Version :Page_89>
- How to compile C++ with GCC
- struts的<package name="login" namespace="/system" extends="struts-default">是什么意思?
- [C++] Build Shared libraries with GCC on Linux ---gcc is actually for compile C
- C++关于std namespace与# include<iostream>关系的有关问题
- 第九周C++报告二。定义Time类中的<<和>>运算符重载,实现时间的输入输出
- C#中Dictionary<TKey,TValue>和C++std::map<TK,TV>的对比
- 14-9-11 C/C++课程设计--图书馆管理系---<time.h>中时间数据类型的学习记录
- C++学习:关于“std::vector<Type>::iterator”的一个错误