Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compile error using Code::Blocks // mingw-w64 GCC 8.1.0 - "Incomplete Type" #1193

Closed
NickCNA opened this issue Aug 14, 2018 · 20 comments
Closed
Assignees
Labels

Comments

@NickCNA
Copy link

NickCNA commented Aug 14, 2018

  • What is the issue you have?

Latest version of the single include (21st July 2018) fails to compile and throws a warning and error. The previous version used compiled perfectly with exactly the same compiler settings.

  • Please describe the steps to reproduce the issue. Can you provide a small but working code example?

Update json.h; compile with mingw-w64 GCC 8.1.0

  • What is the expected behavior?

Successful compile, per previous versions.

  • And what is the actual behavior instead?

Compile warning: "_MSC_VER is not defined"
Compile error: has incomplete type where the type is std::stringstream.

Window 7 and 10; mingw-w64 GCC 8.1.0

  • Did you use a released version of the library or the version from the develop branch?

Develop (I've always used the develop branch).

The error seems to relate to this change:

From

template < typename ValueType, typename std::enable_if <
               not std::is_pointer<ValueType>::value and
               not std::is_same<ValueType, detail::json_ref<basic_json>>::value and
               not std::is_same<ValueType, typename string_t::value_type>::value and
               not detail::is_basic_json<ValueType>::value
#ifndef _MSC_VER  // fix for issue #167 operator<< ambiguity under VS2015
               and not std::is_same<ValueType, std::initializer_list<typename string_t::value_type>>::value
#endif
#if defined(JSON_HAS_CPP_17)
               and not std::is_same<ValueType, typename std::string_view>::value
#endif
               , int >::type = 0 >

to

template < typename ValueType, typename std::enable_if <
               not std::is_pointer<ValueType>::value and
               not std::is_same<ValueType, detail::json_ref<basic_json>>::value and
               not std::is_same<ValueType, typename string_t::value_type>::value and
               not detail::is_basic_json<ValueType>::value
#ifndef _MSC_VER  // fix for issue #167 operator<< ambiguity under VS2015
               and not std::is_same<ValueType, std::initializer_list<typename string_t::value_type>>::value
#if defined(JSON_HAS_CPP_17) && _MSC_VER <= 1914
               and not std::is_same<ValueType, typename std::string_view>::value
#endif
#endif
               , int >::type = 0 >
@nlohmann nlohmann self-assigned this Aug 14, 2018
nlohmann added a commit that referenced this issue Aug 14, 2018
@nlohmann nlohmann added the solution: proposed fix a fix for the issue has been proposed and waits for confirmation label Aug 15, 2018
@nlohmann
Copy link
Owner

Could you please check if the latest develop version fixes this issue?

@NickCNA
Copy link
Author

NickCNA commented Aug 16, 2018

Many thanks for the prompt response.

Unfortunately, the updated code did not fix the problem I am having.

@nlohmann
Copy link
Owner

What is the error message then?

@NickCNA
Copy link
Author

NickCNA commented Aug 16, 2018

The error message remains the same - the variable of the type stringstream has incomplete type.

@nlohmann nlohmann removed the solution: proposed fix a fix for the issue has been proposed and waits for confirmation label Aug 16, 2018
@nlohmann
Copy link
Owner

Please paste the complete error message.

@NickCNA
Copy link
Author

NickCNA commented Aug 17, 2018

-------------- Build: MinGW in StatusDisplay (compiler: GNU GCC Compiler)---------------

g++.exe -fexpensive-optimizations -O3 -Wnon-virtual-dtor -Wshadow -Winit-self -Wredundant-decls -Wcast-align -Wundef -Wfloat-equal -Wunreachable-code -Wmissing-include-dirs -Wswitch-enum -Wswitch-default -Wzero-as-null-pointer-constant -Wmain -pedantic -Wextra -Wall -std=c++17 -fPIC -m64 -c F:\Code\CPP\StatusDisplay\main.cpp -o obj\main.cpp.o
windres.exe -J rc -O coff -i F:\Code\CPP\StatusDisplay\src\nButtons.rc -o obj\src\nButtons.rc.res
g++.exe -fexpensive-optimizations -O3 -Wnon-virtual-dtor -Wshadow -Winit-self -Wredundant-decls -Wcast-align -Wundef -Wfloat-equal -Wunreachable-code -Wmissing-include-dirs -Wswitch-enum -Wswitch-default -Wzero-as-null-pointer-constant -Wmain -pedantic -Wextra -Wall -std=c++17 -fPIC -m64 -c F:\Code\CPP\StatusDisplay\src\nColour.cpp -o obj\src\nColour.cpp.o
windres.exe -J rc -O coff -i F:\Code\CPP\StatusDisplay\src\nDialog.rc -o obj\src\nDialog.rc.res
windres.exe -J rc -O coff -i F:\Code\CPP\StatusDisplay\src\nOptions.rc -o obj\src\nOptions.rc.res
windres.exe -J rc -O coff -i F:\Code\CPP\StatusDisplay\src\StatusDisplay.RC -o obj\src\StatusDisplay.RC.res
g++.exe -o bin\StatusDisplay.exe obj\main.cpp.o obj\src\nColour.cpp.o obj\src\nButtons.rc.res obj\src\nDialog.rc.res obj\src\nOptions.rc.res obj\src\StatusDisplay.RC.res -static-libstdc++ -static-libgcc -static -m64 -lcomctl32 -lws2_32 -lwinmm -mwindows
F:\Code\CPP\StatusDisplay\main.cpp: In function 'std::__cxx11::string NumToStr(T)':
F:\Code\CPP\StatusDisplay\main.cpp:1957:24: error: 'ss' has incomplete type
std::ostringstream ss;
^~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ios:38,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/istream:38,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:38,
from F:\Code\CPP\StatusDisplay\main.cpp:33:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/iosfwd:104:11: note: declaration of 'std::ostringstream' {aka 'class std::__cxx11::basic_ostringstream'}
class basic_ostringstream;
^~~~~~~~~~~~~~~~~~~
F:\Code\CPP\StatusDisplay\main.cpp: In function 'std::__cxx11::string NumToStr(T, int32_t)':
F:\Code\CPP\StatusDisplay\main.cpp:1965:8: error: no match for 'operator<<' (operand types are 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'} and 'std::ios_base&(std::ios_base&)')
ss << std::fixed << std::setprecision(digits) << std::setfill('0') << std::left << number;
~~~^~~~~~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/basic_string.h:48,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/string:52,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/locale_classes.h:40,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/ios_base.h:41,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ios:42,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/istream:38,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:38,
from F:\Code\CPP\StatusDisplay\main.cpp:33:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/string_view:545:5: note: candidate: 'template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, std::basic_string_view<_CharT, _Traits>)'
operator<<(basic_ostream<_CharT, _Traits>& __os,
^~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/string_view:545:5: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1965:16: note: 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'} is not derived from 'std::basic_ostream<_CharT, _Traits>'
ss << std::fixed << std::setprecision(digits) << std::setfill('0') << std::left << number;
^~~~~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/string:52,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/locale_classes.h:40,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/ios_base.h:41,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ios:42,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/istream:38,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:38,
from F:\Code\CPP\StatusDisplay\main.cpp:33:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/basic_string.h:6284:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&)'
operator<<(basic_ostream<_CharT, _Traits>& __os,
^~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/basic_string.h:6284:5: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1965:16: note: 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'} is not derived from 'std::basic_ostream<_CharT, _Traits>'
ss << std::fixed << std::setprecision(digits) << std::setfill('0') << std::left << number;
^~~~~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/ios_base.h:46,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ios:42,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/istream:38,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:38,
from F:\Code\CPP\StatusDisplay\main.cpp:33:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/system_error:217:5: note: candidate: 'template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, const std::error_code&)'
operator<<(basic_ostream<_CharT, _Traits>& __os, const error_code& __e)
^~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/system_error:217:5: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1965:16: note: 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'} is not derived from 'std::basic_ostream<_CharT, _Traits>'
ss << std::fixed << std::setprecision(digits) << std::setfill('0') << std::left << number;
^~~~~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/istream:39,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:38,
from F:\Code\CPP\StatusDisplay\main.cpp:33:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:497:5: note: candidate: 'template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, _CharT)'
operator<<(basic_ostream<_CharT, _Traits>& __out, _CharT __c)
^~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:497:5: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1965:16: note: 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'} is not derived from 'std::basic_ostream<_CharT, _Traits>'
ss << std::fixed << std::setprecision(digits) << std::setfill('0') << std::left << number;
^~~~~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/istream:39,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:38,
from F:\Code\CPP\StatusDisplay\main.cpp:33:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:502:5: note: candidate: 'template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, char)'
operator<<(basic_ostream<_CharT, _Traits>& __out, char __c)
^~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:502:5: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1965:16: note: 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'} is not derived from 'std::basic_ostream<_CharT, _Traits>'
ss << std::fixed << std::setprecision(digits) << std::setfill('0') << std::left << number;
^~~~~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/istream:39,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:38,
from F:\Code\CPP\StatusDisplay\main.cpp:33:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:508:5: note: candidate: 'template std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, char)'
operator<<(basic_ostream<char, _Traits>& __out, char __c)
^~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:508:5: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1965:16: note: 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'} is not derived from 'std::basic_ostream<char, _Traits>'
ss << std::fixed << std::setprecision(digits) << std::setfill('0') << std::left << number;
^~~~~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/istream:39,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:38,
from F:\Code\CPP\StatusDisplay\main.cpp:33:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:514:5: note: candidate: 'template std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, signed char)'
operator<<(basic_ostream<char, _Traits>& __out, signed char __c)
^~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:514:5: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1965:16: note: 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'} is not derived from 'std::basic_ostream<char, _Traits>'
ss << std::fixed << std::setprecision(digits) << std::setfill('0') << std::left << number;
^~~~~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/istream:39,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:38,
from F:\Code\CPP\StatusDisplay\main.cpp:33:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:519:5: note: candidate: 'template std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, unsigned char)'
operator<<(basic_ostream<char, _Traits>& __out, unsigned char __c)
^~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:519:5: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1965:16: note: 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'} is not derived from 'std::basic_ostream<char, _Traits>'
ss << std::fixed << std::setprecision(digits) << std::setfill('0') << std::left << number;
^~~~~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/istream:39,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:38,
from F:\Code\CPP\StatusDisplay\main.cpp:33:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:539:5: note: candidate: 'template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, const _CharT*)'
operator<<(basic_ostream<_CharT, _Traits>& __out, const _CharT* __s)
^~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:539:5: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1965:16: note: 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'} is not derived from 'std::basic_ostream<_CharT, _Traits>'
ss << std::fixed << std::setprecision(digits) << std::setfill('0') << std::left << number;
^~~~~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:693,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/istream:39,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:38,
from F:\Code\CPP\StatusDisplay\main.cpp:33:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/ostream.tcc:321:5: note: candidate: 'template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, const char*)'
operator<<(basic_ostream<_CharT, _Traits>& __out, const char* __s)
^~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/ostream.tcc:321:5: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1965:16: note: 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'} is not derived from 'std::basic_ostream<_CharT, _Traits>'
ss << std::fixed << std::setprecision(digits) << std::setfill('0') << std::left << number;
^~~~~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/istream:39,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:38,
from F:\Code\CPP\StatusDisplay\main.cpp:33:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:556:5: note: candidate: 'template std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, const char*)'
operator<<(basic_ostream<char, _Traits>& __out, const char* __s)
^~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:556:5: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1965:16: note: 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'} is not derived from 'std::basic_ostream<char, _Traits>'
ss << std::fixed << std::setprecision(digits) << std::setfill('0') << std::left << number;
^~~~~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/istream:39,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:38,
from F:\Code\CPP\StatusDisplay\main.cpp:33:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:569:5: note: candidate: 'template std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, const signed char*)'
operator<<(basic_ostream<char, _Traits>& __out, const signed char* __s)
^~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:569:5: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1965:16: note: 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'} is not derived from 'std::basic_ostream<char, _Traits>'
ss << std::fixed << std::setprecision(digits) << std::setfill('0') << std::left << number;
^~~~~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/istream:39,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:38,
from F:\Code\CPP\StatusDisplay\main.cpp:33:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:574:5: note: candidate: 'template std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, const unsigned char*)'
operator<<(basic_ostream<char, _Traits>& __out, const unsigned char* __s)
^~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:574:5: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1965:16: note: 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'} is not derived from 'std::basic_ostream<char, _Traits>'
ss << std::fixed << std::setprecision(digits) << std::setfill('0') << std::left << number;
^~~~~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/istream:39,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:38,
from F:\Code\CPP\StatusDisplay\main.cpp:33:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:682:5: note: candidate: 'template<class _Ostream, class _Tp> typename std::enable_if<std::_and<std::_not<std::is_lvalue_reference<_Tp> >, std::__is_convertible_to_basic_ostream<_Ostream>, std::__is_insertable<typename std::__is_convertible_to_basic_ostream<_Tp>::__ostream_type, const _Tp&, void> >::value, typename std::__is_convertible_to_basic_ostream<_Tp>::__ostream_type>::type std::operator<<(_Ostream&&, const _Tp&)'
operator<<(_Ostream&& __os, const _Tp& __x)
^~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:682:5: note: template argument deduction/substitution failed:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream: In substitution of 'template<class _Ostream, class _Tp> typename std::enable_if<std::_and<std::_not<std::is_lvalue_reference<_Tp> >, std::__is_convertible_to_basic_ostream<_Ostream>, std::__is_insertable<typename std::__is_convertible_to_basic_ostream<_Tp>::__ostream_type, const _Tp&, void> >::value, typename std::__is_convertible_to_basic_ostream<_Tp>::__ostream_type>::type std::operator<<(_Ostream&&, const _Tp&) [with _Ostream = std::__cxx11::basic_ostringstream&; _Tp = std::ios_base&(std::ios_base&)]':
F:\Code\CPP\StatusDisplay\main.cpp:1965:16: required from here
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:682:5: error: no type named 'type' in 'struct std::enable_if<false, void>'
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/memory:81,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/thread:39,
from F:\Code\CPP\StatusDisplay\main.cpp:35:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/shared_ptr.h:66:5: note: candidate: 'template<class _Ch, class _Tr, class _Tp, __gnu_cxx::_Lock_policy _Lp> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, const std::__shared_ptr<_Tp, _Lp>&)'
operator<<(std::basic_ostream<_Ch, _Tr>& __os,
^~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/shared_ptr.h:66:5: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1965:16: note: 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'} is not derived from 'std::basic_ostream<_CharT, _Traits>'
ss << std::fixed << std::setprecision(digits) << std::setfill('0') << std::left << number;
^~~~~
In file included from F:\Code\CPP\StatusDisplay\src/json.h:58,
from F:\Code\CPP\StatusDisplay\main.cpp:41:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/cstddef:124:5: note: candidate: 'template constexpr std::__byte_op_t<_IntegerType> std::operator<<(std::byte, _IntegerType)'
operator<<(byte __b, _IntegerType __shift) noexcept
^~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/cstddef:124:5: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1965:16: note: cannot convert 'ss' (type 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'}) to type 'std::byte'
ss << std::fixed << std::setprecision(digits) << std::setfill('0') << std::left << number;
^~~~~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/valarray:592,
from F:\Code\CPP\StatusDisplay\src/json.h:979,
from F:\Code\CPP\StatusDisplay\main.cpp:41:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/valarray_after.h:410:5: note: candidate: 'template<class _Dom1, class _Dom2> std::_Expr<std::_BinClos<std::__shift_left, std::_Expr, std::_Expr, _Dom1, _Dom2>, typename std::__fun<std::__shift_left, typename _Dom1::value_type>::result_type> std::operator<<(const std::_Expr<_Dom1, typename _Dom1::value_type>&, const std::_Expr<_Dom2, typename _Dom2::value_type>&)'
_DEFINE_EXPR_BINARY_OPERATOR(<<, __shift_left)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/valarray_after.h:410:5: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1965:16: note: 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'} is not derived from 'const std::_Expr<_Dom1, typename _Dom1::value_type>'
ss << std::fixed << std::setprecision(digits) << std::setfill('0') << std::left << number;
^~~~~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/valarray:592,
from F:\Code\CPP\StatusDisplay\src/json.h:979,
from F:\Code\CPP\StatusDisplay\main.cpp:41:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/valarray_after.h:410:5: note: candidate: 'template std::_Expr<std::_BinClos<std::__shift_left, std::_Expr, std::_Constant, _Dom, typename _Dom::value_type>, typename std::__fun<std::__shift_left, typename _Dom1::value_type>::result_type> std::operator<<(const std::_Expr<_Dom1, typename _Dom1::value_type>&, const typename _Dom::value_type&)'
_DEFINE_EXPR_BINARY_OPERATOR(<<, __shift_left)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/valarray_after.h:410:5: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1965:16: note: 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'} is not derived from 'const std::_Expr<_Dom1, typename _Dom1::value_type>'
ss << std::fixed << std::setprecision(digits) << std::setfill('0') << std::left << number;
^~~~~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/valarray:592,
from F:\Code\CPP\StatusDisplay\src/json.h:979,
from F:\Code\CPP\StatusDisplay\main.cpp:41:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/valarray_after.h:410:5: note: candidate: 'template std::_Expr<std::_BinClos<std::__shift_left, std::_Constant, std::_Expr, typename _Dom::value_type, _Dom>, typename std::__fun<std::__shift_left, typename _Dom1::value_type>::result_type> std::operator<<(const typename _Dom::value_type&, const std::_Expr<_Dom1, typename _Dom1::value_type>&)'
_DEFINE_EXPR_BINARY_OPERATOR(<<, __shift_left)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/valarray_after.h:410:5: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1965:16: note: mismatched types 'const std::_Expr<_Dom1, typename _Dom1::value_type>' and 'std::ios_base&(std::ios_base&)'
ss << std::fixed << std::setprecision(digits) << std::setfill('0') << std::left << number;
^~~~~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/valarray:592,
from F:\Code\CPP\StatusDisplay\src/json.h:979,
from F:\Code\CPP\StatusDisplay\main.cpp:41:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/valarray_after.h:410:5: note: candidate: 'template std::_Expr<std::_BinClos<std::__shift_left, std::_Expr, std::_ValArray, _Dom, typename _Dom::value_type>, typename std::__fun<std::__shift_left, typename _Dom1::value_type>::result_type> std::operator<<(const std::_Expr<_Dom1, typename _Dom1::value_type>&, const std::valarray&)'
_DEFINE_EXPR_BINARY_OPERATOR(<<, __shift_left)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/valarray_after.h:410:5: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1965:16: note: 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'} is not derived from 'const std::_Expr<_Dom1, typename _Dom1::value_type>'
ss << std::fixed << std::setprecision(digits) << std::setfill('0') << std::left << number;
^~~~~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/valarray:592,
from F:\Code\CPP\StatusDisplay\src/json.h:979,
from F:\Code\CPP\StatusDisplay\main.cpp:41:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/valarray_after.h:410:5: note: candidate: 'template std::_Expr<std::_BinClos<std::__shift_left, std::_ValArray, std::_Expr, typename _Dom::value_type, _Dom>, typename std::__fun<std::__shift_left, typename _Dom1::value_type>::result_type> std::operator<<(const std::valarray&, const std::_Expr<_Dom1, typename _Dom1::value_type>&)'
_DEFINE_EXPR_BINARY_OPERATOR(<<, __shift_left)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/valarray_after.h:410:5: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1965:16: note: mismatched types 'const std::_Expr<_Dom1, typename _Dom1::value_type>' and 'std::ios_base&(std::ios_base&)'
ss << std::fixed << std::setprecision(digits) << std::setfill('0') << std::left << number;
^~~~~
In file included from F:\Code\CPP\StatusDisplay\src/json.h:979,
from F:\Code\CPP\StatusDisplay\main.cpp:41:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/valarray:1180:1: note: candidate: 'template std::_Expr<std::_BinClos<std::__shift_left, std::_ValArray, std::_ValArray, _Tp, _Tp>, typename std::__fun<std::__shift_left, _Tp>::result_type> std::operator<<(const std::valarray<_Tp>&, const std::valarray<_Tp>&)'
_DEFINE_BINARY_OPERATOR(<<, __shift_left)
^~~~~~~~~~~~~~~~~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/valarray:1180:1: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1965:16: note: 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'} is not derived from 'const std::valarray<_Tp>'
ss << std::fixed << std::setprecision(digits) << std::setfill('0') << std::left << number;
^~~~~
In file included from F:\Code\CPP\StatusDisplay\src/json.h:979,
from F:\Code\CPP\StatusDisplay\main.cpp:41:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/valarray:1180:1: note: candidate: 'template std::_Expr<std::_BinClos<std::__shift_left, std::_ValArray, std::_Constant, _Tp, _Tp>, typename std::__fun<std::__shift_left, _Tp>::result_type> std::operator<<(const std::valarray<_Tp>&, const _Tp&)'
_DEFINE_BINARY_OPERATOR(<<, __shift_left)
^~~~~~~~~~~~~~~~~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/valarray:1180:1: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1965:16: note: 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'} is not derived from 'const std::valarray<_Tp>'
ss << std::fixed << std::setprecision(digits) << std::setfill('0') << std::left << number;
^~~~~
In file included from F:\Code\CPP\StatusDisplay\src/json.h:979,
from F:\Code\CPP\StatusDisplay\main.cpp:41:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/valarray:1180:1: note: candidate: 'template std::_Expr<std::_BinClos<std::__shift_left, std::_Constant, std::_ValArray, _Tp, _Tp>, typename std::__fun<std::__shift_left, _Tp>::result_type> std::operator<<(const _Tp&, const std::valarray<_Tp>&)'
_DEFINE_BINARY_OPERATOR(<<, __shift_left)
^~~~~~~~~~~~~~~~~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/valarray:1180:1: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1965:16: note: mismatched types 'const std::valarray<_Tp>' and 'std::ios_base&(std::ios_base&)'
ss << std::fixed << std::setprecision(digits) << std::setfill('0') << std::left << number;
^~~~~
F:\Code\CPP\StatusDisplay\main.cpp:1965:30: error: 'setprecision' is not a member of 'std'
ss << std::fixed << std::setprecision(digits) << std::setfill('0') << std::left << number;
^~~~~~~~~~~~
F:\Code\CPP\StatusDisplay\main.cpp:1965:30: note: suggested alternative: 'set_union'
ss << std::fixed << std::setprecision(digits) << std::setfill('0') << std::left << number;
^~~~~~~~~~~~
set_union
F:\Code\CPP\StatusDisplay\main.cpp:1965:59: error: 'setfill' is not a member of 'std'
ss << std::fixed << std::setprecision(digits) << std::setfill('0') << std::left << number;
^~~~~~~
F:\Code\CPP\StatusDisplay\main.cpp:1965:59: note: suggested alternative: 'fill'
ss << std::fixed << std::setprecision(digits) << std::setfill('0') << std::left << number;
^~~~~~~
fill
F:\Code\CPP\StatusDisplay\main.cpp:1964:24: error: 'ss' has incomplete type
std::ostringstream ss;
^~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ios:38,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/istream:38,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:38,
from F:\Code\CPP\StatusDisplay\main.cpp:33:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/iosfwd:104:11: note: declaration of 'std::ostringstream' {aka 'class std::__cxx11::basic_ostringstream'}
class basic_ostringstream;
^~~~~~~~~~~~~~~~~~~
F:\Code\CPP\StatusDisplay\main.cpp: In function 'std::__cxx11::string NumToStrPadZ(T, int32_t)':
F:\Code\CPP\StatusDisplay\main.cpp:1972:16: error: 'setfill' is not a member of 'std'
ss << std::setfill('0') << std::setw(width) << std::right << number;
^~~~~~~
F:\Code\CPP\StatusDisplay\main.cpp:1972:16: note: suggested alternative: 'fill'
ss << std::setfill('0') << std::setw(width) << std::right << number;
^~~~~~~
fill
F:\Code\CPP\StatusDisplay\main.cpp:1972:37: error: 'setw' is not a member of 'std'
ss << std::setfill('0') << std::setw(width) << std::right << number;
^~~~
F:\Code\CPP\StatusDisplay\main.cpp:1972:37: note: suggested alternative: 'beta'
ss << std::setfill('0') << std::setw(width) << std::right << number;
^~~~
beta
F:\Code\CPP\StatusDisplay\main.cpp:1971:24: error: 'ss' has incomplete type
std::ostringstream ss;
^~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ios:38,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/istream:38,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:38,
from F:\Code\CPP\StatusDisplay\main.cpp:33:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/iosfwd:104:11: note: declaration of 'std::ostringstream' {aka 'class std::__cxx11::basic_ostringstream'}
class basic_ostringstream;
^~~~~~~~~~~~~~~~~~~
F:\Code\CPP\StatusDisplay\main.cpp: In function 'std::__cxx11::string NumToStrPadZ(T, int32_t, int32_t)':
F:\Code\CPP\StatusDisplay\main.cpp:1979:8: error: no match for 'operator<<' (operand types are 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'} and 'std::ios_base&(std::ios_base&)')
ss << std::fixed << std::setprecision(digits) << std::setfill('0') << std::setw(digits + 1 + width) << std::right << number;
~~~^~~~~~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/basic_string.h:48,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/string:52,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/locale_classes.h:40,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/ios_base.h:41,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ios:42,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/istream:38,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:38,
from F:\Code\CPP\StatusDisplay\main.cpp:33:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/string_view:545:5: note: candidate: 'template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, std::basic_string_view<_CharT, _Traits>)'
operator<<(basic_ostream<_CharT, _Traits>& __os,
^~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/string_view:545:5: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1979:16: note: 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'} is not derived from 'std::basic_ostream<_CharT, _Traits>'
ss << std::fixed << std::setprecision(digits) << std::setfill('0') << std::setw(digits + 1 + width) << std::right << number;
^~~~~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/string:52,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/locale_classes.h:40,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/ios_base.h:41,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ios:42,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/istream:38,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:38,
from F:\Code\CPP\StatusDisplay\main.cpp:33:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/basic_string.h:6284:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&)'
operator<<(basic_ostream<_CharT, _Traits>& __os,
^~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/basic_string.h:6284:5: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1979:16: note: 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'} is not derived from 'std::basic_ostream<_CharT, _Traits>'
ss << std::fixed << std::setprecision(digits) << std::setfill('0') << std::setw(digits + 1 + width) << std::right << number;
^~~~~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/ios_base.h:46,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ios:42,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/istream:38,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:38,
from F:\Code\CPP\StatusDisplay\main.cpp:33:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/system_error:217:5: note: candidate: 'template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, const std::error_code&)'
operator<<(basic_ostream<_CharT, _Traits>& __os, const error_code& __e)
^~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/system_error:217:5: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1979:16: note: 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'} is not derived from 'std::basic_ostream<_CharT, _Traits>'
ss << std::fixed << std::setprecision(digits) << std::setfill('0') << std::setw(digits + 1 + width) << std::right << number;
^~~~~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/istream:39,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:38,
from F:\Code\CPP\StatusDisplay\main.cpp:33:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:497:5: note: candidate: 'template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, _CharT)'
operator<<(basic_ostream<_CharT, _Traits>& __out, _CharT __c)
^~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:497:5: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1979:16: note: 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'} is not derived from 'std::basic_ostream<_CharT, _Traits>'
ss << std::fixed << std::setprecision(digits) << std::setfill('0') << std::setw(digits + 1 + width) << std::right << number;
^~~~~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/istream:39,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:38,
from F:\Code\CPP\StatusDisplay\main.cpp:33:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:502:5: note: candidate: 'template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, char)'
operator<<(basic_ostream<_CharT, _Traits>& __out, char __c)
^~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:502:5: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1979:16: note: 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'} is not derived from 'std::basic_ostream<_CharT, _Traits>'
ss << std::fixed << std::setprecision(digits) << std::setfill('0') << std::setw(digits + 1 + width) << std::right << number;
^~~~~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/istream:39,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:38,
from F:\Code\CPP\StatusDisplay\main.cpp:33:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:508:5: note: candidate: 'template std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, char)'
operator<<(basic_ostream<char, _Traits>& __out, char __c)
^~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:508:5: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1979:16: note: 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'} is not derived from 'std::basic_ostream<char, _Traits>'
ss << std::fixed << std::setprecision(digits) << std::setfill('0') << std::setw(digits + 1 + width) << std::right << number;
^~~~~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/istream:39,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:38,
from F:\Code\CPP\StatusDisplay\main.cpp:33:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:514:5: note: candidate: 'template std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, signed char)'
operator<<(basic_ostream<char, _Traits>& __out, signed char __c)
^~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:514:5: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1979:16: note: 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'} is not derived from 'std::basic_ostream<char, _Traits>'
ss << std::fixed << std::setprecision(digits) << std::setfill('0') << std::setw(digits + 1 + width) << std::right << number;
^~~~~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/istream:39,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:38,
from F:\Code\CPP\StatusDisplay\main.cpp:33:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:519:5: note: candidate: 'template std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, unsigned char)'
operator<<(basic_ostream<char, _Traits>& __out, unsigned char __c)
^~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:519:5: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1979:16: note: 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'} is not derived from 'std::basic_ostream<char, _Traits>'
ss << std::fixed << std::setprecision(digits) << std::setfill('0') << std::setw(digits + 1 + width) << std::right << number;
^~~~~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/istream:39,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:38,
from F:\Code\CPP\StatusDisplay\main.cpp:33:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:539:5: note: candidate: 'template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, const _CharT*)'
operator<<(basic_ostream<_CharT, _Traits>& __out, const _CharT* __s)
^~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:539:5: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1979:16: note: 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'} is not derived from 'std::basic_ostream<_CharT, _Traits>'
ss << std::fixed << std::setprecision(digits) << std::setfill('0') << std::setw(digits + 1 + width) << std::right << number;
^~~~~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:693,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/istream:39,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:38,
from F:\Code\CPP\StatusDisplay\main.cpp:33:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/ostream.tcc:321:5: note: candidate: 'template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, const char*)'
operator<<(basic_ostream<_CharT, _Traits>& __out, const char* __s)
^~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/ostream.tcc:321:5: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1979:16: note: 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'} is not derived from 'std::basic_ostream<_CharT, _Traits>'
ss << std::fixed << std::setprecision(digits) << std::setfill('0') << std::setw(digits + 1 + width) << std::right << number;
^~~~~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/istream:39,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:38,
from F:\Code\CPP\StatusDisplay\main.cpp:33:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:556:5: note: candidate: 'template std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, const char*)'
operator<<(basic_ostream<char, _Traits>& __out, const char* __s)
^~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:556:5: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1979:16: note: 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'} is not derived from 'std::basic_ostream<char, _Traits>'
ss << std::fixed << std::setprecision(digits) << std::setfill('0') << std::setw(digits + 1 + width) << std::right << number;
^~~~~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/istream:39,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:38,
from F:\Code\CPP\StatusDisplay\main.cpp:33:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:569:5: note: candidate: 'template std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, const signed char*)'
operator<<(basic_ostream<char, _Traits>& __out, const signed char* __s)
^~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:569:5: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1979:16: note: 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'} is not derived from 'std::basic_ostream<char, _Traits>'
ss << std::fixed << std::setprecision(digits) << std::setfill('0') << std::setw(digits + 1 + width) << std::right << number;
^~~~~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/istream:39,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:38,
from F:\Code\CPP\StatusDisplay\main.cpp:33:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:574:5: note: candidate: 'template std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, const unsigned char*)'
operator<<(basic_ostream<char, _Traits>& __out, const unsigned char* __s)
^~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:574:5: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1979:16: note: 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'} is not derived from 'std::basic_ostream<char, _Traits>'
ss << std::fixed << std::setprecision(digits) << std::setfill('0') << std::setw(digits + 1 + width) << std::right << number;
^~~~~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/istream:39,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:38,
from F:\Code\CPP\StatusDisplay\main.cpp:33:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:682:5: note: candidate: 'template<class _Ostream, class _Tp> typename std::enable_if<std::_and<std::_not<std::is_lvalue_reference<_Tp> >, std::__is_convertible_to_basic_ostream<_Ostream>, std::__is_insertable<typename std::__is_convertible_to_basic_ostream<_Tp>::__ostream_type, const _Tp&, void> >::value, typename std::__is_convertible_to_basic_ostream<_Tp>::__ostream_type>::type std::operator<<(_Ostream&&, const _Tp&)'
operator<<(_Ostream&& __os, const _Tp& __x)
^~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:682:5: note: template argument deduction/substitution failed:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream: In substitution of 'template<class _Ostream, class _Tp> typename std::enable_if<std::_and<std::_not<std::is_lvalue_reference<_Tp> >, std::__is_convertible_to_basic_ostream<_Ostream>, std::__is_insertable<typename std::__is_convertible_to_basic_ostream<_Tp>::__ostream_type, const _Tp&, void> >::value, typename std::__is_convertible_to_basic_ostream<_Tp>::__ostream_type>::type std::operator<<(_Ostream&&, const _Tp&) [with _Ostream = std::__cxx11::basic_ostringstream&; _Tp = std::ios_base&(std::ios_base&)]':
F:\Code\CPP\StatusDisplay\main.cpp:1979:16: required from here
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:682:5: error: no type named 'type' in 'struct std::enable_if<false, void>'
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/memory:81,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/thread:39,
from F:\Code\CPP\StatusDisplay\main.cpp:35:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/shared_ptr.h:66:5: note: candidate: 'template<class _Ch, class _Tr, class _Tp, __gnu_cxx::_Lock_policy _Lp> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, const std::__shared_ptr<_Tp, _Lp>&)'
operator<<(std::basic_ostream<_Ch, _Tr>& __os,
^~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/shared_ptr.h:66:5: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1979:16: note: 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'} is not derived from 'std::basic_ostream<_CharT, _Traits>'
ss << std::fixed << std::setprecision(digits) << std::setfill('0') << std::setw(digits + 1 + width) << std::right << number;
^~~~~
In file included from F:\Code\CPP\StatusDisplay\src/json.h:58,
from F:\Code\CPP\StatusDisplay\main.cpp:41:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/cstddef:124:5: note: candidate: 'template constexpr std::__byte_op_t<_IntegerType> std::operator<<(std::byte, _IntegerType)'
operator<<(byte __b, _IntegerType __shift) noexcept
^~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/cstddef:124:5: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1979:16: note: cannot convert 'ss' (type 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'}) to type 'std::byte'
ss << std::fixed << std::setprecision(digits) << std::setfill('0') << std::setw(digits + 1 + width) << std::right << number;
^~~~~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/valarray:592,
from F:\Code\CPP\StatusDisplay\src/json.h:979,
from F:\Code\CPP\StatusDisplay\main.cpp:41:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/valarray_after.h:410:5: note: candidate: 'template<class _Dom1, class _Dom2> std::_Expr<std::_BinClos<std::__shift_left, std::_Expr, std::_Expr, _Dom1, _Dom2>, typename std::__fun<std::__shift_left, typename _Dom1::value_type>::result_type> std::operator<<(const std::_Expr<_Dom1, typename _Dom1::value_type>&, const std::_Expr<_Dom2, typename _Dom2::value_type>&)'
_DEFINE_EXPR_BINARY_OPERATOR(<<, __shift_left)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/valarray_after.h:410:5: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1979:16: note: 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'} is not derived from 'const std::_Expr<_Dom1, typename _Dom1::value_type>'
ss << std::fixed << std::setprecision(digits) << std::setfill('0') << std::setw(digits + 1 + width) << std::right << number;
^~~~~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/valarray:592,
from F:\Code\CPP\StatusDisplay\src/json.h:979,
from F:\Code\CPP\StatusDisplay\main.cpp:41:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/valarray_after.h:410:5: note: candidate: 'template std::_Expr<std::_BinClos<std::__shift_left, std::_Expr, std::_Constant, _Dom, typename _Dom::value_type>, typename std::__fun<std::__shift_left, typename _Dom1::value_type>::result_type> std::operator<<(const std::_Expr<_Dom1, typename _Dom1::value_type>&, const typename _Dom::value_type&)'
_DEFINE_EXPR_BINARY_OPERATOR(<<, __shift_left)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/valarray_after.h:410:5: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1979:16: note: 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'} is not derived from 'const std::_Expr<_Dom1, typename _Dom1::value_type>'
ss << std::fixed << std::setprecision(digits) << std::setfill('0') << std::setw(digits + 1 + width) << std::right << number;
^~~~~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/valarray:592,
from F:\Code\CPP\StatusDisplay\src/json.h:979,
from F:\Code\CPP\StatusDisplay\main.cpp:41:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/valarray_after.h:410:5: note: candidate: 'template std::_Expr<std::_BinClos<std::__shift_left, std::_Constant, std::_Expr, typename _Dom::value_type, _Dom>, typename std::__fun<std::__shift_left, typename _Dom1::value_type>::result_type> std::operator<<(const typename _Dom::value_type&, const std::_Expr<_Dom1, typename _Dom1::value_type>&)'
_DEFINE_EXPR_BINARY_OPERATOR(<<, __shift_left)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/valarray_after.h:410:5: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1979:16: note: mismatched types 'const std::_Expr<_Dom1, typename _Dom1::value_type>' and 'std::ios_base&(std::ios_base&)'
ss << std::fixed << std::setprecision(digits) << std::setfill('0') << std::setw(digits + 1 + width) << std::right << number;
^~~~~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/valarray:592,
from F:\Code\CPP\StatusDisplay\src/json.h:979,
from F:\Code\CPP\StatusDisplay\main.cpp:41:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/valarray_after.h:410:5: note: candidate: 'template std::_Expr<std::_BinClos<std::__shift_left, std::_Expr, std::_ValArray, _Dom, typename _Dom::value_type>, typename std::__fun<std::__shift_left, typename _Dom1::value_type>::result_type> std::operator<<(const std::_Expr<_Dom1, typename _Dom1::value_type>&, const std::valarray&)'
_DEFINE_EXPR_BINARY_OPERATOR(<<, __shift_left)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/valarray_after.h:410:5: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1979:16: note: 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'} is not derived from 'const std::_Expr<_Dom1, typename _Dom1::value_type>'
ss << std::fixed << std::setprecision(digits) << std::setfill('0') << std::setw(digits + 1 + width) << std::right << number;
^~~~~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/valarray:592,
from F:\Code\CPP\StatusDisplay\src/json.h:979,
from F:\Code\CPP\StatusDisplay\main.cpp:41:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/valarray_after.h:410:5: note: candidate: 'template std::_Expr<std::_BinClos<std::__shift_left, std::_ValArray, std::_Expr, typename _Dom::value_type, _Dom>, typename std::__fun<std::__shift_left, typename _Dom1::value_type>::result_type> std::operator<<(const std::valarray&, const std::_Expr<_Dom1, typename _Dom1::value_type>&)'
_DEFINE_EXPR_BINARY_OPERATOR(<<, __shift_left)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/valarray_after.h:410:5: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1979:16: note: mismatched types 'const std::_Expr<_Dom1, typename _Dom1::value_type>' and 'std::ios_base&(std::ios_base&)'
ss << std::fixed << std::setprecision(digits) << std::setfill('0') << std::setw(digits + 1 + width) << std::right << number;
^~~~~
In file included from F:\Code\CPP\StatusDisplay\src/json.h:979,
from F:\Code\CPP\StatusDisplay\main.cpp:41:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/valarray:1180:1: note: candidate: 'template std::_Expr<std::_BinClos<std::__shift_left, std::_ValArray, std::_ValArray, _Tp, _Tp>, typename std::__fun<std::__shift_left, _Tp>::result_type> std::operator<<(const std::valarray<_Tp>&, const std::valarray<_Tp>&)'
_DEFINE_BINARY_OPERATOR(<<, __shift_left)
^~~~~~~~~~~~~~~~~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/valarray:1180:1: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1979:16: note: 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'} is not derived from 'const std::valarray<_Tp>'
ss << std::fixed << std::setprecision(digits) << std::setfill('0') << std::setw(digits + 1 + width) << std::right << number;
^~~~~
In file included from F:\Code\CPP\StatusDisplay\src/json.h:979,
from F:\Code\CPP\StatusDisplay\main.cpp:41:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/valarray:1180:1: note: candidate: 'template std::_Expr<std::_BinClos<std::__shift_left, std::_ValArray, std::_Constant, _Tp, _Tp>, typename std::__fun<std::__shift_left, _Tp>::result_type> std::operator<<(const std::valarray<_Tp>&, const _Tp&)'
_DEFINE_BINARY_OPERATOR(<<, __shift_left)
^~~~~~~~~~~~~~~~~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/valarray:1180:1: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1979:16: note: 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'} is not derived from 'const std::valarray<_Tp>'
ss << std::fixed << std::setprecision(digits) << std::setfill('0') << std::setw(digits + 1 + width) << std::right << number;
^~~~~
In file included from F:\Code\CPP\StatusDisplay\src/json.h:979,
from F:\Code\CPP\StatusDisplay\main.cpp:41:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/valarray:1180:1: note: candidate: 'template std::_Expr<std::_BinClos<std::__shift_left, std::_Constant, std::_ValArray, _Tp, _Tp>, typename std::__fun<std::__shift_left, _Tp>::result_type> std::operator<<(const _Tp&, const std::valarray<_Tp>&)'
_DEFINE_BINARY_OPERATOR(<<, __shift_left)
^~~~~~~~~~~~~~~~~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/valarray:1180:1: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1979:16: note: mismatched types 'const std::valarray<_Tp>' and 'std::ios_base&(std::ios_base&)'
ss << std::fixed << std::setprecision(digits) << std::setfill('0') << std::setw(digits + 1 + width) << std::right << number;
^~~~~
F:\Code\CPP\StatusDisplay\main.cpp:1979:30: error: 'setprecision' is not a member of 'std'
ss << std::fixed << std::setprecision(digits) << std::setfill('0') << std::setw(digits + 1 + width) << std::right << number;
^~~~~~~~~~~~
F:\Code\CPP\StatusDisplay\main.cpp:1979:30: note: suggested alternative: 'set_union'
ss << std::fixed << std::setprecision(digits) << std::setfill('0') << std::setw(digits + 1 + width) << std::right << number;
^~~~~~~~~~~~
set_union
F:\Code\CPP\StatusDisplay\main.cpp:1979:59: error: 'setfill' is not a member of 'std'
ss << std::fixed << std::setprecision(digits) << std::setfill('0') << std::setw(digits + 1 + width) << std::right << number;
^~~~~~~
F:\Code\CPP\StatusDisplay\main.cpp:1979:59: note: suggested alternative: 'fill'
ss << std::fixed << std::setprecision(digits) << std::setfill('0') << std::setw(digits + 1 + width) << std::right << number;
^~~~~~~
fill
F:\Code\CPP\StatusDisplay\main.cpp:1979:80: error: 'setw' is not a member of 'std'
ss << std::fixed << std::setprecision(digits) << std::setfill('0') << std::setw(digits + 1 + width) << std::right << number;
^~~~
F:\Code\CPP\StatusDisplay\main.cpp:1979:80: note: suggested alternative: 'beta'
ss << std::fixed << std::setprecision(digits) << std::setfill('0') << std::setw(digits + 1 + width) << std::right << number;
^~~~
beta
F:\Code\CPP\StatusDisplay\main.cpp:1978:24: error: 'ss' has incomplete type
std::ostringstream ss;
^~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ios:38,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/istream:38,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:38,
from F:\Code\CPP\StatusDisplay\main.cpp:33:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/iosfwd:104:11: note: declaration of 'std::ostringstream' {aka 'class std::__cxx11::basic_ostringstream'}
class basic_ostringstream;
^~~~~~~~~~~~~~~~~~~
F:\Code\CPP\StatusDisplay\main.cpp: In function 'std::__cxx11::string NumToStrPadS(T, int32_t)':
F:\Code\CPP\StatusDisplay\main.cpp:1986:16: error: 'setfill' is not a member of 'std'
ss << std::setfill(' ') << std::setw(width) << std::right << number;
^~~~~~~
F:\Code\CPP\StatusDisplay\main.cpp:1986:16: note: suggested alternative: 'fill'
ss << std::setfill(' ') << std::setw(width) << std::right << number;
^~~~~~~
fill
F:\Code\CPP\StatusDisplay\main.cpp:1986:37: error: 'setw' is not a member of 'std'
ss << std::setfill(' ') << std::setw(width) << std::right << number;
^~~~
F:\Code\CPP\StatusDisplay\main.cpp:1986:37: note: suggested alternative: 'beta'
ss << std::setfill(' ') << std::setw(width) << std::right << number;
^~~~
beta
F:\Code\CPP\StatusDisplay\main.cpp:1985:24: error: 'ss' has incomplete type
std::ostringstream ss;
^~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ios:38,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/istream:38,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:38,
from F:\Code\CPP\StatusDisplay\main.cpp:33:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/iosfwd:104:11: note: declaration of 'std::ostringstream' {aka 'class std::__cxx11::basic_ostringstream'}
class basic_ostringstream;
^~~~~~~~~~~~~~~~~~~
F:\Code\CPP\StatusDisplay\main.cpp: In function 'std::__cxx11::string NumToStrPadS(T, int32_t, int32_t)':
F:\Code\CPP\StatusDisplay\main.cpp:1993:8: error: no match for 'operator<<' (operand types are 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'} and 'std::ios_base&(std::ios_base&)')
ss << std::fixed << std::setprecision(digits) << std::setfill(' ') << std::setw(width) << std::right << number;
~~~^~~~~~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/basic_string.h:48,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/string:52,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/locale_classes.h:40,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/ios_base.h:41,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ios:42,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/istream:38,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:38,
from F:\Code\CPP\StatusDisplay\main.cpp:33:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/string_view:545:5: note: candidate: 'template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, std::basic_string_view<_CharT, _Traits>)'
operator<<(basic_ostream<_CharT, _Traits>& __os,
^~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/string_view:545:5: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1993:16: note: 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'} is not derived from 'std::basic_ostream<_CharT, _Traits>'
ss << std::fixed << std::setprecision(digits) << std::setfill(' ') << std::setw(width) << std::right << number;
^~~~~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/string:52,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/locale_classes.h:40,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/ios_base.h:41,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ios:42,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/istream:38,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:38,
from F:\Code\CPP\StatusDisplay\main.cpp:33:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/basic_string.h:6284:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&)'
operator<<(basic_ostream<_CharT, _Traits>& __os,
^~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/basic_string.h:6284:5: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1993:16: note: 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'} is not derived from 'std::basic_ostream<_CharT, _Traits>'
ss << std::fixed << std::setprecision(digits) << std::setfill(' ') << std::setw(width) << std::right << number;
^~~~~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/ios_base.h:46,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ios:42,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/istream:38,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:38,
from F:\Code\CPP\StatusDisplay\main.cpp:33:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/system_error:217:5: note: candidate: 'template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, const std::error_code&)'
operator<<(basic_ostream<_CharT, _Traits>& __os, const error_code& __e)
^~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/system_error:217:5: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1993:16: note: 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'} is not derived from 'std::basic_ostream<_CharT, _Traits>'
ss << std::fixed << std::setprecision(digits) << std::setfill(' ') << std::setw(width) << std::right << number;
^~~~~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/istream:39,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:38,
from F:\Code\CPP\StatusDisplay\main.cpp:33:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:497:5: note: candidate: 'template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, _CharT)'
operator<<(basic_ostream<_CharT, _Traits>& __out, _CharT __c)
^~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:497:5: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1993:16: note: 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'} is not derived from 'std::basic_ostream<_CharT, _Traits>'
ss << std::fixed << std::setprecision(digits) << std::setfill(' ') << std::setw(width) << std::right << number;
^~~~~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/istream:39,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:38,
from F:\Code\CPP\StatusDisplay\main.cpp:33:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:502:5: note: candidate: 'template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, char)'
operator<<(basic_ostream<_CharT, _Traits>& __out, char __c)
^~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:502:5: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1993:16: note: 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'} is not derived from 'std::basic_ostream<_CharT, _Traits>'
ss << std::fixed << std::setprecision(digits) << std::setfill(' ') << std::setw(width) << std::right << number;
^~~~~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/istream:39,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:38,
from F:\Code\CPP\StatusDisplay\main.cpp:33:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:508:5: note: candidate: 'template std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, char)'
operator<<(basic_ostream<char, _Traits>& __out, char __c)
^~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:508:5: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1993:16: note: 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'} is not derived from 'std::basic_ostream<char, _Traits>'
ss << std::fixed << std::setprecision(digits) << std::setfill(' ') << std::setw(width) << std::right << number;
^~~~~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/istream:39,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:38,
from F:\Code\CPP\StatusDisplay\main.cpp:33:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:514:5: note: candidate: 'template std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, signed char)'
operator<<(basic_ostream<char, _Traits>& __out, signed char __c)
^~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:514:5: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1993:16: note: 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'} is not derived from 'std::basic_ostream<char, _Traits>'
ss << std::fixed << std::setprecision(digits) << std::setfill(' ') << std::setw(width) << std::right << number;
^~~~~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/istream:39,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:38,
from F:\Code\CPP\StatusDisplay\main.cpp:33:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:519:5: note: candidate: 'template std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, unsigned char)'
operator<<(basic_ostream<char, _Traits>& __out, unsigned char __c)
^~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:519:5: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1993:16: note: 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'} is not derived from 'std::basic_ostream<char, _Traits>'
ss << std::fixed << std::setprecision(digits) << std::setfill(' ') << std::setw(width) << std::right << number;
^~~~~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/istream:39,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:38,
from F:\Code\CPP\StatusDisplay\main.cpp:33:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:539:5: note: candidate: 'template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, const _CharT*)'
operator<<(basic_ostream<_CharT, _Traits>& __out, const _CharT* __s)
^~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:539:5: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1993:16: note: 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'} is not derived from 'std::basic_ostream<_CharT, _Traits>'
ss << std::fixed << std::setprecision(digits) << std::setfill(' ') << std::setw(width) << std::right << number;
^~~~~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:693,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/istream:39,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:38,
from F:\Code\CPP\StatusDisplay\main.cpp:33:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/ostream.tcc:321:5: note: candidate: 'template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, const char*)'
operator<<(basic_ostream<_CharT, _Traits>& __out, const char* __s)
^~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/ostream.tcc:321:5: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1993:16: note: 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'} is not derived from 'std::basic_ostream<_CharT, _Traits>'
ss << std::fixed << std::setprecision(digits) << std::setfill(' ') << std::setw(width) << std::right << number;
^~~~~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/istream:39,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:38,
from F:\Code\CPP\StatusDisplay\main.cpp:33:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:556:5: note: candidate: 'template std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, const char*)'
operator<<(basic_ostream<char, _Traits>& __out, const char* __s)
^~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:556:5: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1993:16: note: 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'} is not derived from 'std::basic_ostream<char, _Traits>'
ss << std::fixed << std::setprecision(digits) << std::setfill(' ') << std::setw(width) << std::right << number;
^~~~~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/istream:39,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:38,
from F:\Code\CPP\StatusDisplay\main.cpp:33:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:569:5: note: candidate: 'template std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, const signed char*)'
operator<<(basic_ostream<char, _Traits>& __out, const signed char* __s)
^~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:569:5: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1993:16: note: 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'} is not derived from 'std::basic_ostream<char, _Traits>'
ss << std::fixed << std::setprecision(digits) << std::setfill(' ') << std::setw(width) << std::right << number;
^~~~~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/istream:39,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:38,
from F:\Code\CPP\StatusDisplay\main.cpp:33:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:574:5: note: candidate: 'template std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, const unsigned char*)'
operator<<(basic_ostream<char, _Traits>& __out, const unsigned char* __s)
^~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:574:5: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1993:16: note: 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'} is not derived from 'std::basic_ostream<char, _Traits>'
ss << std::fixed << std::setprecision(digits) << std::setfill(' ') << std::setw(width) << std::right << number;
^~~~~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/istream:39,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:38,
from F:\Code\CPP\StatusDisplay\main.cpp:33:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:682:5: note: candidate: 'template<class _Ostream, class _Tp> typename std::enable_if<std::_and<std::_not<std::is_lvalue_reference<_Tp> >, std::__is_convertible_to_basic_ostream<_Ostream>, std::__is_insertable<typename std::__is_convertible_to_basic_ostream<_Tp>::__ostream_type, const _Tp&, void> >::value, typename std::__is_convertible_to_basic_ostream<_Tp>::__ostream_type>::type std::operator<<(_Ostream&&, const _Tp&)'
operator<<(_Ostream&& __os, const _Tp& __x)
^~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:682:5: note: template argument deduction/substitution failed:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream: In substitution of 'template<class _Ostream, class _Tp> typename std::enable_if<std::_and<std::_not<std::is_lvalue_reference<_Tp> >, std::__is_convertible_to_basic_ostream<_Ostream>, std::__is_insertable<typename std::__is_convertible_to_basic_ostream<_Tp>::__ostream_type, const _Tp&, void> >::value, typename std::__is_convertible_to_basic_ostream<_Tp>::__ostream_type>::type std::operator<<(_Ostream&&, const _Tp&) [with _Ostream = std::__cxx11::basic_ostringstream&; _Tp = std::ios_base&(std::ios_base&)]':
F:\Code\CPP\StatusDisplay\main.cpp:1993:16: required from here
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ostream:682:5: error: no type named 'type' in 'struct std::enable_if<false, void>'
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/memory:81,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/thread:39,
from F:\Code\CPP\StatusDisplay\main.cpp:35:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/shared_ptr.h:66:5: note: candidate: 'template<class _Ch, class _Tr, class _Tp, __gnu_cxx::_Lock_policy _Lp> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, const std::__shared_ptr<_Tp, _Lp>&)'
operator<<(std::basic_ostream<_Ch, _Tr>& __os,
^~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/shared_ptr.h:66:5: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1993:16: note: 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'} is not derived from 'std::basic_ostream<_CharT, _Traits>'
ss << std::fixed << std::setprecision(digits) << std::setfill(' ') << std::setw(width) << std::right << number;
^~~~~
In file included from F:\Code\CPP\StatusDisplay\src/json.h:58,
from F:\Code\CPP\StatusDisplay\main.cpp:41:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/cstddef:124:5: note: candidate: 'template constexpr std::__byte_op_t<_IntegerType> std::operator<<(std::byte, _IntegerType)'
operator<<(byte __b, _IntegerType __shift) noexcept
^~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/cstddef:124:5: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1993:16: note: cannot convert 'ss' (type 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'}) to type 'std::byte'
ss << std::fixed << std::setprecision(digits) << std::setfill(' ') << std::setw(width) << std::right << number;
^~~~~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/valarray:592,
from F:\Code\CPP\StatusDisplay\src/json.h:979,
from F:\Code\CPP\StatusDisplay\main.cpp:41:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/valarray_after.h:410:5: note: candidate: 'template<class _Dom1, class _Dom2> std::_Expr<std::_BinClos<std::__shift_left, std::_Expr, std::_Expr, _Dom1, _Dom2>, typename std::__fun<std::__shift_left, typename _Dom1::value_type>::result_type> std::operator<<(const std::_Expr<_Dom1, typename _Dom1::value_type>&, const std::_Expr<_Dom2, typename _Dom2::value_type>&)'
_DEFINE_EXPR_BINARY_OPERATOR(<<, __shift_left)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/valarray_after.h:410:5: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1993:16: note: 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'} is not derived from 'const std::_Expr<_Dom1, typename _Dom1::value_type>'
ss << std::fixed << std::setprecision(digits) << std::setfill(' ') << std::setw(width) << std::right << number;
^~~~~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/valarray:592,
from F:\Code\CPP\StatusDisplay\src/json.h:979,
from F:\Code\CPP\StatusDisplay\main.cpp:41:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/valarray_after.h:410:5: note: candidate: 'template std::_Expr<std::_BinClos<std::__shift_left, std::_Expr, std::_Constant, _Dom, typename _Dom::value_type>, typename std::__fun<std::__shift_left, typename _Dom1::value_type>::result_type> std::operator<<(const std::_Expr<_Dom1, typename _Dom1::value_type>&, const typename _Dom::value_type&)'
_DEFINE_EXPR_BINARY_OPERATOR(<<, __shift_left)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/valarray_after.h:410:5: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1993:16: note: 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'} is not derived from 'const std::_Expr<_Dom1, typename _Dom1::value_type>'
ss << std::fixed << std::setprecision(digits) << std::setfill(' ') << std::setw(width) << std::right << number;
^~~~~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/valarray:592,
from F:\Code\CPP\StatusDisplay\src/json.h:979,
from F:\Code\CPP\StatusDisplay\main.cpp:41:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/valarray_after.h:410:5: note: candidate: 'template std::_Expr<std::_BinClos<std::__shift_left, std::_Constant, std::_Expr, typename _Dom::value_type, _Dom>, typename std::__fun<std::__shift_left, typename _Dom1::value_type>::result_type> std::operator<<(const typename _Dom::value_type&, const std::_Expr<_Dom1, typename _Dom1::value_type>&)'
_DEFINE_EXPR_BINARY_OPERATOR(<<, __shift_left)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/valarray_after.h:410:5: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1993:16: note: mismatched types 'const std::_Expr<_Dom1, typename _Dom1::value_type>' and 'std::ios_base&(std::ios_base&)'
ss << std::fixed << std::setprecision(digits) << std::setfill(' ') << std::setw(width) << std::right << number;
^~~~~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/valarray:592,
from F:\Code\CPP\StatusDisplay\src/json.h:979,
from F:\Code\CPP\StatusDisplay\main.cpp:41:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/valarray_after.h:410:5: note: candidate: 'template std::_Expr<std::_BinClos<std::__shift_left, std::_Expr, std::_ValArray, _Dom, typename _Dom::value_type>, typename std::__fun<std::__shift_left, typename _Dom1::value_type>::result_type> std::operator<<(const std::_Expr<_Dom1, typename _Dom1::value_type>&, const std::valarray&)'
_DEFINE_EXPR_BINARY_OPERATOR(<<, __shift_left)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/valarray_after.h:410:5: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1993:16: note: 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'} is not derived from 'const std::_Expr<_Dom1, typename _Dom1::value_type>'
ss << std::fixed << std::setprecision(digits) << std::setfill(' ') << std::setw(width) << std::right << number;
^~~~~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/valarray:592,
from F:\Code\CPP\StatusDisplay\src/json.h:979,
from F:\Code\CPP\StatusDisplay\main.cpp:41:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/valarray_after.h:410:5: note: candidate: 'template std::_Expr<std::_BinClos<std::__shift_left, std::_ValArray, std::_Expr, typename _Dom::value_type, _Dom>, typename std::__fun<std::__shift_left, typename _Dom1::value_type>::result_type> std::operator<<(const std::valarray&, const std::_Expr<_Dom1, typename _Dom1::value_type>&)'
_DEFINE_EXPR_BINARY_OPERATOR(<<, __shift_left)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/valarray_after.h:410:5: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1993:16: note: mismatched types 'const std::_Expr<_Dom1, typename _Dom1::value_type>' and 'std::ios_base&(std::ios_base&)'
ss << std::fixed << std::setprecision(digits) << std::setfill(' ') << std::setw(width) << std::right << number;
^~~~~
In file included from F:\Code\CPP\StatusDisplay\src/json.h:979,
from F:\Code\CPP\StatusDisplay\main.cpp:41:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/valarray:1180:1: note: candidate: 'template std::_Expr<std::_BinClos<std::__shift_left, std::_ValArray, std::_ValArray, _Tp, _Tp>, typename std::__fun<std::__shift_left, _Tp>::result_type> std::operator<<(const std::valarray<_Tp>&, const std::valarray<_Tp>&)'
_DEFINE_BINARY_OPERATOR(<<, __shift_left)
^~~~~~~~~~~~~~~~~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/valarray:1180:1: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1993:16: note: 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'} is not derived from 'const std::valarray<_Tp>'
ss << std::fixed << std::setprecision(digits) << std::setfill(' ') << std::setw(width) << std::right << number;
^~~~~
In file included from F:\Code\CPP\StatusDisplay\src/json.h:979,
from F:\Code\CPP\StatusDisplay\main.cpp:41:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/valarray:1180:1: note: candidate: 'template std::_Expr<std::_BinClos<std::__shift_left, std::_ValArray, std::_Constant, _Tp, _Tp>, typename std::__fun<std::__shift_left, _Tp>::result_type> std::operator<<(const std::valarray<_Tp>&, const _Tp&)'
_DEFINE_BINARY_OPERATOR(<<, __shift_left)
^~~~~~~~~~~~~~~~~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/valarray:1180:1: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1993:16: note: 'std::ostringstream' {aka 'std::__cxx11::basic_ostringstream'} is not derived from 'const std::valarray<_Tp>'
ss << std::fixed << std::setprecision(digits) << std::setfill(' ') << std::setw(width) << std::right << number;
^~~~~
In file included from F:\Code\CPP\StatusDisplay\src/json.h:979,
from F:\Code\CPP\StatusDisplay\main.cpp:41:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/valarray:1180:1: note: candidate: 'template std::_Expr<std::_BinClos<std::__shift_left, std::_Constant, std::_ValArray, _Tp, _Tp>, typename std::__fun<std::__shift_left, _Tp>::result_type> std::operator<<(const _Tp&, const std::valarray<_Tp>&)'
_DEFINE_BINARY_OPERATOR(<<, __shift_left)
^~~~~~~~~~~~~~~~~~~~~~~
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/valarray:1180:1: note: template argument deduction/substitution failed:
F:\Code\CPP\StatusDisplay\main.cpp:1993:16: note: mismatched types 'const std::valarray<_Tp>' and 'std::ios_base&(std::ios_base&)'
ss << std::fixed << std::setprecision(digits) << std::setfill(' ') << std::setw(width) << std::right << number;
^~~~~
F:\Code\CPP\StatusDisplay\main.cpp:1993:30: error: 'setprecision' is not a member of 'std'
ss << std::fixed << std::setprecision(digits) << std::setfill(' ') << std::setw(width) << std::right << number;
^~~~~~~~~~~~
F:\Code\CPP\StatusDisplay\main.cpp:1993:30: note: suggested alternative: 'set_union'
ss << std::fixed << std::setprecision(digits) << std::setfill(' ') << std::setw(width) << std::right << number;
^~~~~~~~~~~~
set_union
F:\Code\CPP\StatusDisplay\main.cpp:1993:59: error: 'setfill' is not a member of 'std'
ss << std::fixed << std::setprecision(digits) << std::setfill(' ') << std::setw(width) << std::right << number;
^~~~~~~
F:\Code\CPP\StatusDisplay\main.cpp:1993:59: note: suggested alternative: 'fill'
ss << std::fixed << std::setprecision(digits) << std::setfill(' ') << std::setw(width) << std::right << number;
^~~~~~~
fill
F:\Code\CPP\StatusDisplay\main.cpp:1993:80: error: 'setw' is not a member of 'std'
ss << std::fixed << std::setprecision(digits) << std::setfill(' ') << std::setw(width) << std::right << number;
^~~~
F:\Code\CPP\StatusDisplay\main.cpp:1993:80: note: suggested alternative: 'beta'
ss << std::fixed << std::setprecision(digits) << std::setfill(' ') << std::setw(width) << std::right << number;
^~~~
beta
F:\Code\CPP\StatusDisplay\main.cpp:1992:24: error: 'ss' has incomplete type
std::ostringstream ss;
^~
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ios:38,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/istream:38,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:38,
from F:\Code\CPP\StatusDisplay\main.cpp:33:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/iosfwd:104:11: note: declaration of 'std::ostringstream' {aka 'class std::__cxx11::basic_ostringstream'}
class basic_ostringstream;
^~~~~~~~~~~~~~~~~~~
F:\Code\CPP\StatusDisplay\main.cpp: In function 'bool is_numeric(const string&)':
F:\Code\CPP\StatusDisplay\main.cpp:2000:36: error: invalid use of incomplete type 'std::istringstream' {aka 'class std::__cxx11::basic_istringstream'}
auto i = std::istringstream(str);
^
In file included from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ios:38,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/istream:38,
from F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:38,
from F:\Code\CPP\StatusDisplay\main.cpp:33:
F:/Code/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/iosfwd:100:11: note: declaration of 'std::istringstream' {aka 'class std::__cxx11::basic_istringstream'}
class basic_istringstream;
^~~~~~~~~~~~~~~~~~~
F:\Code\CPP\StatusDisplay\main.cpp: In function 'std::__cxx11::string DoubleToHex(double)':
F:\Code\CPP\StatusDisplay\main.cpp:2012:24: error: aggregate 'std::ostringstream ss' has incomplete type and cannot be defined
std::ostringstream ss;
^~
F:\Code\CPP\StatusDisplay\main.cpp:2013:46: error: 'setfill' is not a member of 'std'
ss << std::hex << std::uppercase << std::setfill('0') << std::setw(8) << tempD64.UInt32s[1];
^~~~~~~
F:\Code\CPP\StatusDisplay\main.cpp:2013:46: note: suggested alternative: 'fill'
ss << std::hex << std::uppercase << std::setfill('0') << std::setw(8) << tempD64.UInt32s[1];
^~~~~~~
fill
F:\Code\CPP\StatusDisplay\main.cpp:2013:67: error: 'setw' is not a member of 'std'
ss << std::hex << std::uppercase << std::setfill('0') << std::setw(8) << tempD64.UInt32s[1];
^~~~
F:\Code\CPP\StatusDisplay\main.cpp:2013:67: note: suggested alternative: 'beta'
ss << std::hex << std::uppercase << std::setfill('0') << std::setw(8) << tempD64.UInt32s[1];
^~~~
beta
F:\Code\CPP\StatusDisplay\main.cpp:2014:46: error: 'setfill' is not a member of 'std'
ss << std::hex << std::uppercase << std::setfill('0') << std::setw(8) << tempD64.UInt32s[0];
^~~~~~~
F:\Code\CPP\StatusDisplay\main.cpp:2014:46: note: suggested alternative: 'fill'
ss << std::hex << std::uppercase << std::setfill('0') << std::setw(8) << tempD64.UInt32s[0];
^~~~~~~
fill
F:\Code\CPP\StatusDisplay\main.cpp:2014:67: error: 'setw' is not a member of 'std'
ss << std::hex << std::uppercase << std::setfill('0') << std::setw(8) << tempD64.UInt32s[0];
^~~~
F:\Code\CPP\StatusDisplay\main.cpp:2014:67: note: suggested alternative: 'beta'
ss << std::hex << std::uppercase << std::setfill('0') << std::setw(8) << tempD64.UInt32s[0];
^~~~
beta
F:\Code\CPP\StatusDisplay\main.cpp: In function 'std::__cxx11::string SixtyFourToHex(uint64_t)':
F:\Code\CPP\StatusDisplay\main.cpp:2022:24: error: aggregate 'std::ostringstream ss' has incomplete type and cannot be defined
std::ostringstream ss;
^~
F:\Code\CPP\StatusDisplay\main.cpp:2023:46: error: 'setfill' is not a member of 'std'
ss << std::hex << std::uppercase << std::setfill('0') << std::setw(8) << tempD64.UInt32s[1];
^~~~~~~
F:\Code\CPP\StatusDisplay\main.cpp:2023:46: note: suggested alternative: 'fill'
ss << std::hex << std::uppercase << std::setfill('0') << std::setw(8) << tempD64.UInt32s[1];
^~~~~~~
fill
F:\Code\CPP\StatusDisplay\main.cpp:2023:67: error: 'setw' is not a member of 'std'
ss << std::hex << std::uppercase << std::setfill('0') << std::setw(8) << tempD64.UInt32s[1];
^~~~
F:\Code\CPP\StatusDisplay\main.cpp:2023:67: note: suggested alternative: 'beta'
ss << std::hex << std::uppercase << std::setfill('0') << std::setw(8) << tempD64.UInt32s[1];
^~~~
beta
F:\Code\CPP\StatusDisplay\main.cpp:2024:46: error: 'setfill' is not a member of 'std'
ss << std::hex << std::uppercase << std::setfill('0') << std::setw(8) << tempD64.UInt32s[0];
^~~~~~~
F:\Code\CPP\StatusDisplay\main.cpp:2024:46: note: suggested alternative: 'fill'
ss << std::hex << std::uppercase << std::setfill('0') << std::setw(8) << tempD64.UInt32s[0];
^~~~~~~
fill
F:\Code\CPP\StatusDisplay\main.cpp:2024:67: error: 'setw' is not a member of 'std'
ss << std::hex << std::uppercase << std::setfill('0') << std::setw(8) << tempD64.UInt32s[0];
^~~~
F:\Code\CPP\StatusDisplay\main.cpp:2024:67: note: suggested alternative: 'beta'
ss << std::hex << std::uppercase << std::setfill('0') << std::setw(8) << tempD64.UInt32s[0];
^~~~
beta
F:\Code\CPP\StatusDisplay\main.cpp: In function 'std::__cxx11::string LongToHex(int32_t)':
F:\Code\CPP\StatusDisplay\main.cpp:2030:24: error: aggregate 'std::ostringstream ss' has incomplete type and cannot be defined
std::ostringstream ss;
^~
F:\Code\CPP\StatusDisplay\main.cpp:2031:46: error: 'setfill' is not a member of 'std'
ss << std::hex << std::uppercase << std::setfill('0') << std::setw(8) << lth_l;
^~~~~~~
F:\Code\CPP\StatusDisplay\main.cpp:2031:46: note: suggested alternative: 'fill'
ss << std::hex << std::uppercase << std::setfill('0') << std::setw(8) << lth_l;
^~~~~~~
fill
F:\Code\CPP\StatusDisplay\main.cpp:2031:67: error: 'setw' is not a member of 'std'
ss << std::hex << std::uppercase << std::setfill('0') << std::setw(8) << lth_l;
^~~~
F:\Code\CPP\StatusDisplay\main.cpp:2031:67: note: suggested alternative: 'beta'
ss << std::hex << std::uppercase << std::setfill('0') << std::setw(8) << lth_l;
^~~~
beta
F:\Code\CPP\StatusDisplay\main.cpp: In function 'std::__cxx11::string CardinalToHex(uint32_t)':
F:\Code\CPP\StatusDisplay\main.cpp:2037:24: error: aggregate 'std::ostringstream ss' has incomplete type and cannot be defined
std::ostringstream ss;
^~
F:\Code\CPP\StatusDisplay\main.cpp:2038:46: error: 'setfill' is not a member of 'std'
ss << std::hex << std::uppercase << std::setfill('0') << std::setw(8) << cth_c;
^~~~~~~
F:\Code\CPP\StatusDisplay\main.cpp:2038:46: note: suggested alternative: 'fill'
ss << std::hex << std::uppercase << std::setfill('0') << std::setw(8) << cth_c;
^~~~~~~
fill
F:\Code\CPP\StatusDisplay\main.cpp:2038:67: error: 'setw' is not a member of 'std'
ss << std::hex << std::uppercase << std::setfill('0') << std::setw(8) << cth_c;
^~~~
F:\Code\CPP\StatusDisplay\main.cpp:2038:67: note: suggested alternative: 'beta'
ss << std::hex << std::uppercase << std::setfill('0') << std::setw(8) << cth_c;
^~~~
beta
F:\Code\CPP\StatusDisplay\main.cpp: In function 'std::__cxx11::string WordToHex(uint16_t)':
F:\Code\CPP\StatusDisplay\main.cpp:2044:24: error: aggregate 'std::ostringstream ss' has incomplete type and cannot be defined
std::ostringstream ss;
^~
F:\Code\CPP\StatusDisplay\main.cpp:2045:46: error: 'setfill' is not a member of 'std'
ss << std::hex << std::uppercase << std::setfill('0') << std::setw(4) << wth_w;
^~~~~~~
F:\Code\CPP\StatusDisplay\main.cpp:2045:46: note: suggested alternative: 'fill'
ss << std::hex << std::uppercase << std::setfill('0') << std::setw(4) << wth_w;
^~~~~~~
fill
F:\Code\CPP\StatusDisplay\main.cpp:2045:67: error: 'setw' is not a member of 'std'
ss << std::hex << std::uppercase << std::setfill('0') << std::setw(4) << wth_w;
^~~~
F:\Code\CPP\StatusDisplay\main.cpp:2045:67: note: suggested alternative: 'beta'
ss << std::hex << std::uppercase << std::setfill('0') << std::setw(4) << wth_w;
^~~~
beta
F:\Code\CPP\StatusDisplay\main.cpp: In function 'std::__cxx11::string WordToHexTrip(uint16_t)':
F:\Code\CPP\StatusDisplay\main.cpp:2051:24: error: aggregate 'std::ostringstream ss' has incomplete type and cannot be defined
std::ostringstream ss;
^~
F:\Code\CPP\StatusDisplay\main.cpp:2052:46: error: 'setfill' is not a member of 'std'
ss << std::hex << std::uppercase << std::setfill('0') << std::setw(3) << wth_w;
^~~~~~~
F:\Code\CPP\StatusDisplay\main.cpp:2052:46: note: suggested alternative: 'fill'
ss << std::hex << std::uppercase << std::setfill('0') << std::setw(3) << wth_w;
^~~~~~~
fill
F:\Code\CPP\StatusDisplay\main.cpp:2052:67: error: 'setw' is not a member of 'std'
ss << std::hex << std::uppercase << std::setfill('0') << std::setw(3) << wth_w;
^~~~
F:\Code\CPP\StatusDisplay\main.cpp:2052:67: note: suggested alternative: 'beta'
ss << std::hex << std::uppercase << std::setfill('0') << std::setw(3) << wth_w;
^~~~
beta
F:\Code\CPP\StatusDisplay\main.cpp: In function 'std::__cxx11::string ByteToHex(uint8_t)':
F:\Code\CPP\StatusDisplay\main.cpp:2058:24: error: aggregate 'std::ostringstream ss' has incomplete type and cannot be defined
std::ostringstream ss;
^~
F:\Code\CPP\StatusDisplay\main.cpp:2059:46: error: 'setfill' is not a member of 'std'
ss << std::hex << std::uppercase << std::setfill('0') << std::setw(2) << bth_b;
^~~~~~~
F:\Code\CPP\StatusDisplay\main.cpp:2059:46: note: suggested alternative: 'fill'
ss << std::hex << std::uppercase << std::setfill('0') << std::setw(2) << bth_b;
^~~~~~~
fill
F:\Code\CPP\StatusDisplay\main.cpp:2059:67: error: 'setw' is not a member of 'std'
Process terminated with status 1 (0 minute(s), 11 second(s))
50 error(s), 3 warning(s) (0 minute(s), 11 second(s))

@NickCNA
Copy link
Author

NickCNA commented Aug 17, 2018

As an aside, I've added the following lines to the previously working version:

# pragma GCC diagnostic ignored "-Wswitch-enum"
# pragma GCC diagnostic ignored "-Wswitch-default"

inside this block:

// disable float-equal warnings on GCC/clang
#if defined(__clang__) || defined(__GNUC__) || defined(__GNUG__)
    #pragma GCC diagnostic push
    #pragma GCC diagnostic ignored "-Wfloat-equal"
#endif

.... to avoid compiler messages when these switches are enabled.

@nlohmann
Copy link
Owner

Could you show the content of main.cpp. Could you also make sure you use the latest develop version?

@NickCNA
Copy link
Author

NickCNA commented Aug 24, 2018

I've tried the latest develop version - the error remains the same, with ostringstream having an incomplete type.

There are about 11,000 lines in main.cpp....

.... so I'll try to cut it back to a bare minimum while still producing the error - even better if I find the cause. :)

@nlohmann
Copy link
Owner

Thanks!

@NickCNA
Copy link
Author

NickCNA commented Aug 24, 2018

I've managed to prune main.cpp (and remove all non-standard external dependencies, other than json.hpp, of course):
main.txt
(uploaded as a text file, this page's drag'n'drop didn't like "main.cpp"....)

@nlohmann
Copy link
Owner

That file has no usage of the library other than including it.

Does

#include "src/json.h"

int main() {}

yield an error?

@NickCNA
Copy link
Author

NickCNA commented Aug 25, 2018

Good point.

The minimalist version you posted does indeed compile.

From further iteration, removing the following section from the code I posted yesterday:

template <typename T> inline std::string NumToStr(T number)
{
    std::ostringstream ss;
    ss << number;
    return ss.str();
}

results in a successful compile / run.

Which is odd, given that the older json.hpp version that I am using that works has no issue with the ostringstream type.

@nlohmann
Copy link
Owner

The new version does not use string streams any longer.

@NickCNA
Copy link
Author

NickCNA commented Aug 25, 2018

Interesting - the version that works definitely does use string streams - it may be something to do with the removal of use of string streams that has caused the error to arise.

@nlohmann
Copy link
Owner

I am not sure how to proceed. We have yet to find whether the library causes the error.

@NickCNA
Copy link
Author

NickCNA commented Aug 25, 2018

Indeed.

It's odd that the older version works and the newer version does not - when the major (apparent) difference is the use (or not) of string streams in the library.

I'll continue to use the old version, for which I am both grateful for the effort you put into it and the fact that it works.

For reference, the version that I am using was the develop version on 8th June 2018.

@reinerh
Copy link

reinerh commented Sep 10, 2018

@NickCNA Add #include <sstream> to your main.cpp.
You are using a stringstream without including the header. With older json headers this has already been indirectly included, but this is no longer the case as it is no longer needed for the json header.

@NickCNA
Copy link
Author

NickCNA commented Sep 10, 2018

@reinerh Many thanks indeed - while #include <sstream> did not work, including #include <iomanip> did.

Much appreciated.

Issue closed as it is not library related, rather user error.

@NickCNA
Copy link
Author

NickCNA commented Sep 10, 2018

Closed accordingly.

@NickCNA NickCNA closed this as completed Sep 10, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants