Dry-comparisons - C++17 Utility classes for comparing multiple values in one simple expression

Overview

dry-comparisons

This is the source code for the any_of, all_of and none_of C++17 utility mentioned in the blog post "DRY multicomparisons"

Public domain.

Usage

using rollbear::any_of;

class Machine
{
public:
  ...
  void func() {
    assert(state == any_of(S1, S3)); // assert(state == S1 || state == S3);
    ...
  }
private:
  enum { S0, S1, S2, S3 } state;
};

The types available are any_of, all_of and none_of.

iff all member types can be inserted into an ostream, an instance of any_of, all_of or none_of may be printed, e.g. std::cout << rollbear::any_of{1,3,5}, which will produce the output any_of{1,3,5}.

iff it is possible to do logical and/or operations on all members, instances of any_of, all_of and none_of may be used directly as boolean expressions.

  • bool(any_of{a,b,c}) == bool(a || b || c)
  • bool(all_of{a,b,c}) == bool(a && b && c)
  • bool(none_of{a,b,c}) == !bool(a || b || c)

iff the members are callable, the resulting object is also callable.

  • any_of{std::plus{}, std::minus{}}(3,2) == 5
  • all_of{std::plus{}, std::minus{}}(3,2) > 0
  • none_of{std::plus{}, std::minus{}}(3,2) == 0

with SFINAE friendly checks that the calls can be made for the values given. The logical conditions are short cirquited, in the normal logical expression manners.

Further more, it is also possible to do relational comparisons. For example:

assert(all_of(s1, s2) > "."), providing the expressions s1 and s2 are greater-than comparable with a string literal.

You might also like...
One-Stop Destination for codes of all Data Structures & Algorithms

CodingSimplified_GK This repository is aimed at creating a One stop Destination of codes of all Data structures and Algorithms along with basic explai

What the Package Does (One Line, Title Case)

--- output: github_document --- !-- README.md is generated from README.Rmd. Please edit that file -- ```{r, include = FALSE} knitr::opts_chunk$set

Another neofetch-like utility but this time it's fast.

SystemFetch Another neofetch-like utility but this time it's fast. Example Speed Here is a table of the time it took to execute all of these programs,

Pdbex - pdbex is a utility for reconstructing structures and unions from the PDB into compilable C headers

pdbex pdbex is a utility for reconstructing structures and unions from the PDB files into compilable C headers. Why? PDB files, among others, contain

A simple C library for working with KD-Trees

kdtree Overview kdtree is a simple, easy to use C library for working with kd-trees. Kd-trees are an extension of binary search trees to k-dimensional

x64dbg plugin for simple spoofing of CPUID instruction behavior
x64dbg plugin for simple spoofing of CPUID instruction behavior

CPUID Spoofer CpuidSpoofer is a x64dbg plugin which helps you to modify the behaviour of the CPUID instruction. For example, you can easily change the

Simple hash table implemented in C

Simple hash table written in C. To go with my article How to implement a hash table (in C). This is a learning exercise, not a battle-tested data stru

Simple C++ code to benchmark fast division algorithms

fast_division Simple C++ code to benchmark fast division algorithms relying on constant divisors. The code is a companion to the paper Integer Divisio

Simple C++ Genetic Algorithm library
Simple C++ Genetic Algorithm library

crsGA: Simple C++ Genetic Algorithm library crsGA is a simple C++ template library for developing genetic algorithms, plus some other utilities (Logge

Comments
  • Disable new comparison rules to avoid infinite loop.

    Disable new comparison rules to avoid infinite loop.

    Makes the lib build in GCC 10.2 with std=c++20

    Before adding this change, this was the compiler error:

    dry-comparisons.hpp:106:27: fatal error: template instantiation depth exceeds maximum of 900 (use '-ftemplate-depth=' to increase the maximum)
      106 |     template <typename U, typename = std::enable_if_t<!std::is_same<U, any_of>{}>>
    
    opened by nebularnoise 4
  • Support comparisons between types

    Support comparisons between types

    It would be really nice to have the ability to do something like this:

    if (all_of{a, b, c} < any_of{100, 200}) {//...}

    Obviusly, the same for the rest of the options the library provides. I don't reallty know how difficult it would be to implement it, but I find it a really nice feature.

    opened by fgallegosalido 0
  • MSVC build fail

    MSVC build fail

    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]
    
    opened by Neargye 16
Owner
Björn Fahller
Björn Fahller
I have created this one to help myself keep my own learning record, anyways it will be great if someone finds it useful or One will modify my codes.

CPP-DSA I have created this one to help myself keep my own learning record, anyways it will be great if someone finds it useful or One will modify my

null 4 Dec 23, 2021
A library of type safe sets over fixed size collections of types or values, including methods for accessing, modifying, visiting and iterating over those.

cpp_enum_set A library of type safe sets over fixed size collections of types or values, including methods for accessing, modifying, visiting and iter

Carl Dehlin 22 Jun 16, 2022
COBS framing with implicit run-length-encoding, optimized for data containing statistically a bit more 0 and FF bytes in a row, as data often carry 16, 32 or 64 bit numbers with small values.

TCOBS Table of Contents About The project TCOBS Specification TCOBS code Getting Started 4.1. Prerequisites 4.2. Installation 4.3. Usage in Go 4.3.1.

Thomas Höhenleitner 17 Nov 6, 2022
A collecton of generic reference counted data structures, tools to create compatible C style classes, and demo applications

The Offbrand library is a collection of reference counted generic data structures written in C for C. The library includes bash scripts to assist in t

Tyler Heck 82 Dec 10, 2022
STX B+ Tree C++ Template Classes

STX B+ Tree C++ Template Classes v0.9 Author: Timo Bingmann (Mail: tb a-with-circle panthema dot net) Date: 2013-05-05 The STX B+ Tree package is obso

Timo Bingmann 198 Dec 21, 2022
A fast Python Common substrings of multiple strings library with C++ implementation

A fast Python Common substrings of multiple strings library with C++ implementation Having a bunch of strings, can I print some substrings which appea

Đào Nguyên Dương 7 Aug 21, 2022
tail multiple files at once using inotify

tailer - tail entire directories at once using inotify This utility is based on Erik Zenker's inotify-cpp library for monitoring file create/modify/re

Ray Burgemeestre 2 Nov 22, 2021
The aim of this repository is to make it a one final stop for revision for technical interviews involving data structures and algorithms .

Hey ??‍♂️ This repository is meant for data structures and algorithms . I will be updating this often and will include all the data structures importa

Prakhar Rai 51 Sep 29, 2022
Aggregation of CK components and workflows from the community for ML Systems in one repository. They are also uploaded to the cKnowledge platform:

CK repository for AI and ML systems Linux/MacOS: Windows: There are numerous CK components spread across numerous GitHub repositories. Based on the fe

cTuning foundation (a founding member of MLCommons and ACM taskforce on reproducibility) 6 Sep 14, 2021
What the Package Does (One Line, Title Case)

inside The goal of insidecpp11 is to do fast point in polygon classification, with cpp11. We are comparing a few ways of implementing this, essentiall

diminutive 3 Feb 11, 2022