Redmine: Issueshttp://redmine.emweb.be/http://redmine.emweb.be/favicon.ico?16934085252024-03-26T14:26:57ZRedmine
Redmine Wt - Bug #12547 (New): Compile failure on Mac OS X with 14.4 SDKhttp://redmine.emweb.be/issues/125472024-03-26T14:26:57ZRakesh Vidyadharanrakesh@sptci.com
<p>Hello,</p>
<p>I ran into issues trying to install 4.10.4 on Mac OS X Sonoma 14.4.1. I had successfully built 4.10.3 a few month ago, but I suspect there has been some Clang updates since then. I tried to rebuild 4.10.3, which also fails now. Mostly errors seem to be around the date classes in Wt.</p>
<pre><code>In file included from /tmp/wt/src/Wt/WLocalDateTime.C:17:
In file included from /tmp/wt/src/Wt/cpp20/tz.hpp:24:
In file included from /tmp/wt/src/Wt/Date/tz.h:33:
/tmp/wt/src/Wt/Date/include/date/tz.h:235:8: error: use of overloaded operator '<<' is ambiguous (with operand types 'basic_ostream<char, char_traits<char>>' and 'const sys_seconds' (aka 'const time_point<std::chrono::system_clock, std::chrono::duration<long long, std::ratio<1, 1>>>'))
<< i.first.end << " UTC";
^ ~~~~~~~~~~~
/tmp/wt/src/Wt/Date/include/date/tz.h:219:26: note: in instantiation of function template specialization 'date::nonexistent_local_time::make_msg<std::chrono::duration<long long, std::ratio<1, 1000000>>>' requested here
: std::runtime_error(make_msg(tp, i))
^
/tmp/wt/src/Wt/Date/include/date/tz.h:955:15: note: in instantiation of function template specialization 'date::nonexistent_local_time::nonexistent_local_time<std::chrono::duration<long long, std::ratio<1, 1000000>>>' requested here
throw nonexistent_local_time(tp, i);
^
/tmp/wt/src/Wt/Date/include/date/tz.h:903:12: note: in instantiation of function template specialization 'date::time_zone::to_sys_impl<std::chrono::duration<long long, std::ratio<1, 1000000>>>' requested here
return to_sys_impl(tp, choose{}, std::true_type{});
^
/tmp/wt/src/Wt/WLocalDateTime.C:156:30: note: in instantiation of function template specialization 'date::time_zone::to_sys<std::chrono::duration<long long, std::ratio<1, 1000000>>>' requested here
datetime_ = zone_->to_sys(asLocalTime(WDateTime(date, time).toTimePoint()));
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/__chrono/ostream.h:46:1: note: candidate function [with _CharT = char, _Traits = std::char_traits<char>, _Duration = std::chrono::duration<long long>]
operator<<(basic_ostream<_CharT, _Traits>& __os, const sys_time<_Duration> __tp) {
^
/tmp/wt/src/Wt/Date/include/date/date.h:4212:1: note: candidate function [with CharT = char, Traits = std::char_traits<char>, Duration = std::chrono::duration<long long>]
operator<<(std::basic_ostream<CharT, Traits>& os, const sys_time<Duration>& tp)
^
/tmp/wt/src/Wt/Date/include/date/date.h:4231:16: error: use of overloaded operator '<<' is ambiguous (with operand types 'std::basic_ostream<char, char_traits<char>>' and 'sys_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<std::chrono::system_clock, std::chrono::duration<long long, std::ratio<1, 1000000>>>'))
return (os << sys_time<Duration>{ut.time_since_epoch()});
~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/wt/src/Wt/Date/include/date/tz.h:229:8: note: in instantiation of function template specialization 'date::operator<<<char, std::char_traits<char>, std::chrono::duration<long long, std::ratio<1, 1000000>>>' requested here
os << tp << " is in a gap between\n"
^
/tmp/wt/src/Wt/Date/include/date/tz.h:219:26: note: in instantiation of function template specialization 'date::nonexistent_local_time::make_msg<std::chrono::duration<long long, std::ratio<1, 1000000>>>' requested here
: std::runtime_error(make_msg(tp, i))
^
/tmp/wt/src/Wt/Date/include/date/tz.h:955:15: note: in instantiation of function template specialization 'date::nonexistent_local_time::nonexistent_local_time<std::chrono::duration<long long, std::ratio<1, 1000000>>>' requested here
throw nonexistent_local_time(tp, i);
^
/tmp/wt/src/Wt/Date/include/date/tz.h:903:12: note: in instantiation of function template specialization 'date::time_zone::to_sys_impl<std::chrono::duration<long long, std::ratio<1, 1000000>>>' requested here
return to_sys_impl(tp, choose{}, std::true_type{});
^
/tmp/wt/src/Wt/WLocalDateTime.C:156:30: note: in instantiation of function template specialization 'date::time_zone::to_sys<std::chrono::duration<long long, std::ratio<1, 1000000>>>' requested here
datetime_ = zone_->to_sys(asLocalTime(WDateTime(date, time).toTimePoint()));
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/__chrono/ostream.h:46:1: note: candidate function [with _CharT = char, _Traits = std::char_traits<char>, _Duration = std::chrono::duration<long long, std::ratio<1, 1000000>>]
operator<<(basic_ostream<_CharT, _Traits>& __os, const sys_time<_Duration> __tp) {
^
/tmp/wt/src/Wt/Date/include/date/date.h:4212:1: note: candidate function [with CharT = char, Traits = std::char_traits<char>, Duration = std::chrono::duration<long long, std::ratio<1, 1000000>>]
operator<<(std::basic_ostream<CharT, Traits>& os, const sys_time<Duration>& tp)
^
/tmp/wt/src/Wt/Date/include/date/date.h:4231:16: error: use of overloaded operator '<<' is ambiguous (with operand types 'std::basic_ostream<char, char_traits<char>>' and 'sys_time<duration<long long, ratio<1, 1>>>' (aka 'time_point<std::chrono::system_clock, std::chrono::duration<long long, std::ratio<1, 1>>>'))
return (os << sys_time<Duration>{ut.time_since_epoch()});
~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/wt/src/Wt/Date/include/date/tz.h:230:8: note: in instantiation of function template specialization 'date::operator<<<char, std::char_traits<char>, std::chrono::duration<long long>>' requested here
<< local_seconds{i.first.end.time_since_epoch()} + i.first.offset << ' '
^
/tmp/wt/src/Wt/Date/include/date/tz.h:219:26: note: in instantiation of function template specialization 'date::nonexistent_local_time::make_msg<std::chrono::duration<long long, std::ratio<1, 1000000>>>' requested here
: std::runtime_error(make_msg(tp, i))
^
/tmp/wt/src/Wt/Date/include/date/tz.h:955:15: note: in instantiation of function template specialization 'date::nonexistent_local_time::nonexistent_local_time<std::chrono::duration<long long, std::ratio<1, 1000000>>>' requested here
throw nonexistent_local_time(tp, i);
^
/tmp/wt/src/Wt/Date/include/date/tz.h:903:12: note: in instantiation of function template specialization 'date::time_zone::to_sys_impl<std::chrono::duration<long long, std::ratio<1, 1000000>>>' requested here
return to_sys_impl(tp, choose{}, std::true_type{});
^
/tmp/wt/src/Wt/WLocalDateTime.C:156:30: note: in instantiation of function template specialization 'date::time_zone::to_sys<std::chrono::duration<long long, std::ratio<1, 1000000>>>' requested here
datetime_ = zone_->to_sys(asLocalTime(WDateTime(date, time).toTimePoint()));
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/__chrono/ostream.h:46:1: note: candidate function [with _CharT = char, _Traits = std::char_traits<char>, _Duration = std::chrono::duration<long long>]
operator<<(basic_ostream<_CharT, _Traits>& __os, const sys_time<_Duration> __tp) {
^
/tmp/wt/src/Wt/Date/include/date/date.h:4212:1: note: candidate function [with CharT = char, Traits = std::char_traits<char>, Duration = std::chrono::duration<long long>]
operator<<(std::basic_ostream<CharT, Traits>& os, const sys_time<Duration>& tp)
^
In file included from /tmp/wt/src/Wt/WLocalDateTime.C:17:
In file included from /tmp/wt/src/Wt/cpp20/tz.hpp:24:
In file included from /tmp/wt/src/Wt/Date/tz.h:33:
/tmp/wt/src/Wt/Date/include/date/tz.h:266:8: error: invalid operands to binary expression ('std::ostringstream' (aka 'basic_ostringstream<char>') and 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>'))
os << tp << " is ambiguous. It could be\n"
~~ ^ ~~
/tmp/wt/src/Wt/Date/include/date/tz.h:256:26: note: in instantiation of function template specialization 'date::ambiguous_local_time::make_msg<std::chrono::duration<long long, std::ratio<1, 1000000>>>' requested here
: std::runtime_error(make_msg(tp, i))
^
/tmp/wt/src/Wt/Date/include/date/tz.h:957:15: note: in instantiation of function template specialization 'date::ambiguous_local_time::ambiguous_local_time<std::chrono::duration<long long, std::ratio<1, 1000000>>>' requested here
throw ambiguous_local_time(tp, i);
^
/tmp/wt/src/Wt/Date/include/date/tz.h:903:12: note: in instantiation of function template specialization 'date::time_zone::to_sys_impl<std::chrono::duration<long long, std::ratio<1, 1000000>>>' requested here
return to_sys_impl(tp, choose{}, std::true_type{});
^
/tmp/wt/src/Wt/WLocalDateTime.C:156:30: note: in instantiation of function template specialization 'date::time_zone::to_sys<std::chrono::duration<long long, std::ratio<1, 1000000>>>' requested here
datetime_ = zone_->to_sys(asLocalTime(WDateTime(date, time).toTimePoint()));
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/cstddef:125:3: note: candidate function template not viable: no known conversion from 'std::ostringstream' (aka 'basic_ostringstream<char>') to 'byte' for 1st argument
operator<< (byte __lhs, _Integer __shift) noexcept
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/ostream:800:1: note: candidate function template not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'char' for 2nd argument
operator<<(basic_ostream<_CharT, _Traits>& __os, char __cn)
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/ostream:833:1: note: candidate function template not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'char' for 2nd argument
operator<<(basic_ostream<char, _Traits>& __os, char __c)
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/ostream:840:1: note: candidate function template not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'signed char' for 2nd argument
operator<<(basic_ostream<char, _Traits>& __os, signed char __c)
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/ostream:847:1: note: candidate function template not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'unsigned char' for 2nd argument
operator<<(basic_ostream<char, _Traits>& __os, unsigned char __c)
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/ostream:861:1: note: candidate function template not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'const char *' for 2nd argument
operator<<(basic_ostream<_CharT, _Traits>& __os, const char* __strn)
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/ostream:907:1: note: candidate function template not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'const char *' for 2nd argument
operator<<(basic_ostream<char, _Traits>& __os, const char* __str)
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/ostream:914:1: note: candidate function template not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'const signed char *' for 2nd argument
operator<<(basic_ostream<char, _Traits>& __os, const signed char* __str)
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/ostream:922:1: note: candidate function template not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'const unsigned char *' for 2nd argument
operator<<(basic_ostream<char, _Traits>& __os, const unsigned char* __str)
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/ostream:1107:1: note: candidate function template not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'const error_code' for 2nd argument
operator<<(basic_ostream<_CharT, _Traits>& __os, const error_code& __ec)
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/ostream:1145:31: note: candidate function template not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'wchar_t' for 2nd argument
basic_ostream<char, _Traits>& operator<<(basic_ostream<char, _Traits>&, wchar_t) = delete;
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/ostream:1148:31: note: candidate function template not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'const wchar_t *' for 2nd argument
basic_ostream<char, _Traits>& operator<<(basic_ostream<char, _Traits>&, const wchar_t*) = delete;
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/ostream:1166:31: note: candidate function template not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'char8_t' for 2nd argument
basic_ostream<char, _Traits>& operator<<(basic_ostream<char, _Traits>&, char8_t) = delete;
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/ostream:1172:31: note: candidate function template not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'const char8_t *' for 2nd argument
basic_ostream<char, _Traits>& operator<<(basic_ostream<char, _Traits>&, const char8_t*) = delete;
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/ostream:1179:31: note: candidate function template not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'char16_t' for 2nd argument
basic_ostream<char, _Traits>& operator<<(basic_ostream<char, _Traits>&, char16_t) = delete;
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/ostream:1182:31: note: candidate function template not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'char32_t' for 2nd argument
basic_ostream<char, _Traits>& operator<<(basic_ostream<char, _Traits>&, char32_t) = delete;
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/ostream:1185:31: note: candidate function template not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'const char16_t *' for 2nd argument
basic_ostream<char, _Traits>& operator<<(basic_ostream<char, _Traits>&, const char16_t*) = delete;
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/ostream:1188:31: note: candidate function template not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'const char32_t *' for 2nd argument
basic_ostream<char, _Traits>& operator<<(basic_ostream<char, _Traits>&, const char32_t*) = delete;
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/__chrono/ostream.h:128:55: note: candidate function template not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'const day' for 2nd argument
_LIBCPP_HIDE_FROM_ABI basic_ostream<_CharT, _Traits>& operator<<(basic_ostream<_CharT, _Traits>& __os, const day& __d) {
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/__chrono/ostream.h:141:1: note: candidate function template not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'const month' for 2nd argument
operator<<(basic_ostream<_CharT, _Traits>& __os, const month& __m) {
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/__chrono/ostream.h:150:1: note: candidate function template not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'const year' for 2nd argument
operator<<(basic_ostream<_CharT, _Traits>& __os, const year& __y) {
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/__chrono/ostream.h:157:1: note: candidate function template not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'const weekday' for 2nd argument
operator<<(basic_ostream<_CharT, _Traits>& __os, const weekday& __wd) {
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/__chrono/ostream.h:166:1: note: candidate function template not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'const weekday_indexed' for 2nd argument
operator<<(basic_ostream<_CharT, _Traits>& __os, const weekday_indexed& __wdi) {
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/__chrono/ostream.h:178:1: note: candidate function template not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'const weekday_last' for 2nd argument
operator<<(basic_ostream<_CharT, _Traits>& __os, const weekday_last& __wdl) {
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/__chrono/ostream.h:184:1: note: candidate function template not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'const month_day' for 2nd argument
operator<<(basic_ostream<_CharT, _Traits>& __os, const month_day& __md) {
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/__chrono/ostream.h:192:1: note: candidate function template not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'const month_day_last' for 2nd argument
operator<<(basic_ostream<_CharT, _Traits>& __os, const month_day_last& __mdl) {
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/__chrono/ostream.h:198:1: note: candidate function template not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'const month_weekday' for 2nd argument
operator<<(basic_ostream<_CharT, _Traits>& __os, const month_weekday& __mwd) {
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/__chrono/ostream.h:205:1: note: candidate function template not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'const month_weekday_last' for 2nd argument
operator<<(basic_ostream<_CharT, _Traits>& __os, const month_weekday_last& __mwdl) {
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/__chrono/ostream.h:212:1: note: candidate function template not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'const year_month' for 2nd argument
operator<<(basic_ostream<_CharT, _Traits>& __os, const year_month& __ym) {
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/__chrono/ostream.h:218:1: note: candidate function template not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'const year_month_day' for 2nd argument
operator<<(basic_ostream<_CharT, _Traits>& __os, const year_month_day& __ymd) {
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/__chrono/ostream.h:225:1: note: candidate function template not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'const year_month_day_last' for 2nd argument
operator<<(basic_ostream<_CharT, _Traits>& __os, const year_month_day_last& __ymdl) {
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/__chrono/ostream.h:232:1: note: candidate function template not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'const year_month_weekday' for 2nd argument
operator<<(basic_ostream<_CharT, _Traits>& __os, const year_month_weekday& __ymwd) {
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/__chrono/ostream.h:243:1: note: candidate function template not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'const year_month_weekday_last' for 2nd argument
operator<<(basic_ostream<_CharT, _Traits>& __os, const year_month_weekday_last& __ymwdl) {
^
/tmp/wt/src/Wt/Date/include/date/date.h:1529:1: note: candidate function template not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'const day' for 2nd argument
operator<<(std::basic_ostream<CharT, Traits>& os, const day& d)
^
/tmp/wt/src/Wt/Date/include/date/date.h:1671:1: note: candidate function template not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'const month' for 2nd argument
operator<<(std::basic_ostream<CharT, Traits>& os, const month& m)
^
/tmp/wt/src/Wt/Date/include/date/date.h:1810:1: note: candidate function template not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'const year' for 2nd argument
operator<<(std::basic_ostream<CharT, Traits>& os, const year& y)
^
/tmp/wt/src/Wt/Date/include/date/date.h:1960:1: note: candidate function template not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'const weekday' for 2nd argument
operator<<(std::basic_ostream<CharT, Traits>& os, const weekday& wd)
^
/tmp/wt/src/Wt/Date/include/date/date.h:2088:1: note: candidate function template not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'const weekday_indexed' for 2nd argument
operator<<(std::basic_ostream<CharT, Traits>& os, const weekday_indexed& wdi)
^
/tmp/wt/src/Wt/Date/include/date/date.h:2157:1: note: candidate function template not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'const weekday_last' for 2nd argument
operator<<(std::basic_ostream<CharT, Traits>& os, const weekday_last& wdl)
^
/tmp/wt/src/Wt/Date/include/date/date.h:2353:1: note: candidate function template not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'const year_month' for 2nd argument
operator<<(std::basic_ostream<CharT, Traits>& os, const year_month& ym)
^
/tmp/wt/src/Wt/Date/include/date/date.h:2454:1: note: candidate function template not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'const month_day' for 2nd argument
operator<<(std::basic_ostream<CharT, Traits>& os, const month_day& md)
^
/tmp/wt/src/Wt/Date/include/date/date.h:2531:1: note: candidate function template not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'const month_day_last' for 2nd argument
operator<<(std::basic_ostream<CharT, Traits>& os, const month_day_last& mdl)
^
/tmp/wt/src/Wt/Date/include/date/date.h:2599:1: note: candidate function template not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'const month_weekday' for 2nd argument
operator<<(std::basic_ostream<CharT, Traits>& os, const month_weekday& mwd)
^
/tmp/wt/src/Wt/Date/include/date/date.h:2667:1: note: candidate function template not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'const month_weekday_last' for 2nd argument
operator<<(std::basic_ostream<CharT, Traits>& os, const month_weekday_last& mwdl)
^
/tmp/wt/src/Wt/Date/include/date/date.h:2838:1: note: candidate function template not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'const year_month_day_last' for 2nd argument
operator<<(std::basic_ostream<CharT, Traits>& os, const year_month_day_last& ymdl)
^
/tmp/wt/src/Wt/Date/include/date/date.h:3068:1: note: candidate function template not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'const year_month_day' for 2nd argument
operator<<(std::basic_ostream<CharT, Traits>& os, const year_month_day& ymd)
^
/tmp/wt/src/Wt/Date/include/date/date.h:3314:1: note: candidate function template not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'const year_month_weekday' for 2nd argument
operator<<(std::basic_ostream<CharT, Traits>& os, const year_month_weekday& ymwdi)
^
/tmp/wt/src/Wt/Date/include/date/date.h:3495:1: note: candidate function template not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'const year_month_weekday_last' for 2nd argument
operator<<(std::basic_ostream<CharT, Traits>& os, const year_month_weekday_last& ymwdl)
^
/tmp/wt/src/Wt/Date/include/date/date.h:4221:1: note: candidate function template not viable: no known conversion from 'time_point<local_t, duration<long long, ratio<1, 1000000>>>' to 'const time_point<std::chrono::system_clock, duration<int, ratio<86400, 1>>>' for 2nd argument
operator<<(std::basic_ostream<CharT, Traits>& os, const sys_days& dp)
^
/tmp/wt/src/Wt/Date/include/date/tz.h:167:1: note: candidate function template not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'const sys_info' for 2nd argument
operator<<(std::basic_ostream<CharT, Traits>& os, const sys_info& r)
^
/tmp/wt/src/Wt/Date/include/date/tz.h:186:1: note: candidate function template not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'const local_info' for 2nd argument
operator<<(std::basic_ostream<CharT, Traits>& os, const local_info& r)
^
/tmp/wt/src/Wt/Date/include/date/tz.h:1203:1: note: candidate function not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'const tzdb' for 2nd argument
operator<<(std::ostream& os, const tzdb& db);
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/ostream:793:1: note: candidate template ignored: deduced conflicting types for parameter '_CharT' ('char' vs. 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>'))
operator<<(basic_ostream<_CharT, _Traits>& __os, _CharT __c)
^
/tmp/wt/src/Wt/Date/include/date/date.h:4212:1: note: candidate template ignored: could not match 'std::chrono::system_clock' against 'date::local_t'
operator<<(std::basic_ostream<CharT, Traits>& os, const sys_time<Duration>& tp)
^
/tmp/wt/src/Wt/Date/include/date/date.h:4229:1: note: candidate template ignored: substitution failure [with CharT = char, Traits = std::char_traits<char>, Duration = std::chrono::duration<long long, std::ratio<1, 1000000>>]
operator<<(std::basic_ostream<CharT, Traits>& os, const local_time<Duration>& ut)
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/ostream:854:1: note: candidate template ignored: could not match 'const _CharT *' against 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>')
operator<<(basic_ostream<_CharT, _Traits>& __os, const _CharT* __str)
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/ostream:1090:1: note: candidate template ignored: could not match 'basic_string' against 'time_point'
operator<<(basic_ostream<_CharT, _Traits>& __os,
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/ostream:1098:1: note: candidate template ignored: could not match 'basic_string_view' against 'time_point'
operator<<(basic_ostream<_CharT, _Traits>& __os,
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/ostream:1115:1: note: candidate template ignored: could not match 'shared_ptr' against 'time_point'
operator<<(basic_ostream<_CharT, _Traits>& __os, shared_ptr<_Yp> const& __p)
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/ostream:1134:1: note: candidate template ignored: could not match 'bitset' against 'time_point'
operator<<(basic_ostream<_CharT, _Traits>& __os, const bitset<_Size>& __x)
^
/tmp/wt/src/Wt/Date/include/date/date.h:8257:1: note: candidate template ignored: could not match 'duration' against 'time_point'
operator<<(std::basic_ostream<CharT, Traits>& os,
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/ostream:1082:11: note: candidate template ignored: requirement 'integral_constant<bool, false>::value' was not satisfied [with _Stream = std::ostringstream &, _Tp = std::chrono::time_point<date::local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>]
_Stream&& operator<<(_Stream&& __os, const _Tp& __x)
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/ostream:1127:1: note: candidate template ignored: could not match 'unique_ptr' against 'time_point'
operator<<(basic_ostream<_CharT, _Traits>& __os, unique_ptr<_Yp, _Dp> const& __p)
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/ostream:1151:34: note: candidate template ignored: could not match 'basic_ostream' against 'basic_ostringstream'
basic_ostream<wchar_t, _Traits>& operator<<(basic_ostream<wchar_t, _Traits>&, char16_t) = delete;
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/ostream:1154:34: note: candidate template ignored: could not match 'basic_ostream' against 'basic_ostringstream'
basic_ostream<wchar_t, _Traits>& operator<<(basic_ostream<wchar_t, _Traits>&, char32_t) = delete;
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/ostream:1157:34: note: candidate template ignored: could not match 'basic_ostream' against 'basic_ostringstream'
basic_ostream<wchar_t, _Traits>& operator<<(basic_ostream<wchar_t, _Traits>&, const char16_t*) = delete;
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/ostream:1160:34: note: candidate template ignored: could not match 'basic_ostream' against 'basic_ostringstream'
basic_ostream<wchar_t, _Traits>& operator<<(basic_ostream<wchar_t, _Traits>&, const char32_t*) = delete;
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/ostream:1169:34: note: candidate template ignored: could not match 'basic_ostream' against 'basic_ostringstream'
basic_ostream<wchar_t, _Traits>& operator<<(basic_ostream<wchar_t, _Traits>&, char8_t) = delete;
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/ostream:1175:34: note: candidate template ignored: could not match 'basic_ostream' against 'basic_ostringstream'
basic_ostream<wchar_t, _Traits>& operator<<(basic_ostream<wchar_t, _Traits>&, const char8_t*) = delete;
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/__chrono/ostream.h:46:1: note: candidate template ignored: could not match 'std::chrono::system_clock' against 'date::local_t'
operator<<(basic_ostream<_CharT, _Traits>& __os, const sys_time<_Duration> __tp) {
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/__chrono/ostream.h:52:1: note: candidate template ignored: could not match 'std::filesystem::_FilesystemClock' against 'date::local_t'
operator<<(basic_ostream<_CharT, _Traits>& __os, const file_time<_Duration> __tp) {
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/__chrono/ostream.h:58:1: note: candidate template ignored: could not match 'std::chrono::local_t' against 'date::local_t'
operator<<(basic_ostream<_CharT, _Traits>& __os, const local_time<_Duration> __tp) {
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/__chrono/ostream.h:118:1: note: candidate template ignored: could not match 'duration' against 'time_point'
operator<<(basic_ostream<_CharT, _Traits>& __os, const duration<_Rep, _Period>& __d) {
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/__chrono/ostream.h:254:1: note: candidate template ignored: could not match 'hh_mm_ss' against 'time_point'
operator<<(basic_ostream<_CharT, _Traits>& __os, const hh_mm_ss<_Duration> __hms) {
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/__random/uniform_int_distribution.h:261:1: note: candidate template ignored: could not match 'uniform_int_distribution' against 'time_point'
operator<<(basic_ostream<_CharT, _Traits>& __os,
^
/tmp/wt/src/Wt/Date/include/date/tz.h:1846:1: note: candidate template ignored: could not match 'zoned_time' against 'time_point'
operator<<(std::basic_ostream<CharT, Traits>& os, const zoned_time<Duration, TimeZonePtr>& t)
^
/tmp/wt/src/Wt/Date/include/date/tz.h:1998:1: note: candidate template ignored: could not match 'date::utc_clock' against 'date::local_t'
operator<<(std::basic_ostream<CharT, Traits>& os, const utc_time<Duration>& t)
^
/tmp/wt/src/Wt/Date/include/date/tz.h:2138:1: note: candidate template ignored: could not match 'date::tai_clock' against 'date::local_t'
operator<<(std::basic_ostream<CharT, Traits>& os, const tai_time<Duration>& t)
^
/tmp/wt/src/Wt/Date/include/date/tz.h:2261:1: note: candidate template ignored: could not match 'date::gps_clock' against 'date::local_t'
operator<<(std::basic_ostream<CharT, Traits>& os, const gps_time<Duration>& t)
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/ostream:229:20: note: candidate function not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'ostream &(*)(ostream &)' for 1st argument
basic_ostream& operator<<(basic_ostream& (*__pf)(basic_ostream&))
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/ostream:233:20: note: candidate function not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'basic_ios<char_type, traits_type> &(*)(basic_ios<char_type, traits_type> &)' (aka 'basic_ios<char, std::char_traits<char>> &(*)(basic_ios<char, std::char_traits<char>> &)') for 1st argument
basic_ostream& operator<<(basic_ios<char_type, traits_type>&
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/ostream:238:20: note: candidate function not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'ios_base &(*)(ios_base &)' for 1st argument
basic_ostream& operator<<(ios_base& (*__pf)(ios_base&))
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/ostream:241:20: note: candidate function not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'bool' for 1st argument
basic_ostream& operator<<(bool __n);
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/ostream:242:20: note: candidate function not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'short' for 1st argument
basic_ostream& operator<<(short __n);
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/ostream:243:20: note: candidate function not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'unsigned short' for 1st argument
basic_ostream& operator<<(unsigned short __n);
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/ostream:244:20: note: candidate function not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'int' for 1st argument
basic_ostream& operator<<(int __n);
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/ostream:245:20: note: candidate function not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'unsigned int' for 1st argument
basic_ostream& operator<<(unsigned int __n);
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/ostream:246:20: note: candidate function not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'long' for 1st argument
basic_ostream& operator<<(long __n);
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/ostream:247:20: note: candidate function not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'unsigned long' for 1st argument
basic_ostream& operator<<(unsigned long __n);
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/ostream:248:20: note: candidate function not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'long long' for 1st argument
basic_ostream& operator<<(long long __n);
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/ostream:249:20: note: candidate function not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'unsigned long long' for 1st argument
basic_ostream& operator<<(unsigned long long __n);
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/ostream:250:20: note: candidate function not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'float' for 1st argument
basic_ostream& operator<<(float __f);
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/ostream:251:20: note: candidate function not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'double' for 1st argument
basic_ostream& operator<<(double __f);
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/ostream:252:20: note: candidate function not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'long double' for 1st argument
basic_ostream& operator<<(long double __f);
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/ostream:253:20: note: candidate function not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'const void *' for 1st argument; take the address of the argument with &
basic_ostream& operator<<(const void* __p);
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/ostream:257:20: note: candidate function not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'const volatile void *' for 1st argument; take the address of the argument with &
basic_ostream& operator<<(const volatile void* __p) {
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/ostream:262:20: note: candidate function not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'basic_streambuf<char_type, traits_type> *' (aka 'basic_streambuf<char, std::char_traits<char>> *') for 1st argument
basic_ostream& operator<<(basic_streambuf<char_type, traits_type>* __sb);
^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/ostream:268:20: note: candidate function not viable: no known conversion from 'local_time<duration<long long, ratio<1, 1000000>>>' (aka 'time_point<local_t, std::chrono::duration<long long, std::ratio<1, 1000000>>>') to 'nullptr_t' (aka 'std::nullptr_t') for 1st argument
basic_ostream& operator<<(nullptr_t)
^
1 warning and 4 errors generated.
make[2]: *** [src/CMakeFiles/wt.dir/Wt/WLocalDateTime.C.o] Error 1
</code></pre> Wt - Bug #12538 (Review): Adhere to RFC5322 for To/Cc fieldshttp://redmine.emweb.be/issues/125382024-03-21T15:43:22ZMatthias Van Ceulebroeck
<p>Currently, the <code>To:</code> and <code>Cc:</code> fields are not according to RFC5322. There are multiple of these lines, when more than one recipient is added of each type. <a href="https://datatracker.ietf.org/doc/html/rfc5322#section-3.6.3" class="external">The spec states</a> that only a single line should exist, with a comma-separated list of addresses. </p>
<p>While it seems that very few clients or exchange points have any issue with this, this will not work for a service that exactly adheres to the spec. As such our implementation should put the addresses on a single line.</p>
Wt - Bug #12518 (Review): Correct Treelist example documentationhttp://redmine.emweb.be/issues/125182024-03-14T14:34:43ZMatthias Van Ceulebroeck
<p>The documentation on the <a href="https://www.webtoolkit.eu/wt/doc/reference/html/example.html" class="external">treelist example</a> is not rendering correctly.<br>
A lot of the code that should be interleaved with the guiding documentation is missing.</p>
<p>This is likely either due to some changes in the code, so has been broken for a long while.</p>
Wt - Feature #12496 (New): Temporary directory and temporary file nameshttp://redmine.emweb.be/issues/124962024-03-07T01:37:22ZGavin Blakemangavin.blakeman@theblakemans.id.au
<p>Add the weak link attribute "<strong>attribute</strong>((weak))" to the functions createTempFileName() and getTempDir(). This will allow the functions to be replaced during link with application defined functions.<br>
The use case is to provide a way to substitute a temporary file manager to manage the creation and segregation of temporary files.</p>
<ol>
<li>In a multi-tenant server each tenant could get a segregated temporary directory. This would prevent 'mixing' of temporary files between tenants.</li>
<li>Allows application defined life/duration for temporary files. </li>
<li>Allows application defined uniqueness criteria to be applied for temporary file names.</li>
<li>Allows application defined ownership criteria to be applied to temporary files.</li>
</ol>
<p>Note, some of the above can achieved by stealing the spool files. But it is not really desirable to have to start moving large files between directories. While this "should" be a cheap function call to just rewrite the path, in some prospective use cases it could result in a file copy. (Multi-tenant with tenants sitting on different physical disks)</p>
<p>Alternatives would be to create a mechanism to substitute the function calls at runtime. This would likely be more flexible, but more work to implement.</p>
Wt - Improvements #12495 (New): Enable charting library to use external javascript libraries such...http://redmine.emweb.be/issues/124952024-03-06T15:22:13ZMark Travis
<p>With Bootstrap 5, Flex, and other modern libraries, a missing modernization is charts.</p>
<p>There is no way to do stacked-bar, or several other types of charts that are starting to become popular. Even Bootstrap 5 themes have basic included chart templates that cannot be easily configured by Wt. </p>
<p>Like TinyMCE is a plug-in to Wt, a plug-in charting option would be very welcome. </p>
Wt - Support #12471 (New): Making Wt::WFileDropWidget visiblehttp://redmine.emweb.be/issues/124712024-02-28T13:20:13ZAxel Sjöbergsjobeaxe@gmail.com
<p>Hello, I'm trying to use the WFileDropWidget, but I can not get it to show on the page. I suspect the problem has to do with CSS. I have tried to get this to work by looking at <a href="https://webtoolkit.eu/widgets/forms/file-upload" class="external">https://webtoolkit.eu/widgets/forms/file-upload</a> and at ...\wt-4.8.3\examples\filedrop\FileDropApplication.C</p>
<p>Should I see something after running <br>
auto fileDW = root()->addNew<a href="Wt::WFileDropWidget" class="external">Wt::WFileDropWidget</a>();?<br>
What am I missing? </p>
<p>In general it would be nice if the widget gallery or examples folder would provide the user with the CSS needed to run the examples.</p>
Wt - Improvements #12464 (New): WStreamResource: support request specific mime type http://redmine.emweb.be/issues/124642024-02-27T17:55:25ZDries Mys
<p><code>WStreamResource</code> assumes the mime type is fixed. However, in a real application the actual mime type can depend on the GET/POST parameters of the request.</p>
<p>A possible (backwards compatible) solution is to provide a <code>WStreamResource::handleRequestPiecewise</code> overload with the mimeType as an extra argument.</p>
Wt - Bug #12463 (New): Thread safety of WStreamResourcehttp://redmine.emweb.be/issues/124632024-02-27T17:42:41ZDries Mys
<p>Looking at the source code of <code>WStreamResource</code>, it doesn't seem to be thread safe as it reads and writes to the class member beyondLastByte_. I think this variable should be stored inside the <code>Http::ResponseContinuation</code>.</p>
Wt - Feature #12461 (InProgress): Add a WebSocket resourcehttp://redmine.emweb.be/issues/124612024-02-27T11:10:12ZMatthias Van Ceulebroeck
<p>While Wt is able to communicate over the <a href="https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API" class="external">WebSocket</a> protocol, defined in <a href="https://datatracker.ietf.org/doc/html/rfc6455" class="external">RFC6455</a>. This same connection cannot be used to stream data.<br>
Wt uses it to send updates over for its framework, essentially containing JavaScript snippets.</p>
<p>If a developer wishes to stream large amounts of data, they have few other choices than to use <a href="https://www.webtoolkit.eu/wt/doc/reference/html/classWt_1_1WResource.html" class="external">WResource</a>. This performs HTTP requests to happen. However, were this to happen from the client side, this would require the developer to call <a href="https://www.webtoolkit.eu/wt/doc/reference/html/classWt_1_1WApplication.html#a2a92457b9212cef4057cb54e56183967" class="external">doJavaScript</a>, which can be triggered from the server using <a href="https://www.webtoolkit.eu/wt/doc/reference/html/classWt_1_1WApplication.html#a51f50e0641a6d702a7c6ab7f8dd5946a" class="external">triggerUpdate</a>. This grabs the application lock, which isn't ideal.</p>
<p>A better approach is to have a separate <a href="https://www.webtoolkit.eu/wt/doc/reference/html/classWt_1_1WWebSocketResource.html" class="external">WWebSocketResource</a>, which can stream data from a different thread. This would decrease the amount of effort a developer needs to undertake to have a stream between the client and server. Additionally, this ensures that there can be multiple streams opened, instead of just the one managed by Wt.</p>
Wt - Bug #12429 (New): WAbsractItemView does not reset the current sort column when the model is ...http://redmine.emweb.be/issues/124292024-02-19T09:40:31ZAndreas Frolovandreas.frolov@pit.deWt - Bug #12424 (New): WVideo throw WAbstractMedia: error parsing when working with large mvc ta...http://redmine.emweb.be/issues/124242024-02-16T07:40:56ZApivan Tuntakurn
<p>The "WVideo" throws an exception when placed with large table elements.</p>
<p>The exception is thrown here:</p>
<pre><code>void WAbstractMedia::setFormData(const FormData& formData)
{
....
} else
throw WException("WAbstractMedia: error parsing: "
+ formData.values[0]);
}
}
</code></pre>
<p>I've also noticed that the Emweb website's Wt widget gallery also shows it sending the "undefined" parameters on the MVC table view page. The "undefined" issue originates from Wt.js. I've made a pull request to solve this issue. Please have a look when you have a time.</p>
<p><img src="http://redmine.emweb.be/attachments/download/6184/clipboard-202402161433-ol7sa.png" alt="" loading="lazy" /></p>
<p>Here is the reproducible code.<br>
When the number table elements is high enough tableView->setModel(std::make_unique(10, 15)); It reproduces this issue. </p>
<pre><code>class VirtualModel : public Wt::WAbstractTableModel
{
public:
VirtualModel(int rows, int columns)
: rows_(rows),
columns_(columns)
{ }
int rowCount(const Wt::WModelIndex& parent = Wt::WModelIndex()) const override
{
if (!parent.isValid())
return rows_;
else
return 0;
}
int columnCount(const Wt::WModelIndex& parent = Wt::WModelIndex()) const override
{
if (!parent.isValid())
return columns_;
else
return 0;
}
Wt::cpp17::any data(const Wt::WModelIndex& index, ItemDataRole role = Wt::ItemDataRole::Display) const override
{
if (role == Wt::ItemDataRole::Display)
{
if (index.column() == 0)
{
return Wt::WString("Row {1}").arg(index.row());
}
else
{
return Wt::WString("Item row {1}, col {2}")
.arg(index.row()).arg(index.column());
}
}
else
{
return {};
}
}
Wt::cpp17::any headerData(int section,
Wt::Orientation orientation = Wt::Orientation::Horizontal,
ItemDataRole role = Wt::ItemDataRole::Display) const override
{
if (orientation == Wt::Orientation::Horizontal) {
if (role == Wt::ItemDataRole::Display)
{
return Wt::WString("Column {1}").arg(section);
}
else
{
return {};
}
}
else
return {};
}
private:
int rows_, columns_;
};
auto theme = std::make_shared<Wt::WBootstrapTheme>();
theme->setVersion(Wt::BootstrapVersion::v3);
setTheme(theme);
setTitle("TableBenchmarkingApp");
root()->setPadding(Wt::WLength(30), Wt::Side::Left);
{
auto tableView = root()->addNew<Wt::WTableView>();
tableView->setModel(std::make_unique<VirtualModel>(10, 15));
}
// Define media source locations
std::string mp4Video = "https://www.webtoolkit.eu/videos/sintel_trailer.mp4";
std::string ogvVideo = "https://www.webtoolkit.eu/videos/sintel_trailer.ogv";
// Define poster image location
std::string poster = "pics/sintel_trailer.jpg";
auto tp = std::make_unique<Wt::WTemplate>();
tp->setTemplateText(R"HTML(
<div >
${BigVideo}
</div>
)HTML");
auto video = tp->bindWidget("BigVideo", std::make_unique<Wt::WVideo>());
video->addSource(Wt::WLink(mp4Video));
video->addSource(Wt::WLink(ogvVideo));
video->setPoster(poster);
video->setAlternativeContent(std::make_unique<Wt::WImage>(Wt::WLink(poster)));
video->resize(640, 360);
root()->addWidget(std::move(tp));
</code></pre> Wt - Support #12412 (New): dialog positions in wt3 vs wt4http://redmine.emweb.be/issues/124122024-02-14T07:23:43Zjeroen zpam
<p>I'm trying to port an application wt3 to wt4. Now with dialogs I run into an issue.<br>
We instantiate a dialog in the constructor and then from the menu we open it. In wt3<br>
the dialog was shown in the center of the browser, this is what we want.</p>
<p>With wt4 though it is positioned in the top left. If I change the code to instantiate<br>
the dialog from the event handler in the menu it is shown in the center again.</p>
<p>Am I doing something wrong here or is this a bug?</p>
<p>Attached the hello example with 2 buttons that each open a dialog. In wt3 they behave<br>
the same, in wt4 one opens the dialog top-left and the other one in the center.</p>
Wt - Bug #12407 (New): clearing the selection in a submenu affects the parent menuhttp://redmine.emweb.be/issues/124072024-02-13T12:02:26Zjeroen zpam
<p>we have menus with normal items and submenus. in the itemSelected handler we clear the selection of the submenus calling select(-1) when the submenu is no longer selected.<br>
until wt-4.5.2 this works fine, since wt-4.6.0 this select(-1) on the submenu makes the submenu selected again. </p>
Wt - Bug #12393 (New): WLeafletMap JS error when refreshing after panninghttp://redmine.emweb.be/issues/123932024-02-08T14:35:24ZRaf Pauwels
<p>When you pan a <code>WLeafletMap</code> after its coordinates were initially set using <code>panTo()</code> and then rerender the session, a JS error occurs: <code>Wt4_10_3.$(...).wtObj is undefined</code>.</p>
<p>A minimal example is this:</p>
<pre><code class="c++ syntaxhl" data-language="c++"><span class="n">LeafletApplication</span><span class="o">::</span><span class="n">LeafletApplication</span><span class="p">(</span><span class="k">const</span> <span class="n">Wt</span><span class="o">::</span><span class="n">WEnvironment</span> <span class="o">&</span><span class="n">env</span><span class="p">)</span>
<span class="o">:</span> <span class="n">WApplication</span><span class="p">(</span><span class="n">env</span><span class="p">)</span>
<span class="p">{</span>
<span class="k">auto</span> <span class="n">map</span> <span class="o">=</span> <span class="n">root</span><span class="p">()</span><span class="o">-></span><span class="n">addNew</span><span class="o"><</span><span class="n">Wt</span><span class="o">::</span><span class="n">WLeafletMap</span><span class="o">></span><span class="p">();</span>
<span class="n">map</span><span class="o">-></span><span class="n">panTo</span><span class="p">(</span><span class="n">Wt</span><span class="o">::</span><span class="n">WLeafletMap</span><span class="o">::</span><span class="n">Coordinate</span><span class="p">(</span><span class="mf">50.906705</span><span class="p">,</span> <span class="mf">4.655800</span><span class="p">));</span>
<span class="k">auto</span> <span class="n">button</span> <span class="o">=</span> <span class="n">root</span><span class="p">()</span><span class="o">-></span><span class="n">addNew</span><span class="o"><</span><span class="n">Wt</span><span class="o">::</span><span class="n">WPushButton</span><span class="o">></span><span class="p">(</span><span class="s">"Crash and burn, please"</span><span class="p">);</span>
<span class="n">button</span><span class="o">-></span><span class="n">clicked</span><span class="p">().</span><span class="n">connect</span><span class="p">([</span><span class="k">this</span><span class="p">,</span> <span class="n">map</span><span class="p">]</span> <span class="p">{</span>
<span class="n">map</span><span class="o">-></span><span class="n">panTo</span><span class="p">(</span><span class="n">Wt</span><span class="o">::</span><span class="n">WLeafletMap</span><span class="o">::</span><span class="n">Coordinate</span><span class="p">(</span><span class="mf">0.0</span><span class="p">,</span> <span class="mf">0.0</span><span class="p">));</span>
<span class="n">redirect</span><span class="p">(</span><span class="n">url</span><span class="p">());</span>
<span class="p">});</span>
<span class="p">}</span>
</code></pre>
<p>The application uses Leaflet 1.9.4 with <code>reload-is-new-session</code> set to <code>false</code>:</p>
<pre><code class="xml syntaxhl" data-language="xml"><span class="nt"><session-management></span>
<span class="nt"><reload-is-new-session></span>false<span class="nt"></reload-is-new-session></span>
<span class="nt"></session-management></span>
<span class="nt"><properties></span>
<span class="nt"><property</span> <span class="na">name=</span><span class="s">"leafletJSURL"</span><span class="nt">></span>https://unpkg.com/leaflet@1.9.4/dist/leaflet.js<span class="nt"></property></span>
<span class="nt"><property</span> <span class="na">name=</span><span class="s">"leafletCSSURL"</span><span class="nt">></span>https://unpkg.com/leaflet@1.9.4/dist/leaflet.css<span class="nt"></property></span>
<span class="nt"></properties></span>
</code></pre>
<p>The JS error occurs when clicking the button. The error is propagated to the server logs upon clicking again. This can also be triggered by panning and then refreshing manually (after adding an initial size and layer).</p>
<p>Note that when Leaflet option <code>trackResize</code> is <code>true</code> (the default), this also occurs upon resize because the map is then panned automatically. A resize is triggered e.g. when the virtual keyboard opens on Android (even when the map is hidden).</p>
<ul>
<li>Panning causes Leaflet to emit <code>moveend</code>, which causes <code>WLeafletMap::position_</code> to be changed</li>
<li>Upon rerendering, <code>WLeafletMap::defineJavaScript()</code> is re-executed</li>
<li>The JS members <code>WLeafletMap</code> (constructor) and <code>wtResize</code> were initially assigned and still exist because we rerender the existing session</li>
<li>Member <code>WLeafletMap</code> has the <code>position_</code> coordinates in its parameters, which now differ from the initial coordinates</li>
<li><code>WWebWidget::setJavaScriptMember()</code> and <code>WWebWidget::addJavaScriptStatement</code> will cause member changes to be put into <code>jsStatements_</code></li>
<li>In <code>WWebWidget::updateDom()</code>, <code>declareJavaScriptMember()</code> is first executed for <code>jsMembers_</code> that are not in <code>jsStatements_</code></li>
<li><code>wtResize</code> does not occur in <code>jsStatements_</code> (because it has not changed), but <code>WLeafletMap</code> does, so assignment for <code>wtResize</code> is executed first</li>
</ul>
Wt - Improvements #12384 (New): Make the Boost::spirit parser for WMessageResources plurals more ...http://redmine.emweb.be/issues/123842024-02-05T11:16:41ZMatthias Van Ceulebroeck
<p>There were already edge-cases found in this parser (by <a href="https://github.com/google/oss-fuzz" class="external">OSS-Fuzz</a>). Resolving some of these isn't straighforward. A better approach would be to rewrite this parser.<br>
Alternatives are Boost Spirit (V2 & Qi), or even Boost Spirit x3. This is however not the easiest code to work with, and will take some time.</p>