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

MSVC build fail #2

Open
Neargye opened this issue Sep 2, 2019 · 16 comments
Open

MSVC build fail #2

Neargye opened this issue Sep 2, 2019 · 16 comments

Comments

@Neargye
Copy link
Contributor

Neargye commented Sep 2, 2019

C:\Users\root\Desktop\github\dry-comparisons>if exist build RMDIR /S /Q build

C:\Users\root\Desktop\github\dry-comparisons>if not exist build mkdir build

C:\Users\root\Desktop\github\dry-comparisons>cd build

C:\Users\root\Desktop\github\dry-comparisons\build>cmake .. -G "Visual Studio 16 2019" -A x64
-- Selecting Windows SDK version 10.0.17763.0 to target Windows 10.0.18362.
-- The C compiler identification is MSVC 19.22.27905.0
-- The CXX compiler identification is MSVC 19.22.27905.0
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.22.27905/bin/Hostx64/x64/cl.exe
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.22.27905/bin/Hostx64/x64/cl.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.22.27905/bin/Hostx64/x64/cl.exe
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.22.27905/bin/Hostx64/x64/cl.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: C:/Users/root/Desktop/github/dry-comparisons/build

C:\Users\root\Desktop\github\dry-comparisons\build>cmake --build . --config Release
Microsoft (R) Build Engine версии 16.2.37902+b5aaefc9f для .NET Framework
(C) Корпорация Майкрософт (Microsoft Corporation). Все права защищены.

  Checking Build System
  CMake does not need to re-run because C:/Users/root/Desktop/github/dry-comparisons/build/CMakeFiles/generate.stamp is up-to-date.
  Building Custom Rule C:/Users/root/Desktop/github/dry-comparisons/CMakeLists.txt
  CMake does not need to re-run because C:/Users/root/Desktop/github/dry-comparisons/build/CMakeFiles/generate.stamp is up-to-date.
  self_test.cpp
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(92,38): error C3520:  'T': parameter pack must be expanded in this context [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(91): message :  while compiling class template member function 'bool rollbear::any_of<int,int,int>::operator ==<U>(const U &) noexcept(<expr>) const' [C:\Users\root\Deskto
p\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(91): message :         with [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(91): message :         [ [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(91): message :             U=int [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(91): message :         ] [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(98): message :  see reference to function template instantiation 'bool rollbear::operator ==<int,void>(const U &,const rollbear::any_of<int,int,int> &) noexcept(<expr>)' b
eing compiled [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(98): message :         with [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(98): message :         [ [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(98): message :             U=int [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(98): message :         ] [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.22.27905\include\type_traits(55): message :  see reference to class template instantiation 'std::integral_constant<bool,true>' being compiled [C:\Users\root\
Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.22.27905\include\type_traits(55): message :  see reference to class template instantiation 'std::conjunction<_Traits...>' being compiled [C:\Users\root\Deskt
op\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(92,1): error C2059:  syntax error: '...' [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(106,38): error C3520:  'T': parameter pack must be expanded in this context [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(105): message :  while compiling class template member function 'bool rollbear::any_of<int,int,int>::operator !=<U>(const U &) noexcept(<expr>) const' [C:\Users\root\Deskt
op\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(105): message :         with [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(105): message :         [ [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(105): message :             U=int [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(105): message :         ] [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(112): message :  see reference to function template instantiation 'bool rollbear::operator !=<int,void>(const U &,const rollbear::any_of<int,int,int> &) noexcept(<expr>)'
being compiled [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(112): message :         with [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(112): message :         [ [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(112): message :             U=int [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(112): message :         ] [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(84): message :  see reference to class template instantiation 'rollbear::internal::logical_tuple<int,int,int>' being compiled [C:\Users\root\Desktop\github\dry-comparisons
\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\self_test.cpp(30): message :  see reference to class template instantiation 'rollbear::any_of<int,int,int>' being compiled [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxpro
j]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(106,1): error C2059:  syntax error: '...' [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(148,38): error C3520:  'T': parameter pack must be expanded in this context [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(147): message :  while compiling class template member function 'bool rollbear::any_of<int,int,int,int>::operator ><U>(const U &) noexcept(<expr>) const' [C:\Users\root\De
sktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(147): message :         with [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(147): message :         [ [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(147): message :             U=int [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(147): message :         ] [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(154): message :  see reference to function template instantiation 'bool rollbear::operator <<int,void>(const U &,const rollbear::any_of<int,int,int,int> &) noexcept(<expr>
)' being compiled [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(154): message :         with [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(154): message :         [ [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(154): message :             U=int [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(154): message :         ] [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(148,1): error C2059:  syntax error: '...' [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(162,38): error C3520:  'T': parameter pack must be expanded in this context [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(161): message :  while compiling class template member function 'bool rollbear::any_of<int,int,int,int>::operator >=<U>(const U &) noexcept(<expr>) const' [C:\Users\root\D
esktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(161): message :         with [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(161): message :         [ [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(161): message :             U=int [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(161): message :         ] [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(168): message :  see reference to function template instantiation 'bool rollbear::operator <=<int,void>(const U &,const rollbear::any_of<int,int,int,int> &) noexcept(<expr
>)' being compiled [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(168): message :         with [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(168): message :         [ [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(168): message :             U=int [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(168): message :         ] [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(84): message :  see reference to class template instantiation 'rollbear::internal::logical_tuple<int,int,int,int>' being compiled [C:\Users\root\Desktop\github\dry-compari
sons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\self_test.cpp(35): message :  see reference to class template instantiation 'rollbear::any_of<int,int,int,int>' being compiled [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vc
xproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(162,1): error C2059:  syntax error: '...' [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(120,38): error C3520:  'T': parameter pack must be expanded in this context [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(119): message :  while compiling class template member function 'bool rollbear::any_of<int,int,int>::operator <<U>(const U &) noexcept(<expr>) const' [C:\Users\root\Deskto
p\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(119): message :         with [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(119): message :         [ [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(119): message :             U=int [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(119): message :         ] [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(126): message :  see reference to function template instantiation 'bool rollbear::operator ><int,void>(const U &,const rollbear::any_of<int,int,int> &) noexcept(<expr>)' b
eing compiled [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(126): message :         with [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(126): message :         [ [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(126): message :             U=int [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(126): message :         ] [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(120,1): error C2059:  syntax error: '...' [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(134,38): error C3520:  'T': parameter pack must be expanded in this context [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(133): message :  while compiling class template member function 'bool rollbear::any_of<int,int,int,int>::operator <=<U>(const U &) noexcept(<expr>) const' [C:\Users\root\D
esktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(133): message :         with [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(133): message :         [ [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(133): message :             U=int [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(133): message :         ] [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(140): message :  see reference to function template instantiation 'bool rollbear::operator >=<int,void>(const U &,const rollbear::any_of<int,int,int,int> &) noexcept(<expr
>)' being compiled [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(140): message :         with [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(140): message :         [ [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(140): message :             U=int [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(140): message :         ] [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(134,1): error C2059:  syntax error: '...' [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\self_test.cpp(47,21): error C2672:  'operator __surrogate_func': no matching overloaded function found [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\self_test.cpp(47,48): error C2893:  Failed to specialize function template 'enable_if<std::conjunction_v<std::is_copy_constructible<Ts>...>&&std::conjunction_v<std::is_invocable<const <lambda
_d04b8e5cc40bfd0d0232bd46179b5f1b>&,Ts...>,std::is_invocable<const <lambda_ddcf53d9d14ea1a98318f06d00044f5f>&,Ts...>,std::is_invocable<const <lambda_867d7aa182ec395a44e1038ca5b79705>&,Ts...>>,rollbear::any_of<rollbear::internal::bound<c
onst <lambda_d04b8e5cc40bfd0d0232bd46179b5f1b>&,Ts...>,rollbear::internal::bound<const <lambda_ddcf53d9d14ea1a98318f06d00044f5f>&,Ts...>,rollbear::internal::bound<const <lambda_867d7aa182ec395a44e1038ca5b79705>&,Ts...>>>::type rollbear:
:any_of<const <lambda_d04b8e5cc40bfd0d0232bd46179b5f1b> &,const <lambda_ddcf53d9d14ea1a98318f06d00044f5f> &,const <lambda_867d7aa182ec395a44e1038ca5b79705> &>::operator ()(Ts &&...) noexcept(<expr>) const' [C:\Users\root\Desktop\github\
dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\self_test.cpp(47,48): message :  With the following template arguments: [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\self_test.cpp(47,48): message :  'Ts={int}' [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\self_test.cpp(48,33): error C2672:  'operator __surrogate_func': no matching overloaded function found [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\self_test.cpp(48,60): error C2893:  Failed to specialize function template 'enable_if<std::conjunction_v<std::is_copy_constructible<Ts>...>&&std::conjunction_v<std::is_invocable<const <lambda
_d04b8e5cc40bfd0d0232bd46179b5f1b>&,Ts...>,std::is_invocable<const <lambda_ddcf53d9d14ea1a98318f06d00044f5f>&,Ts...>,std::is_invocable<const <lambda_867d7aa182ec395a44e1038ca5b79705>&,Ts...>>,rollbear::any_of<rollbear::internal::bound<c
onst <lambda_d04b8e5cc40bfd0d0232bd46179b5f1b>&,Ts...>,rollbear::internal::bound<const <lambda_ddcf53d9d14ea1a98318f06d00044f5f>&,Ts...>,rollbear::internal::bound<const <lambda_867d7aa182ec395a44e1038ca5b79705>&,Ts...>>>::type rollbear:
:any_of<const <lambda_d04b8e5cc40bfd0d0232bd46179b5f1b> &,const <lambda_ddcf53d9d14ea1a98318f06d00044f5f> &,const <lambda_867d7aa182ec395a44e1038ca5b79705> &>::operator ()(Ts &&...) noexcept(<expr>) const' [C:\Users\root\Desktop\github\
dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\self_test.cpp(48,60): message :  With the following template arguments: [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\self_test.cpp(48,60): message :  'Ts={int}' [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(325,38): error C3520:  'T': parameter pack must be expanded in this context [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(324): message :  while compiling class template member function 'bool rollbear::all_of<int,int,int>::operator ==<U>(const U &) noexcept(<expr>) const' [C:\Users\root\Deskt
op\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(324): message :         with [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(324): message :         [ [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(324): message :             U=int [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(324): message :         ] [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(331): message :  see reference to function template instantiation 'bool rollbear::operator ==<int,void>(const U &,const rollbear::all_of<int,int,int> &) noexcept(<expr>)'
being compiled [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(331): message :         with [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(331): message :         [ [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(331): message :             U=int [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(331): message :         ] [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(325,1): error C2059:  syntax error: '...' [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(339,38): error C3520:  'T': parameter pack must be expanded in this context [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(338): message :  while compiling class template member function 'bool rollbear::all_of<int,int,int>::operator !=<U>(const U &) noexcept(<expr>) const' [C:\Users\root\Deskt
op\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(338): message :         with [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(338): message :         [ [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(338): message :             U=int [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(338): message :         ] [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(345): message :  see reference to function template instantiation 'bool rollbear::operator !=<int,void>(const U &,const rollbear::all_of<int,int,int> &) noexcept(<expr>)'
being compiled [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(345): message :         with [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(345): message :         [ [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(345): message :             U=int [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(345): message :         ] [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(339,1): error C2059:  syntax error: '...' [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(381,38): error C3520:  'T': parameter pack must be expanded in this context [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(380): message :  while compiling class template member function 'bool rollbear::all_of<int,int,int>::operator ><U>(const U &) noexcept(<expr>) const' [C:\Users\root\Deskto
p\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(380): message :         with [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(380): message :         [ [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(380): message :             U=int [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(380): message :         ] [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(387): message :  see reference to function template instantiation 'bool rollbear::operator <<int,void>(const U &,const rollbear::all_of<int,int,int> &) noexcept(<expr>)' b
eing compiled [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(387): message :         with [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(387): message :         [ [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(387): message :             U=int [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(387): message :         ] [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(381,1): error C2059:  syntax error: '...' [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(395,38): error C3520:  'T': parameter pack must be expanded in this context [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(394): message :  while compiling class template member function 'bool rollbear::all_of<int,int,int,int>::operator >=<U>(const U &) noexcept(<expr>) const' [C:\Users\root\D
esktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(394): message :         with [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(394): message :         [ [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(394): message :             U=int [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(394): message :         ] [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(401): message :  see reference to function template instantiation 'bool rollbear::operator <=<int,void>(const U &,const rollbear::all_of<int,int,int,int> &) noexcept(<expr
>)' being compiled [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(401): message :         with [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(401): message :         [ [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(401): message :             U=int [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(401): message :         ] [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(395,1): error C2059:  syntax error: '...' [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(353,38): error C3520:  'T': parameter pack must be expanded in this context [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(352): message :  while compiling class template member function 'bool rollbear::all_of<int,int,int>::operator <<U>(const U &) noexcept(<expr>) const' [C:\Users\root\Deskto
p\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(352): message :         with [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(352): message :         [ [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(352): message :             U=int [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(352): message :         ] [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(359): message :  see reference to function template instantiation 'bool rollbear::operator ><int,void>(const U &,const rollbear::all_of<int,int,int> &) noexcept(<expr>)' b
eing compiled [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(359): message :         with [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(359): message :         [ [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(359): message :             U=int [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(359): message :         ] [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(353,1): error C2059:  syntax error: '...' [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(367,38): error C3520:  'T': parameter pack must be expanded in this context [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(366): message :  while compiling class template member function 'bool rollbear::all_of<int,int,int,int>::operator <=<U>(const U &) noexcept(<expr>) const' [C:\Users\root\D
esktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(366): message :         with [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(366): message :         [ [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(366): message :             U=int [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(366): message :         ] [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(373): message :  see reference to function template instantiation 'bool rollbear::operator >=<int,void>(const U &,const rollbear::all_of<int,int,int,int> &) noexcept(<expr
>)' being compiled [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(373): message :         with [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(373): message :         [ [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(373): message :             U=int [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(373): message :         ] [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(367,1): error C2059:  syntax error: '...' [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\self_test.cpp(68,33): error C2672:  'operator __surrogate_func': no matching overloaded function found [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\self_test.cpp(68,60): error C2893:  Failed to specialize function template 'enable_if<std::conjunction_v<std::is_copy_constructible<Ts>...>&&std::conjunction_v<std::is_invocable<const <lambda
_d04b8e5cc40bfd0d0232bd46179b5f1b>&,Ts...>,std::is_invocable<const <lambda_ddcf53d9d14ea1a98318f06d00044f5f>&,Ts...>,std::is_invocable<const <lambda_867d7aa182ec395a44e1038ca5b79705>&,Ts...>>,rollbear::all_of<rollbear::internal::bound<c
onst <lambda_d04b8e5cc40bfd0d0232bd46179b5f1b>&,Ts...>,rollbear::internal::bound<const <lambda_ddcf53d9d14ea1a98318f06d00044f5f>&,Ts...>,rollbear::internal::bound<const <lambda_867d7aa182ec395a44e1038ca5b79705>&,Ts...>>>::type rollbear:
:all_of<const <lambda_d04b8e5cc40bfd0d0232bd46179b5f1b> &,const <lambda_ddcf53d9d14ea1a98318f06d00044f5f> &,const <lambda_867d7aa182ec395a44e1038ca5b79705> &>::operator ()(Ts &&...) noexcept(<expr>) const' [C:\Users\root\Desktop\github\
dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\self_test.cpp(68,60): message :  With the following template arguments: [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\self_test.cpp(68,60): message :  'Ts={int}' [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\self_test.cpp(69,21): error C2672:  'operator __surrogate_func': no matching overloaded function found [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\self_test.cpp(69,48): error C2893:  Failed to specialize function template 'enable_if<std::conjunction_v<std::is_copy_constructible<Ts>...>&&std::conjunction_v<std::is_invocable<const <lambda
_d04b8e5cc40bfd0d0232bd46179b5f1b>&,Ts...>,std::is_invocable<const <lambda_ddcf53d9d14ea1a98318f06d00044f5f>&,Ts...>,std::is_invocable<const <lambda_867d7aa182ec395a44e1038ca5b79705>&,Ts...>>,rollbear::all_of<rollbear::internal::bound<c
onst <lambda_d04b8e5cc40bfd0d0232bd46179b5f1b>&,Ts...>,rollbear::internal::bound<const <lambda_ddcf53d9d14ea1a98318f06d00044f5f>&,Ts...>,rollbear::internal::bound<const <lambda_867d7aa182ec395a44e1038ca5b79705>&,Ts...>>>::type rollbear:
:all_of<const <lambda_d04b8e5cc40bfd0d0232bd46179b5f1b> &,const <lambda_ddcf53d9d14ea1a98318f06d00044f5f> &,const <lambda_867d7aa182ec395a44e1038ca5b79705> &>::operator ()(Ts &&...) noexcept(<expr>) const' [C:\Users\root\Desktop\github\
dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\self_test.cpp(69,48): message :  With the following template arguments: [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\self_test.cpp(69,48): message :  'Ts={int}' [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(208,39): error C3520:  'T': parameter pack must be expanded in this context [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(207): message :  while compiling class template member function 'bool rollbear::none_of<int,int,int>::operator ==<U>(const U &) noexcept(<expr>) const' [C:\Users\root\Desk
top\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(207): message :         with [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(207): message :         [ [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(207): message :             U=int [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(207): message :         ] [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(214): message :  see reference to function template instantiation 'bool rollbear::operator ==<int,void>(const U &,const rollbear::none_of<int,int,int> &) noexcept(<expr>)'
 being compiled [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(214): message :         with [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(214): message :         [ [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(214): message :             U=int [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(214): message :         ] [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(208,1): error C2059:  syntax error: '...' [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(222,39): error C3520:  'T': parameter pack must be expanded in this context [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(221): message :  while compiling class template member function 'bool rollbear::none_of<int,int,int,int>::operator !=<U>(const U &) noexcept(<expr>) const' [C:\Users\root\
Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(221): message :         with [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(221): message :         [ [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(221): message :             U=int [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(221): message :         ] [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(228): message :  see reference to function template instantiation 'bool rollbear::operator !=<int,void>(const U &,const rollbear::none_of<int,int,int,int> &) noexcept(<exp
r>)' being compiled [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(228): message :         with [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(228): message :         [ [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(228): message :             U=int [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(228): message :         ] [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(222,1): error C2059:  syntax error: '...' [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(264,39): error C3520:  'T': parameter pack must be expanded in this context [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(263): message :  while compiling class template member function 'bool rollbear::none_of<int,int,int,int>::operator ><U>(const U &) noexcept(<expr>) const' [C:\Users\root\D
esktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(263): message :         with [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(263): message :         [ [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(263): message :             U=int [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(263): message :         ] [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(270): message :  see reference to function template instantiation 'bool rollbear::operator <<int,void>(const U &,const rollbear::none_of<int,int,int,int> &) noexcept(<expr
>)' being compiled [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(270): message :         with [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(270): message :         [ [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(270): message :             U=int [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(270): message :         ] [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(264,1): error C2059:  syntax error: '...' [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(278,39): error C3520:  'T': parameter pack must be expanded in this context [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(277): message :  while compiling class template member function 'bool rollbear::none_of<int,int,int>::operator >=<U>(const U &) noexcept(<expr>) const' [C:\Users\root\Desk
top\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(277): message :         with [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(277): message :         [ [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(277): message :             U=int [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(277): message :         ] [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(284): message :  see reference to function template instantiation 'bool rollbear::operator <=<int,void>(const U &,const rollbear::none_of<int,int,int> &) noexcept(<expr>)'
 being compiled [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(284): message :         with [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(284): message :         [ [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(284): message :             U=int [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(284): message :         ] [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(278,1): error C2059:  syntax error: '...' [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(236,39): error C3520:  'T': parameter pack must be expanded in this context [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(235): message :  while compiling class template member function 'bool rollbear::none_of<int,int,int>::operator <<U>(const U &) noexcept(<expr>) const' [C:\Users\root\Deskt
op\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(235): message :         with [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(235): message :         [ [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(235): message :             U=int [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(235): message :         ] [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(242): message :  see reference to function template instantiation 'bool rollbear::operator ><int,void>(const U &,const rollbear::none_of<int,int,int> &) noexcept(<expr>)'
being compiled [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(242): message :         with [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(242): message :         [ [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(242): message :             U=int [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(242): message :         ] [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(236,1): error C2059:  syntax error: '...' [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(250,39): error C3520:  'T': parameter pack must be expanded in this context [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(249): message :  while compiling class template member function 'bool rollbear::none_of<int,int,int>::operator <=<U>(const U &) noexcept(<expr>) const' [C:\Users\root\Desk
top\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(249): message :         with [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(249): message :         [ [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(249): message :             U=int [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(249): message :         ] [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(256): message :  see reference to function template instantiation 'bool rollbear::operator >=<int,void>(const U &,const rollbear::none_of<int,int,int> &) noexcept(<expr>)'
 being compiled [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(256): message :         with [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(256): message :         [ [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(256): message :             U=int [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(256): message :         ] [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(250,1): error C2059:  syntax error: '...' [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\self_test.cpp(89,34): error C2672:  'operator __surrogate_func': no matching overloaded function found [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\self_test.cpp(89,61): error C2893:  Failed to specialize function template 'enable_if<std::conjunction_v<std::is_copy_constructible<Ts>...>&&std::conjunction_v<std::is_invocable<const <lambda
_d04b8e5cc40bfd0d0232bd46179b5f1b>&,Ts...>,std::is_invocable<const <lambda_ddcf53d9d14ea1a98318f06d00044f5f>&,Ts...>,std::is_invocable<const <lambda_867d7aa182ec395a44e1038ca5b79705>&,Ts...>>,rollbear::none_of<rollbear::internal::bound<
const <lambda_d04b8e5cc40bfd0d0232bd46179b5f1b>&,Ts...>,rollbear::internal::bound<const <lambda_ddcf53d9d14ea1a98318f06d00044f5f>&,Ts...>,rollbear::internal::bound<const <lambda_867d7aa182ec395a44e1038ca5b79705>&,Ts...>>>::type rollbear
::none_of<const <lambda_d04b8e5cc40bfd0d0232bd46179b5f1b> &,const <lambda_ddcf53d9d14ea1a98318f06d00044f5f> &,const <lambda_867d7aa182ec395a44e1038ca5b79705> &>::operator ()(Ts &&...) noexcept(<expr>) const' [C:\Users\root\Desktop\githu
b\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\self_test.cpp(89,61): message :  With the following template arguments: [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\self_test.cpp(89,61): message :  'Ts={int}' [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\self_test.cpp(90,22): error C2672:  'operator __surrogate_func': no matching overloaded function found [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\self_test.cpp(90,49): error C2893:  Failed to specialize function template 'enable_if<std::conjunction_v<std::is_copy_constructible<Ts>...>&&std::conjunction_v<std::is_invocable<const <lambda
_d04b8e5cc40bfd0d0232bd46179b5f1b>&,Ts...>,std::is_invocable<const <lambda_ddcf53d9d14ea1a98318f06d00044f5f>&,Ts...>,std::is_invocable<const <lambda_867d7aa182ec395a44e1038ca5b79705>&,Ts...>>,rollbear::none_of<rollbear::internal::bound<
const <lambda_d04b8e5cc40bfd0d0232bd46179b5f1b>&,Ts...>,rollbear::internal::bound<const <lambda_ddcf53d9d14ea1a98318f06d00044f5f>&,Ts...>,rollbear::internal::bound<const <lambda_867d7aa182ec395a44e1038ca5b79705>&,Ts...>>>::type rollbear
::none_of<const <lambda_d04b8e5cc40bfd0d0232bd46179b5f1b> &,const <lambda_ddcf53d9d14ea1a98318f06d00044f5f> &,const <lambda_867d7aa182ec395a44e1038ca5b79705> &>::operator ()(Ts &&...) noexcept(<expr>) const' [C:\Users\root\Desktop\githu
b\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\self_test.cpp(90,49): message :  With the following template arguments: [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\self_test.cpp(90,49): message :  'Ts={int}' [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(413,37): error C3520:  'T': parameter pack must be expanded in this context [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(413,1): error C2059:  syntax error: '...' [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(67,66): error C3528:  'Args': the number of elements in this pack expansion does not match the number of elements in 'Ts' [C:\Users\root\Desktop\github\dry-comparisons\bui
ld\self_test.vcxproj]
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.22.27905\include\type_traits(1461): message :  see reference to function template instantiation 'auto rollbear::internal::logical_tuple<<lambda_22fbbcb572fdf
1c3be4623101a41e916>::()::<lambda_6ddccff5fa803a0667929f7d398f56c1>,const <lambda_bd9946c8205fac2c8b581c2d79740d7d> &>::bind::<lambda_b4f7324162a8ada7a8721da367e6ffbd>::operator ()<const <lambda_22fbbcb572fdf1c3be4623101a41e916>::()::<l
ambda_6ddccff5fa803a0667929f7d398f56c1>&,const <lambda_bd9946c8205fac2c8b581c2d79740d7d>&>(const <lambda_22fbbcb572fdf1c3be4623101a41e916>::()::<lambda_6ddccff5fa803a0667929f7d398f56c1> &,const <lambda_bd9946c8205fac2c8b581c2d79740d7d>
&) const' being compiled [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.22.27905\include\tuple(845): message :  see reference to function template instantiation 'decltype(auto) std::_Apply_impl<_Ty,const std::tuple<<lambda_22fbbc
b572fdf1c3be4623101a41e916>::()::<lambda_6ddccff5fa803a0667929f7d398f56c1>,const <lambda_bd9946c8205fac2c8b581c2d79740d7d> &>&,0,1>(_Callable &&,_Tuple,std::integer_sequence<unsigned __int64,0,1>)' being compiled [C:\Users\root\Desktop\
github\dry-comparisons\build\self_test.vcxproj]
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.22.27905\include\tuple(845): message :         with [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.22.27905\include\tuple(845): message :         [ [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.22.27905\include\tuple(845): message :             _Ty=rollbear::internal::logical_tuple<<lambda_22fbbcb572fdf1c3be4623101a41e916>::()::<lambda_6ddccff5fa803
a0667929f7d398f56c1>,const <lambda_bd9946c8205fac2c8b581c2d79740d7d> &>::bind::<lambda_b4f7324162a8ada7a8721da367e6ffbd>, [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.22.27905\include\tuple(845): message :             _Callable=rollbear::internal::logical_tuple<<lambda_22fbbcb572fdf1c3be4623101a41e916>::()::<lambda_6ddccff
5fa803a0667929f7d398f56c1>,const <lambda_bd9946c8205fac2c8b581c2d79740d7d> &>::bind::<lambda_b4f7324162a8ada7a8721da367e6ffbd>, [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.22.27905\include\tuple(845): message :             _Tuple=const std::tuple<<lambda_22fbbcb572fdf1c3be4623101a41e916>::()::<lambda_6ddccff5fa803a0667929f7d398
f56c1>,const <lambda_bd9946c8205fac2c8b581c2d79740d7d> &> & [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.22.27905\include\tuple(845): message :         ] [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(66): message :  see reference to function template instantiation 'decltype(auto) std::apply<rollbear::internal::logical_tuple<<lambda_22fbbcb572fdf1c3be4623101a41e916>::()
::<lambda_6ddccff5fa803a0667929f7d398f56c1>,const <lambda_bd9946c8205fac2c8b581c2d79740d7d> &>::bind::<lambda_b4f7324162a8ada7a8721da367e6ffbd>,const std::tuple<<lambda_22fbbcb572fdf1c3be4623101a41e916>::()::<lambda_6ddccff5fa803a066792
9f7d398f56c1>,const <lambda_bd9946c8205fac2c8b581c2d79740d7d> &>&>(_Callable &&,_Tuple)' being compiled [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(66): message :         with [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(66): message :         [ [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(66): message :             _Callable=rollbear::internal::logical_tuple<<lambda_22fbbcb572fdf1c3be4623101a41e916>::()::<lambda_6ddccff5fa803a0667929f7d398f56c1>,const <lamb
da_bd9946c8205fac2c8b581c2d79740d7d> &>::bind::<lambda_b4f7324162a8ada7a8721da367e6ffbd>, [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(66): message :             _Tuple=const std::tuple<<lambda_22fbbcb572fdf1c3be4623101a41e916>::()::<lambda_6ddccff5fa803a0667929f7d398f56c1>,const <lambda_bd9946c8205fac2c8
b581c2d79740d7d> &> & [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(66): message :         ] [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(425): message :  see reference to function template instantiation 'RT rollbear::internal::logical_tuple<<lambda_22fbbcb572fdf1c3be4623101a41e916>::()::<lambda_6ddccff5fa80
3a0667929f7d398f56c1>,const <lambda_bd9946c8205fac2c8b581c2d79740d7d> &>::bind<RT,_Ty>(_Ty &&) const' being compiled [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(425): message :         with [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(425): message :         [ [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(425): message :             RT=RT, [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(425): message :             _Ty=int [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(425): message :         ] [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\self_test.cpp(127): message :  see reference to function template instantiation 'rollbear::all_of<rollbear::internal::bound<<lambda_22fbbcb572fdf1c3be4623101a41e916>::()::<lambda_6ddccff5fa80
3a0667929f7d398f56c1>,int>,rollbear::internal::bound<const <lambda_bd9946c8205fac2c8b581c2d79740d7d> &,int>> rollbear::all_of<<lambda_22fbbcb572fdf1c3be4623101a41e916>::()::<lambda_6ddccff5fa803a0667929f7d398f56c1>,const <lambda_bd9946c
8205fac2c8b581c2d79740d7d> &>::operator ()<int>(int &&) noexcept const' being compiled [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(84): message :  see reference to class template instantiation 'rollbear::internal::logical_tuple<int>' being compiled [C:\Users\root\Desktop\github\dry-comparisons\build\s
elf_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\self_test.cpp(101): message :  see reference to class template instantiation 'rollbear::any_of<int>' being compiled [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(67,105): error C3528:  'args': the number of elements in this pack expansion does not match the number of elements in 'Ts' [C:\Users\root\Desktop\github\dry-comparisons\bu
ild\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\self_test.cpp(127,37): error C2131:  expression did not evaluate to a constant [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(67,55): message :  failure was caused by call of undefined function or one not declared 'constexpr' [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(67,55): message :  see usage of 'rollbear::all_of<rollbear::internal::bound<<lambda_22fbbcb572fdf1c3be4623101a41e916>::()::<lambda_6ddccff5fa803a0667929f7d398f56c1>,int>,r
ollbear::internal::bound<const <lambda_bd9946c8205fac2c8b581c2d79740d7d> &,int>>::all_of' [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(180,37): error C3520:  'T': parameter pack must be expanded in this context [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(180,1): error C2059:  syntax error: '...' [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\self_test.cpp(130,36): error C2131:  expression did not evaluate to a constant [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(67,55): message :  failure was caused by call of undefined function or one not declared 'constexpr' [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(67,55): message :  see usage of 'rollbear::any_of<rollbear::internal::bound<<lambda_22fbbcb572fdf1c3be4623101a41e916>::()::<lambda_6ddccff5fa803a0667929f7d398f56c1>,int>,r
ollbear::internal::bound<const <lambda_bd9946c8205fac2c8b581c2d79740d7d> &,int>>::any_of' [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(296,38): error C3520:  'T': parameter pack must be expanded in this context [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(296,1): error C2059:  syntax error: '...' [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\self_test.cpp(132,38): error C2131:  expression did not evaluate to a constant [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(67,55): message :  failure was caused by call of undefined function or one not declared 'constexpr' [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(67,55): message :  see usage of 'rollbear::none_of<rollbear::internal::bound<<lambda_22fbbcb572fdf1c3be4623101a41e916>::()::<lambda_6ddccff5fa803a0667929f7d398f56c1>,int>,
rollbear::internal::bound<const <lambda_bd9946c8205fac2c8b581c2d79740d7d> &,int>>::none_of' [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\self_test.cpp(158,31): error C2607:  static assertion failed [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
C:\Users\root\Desktop\github\dry-comparisons\dry-comparisons.hpp(333,1): error C1202:  recursive type or function dependency context too complex [C:\Users\root\Desktop\github\dry-comparisons\build\self_test.vcxproj]
@rollbear
Copy link
Owner

rollbear commented Sep 2, 2019

When I had a working MSVC setup, I used to report the compiler bugs I found, but they were rarely fixed. Now I've just given up.

BTW, I'm likely to make a major update to this library after the NDC{TechTown} conference (later this week) where I'm presenting other techniques for achieving the same functionality. The code will be very much shorter after that.

@Neargye
Copy link
Contributor Author

Neargye commented Sep 2, 2019

Thanks for the answer.
I definitely want to try a new update, I really liked this dry-comparisons for sweet syntax.

Of course, I would like to use it on Windows, unfortunately it is necessary to work (

@tagsemb
Copy link

tagsemb commented Sep 8, 2019

Really stoked to try this out after seeing your TechTown talk, but unfortunately, MSVC spits out "error C1202: recursive type or function dependency context too complex".

Really hope you can get some version of this library MSVC-compatible!

@rollbear
Copy link
Owner

rollbear commented Sep 8, 2019

Thank you. I've spent a lot of time the last few days, trying to simplify the code, but things are not going well (unless you count 3 filed compiler bug reports as "going well.") It's primarily the conditional noexcept specifiers that trip the compilers, but also the return type deduction.

@rollbear
Copy link
Owner

rollbear commented Sep 9, 2019

Here's compilation with MSVC. It took removing all conditional noexcept specifiers, and rewriting a few of the -> decltype() specifiers.

https://gcc.godbolt.org/z/96Zhvw

I'll see if it is possible to simplify the code by having conditional support for noexcept (ugly macros, depending on compiler make and version.) The current implementation is more than a little bit messy.

@rollbear
Copy link
Owner

rollbear commented Sep 9, 2019

Proof of concept implementation supporting latest clang, gcc and MSVC. Sacrifices are made regarding primarily noexcept, but in some cases also SFINAE friendly return type deduction. This includes all the stuff I mentioned at NDC{TechTown}, plus an extra performance and safety thing I thought of on the way home, so it's in many cases better than what's on this git repo. It's missing the function call functionality, and needs a ton of tests. There's also a weird work around for a gcc bug I haven't been able to pinpoint yet (CTAD deduction guide fails)

Feel free to play with it.

https://godbolt.org/z/0hV-J_

@Neargye
Copy link
Contributor Author

Neargye commented Sep 9, 2019

The new version looks great.
On my test RETURN_FOLD(x) THRICE((x)) for msvc work ok.

@Neargye
Copy link
Contributor Author

Neargye commented Sep 9, 2019

A terrible thought, but what if we allow this syntax?

std::vector<int> s{1, 1, 1};
if (all_of(s) == 1) ...

Proof of concept implementation(only for all_of and ==) https://godbolt.org/z/N5JrhT

@rollbear
Copy link
Owner

rollbear commented Sep 9, 2019

That's problematic, and there already is one:

#include <algorithm>

if (std::all_of(s.begin(), s.end(), [](auto x) { return x == 1; })
    ...

Or, if I get my higher order functions in place properly:

#include <algorithm>

if (std::all_of(s.begin(), s.end(), equal_to(1)))
  ...

@Neargye
Copy link
Contributor Author

Neargye commented Sep 9, 2019

I agree, just a funny idea that came at night.
But if (std::all_of(s.begin(), s.end(), [](auto x) { return x == 1; }) more code that if (all_of(s) == 1) :D

Why all_of is lambda?

template <typename ... Ts >
constexpr auto all_of(Ts&& ... vs) THRICE(op_t<decltype(and_exprs), decltype(vs)...>(and_exprs, FWD(vs)...))
``` seems ok.

@tagsemb
Copy link

tagsemb commented Sep 9, 2019

Proof of concept implementation supporting latest clang, gcc and MSVC. Sacrifices are made regarding primarily noexcept, but in some cases also SFINAE friendly return type deduction. This includes all the stuff I mentioned at NDC{TechTown}, plus an extra performance and safety thing I thought of on the way home, so it's in many cases better than what's on this git repo. It's missing the function call functionality, and needs a ton of tests. There's also a weird work around for a gcc bug I haven't been able to pinpoint yet (CTAD deduction guide fails)

Feel free to play with it.

https://godbolt.org/z/0hV-J_

Hmm, maybe I'm just being thick here, but I can't get the following example to work, which would be my primary use-case for this:

#include <iostream>
enum class E {A,B,C};
int main()
{
	E e = E::A;
	if (e == any_of(E::A, E::B, E::C)) { std::cout << "e is in any of E\n"; }
}

This is on VS 16.2.4, /std:C++latest. Error output is:

DryCompTest.cpp(148,11): error C2672:  'operator __surrogate_func': no matching overloaded function found
DryCompTest.cpp(148,5): error C2893:  Failed to specialize function template 'unknown-type <lambda_12>::operator ()(_T1 &&...) noexcept(<expr>) const'
DryCompTest.cpp(148,5): message :  With the following template arguments:
DryCompTest.cpp(148,5): message :  '_T1={E, E, E}'

Have I fundamentally misunderstood the syntax?

@rollbear
Copy link
Owner

rollbear commented Sep 9, 2019

Thank you @tagsemb . I'm not sure I understand that error, but I'm glad the latest version does work with your example code.

https://godbolt.org/z/1c9Rv1

Why is all_of a lambda, @Neargye? It's just one of many changes made while navigating the numerous compiler bugs. It probably won't be what I settle for, but if it will be, it'll be because it works around a compiler bug.

@tagsemb
Copy link

tagsemb commented Sep 9, 2019

It does indeed, cheers!

@bxk-sonavex
Copy link
Contributor

For anyone who is still interested in using it with MSVC, I got it compiled and ran in Microsoft Visual Studio Community 2019 (Version 16.11.5) with a minor change in CMake

set(CMAKE_CXX_STANDARD 20)

@rollbear
Copy link
Owner

This is excellent, @bxk-sonavex. Please submit a PR with an updated CMakeLists.txt (where this requirement is for MSVC only).

@bxk-sonavex
Copy link
Contributor

@rollbear Done.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants