以下代码使用带有 C++17 集的 gcc 7.1.0 编译,但不能使用 C++14 集(或 Visual Studio 2017)编译。在Wandbox上很容易复制。
必须做些什么才能使其与 C++11/14 一起使用?
#include <iostream>
#include <chrono>
int main()
{
struct Convert
{
operator std::chrono::milliseconds()
{
std::cout << "operator std::chrono::milliseconds" << std::endl;
return std::chrono::milliseconds(10);
}
operator int64_t ()
{
std::cout << "operator int64_t" << std::endl;
return 5;
}
};
Convert convert;
std::chrono::milliseconds m(convert);
std::cout << m.count() << std::endl;
int64_t i(convert);
std::cout << i << std::endl;
}