C++ DataFrame for statistical, Financial, and ML analysis -- in modern C++ using native types, continuous memory storage, and no pointers are involved

Overview

Build status Build Status
GitHub GitHub tag (latest by date)
C++17 Codacy Badge Binder

drawing

DataFrame Documentation / Code Samples

This is a C++ analytical library that provides interface and functionality similar to packages/libraries in Python and R. For example, you could compare this to Pandas or R data.frame.
You could slice the data in many different ways. You could join, merge, group-by the data. You could run various statistical, summarization, financial, and ML algorithms on the data. You could add your custom algorithms easily. You could multi-column sort, custom pick and delete the data. And more …
DataFrame also includes a large collection of analytical algorithms in form of visitors. These are from basic stats such as Mean, Std Deviation, Return, … to more involved analysis such as Affinity Propagation, Polynomial Fit, Fast Fourier transform of arbitrary length … including a good collection of trading indicators. You could also easily add your own algorithms.
For basic operations to start you off, see Hello World. For a complete list of features with code samples, see documentation.

I have followed a few principles in this library:

  1. Support any type either built-in or user defined without needing new code
  2. Never chase pointers ala linked lists, std::any, pointer to base, ..., including virtual functions
  3. Have all column data in continuous memory space. Also, be mindful of cache-line aliasing misses between multiple columns
  4. Never use more space than you need ala unions, std::variant, ...
  5. Avoid copying data as much as possible
  6. Use multi-threading but only when it makes sense
  7. Do not attempt to protect the user against garbage in, garbage out

DateTime
DateTime class included in this library is a very cool and handy object to manipulate date/time with nanosecond precision and multi timezone capability.


Performance

There is a test program dataframe_performance that should give you a sense of how this library performs. As a comparison, there is also a Pandas pandas_performance script that does exactly the same thing.
dataframe_performance.cc uses DataFrame async interface and is compiled with gcc (10.3.0) compiler with -O3 flag. pandas_performance.py is ran with Pandas 1.3.2, Numpy 1.21.2 and Python 3.7 on Xeon E5-2667 v2. What the test program roughly does:

  1. Generate ~1.6 billion timestamps (second resolution) and load them into the DataFrame/Pandas as index.
  2. Generate ~1.6 billion random numbers for 3 columns with normal, log normal, and exponential distributions and load them into the DataFrame/Pandas.
  3. Calculate the mean of each of the 3 columns.

Result:

$ python3 test/pandas_performance.py
Starting ... 1629817655
All memory allocations are done. Calculating means ... 1629817883
6.166675403767268e-05, 1.6487168460770107, 0.9999539627671375
1629817894 ... Done

real    5m51.598s
user    3m3.485s
sys     1m26.292s

$ Release/bin/dataframe_performance
Starting ... 1629818332
All memory allocations are done. Calculating means ... 1629818535
1, 1.64873, 1
1629818536 ... Done
  
real    3m34.241s                                                                                                                      
user    3m14.250s
sys     0m25.983s

The Interesting Part:

  1. Pandas script, I believe, is entirely implemented in Numpy which is in C.
  2. In case of Pandas, allocating memory + random number generation takes almost the same amount of time as calculating means.
  3. In case of DataFrame ~90% of the time is spent in allocating memory + random number generation.
  4. You load data once, but calculate statistics many times. So DataFrame, in general, is about ~11x faster than parts of Pandas that are implemented in Numpy. I leave parts of Pandas that are purely in Python to imagination.
  5. Pandas process image at its peak is ~105GB. C++ DataFrame process image at its peak is ~56GB.

DataFrame Test File
DataFrame Test File 2
Heterogeneous Vectors Test File
Date/Time Test File


Contributions
License


Installing using CMake

mkdir [Debug | Release]
cd [Debug | Release]
cmake -DCMAKE_BUILD_TYPE=[Debug | Release] ..
make
make install

cd [Debug | Release]
make uninstall

Package managers

If you are using Conan to manage your dependencies, add dataframe/[email protected] to your requires, where x.y.z is the release version you want to use. Conan will acquire DataFrame, build it from source in your computer, and provide CMake integration support for your projects. See the Conan docs for more information.
Sample conanfile.txt:

[requires]
dataframe/[email protected]

[generators]
cmake
Comments
  • Exceptions thrown in dataframe_tester

    Exceptions thrown in dataframe_tester

    I've built DataFrame with VS 2017 on Windows 10. A number of exceptions are thrown when I run dataframe_tester.exe.

    The first occurs here, I think this test is wrong since the size of dvec is 1:

    dvec = df3.get_column<double> ("dbl_col");
    dvec2 = df3.get_column<double> ("dbl_col_2");
    assert(dvec.size() == 1);
    // SBW throws exception.
    // assert(dvec[5] == 2.2345);
    

    Other exceptions occur during the following tests, I stopped testing at this point:

    // SBW throws exception.
    // test_shifting_up_down();
    test_rotating_up_down();
    test_dataframe_with_datetime();
    test_dataframe_friend_plus_operator();
    test_dataframe_friend_minus_operator();
    test_dataframe_friend_multiplies_operator();
    test_dataframe_friend_divides_operator();
    test_fill_missing_values();
    test_fill_missing_fill_forward();
    test_fill_missing_fill_backward();
    // SBW throws exception.
    // test_fill_missing_fill_linear_interpolation();
    test_drop_missing_all_no_drop();
    // SBW throws exception.
    // test_drop_missing_all_2_drop();
    // SBW throws exception.
    // test_drop_missing_any();
    
    bug 
    opened by swilson314 58
  • Load DataFrame from Arrow Table/csv file

    Load DataFrame from Arrow Table/csv file

    Here is my early code for reading a csv file into a DataFrame via Apache Arrow. Before I flesh out all the data types, I wanted to verify that this approach looks good? Also, is there something like a pretty print for dataframes?

    // ArrowCsv.cpp
    // SBW 2020.04.07
    
    #include <cstdint>
    #include <memory>
    #include <numeric>
    #include <string>
    #include <iostream>
    
    #include "arrow/api.h"
    #include "arrow/filesystem/localfs.h"
    #include "arrow/csv/api.h"
    #include "arrow/result.h"
    
    // SBW 2020.04.03 Attach Arrow table to DataFrame.
    #define LIBRARY_EXPORTS
    #include <DataFrame/DataFrame.h>
    using namespace hmdf;
    typedef StdDataFrame<unsigned long> MyDataFrame;
    
    using namespace std;
    using namespace arrow;
    
    template<typename I, typename  H>
    bool TableToDataFrame(const Table& Tbl, DataFrame<I, H>& Df)
    {
    	int64_t Rows = Tbl.num_rows();
    	int Cols = Tbl.num_columns();
    	for (int c = 0; c < Cols; c++)
    	{
    		auto f = Tbl.field(c);
    		const string& Name = f->name();
    		int TypeId = f->type()->id();
    		switch (TypeId)
    		{
    		case Type::STRING:
    		{
    			std::vector<string>& vec = Df.create_column<string>(Name.c_str());
    			vec.assign(Rows, "");
    			auto pChArray = Tbl.column(c);
    			int NChunks = pChArray->num_chunks();
    			int i = 0;
    			for (int n = 0; n < NChunks; n++)
    			{
    				auto pArray = pChArray->chunk(n);
    				int64_t ArrayRows = pArray->length();
    				auto pTypedArray = std::static_pointer_cast<arrow::StringArray>(pArray);
    				// const string* pData = pTypedArray->raw_values();
    				for (int j = 0; j < ArrayRows; j++)
    					vec[i++] = pTypedArray->GetString(j);
    			}
    			break;
    		}
    		case Type::FLOAT:
    		{
    			std::vector<float>& vec = Df.create_column<float>(Name.c_str());
    			vec.assign(Rows, 0.0);
    			auto pChArray = Tbl.column(c);
    			int NChunks = pChArray->num_chunks();
    			int i = 0;
    			for (int n = 0; n < NChunks; n++)
    			{
    				auto pArray = pChArray->chunk(n);
    				int64_t ArrayRows = pArray->length();
    				auto pTypedArray = std::static_pointer_cast<arrow::FloatArray>(pArray);
    				const float* pData = pTypedArray->raw_values();
    				for (int j = 0; j < ArrayRows; j++)
    					vec[i++] = pData[j];
    			}
    			break;
    		}
    		case Type::DOUBLE:
    		{
    			std::vector<double>& vec = Df.create_column<double>(Name.c_str());
    			vec.assign(Rows, 0.0);
    			auto pChArray = Tbl.column(c);
    			int NChunks = pChArray->num_chunks();
    			int i = 0;
    			for (int n = 0; n < NChunks; n++)
    			{
    				auto pArray = pChArray->chunk(n);
    				int64_t ArrayRows = pArray->length();
    				auto pTypedArray = std::static_pointer_cast<arrow::DoubleArray>(pArray);
    				const double* pData = pTypedArray->raw_values();
    				for (int j = 0; j < ArrayRows; j++)
    					vec[i++] = pData[j];
    			}
    			break;
    		}
    		default:
    			assert(false); // unknown type
    		}
    	}
    
    	return(true);
    }
    
    int main(int argc, char *argv[])
    {
    	auto fs = make_shared<fs::LocalFileSystem>();
    	auto r_input = fs->OpenInputStream("c:/temp/Test.csv");
    
    	auto pool = default_memory_pool();
    	auto read_options = arrow::csv::ReadOptions::Defaults();
    	auto parse_options = arrow::csv::ParseOptions::Defaults();
    	auto convert_options = arrow::csv::ConvertOptions::Defaults();
    
    	auto r_table_reader = csv::TableReader::Make(pool, r_input.ValueOrDie(),
    		read_options, parse_options, convert_options);
    	auto r_read = r_table_reader.ValueOrDie()->Read();
    	auto pTable = r_read.ValueOrDie();
    
    	PrettyPrintOptions options{0};
    	arrow::PrettyPrint(*pTable, options, &std::cout);
    	//arrow::PrettyPrint(*pTable->schema(), options, &std::cout);
    
    	// SBW 2020.04.03 Attach Arrow table to DataFrame.
    	MyDataFrame df;
    	// df_read.read("c:/temp/Test.csv");
    	TableToDataFrame(*pTable, df);
    	df.write<std::ostream, int, unsigned long, double, std::string>(std::cout);
    
    	return 1;
    }
    
    
    opened by swilson314 28
  • crashed but can't find where is the error

    crashed but can't find where is the error

    for the codes is very complex, I take the most closely related part:

            ULDataFrame resultdf;
            for(auto el : current_board_contains.keys())
            {
                std::string ticker_str = el.toStdString();
    
                auto functor1 = [ticker_str](const unsigned long &, const std::string &val)-> bool { return (val == ticker_str); };
                ULDataFrame tempdf = sec_realtime_df.get_data_by_sel<std::string, decltype(functor1), double, std::string>("ticker", functor1);
    
                resultdf = resultdf.concat<decltype(tempdf), double, std::string>(tempdf);
            }
    
    

    securities_realtime_df's header is :

    INDEX:0:<ulong>,id:0:<double>,ticker:0:<string>,name:0:<string>,close_price:0:<double>,change_percentage:0:<double>,change_amount:0:<double>,turnover_vol:0:<double>,turnover_amount:0:<double>,amplitude:0:<double>,highest_price:0:<double>,lowest_price:0:<double>,open_price:0:<double>,last_close:0:<double>,turnover_vol_ratio:0:<double>,turnover_rate:0:<double>,ma5:0:<double>,ma10:0:<double>,ma20:0:<double>,ma30:0:<double>,ma60:0:<double>,trade_date:0:<string>
    

    qt debugger:

    
    1  std::equal_to<hmdf::HeteroVector const *>::operator()                                                                                                                                                                                                                                                                                                                                                                                                                                                          stl_function.h                 356  0x7ff77c70e9bb 
    2  std::__detail::_Equal_helper<hmdf::HeteroVector const *, std::pair<hmdf::HeteroVector const * const, std::vector<std::string>>, std::__detail::_Select1st, std::equal_to<hmdf::HeteroVector const *>, unsigned long long, false>::_S_equals                                                                                                                                                                                                                                                                    hashtable_policy.h             1461 0x7ff77c770589 
    3  std::__detail::_Hashtable_base<hmdf::HeteroVector const *, std::pair<hmdf::HeteroVector const * const, std::vector<std::string>>, std::__detail::_Select1st, std::equal_to<hmdf::HeteroVector const *>, std::hash<hmdf::HeteroVector const *>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Hashtable_traits<false, false, true>>::_M_equals                                                                                                                        hashtable_policy.h             1834 0x7ff77c70dcd2 
    4  std::_Hashtable<hmdf::HeteroVector const *, std::pair<hmdf::HeteroVector const * const, std::vector<std::string>>, std::allocator<std::pair<hmdf::HeteroVector const * const, std::vector<std::string>>>, std::__detail::_Select1st, std::equal_to<hmdf::HeteroVector const *>, std::hash<hmdf::HeteroVector const *>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true>>::_M_find_before_node hashtable.h                    1545 0x7ff77c702a5b 
    5  std::_Hashtable<hmdf::HeteroVector const *, std::pair<hmdf::HeteroVector const * const, std::vector<std::string>>, std::allocator<std::pair<hmdf::HeteroVector const * const, std::vector<std::string>>>, std::__detail::_Select1st, std::equal_to<hmdf::HeteroVector const *>, std::hash<hmdf::HeteroVector const *>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true>>::_M_find_node        hashtable.h                    655  0x7ff77c702946 
    6  std::_Hashtable<hmdf::HeteroVector const *, std::pair<hmdf::HeteroVector const * const, std::vector<std::string>>, std::allocator<std::pair<hmdf::HeteroVector const * const, std::vector<std::string>>>, std::__detail::_Select1st, std::equal_to<hmdf::HeteroVector const *>, std::hash<hmdf::HeteroVector const *>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true>>::find                hashtable.h                    1419 0x7ff77c713a1d 
    7  std::unordered_map<hmdf::HeteroVector const *, std::vector<std::string>>::find                                                                                                                                                                                                                                                                                                                                                                                                                                 unordered_map.h                921  0x7ff77c728ae0 
    8  hmdf::HeteroVector::get_vector<std::string>                                                                                                                                                                                                                                                                                                                                                                                                                                                                    HeteroVector.tcc               43   0x7ff77c668f9a 
    9  hmdf::DataFrame<unsigned long, hmdf::HeteroVector>::create_column<std::string>                                                                                                                                                                                                                                                                                                                                                                                                                                 DataFrame_set.tcc              63   0x7ff77c67290f 
    10 hmdf::DataFrame<unsigned long, hmdf::HeteroVector>::load_column<std::string>                                                                                                                                                                                                                                                                                                                                                                                                                                   DataFrame_set.tcc              452  0x7ff77c66fdf9 
    11 hmdf::DataFrame<unsigned long, hmdf::HeteroVector>::sel_load_functor_<unsigned long long, double, std::string>::operator()<std::vector<std::string>>                                                                                                                                                                                                                                                                                                                                                           DataFrame_misc.tcc             607  0x7ff77c67596d 
    12 hmdf::HeteroVector::change_impl_help_<hmdf::DataFrame<unsigned long, hmdf::HeteroVector>::sel_load_functor_<unsigned long long, double, std::string>&, std::string>                                                                                                                                                                                                                                                                                                                                            HeteroVector.tcc               174  0x7ff77c6f007f 
    13 hmdf::HeteroVector::change_impl_<hmdf::DataFrame<unsigned long, hmdf::HeteroVector>::sel_load_functor_<unsigned long long, double, std::string>&, hmdf::HeteroVector::type_list, double, std::string>                                                                                                                                                                                                                                                                                                          HeteroVector.tcc               221  0x7ff77c6efa3e 
    14 hmdf::HeteroVector::change<hmdf::DataFrame<unsigned long, hmdf::HeteroVector>::sel_load_functor_<unsigned long long, double, std::string>&>                                                                                                                                                                                                                                                                                                                                                                    HeteroVector.h                 196  0x7ff77c6f0620 
    15 hmdf::DataFrame<unsigned long, hmdf::HeteroVector>::get_data_by_sel<double, BoardSnapshot::dynamic_update_snapshot(DongfancaifuRealtimData)::<lambda(long unsigned int const&, double const&)>, double, std::string>(const char *, BoardSnapshot::<lambda(long unsigned int const&, double const&)> &) const                                                                                                                                                                                                   DataFrame_get.tcc              637  0x7ff77c558764 
    16 BoardSnapshot::dynamic_update_snapshot                                                                                                                                                                                                                                                                                                                                                                                                                                                                         boardsnapshot.cpp              226  0x7ff77c55473b 
    17 BoardSnapshot::qt_static_metacall                                                                                                                                                                                                                                                                                                                                                                                                                                                                              moc_boardsnapshot.cpp          84   0x7ff77c4f3ec1 
    18 void doActivate<false>(QObject *, int, void * *)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   0x68b978bb     
    19 MainWindow::update_boardsnapshot_frommainwindow                                                                                                                                                                                                                                                                                                                                                                                                                                                                moc_mainwindow.cpp             154  0x7ff77c4f4b30 
    20 MainWindow::qt_static_metacall                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 moc_mainwindow.cpp             83   0x7ff77c4f4886 
    21 QObject::event(QEvent *)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           0x68a91565     
    22 QWidget::event(QEvent *)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           0xdf40d0       
    23 QMainWindow::event(QEvent *)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       0xeebff3       
    24 QApplicationPrivate::notify_helper(QObject *, QEvent *)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            0xdb790e       
    25 QApplication::notify(QObject *, QEvent *)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          0xdbe3e3       
    26 QCoreApplication::notifyInternal2(QObject *, QEvent *)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             0x68a656ea     
    27 QCoreApplicationPrivate::sendPostedEvents(QObject *, int, QThreadData *)                                                                                                                                                                                                                                                                                                                                                                                                                                                                           0x68a6c745     
    28 QWindowsGuiEventDispatcher::sendPostedEvents                                                                                                                                                                                                                                                                                                                                                                                                                                                                   qwindowsguieventdispatcher.cpp 80   0x6a90376e     
    29 QEventDispatcherWin32::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)                                                                                                                                                                                                                                                                                                                                                                                                                                                                        0x68abc0b0     
    30 QWindowsGuiEventDispatcher::processEvents                                                                                                                                                                                                                                                                                                                                                                                                                                                                      qwindowsguieventdispatcher.cpp 73   0x6a903755     
    31 QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            0x68a64405     
    32 QCoreApplication::exec()                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           0x68a6d765     
    33 main                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           main.cpp                       22   0x7ff77c50454a 
    
    

    the code work in sub thread and send a signal after finished. the main thread will update UI after recieved the signal.

    the process is continuing and iterating. if I do nothing, it work fine.

    and now if I create a new widget , when the data of the widget is calculating, sometime , the app crashed. not always crashed,

    can you find some clues from the debugger info?

    help wanted 
    opened by xkungfu 25
  • Unit tests fail on Windows when compiled with MinGW-W64

    Unit tests fail on Windows when compiled with MinGW-W64

    $ ctest.exe
    Test project C:/Users/expadmin/Work/DataFrame/build
        Start 1: dataframe_tester
    1/5 Test #1: dataframe_tester .................***Failed    0.05 sec
        Start 2: vectors_tester
    2/5 Test #2: vectors_tester ...................   Passed    0.01 sec
        Start 3: date_time_tester
    3/5 Test #3: date_time_tester .................***Failed    0.02 sec
        Start 4: obj_vector_tester
    4/5 Test #4: obj_vector_tester ................   Passed    0.01 sec
        Start 5: obj_vector_erase_tester
    5/5 Test #5: obj_vector_erase_tester ..........   Passed    0.01 sec
    
    60% tests passed, 2 tests failed out of 5
    
    Total Test time (real) =   0.10 sec
    
    The following tests FAILED:
              1 - dataframe_tester (Failed)
              3 - date_time_tester (Failed)
    Errors while running CTest
    
    $ g++.exe --version
    g++.exe (i686-posix-dwarf-rev0, Built by MinGW-W64 project) 8.1.0
    Copyright (C) 2018 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    

    Also please consider adding MinGW suite on AppVeyor.

    enhancement question Compiling 
    opened by thekvs 22
  • Arm64 support?

    Arm64 support?

    Does this library compile and run on macOS Monterey 12.5 ARM64 ??? I'm simply trying to run the examples using g++ (/usr/bin/g++) - std=c++20 and its saying it won't run on this architecture... I tried to download it and run it off of vcpkg, and tried building and installing from source and neither has worked... is there specific compile and/or linking flags to use? It's seeming like there's a lot of packages in c++ that don't run with the arm64/ aarch64 architecture... I just purchased this Mac and was excited to get programming on it after always thinking everything ran smoother on Mac's lol

    Am I missing something here? (Please god tell me I am)

    question Compiling 
    opened by Sr-316 21
  • Problem with CMakeFiles.txt

    Problem with CMakeFiles.txt

    CMake Error at CMakeLists.txt:107 (set_target_properties): set_target_properties Can not find target to add properties to: Dataframe

    CMake Error at CMakeLists.txt:113 (target_include_directories): Cannot specify include directories for target "Dataframe" which is not built by this project.

    CMake Error at CMakeLists.txt:117 (install): install TARGETS given target "Dataframe" which does not exist in this directory.

    -- Copying files for testing -- Copying files for testing - done -- Configuring incomplete, errors occurred!

    enhancement Compiling 
    opened by kotoroshinoto 19
  • Undefined reference to `hmdf::HeteroVector::clear()'

    Undefined reference to `hmdf::HeteroVector::clear()'

    When I tried to smoke test my code, I found that even trying to declare a dataframe resulted in an error at compile time. Am I missing a header file?

    I'm running Debian 10 and am not using an IDE - I'm simply using g++ (I will create a Makefile once my code makes it past the smoke test). Below is the command I am using and the corresponding error.

    [email protected]:/tmp/smoke_test$ g++ test_dataframe.cpp -I DataFrame/include/ -std=gnu++17 -o test_dataframe /usr/bin/ld: /tmp/ccjU2Oy0.o: in function hmdf::HeteroVector::~HeteroVector()': test_dataframe.cpp:(.text._ZN4hmdf12HeteroVectorD2Ev[_ZN4hmdf12HeteroVectorD5Ev]+0x14): undefined reference tohmdf::HeteroVector::clear()' collect2: error: ld returned 1 exit status

    test_dataframe.cpp.txt

    question Compiling 
    opened by Trento89 18
  • visitor bug?

    visitor bug?

    DataFrame

    INDEX:33::0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32, timestamp:33:<N/A>:2021-Jun-01 13:30:00,2021-Jun-02 13:30:00,2021-Jun-03 13:30:00,2021-Jun-04 13:30:00,2021-Jun-07 13:30:00,2021-Jun-08 13:30:00,2021-Jun-09 20:00:03,2021-Jun-10 20:00:00,2021-Jun-11 20:00:00,2021-Jun-14 20:00:00,2021-Jun-15 20:00:00,2021-Jun-16 20:00:00,2021-Jun-17 20:00:01,2021-Jun-18 20:00:04,2021-Jun-21 20:00:00,2021-Jun-22 20:00:00,2021-Jun-23 13:30:00,2021-Jun-24 13:30:00,2021-Jun-25 20:00:04,2021-Jun-28 20:00:00,2021-Jun-29 20:00:01,2021-Jun-30 20:00:03,2021-Jul-01 20:00:00,2021-Jul-02 20:00:00,2021-Jul-06 20:00:01,2021-Jul-07 20:00:00,2021-Jul-08 20:00:00,2021-Jul-09 20:00:00,2021-Jul-12 20:00:00,2021-Jul-13 13:30:00,2021-Jul-14 13:30:00,2021-Jul-15 20:00:00,2021-Jul-16 20:00:00, open:33::422.57,420.37,417.85,420.75,422.59,423.11,423.18,422.96,424.2,424.43,425.42,424.63,424.63,417.09,416.8,420.85,423.19,424.89,425.9,427.17,427.88,427.21,428.87,431.67,433.78,433.66,428.78,432.53,435.43,436.24,437.4,434.81,436.01, high:33::422.72,421.23,419.99,422.92,422.78,423.21,423.26,424.62,424.43,425.37,425.46,424.84,423,417.828,421.06,424,424.05,425.55,427.094,427.64,428.56,428.76,430.6,434.1,434,434.76,431.73,435.81,437.35,437.84,437.92,435.53,436.05, low:33::419.2,419.29,416.28,418.84,421.19,420.32,421.41,421.56,422.82,423.1,423.54,419.92,419.32,414.7,415.93,420.08,422.51,424.62,425.55,425.89,427.13,427.18,428.8,430.522,430.01,431.51,427.52,430.714,434.97,435.31,434.91,432.72,430.92, close:33::422.57,420.37,417.85,420.75,422.59,423.11,423.18,422.96,424.2,424.43,425.42,424.63,424.63,417.09,416.8,420.85,423.19,424.89,425.9,427.17,427.88,427.21,428.87,431.67,433.78,433.66,428.78,432.53,435.43,436.24,437.4,434.81,436.01, volume:33::54216600,49097100,58138800,55910700,51450000,47077600,47096348,50866337,45406077,42033990,51403156,79709612,86675738,114990989,72644868,57147732,49445400,45049400,55742186,49651109,34946598,64471992,53206239,57457221,68148765,63357716,96997650,74749998,44097385,52911300,64039100,54401485,75484551,

    return visitor (log policy, roll = 1) INDEX:33::0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32, timestamp:33:<N/A>:2021-Jun-01 13:30:00,2021-Jun-02 13:30:00,2021-Jun-03 13:30:00,2021-Jun-04 13:30:00,2021-Jun-07 13:30:00,2021-Jun-08 13:30:00,2021-Jun-09 20:00:03,2021-Jun-10 20:00:00,2021-Jun-11 20:00:00,2021-Jun-14 20:00:00,2021-Jun-15 20:00:00,2021-Jun-16 20:00:00,2021-Jun-17 20:00:01,2021-Jun-18 20:00:04,2021-Jun-21 20:00:00,2021-Jun-22 20:00:00,2021-Jun-23 13:30:00,2021-Jun-24 13:30:00,2021-Jun-25 20:00:04,2021-Jun-28 20:00:00,2021-Jun-29 20:00:01,2021-Jun-30 20:00:03,2021-Jul-01 20:00:00,2021-Jul-02 20:00:00,2021-Jul-06 20:00:01,2021-Jul-07 20:00:00,2021-Jul-08 20:00:00,2021-Jul-09 20:00:00,2021-Jul-12 20:00:00,2021-Jul-13 13:30:00,2021-Jul-14 13:30:00,2021-Jul-15 20:00:00,2021-Jul-16 20:00:00, return:33::-0.00521987,-0.00601273,0.0069163,0.0043636,0.00122972,0.000165447,-0.000520013,0.00292748,0.000542005,0.00232987,-0.00185873,0,-0.0179162,-0.000695555,0.00967003,0.00554477,0.00400909,0.00237422,0.00297753,0.0016607,-0.00156712,0.00387816,0.00650761,0.00487605,-0.000276665,-0.0113169,0.00870772,0.00668235,0.0018585,0.00265557,-0.00593895,0.00275605,nan,

    nan should be at index 0;

    same issue with a couple of other visitors I have tried

    enhancement question 
    opened by drsramd 17
  • Conan new versions

    Conan new versions

    Hi there and thank you for the amazing job , I am trying to figure out what is going wrong with the versions on conan-center after 1.8.0 as I can build 1.8 but not the others , here is my errors and my enviroment:

    PS C:\Users\Someone\Documents\project> conan profile show default
    Configuration for profile default:
    
    [settings]
    os=Windows
    os_build=Windows
    arch=x86_64
    arch_build=x86_64
    compiler=gcc
    compiler.version=11        
    compiler.libcxx=libstdc++11
    build_type=Release
    [options]
    [build_requires]
    [env]
    

    And the compiler error ,(embrace yourself!):

    conan install . -if build --build=dataframe
    Configuration:
    [settings]
    arch=x86_64
    arch_build=x86_64
    build_type=Release
    compiler=gcc
    compiler.libcxx=libstdc++11
    compiler.version=11
    os=Windows
    os_build=Windows
    [options]
    [build_requires]
    [env]
    
    dataframe/1.17.0: WARN: dataframe recipe lacks information about the gcc compiler standard version support
    dataframe/1.17.0: Forced build from source
    conanfile.txt: Installing package
    Requirements
        dataframe/1.17.0 from 'conan-center' - Cache
    Packages
        dataframe/1.17.0:c09e3d8495156e11deb56d47b1c1689da5025a71 - Build
    
    Installing (downloading, building) binaries...
    dataframe/1.17.0: WARN: Build folder is dirty, removing it: C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71
    dataframe/1.17.0: Copying sources to build folder
    dataframe/1.17.0: Building your package in C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71
    dataframe/1.17.0: Generator cmake created conanbuildinfo.cmake
    dataframe/1.17.0: Calling build()
    -- The C compiler identification is GNU 11.1.0
    -- The CXX compiler identification is GNU 11.1.0
    -- Detecting C compiler ABI info
    -- Detecting C compiler ABI info - done
    -- Check for working C compiler: C:/Users/Server/Downloads/winlibs-x86_64-posix-seh-gcc-11.1.0-llvm-12.0.0-mingw-w64-8.0.2-r1/mingw64/bin/gcc.exe - skipped
    -- Detecting C compile features
    -- Detecting C compile features - done
    -- Detecting CXX compiler ABI info
    -- Detecting CXX compiler ABI info - done
    -- Check for working CXX compiler: C:/Users/Server/Downloads/winlibs-x86_64-posix-seh-gcc-11.1.0-llvm-12.0.0-mingw-w64-8.0.2-r1/mingw64/bin/g++.exe - skipped
    -- Detecting CXX compile features
    -- Detecting CXX compile features - done
    -- Conan: called by CMake conan helper
    -- Conan: called inside local cache
    -- Conan: Adjusting output directories
    -- Conan: Using cmake global configuration
    -- Conan: Adjusting default RPATHs Conan policies
    -- Conan: Adjusting language standard
    -- Conan: Compiler GCC>=5, checking major version 11
    -- Conan: Checking correct version: 11
    -- Conan: C++ stdlib: libstdc++11
    -- Looking for clock_gettime
    -- Looking for clock_gettime - found
    -- Configuring done
    -- Generating done
    CMake Warning:
      Manually-specified variables were not used by the project:
    
        CMAKE_EXPORT_NO_PACKAGE_REGISTRY
    
    
    -- Build files have been written to: C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71
    Scanning dependencies of target DataFrame
    [ 40%] Building CXX object source_subfolder/CMakeFiles/DataFrame.dir/src/Vectors/HeteroVector.cc.obj
    [ 40%] Building CXX object source_subfolder/CMakeFiles/DataFrame.dir/src/Vectors/HeteroView.cc.obj
    [ 60%] Building CXX object source_subfolder/CMakeFiles/DataFrame.dir/src/Vectors/HeteroPtrView.cc.obj
    [ 80%] Building CXX object source_subfolder/CMakeFiles/DataFrame.dir/src/Utils/DateTime.cc.obj
    In file included from C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:30:
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:168:19: error: variable 'hmdf::LIBRARY_API hmdf::DateTime' has 
    initializer but incomplete type
      168 | class LIBRARY_API DateTime {
          |                   ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:170:1: error: expected primary-expression before 'public'      
      170 | public:
          | ^~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:170:1: error: expected '}' before 'public'
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:168:28: note: to match this '{'
      168 | class LIBRARY_API DateTime {
          |                            ^
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:170:1: error: expected ',' or ';' before 'public'
      170 | public:
          | ^~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:185:5: error: 'explicit' outside class declaration
      185 |     explicit DateTime (DT_TIME_ZONE tz = DT_TIME_ZONE::LOCAL);
          |     ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:187:5: error: 'explicit' outside class declaration
      187 |     explicit DateTime (DateType d,
          |     ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:187:24: error: 'DateType' was not declared in this scope; did you mean 'DateTime'?
      187 |     explicit DateTime (DateType d,
          |                        ^~~~~~~~
          |                        DateTime
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:188:33: error: expected primary-expression before 'hr'
      188 |                        HourType hr = 0,
          |                                 ^~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:189:35: error: expected primary-expression before 'mn'
      189 |                        MinuteType mn = 0,
          |                                   ^~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:190:35: error: expected primary-expression before 'sc'
      190 |                        SecondType sc = 0,
          |                                   ^~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:191:39: error: expected primary-expression before 'ns'
      191 |                        NanosecondType ns = 0,
          |                                       ^~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:192:37: error: expected primary-expression before 'tz'
      192 |                        DT_TIME_ZONE tz = DT_TIME_ZONE::LOCAL);
          |                                     ^~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:217:5: error: 'explicit' outside class declaration
      217 |     explicit DateTime (const char *s,
          |     ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:221:21: error: 'DateTime' does not name a type
      221 |     DateTime (const DateTime &that) = default;
          |                     ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:221:37: error: expected constructor, destructor, or type conversion before '=' token
      221 |     DateTime (const DateTime &that) = default;
          |                                     ^
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:222:14: error: expected constructor, destructor, or type conversion before '(' token
      222 |     DateTime (DateTime &&that) = default;
          |              ^
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:223:15: error: expected class-name before '(' token
      223 |     ~DateTime () = default;
          |               ^
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:225:5: error: 'DateTime' does not name a type
      225 |     DateTime &operator = (const DateTime &rhs) = default;
          |     ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:226:5: error: 'DateTime' does not name a type
      226 |     DateTime &operator = (DateTime &&rhs) = default;
          |     ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:238:34: error: non-member function 'hmdf::DT_TIME_ZONE hmdf::get_timezone()' cannot have cv-qualifier
      238 |     DT_TIME_ZONE get_timezone () const;
          |                                  ^~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:240:5: error: 'DateTime' does not name a type
      240 |     DateTime &operator = (DateType rhs);  // dt = 20181223
          |     ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:246:5: error: 'DateTime' does not name a type
      246 |     DateTime &operator = (const char *rhs);  // dt = "20181223"
          |     ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:250:29: error: 'DateTime' does not name a type
      250 |     EpochType compare(const DateTime &rhs) const;
          |                             ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:250:44: error: non-member function 'hmdf::EpochType hmdf::compare(const int&)' cannot have cv-qualifier
      250 |     EpochType compare(const DateTime &rhs) const;
          |                                            ^~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:252:5: error: 'DateType' does not name a type; did you mean 'MinuteType'?
      252 |     DateType date () const noexcept;            // eg. 20020303
          |     ^~~~~~~~
          |     MinuteType
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:253:32: error: non-member function 'hmdf::DatePartType hmdf::year()' cannot have cv-qualifier
      253 |     DatePartType year () const noexcept;        // eg. 1990
          |                                ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:254:29: error: non-member function 'hmdf::DT_MONTH hmdf::month()' cannot have cv-qualifier
      254 |     DT_MONTH month () const noexcept;           // JAN - DEC
          |                             ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:255:34: error: non-member function 'hmdf::DatePartType hmdf::dmonth()' cannot have cv-qualifier
      255 |     DatePartType dmonth () const noexcept;      // 1 - 31
          |                                  ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:256:33: error: non-member function 'hmdf::DatePartType hmdf::dyear()' cannot have cv-qualifier
      256 |     DatePartType dyear () const noexcept;       // 1 - 366
          |                                 ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:257:31: error: non-member function 'hmdf::DT_WEEKDAY hmdf::dweek()' cannot have cv-qualifier
      257 |     DT_WEEKDAY dweek () const noexcept;         // SUN - SAT
          |                               ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:258:28: error: non-member function 'hmdf::HourType hmdf::hour( 
    ' cannot have cv-qualifier
      258 |     HourType hour () const noexcept;            // 0 - 23
          |                            ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:259:32: error: non-member function 'hmdf::MinuteType hmdf::minute()' cannot have cv-qualifier
      259 |     MinuteType minute () const noexcept;        // 0 - 59
          |                                ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:260:29: error: non-member function 'hmdf::SecondType hmdf::sec()' cannot have cv-qualifier
      260 |     SecondType sec () const noexcept;           // 0 - 59
          |                             ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:261:35: error: non-member function 'hmdf::MillisecondType hmdf::msec()' cannot have cv-qualifier
      261 |     MillisecondType msec () const noexcept;     // 0 - 999
          |                                   ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:262:39: error: non-member function 'hmdf::MicrosecondType hmdf::microsec()' cannot have cv-qualifier
      262 |     MicrosecondType microsec () const noexcept; // 0 - 999,999
          |                                       ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:263:37: error: non-member function 'hmdf::NanosecondType hmdf::nanosec()' cannot have cv-qualifier
      263 |     NanosecondType nanosec () const noexcept;   // 0 - 999,999,999
          |                                     ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:264:29: error: non-member function 'hmdf::EpochType hmdf::time()' cannot have cv-qualifier
      264 |     EpochType time () const noexcept;           // Like ::time()
          |                             ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:265:37: error: non-member function 'hmdf::LongTimeType hmdf::long_time()' cannot have cv-qualifier
      265 |     LongTimeType long_time () const noexcept;   // Nano seconds since epoch
          |                                     ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:267:41: error: non-member function 'hmdf::DatePartType hmdf::days_in_month()' cannot have cv-qualifier
      267 |     DatePartType days_in_month () const noexcept;  // 28, 29, 30, 31
          |                                         ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:273:32: error: 'DateTime' does not name a type
      273 |     double diff_seconds (const DateTime &that) const;
          |                                ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:273:48: error: non-member function 'double hmdf::diff_seconds(const int&)' cannot have cv-qualifier
      273 |     double diff_seconds (const DateTime &that) const;
          |                                                ^~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:274:32: error: 'DateTime' does not name a type
      274 |     double diff_minutes (const DateTime &that) const noexcept;
          |                                ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:274:54: error: non-member function 'double hmdf::diff_minutes(const int&)' cannot have cv-qualifier
      274 |     double diff_minutes (const DateTime &that) const noexcept;
          |                                                      ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:275:30: error: 'DateTime' does not name a type
      275 |     double diff_hours (const DateTime &that) const noexcept;
          |                              ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:275:52: error: non-member function 'double hmdf::diff_hours(const int&)' cannot have cv-qualifier
      275 |     double diff_hours (const DateTime &that) const noexcept;
          |                                                    ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:276:29: error: 'DateTime' does not name a type
      276 |     double diff_days (const DateTime &that) const noexcept;
          |                             ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:276:51: error: non-member function 'double hmdf::diff_days(const int&)' cannot have cv-qualifier
      276 |     double diff_days (const DateTime &that) const noexcept;
          |                                                   ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:277:33: error: 'DateTime' does not name a type
      277 |     double diff_weekdays (const DateTime &that) const noexcept;
          |                                 ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:277:55: error: non-member function 'double hmdf::diff_weekdays(const int&)' cannot have cv-qualifier
      277 |     double diff_weekdays (const DateTime &that) const noexcept;
          |                                                       ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:278:30: error: 'DateTime' does not name a type
      278 |     double diff_weeks (const DateTime &that) const noexcept;
          |                              ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:278:52: error: non-member function 'double hmdf::diff_weeks(const int&)' cannot have cv-qualifier
      278 |     double diff_weeks (const DateTime &that) const noexcept;
          |                                                    ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:290:30: error: non-member function 'bool hmdf::is_weekend()' cannot have cv-qualifier
      290 |     bool is_weekend () const noexcept;
          |                              ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:291:30: error: non-member function 'bool hmdf::is_newyear()' cannot have cv-qualifier
      291 |     bool is_newyear () const noexcept;
          |                              ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:292:27: error: non-member function 'bool hmdf::is_xmas()' cannot have cv-qualifier
      292 |     bool is_xmas () const noexcept;
          |                           ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:293:38: error: non-member function 'bool hmdf::is_us_business_day()' cannot have cv-qualifier
      293 |     bool is_us_business_day () const noexcept;
          |                                      ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:294:38: error: non-member function 'bool hmdf::is_us_bank_holiday()' cannot have cv-qualifier
      294 |     bool is_us_bank_holiday () const noexcept;
          |                                      ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:295:28: error: non-member function 'bool hmdf::is_valid()' cannot have cv-qualifier
      295 |     bool is_valid () const noexcept;
          |                            ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:300:52: error: non-member function 'void hmdf::date_to_str(hmdf::DT_FORMAT, T&)' cannot have cv-qualifier
      300 |     void date_to_str (DT_FORMAT format, T &result) const;
          |                                                    ^~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:301:50: error: non-member function 'std::string hmdf::string_format(hmdf::DT_FORMAT)' cannot have cv-qualifier
      301 |     std::string string_format (DT_FORMAT format) const;
          |                                                  ^~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:303:1: error: expected unqualified-id before 'private'
      303 | private:
          | ^~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:376:9: error: 'INVALID_VALUE_' was not declared in this scope  
      376 |         INVALID_VALUE_<EpochType>::max()
          |         ^~~~~~~~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:376:33: error: expected primary-expression before '>' token    
      376 |         INVALID_VALUE_<EpochType>::max()
          |                                 ^
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:376:36: error: '::max' has not been declared; did you mean 'std::max'?
      376 |         INVALID_VALUE_<EpochType>::max()
          |                                    ^~~
          |                                    std::max
    In file included from c:\users\server\downloads\winlibs-x86_64-posix-seh-gcc-11.1.0-llvm-12.0.0-mingw-w64-8.0.2-r1\mingw64\include\c++\11.1.0\functional:65,
                     from C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:34,
                     from C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:30:
    c:\users\server\downloads\winlibs-x86_64-posix-seh-gcc-11.1.0-llvm-12.0.0-mingw-w64-8.0.2-r1\mingw64\include\c++\11.1.0\bits\stl_algo.h:3467:5: note: 'std::max' declared here
     3467 |     max(initializer_list<_Tp> __l, _Compare __comp)
          |     ^~~
    In file included from C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:30:
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:378:25: error: 'DateType' does not name a type; did you mean 'MinuteType'?
      378 |     inline static const DateType    INVALID_DATE_ {
          |                         ^~~~~~~~
          |                         MinuteType
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:382:9: error: 'INVALID_VALUE_' was not declared in this scope; 
    did you mean 'INVALID_HOUR_'?
      382 |         INVALID_VALUE_<HourType>::max()
          |         ^~~~~~~~~~~~~~
          |         INVALID_HOUR_
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:382:32: error: expected primary-expression before '>' token    
      382 |         INVALID_VALUE_<HourType>::max()
          |                                ^
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:382:35: error: '::max' has not been declared; did you mean 'std::max'?
      382 |         INVALID_VALUE_<HourType>::max()
          |                                   ^~~
          |                                   std::max
    In file included from c:\users\server\downloads\winlibs-x86_64-posix-seh-gcc-11.1.0-llvm-12.0.0-mingw-w64-8.0.2-r1\mingw64\include\c++\11.1.0\functional:65,
                     from C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:34,
                     from C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:30:
    c:\users\server\downloads\winlibs-x86_64-posix-seh-gcc-11.1.0-llvm-12.0.0-mingw-w64-8.0.2-r1\mingw64\include\c++\11.1.0\bits\stl_algo.h:3467:5: note: 'std::max' declared here
     3467 |     max(initializer_list<_Tp> __l, _Compare __comp)
          |     ^~~
    In file included from C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:30:
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:385:9: error: 'INVALID_VALUE_' was not declared in this scope; 
    did you mean 'INVALID_MINUTE_'?
      385 |         INVALID_VALUE_<MinuteType>::max()
          |         ^~~~~~~~~~~~~~
          |         INVALID_MINUTE_
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:385:34: error: expected primary-expression before '>' token    
      385 |         INVALID_VALUE_<MinuteType>::max()
          |                                  ^
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:385:37: error: '::max' has not been declared; did you mean 'std::max'?
      385 |         INVALID_VALUE_<MinuteType>::max()
          |                                     ^~~
          |                                     std::max
    In file included from c:\users\server\downloads\winlibs-x86_64-posix-seh-gcc-11.1.0-llvm-12.0.0-mingw-w64-8.0.2-r1\mingw64\include\c++\11.1.0\functional:65,
                     from C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:34,
                     from C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:30:
    c:\users\server\downloads\winlibs-x86_64-posix-seh-gcc-11.1.0-llvm-12.0.0-mingw-w64-8.0.2-r1\mingw64\include\c++\11.1.0\bits\stl_algo.h:3467:5: note: 'std::max' declared here
     3467 |     max(initializer_list<_Tp> __l, _Compare __comp)
          |     ^~~
    In file included from C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:30:
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:388:9: error: 'INVALID_VALUE_' was not declared in this scope; 
    did you mean 'INVALID_MINUTE_'?
      388 |         INVALID_VALUE_<SecondType>::max()
          |         ^~~~~~~~~~~~~~
          |         INVALID_MINUTE_
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:388:34: error: expected primary-expression before '>' token    
      388 |         INVALID_VALUE_<SecondType>::max()
          |                                  ^
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:388:37: error: '::max' has not been declared; did you mean 'std::max'?
      388 |         INVALID_VALUE_<SecondType>::max()
          |                                     ^~~
          |                                     std::max
    In file included from c:\users\server\downloads\winlibs-x86_64-posix-seh-gcc-11.1.0-llvm-12.0.0-mingw-w64-8.0.2-r1\mingw64\include\c++\11.1.0\functional:65,
                     from C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:34,
                     from C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:30:
    c:\users\server\downloads\winlibs-x86_64-posix-seh-gcc-11.1.0-llvm-12.0.0-mingw-w64-8.0.2-r1\mingw64\include\c++\11.1.0\bits\stl_algo.h:3467:5: note: 'std::max' declared here
     3467 |     max(initializer_list<_Tp> __l, _Compare __comp)
          |     ^~~
    In file included from C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:30:
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:406:5: error: 'friend' used outside of class
      406 |     friend class    DT_initializer;
          |     ^~~~~~
          |     ------
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:408:5: error: 'DateType' does not name a type; did you mean 'MinuteType'?
      408 |     DateType        date_ { INVALID_DATE_ };  // Like 20190518
          |     ^~~~~~~~
          |     MinuteType
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:427:50: error: non-member function 'hmdf::EpochType hmdf::maketime_(tm&)' cannot have cv-qualifier
      427 |     EpochType maketime_ (struct tm &ltime) const noexcept;
          |                                                  ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:479:32: error: 'DateTime' does not name a type
      479 | inline bool operator == (const DateTime &lhs, const DateTime &rhs) noexcept  {
          |                                ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:479:53: error: 'DateTime' does not name a type
      479 | inline bool operator == (const DateTime &lhs, const DateTime &rhs) noexcept  {
          |                                                     ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:479:13: error: 'bool operator==(const int&, const int&)' must have an argument of class or enumerated type
      479 | inline bool operator == (const DateTime &lhs, const DateTime &rhs) noexcept  {
          |             ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:486:32: error: 'DateTime' does not name a type
      486 | inline bool operator != (const DateTime &lhs, const DateTime &rhs) noexcept  {
          |                                ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:486:53: error: 'DateTime' does not name a type
      486 | inline bool operator != (const DateTime &lhs, const DateTime &rhs) noexcept  {
          |                                                     ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:486:13: error: 'bool operator!=(const int&, const int&)' must have an argument of class or enumerated type
      486 | inline bool operator != (const DateTime &lhs, const DateTime &rhs) noexcept  {
          |             ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:493:31: error: 'DateTime' does not name a type
      493 | inline bool operator < (const DateTime &lhs, const DateTime &rhs) noexcept  {
          |                               ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:493:52: error: 'DateTime' does not name a type
      493 | inline bool operator < (const DateTime &lhs, const DateTime &rhs) noexcept  {
          |                                                    ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:493:13: error: 'bool operator<(const int&, const int&)' must have an argument of class or enumerated type
      493 | inline bool operator < (const DateTime &lhs, const DateTime &rhs) noexcept  {
          |             ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:500:32: error: 'DateTime' does not name a type
      500 | inline bool operator <= (const DateTime &lhs, const DateTime &rhs) noexcept  {
          |                                ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:500:53: error: 'DateTime' does not name a type
      500 | inline bool operator <= (const DateTime &lhs, const DateTime &rhs) noexcept  {
          |                                                     ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:500:13: error: 'bool operator<=(const int&, const int&)' must have an argument of class or enumerated type
      500 | inline bool operator <= (const DateTime &lhs, const DateTime &rhs) noexcept  {
          |             ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:507:31: error: 'DateTime' does not name a type
      507 | inline bool operator > (const DateTime &lhs, const DateTime &rhs) noexcept  {
          |                               ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:507:52: error: 'DateTime' does not name a type
      507 | inline bool operator > (const DateTime &lhs, const DateTime &rhs) noexcept  {
          |                                                    ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:507:13: error: 'bool operator>(const int&, const int&)' must have an argument of class or enumerated type
      507 | inline bool operator > (const DateTime &lhs, const DateTime &rhs) noexcept  {
          |             ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:514:32: error: 'DateTime' does not name a type
      514 | inline bool operator >= (const DateTime &lhs, const DateTime &rhs) noexcept  {
          |                                ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:514:53: error: 'DateTime' does not name a type
      514 | inline bool operator >= (const DateTime &lhs, const DateTime &rhs) noexcept  {
          |                                                     ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:514:13: error: 'bool operator>=(const int&, const int&)' must have an argument of class or enumerated type
      514 | inline bool operator >= (const DateTime &lhs, const DateTime &rhs) noexcept  {
          |             ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:522:36: error: 'DateTime' does not name a type
      522 | inline S &operator << (S &o, const DateTime &rhs)  {
          |                                    ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h: In function 'S& operator<<(S&, const int&)':
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:524:22: error: request for member 'string_format' in 'rhs', which is of non-class type 'const int'
      524 |     return (o << rhs.string_format (DT_FORMAT::DT_TM2));
          |                      ^~~~~~~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:524:37: error: 'DT_FORMAT' has not been declared
      524 |     return (o << rhs.string_format (DT_FORMAT::DT_TM2));
          |                                     ^~~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h: At global scope:
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:527:1: error: expected declaration before '}' token
      527 | } // namespace hmdf
          | ^
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:533:29: error: 'DateTime' in namespace 'hmdf' does not name a type
      533 | struct  hash<typename hmdf::DateTime>  {
          |                             ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:168:19: note: 'hmdf::DateTime' declared here
      168 | class LIBRARY_API DateTime {
          |                   ^~~~~~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:533:37: error: template argument 1 is invalid
      533 | struct  hash<typename hmdf::DateTime>  {
          |                                     ^
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:48:1: error: 'DateTime' does not name a type
       48 | DateTime::DateTime (DT_TIME_ZONE tz) : time_zone_(tz)  {
          | ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:82:6: error: 'DateTime' is not a class, namespace, or enumeration
       82 | void DateTime::set_time(EpochType the_time, NanosecondType nanosec) noexcept {
          |      ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc: In function 'void hmdf::set_time(hmdf::EpochType, hmdf::NanosecondType)':  
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:84:5: error: 'date_' was not declared in this scope
       84 |     date_ = INVALID_DATE_;
          |     ^~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:84:13: error: 'INVALID_DATE_' was not declared in this scope; did you mean  
    INVALID_ATOM'?
       84 |     date_ = INVALID_DATE_;
          |             ^~~~~~~~~~~~~
          |             INVALID_ATOM
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc: At global scope:
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:96:1: error: 'DateTime' does not name a type
       96 | DateTime::DateTime (DateType d,
          | ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:135:1: error: 'DateTime' does not name a type
      135 | DateTime::DateTime (const char *s, DT_DATE_STYLE ds, DT_TIME_ZONE tz)
          | ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:250:1: error: 'DateTime' does not name a type
      250 | DateTime &DateTime::operator = (const char *s)  {
          | ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:296:1: error: 'DateTime' does not name a type
      296 | DateTime &DateTime::operator = (DateType the_date)  {
          | ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:307:1: error: 'DateTime' does not name a type
      307 | DateTime::EpochType DateTime::compare (const DateTime &rhs) const  {
          | ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:314:1: error: 'DateTime' does not name a type
      314 | DateTime::DatePartType DateTime::days_in_month () const noexcept  {
          | ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:321:1: error: 'DateTime' does not name a type
      321 | DateTime::DatePartType DateTime::
          | ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:347:6: error: 'DateTime' is not a class, namespace, or enumeration
      347 | bool DateTime::is_valid () const noexcept  {
          |      ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:347:34: error: non-member function 'bool hmdf::is_valid()' cannot have cv-qualifier
      347 | bool DateTime::is_valid () const noexcept  {
          |                                  ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:368:6: error: 'DateTime' is not a class, namespace, or enumeration
      368 | bool DateTime::is_us_business_day () const noexcept  {
          |      ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:368:44: error: non-member function 'bool hmdf::is_us_business_day()' cannot 
    have cv-qualifier
      368 | bool DateTime::is_us_business_day () const noexcept  {
          |                                            ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc: In function 'bool hmdf::is_us_business_day()':
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:373:11: error: 'DateType' does not name a type; did you mean 'MinuteType'?  
      373 |     const DateType      date_part = date();  // e.g. 20190110
          |           ^~~~~~~~
          |           MinuteType
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:380:17: error: 'date_part' was not declared in this scope
      380 |                (date_part == 19450815 || date_part == 19450816) ||
          |                 ^~~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc: At global scope:
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:457:6: error: 'DateTime' is not a class, namespace, or enumeration
      457 | bool DateTime::is_us_bank_holiday () const noexcept  {
          |      ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:457:44: error: non-member function 'bool hmdf::is_us_bank_holiday()' cannot 
    have cv-qualifier
      457 | bool DateTime::is_us_bank_holiday () const noexcept  {
          |                                            ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:480:6: error: 'DateTime' is not a class, namespace, or enumeration
      480 | void DateTime::set_timezone (DT_TIME_ZONE tz)  {
          |      ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc: In function 'void hmdf::set_timezone(hmdf::DT_TIME_ZONE)':
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:482:25: error: invalid use of 'this' in non-member function
      482 |     const EpochType t = this->time ();
          |                         ^~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc: At global scope:
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:491:14: error: 'DateTime' is not a class, namespace, or enumeration
      491 | DT_TIME_ZONE DateTime::get_timezone () const  { return (time_zone_); }
          |              ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:491:40: error: non-member function 'hmdf::DT_TIME_ZONE hmdf::get_timezone()' cannot have cv-qualifier
      491 | DT_TIME_ZONE DateTime::get_timezone () const  { return (time_zone_); }
          |                                        ^~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:495:1: error: 'DateTime' does not name a type
      495 | DateTime::DateType DateTime::date () const noexcept  {
          | ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:505:1: error: 'DateTime' does not name a type
      505 | DateTime::DatePartType DateTime::year () const noexcept  {
          | ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:512:10: error: 'DateTime' is not a class, namespace, or enumeration
      512 | DT_MONTH DateTime::month () const noexcept  {
          |          ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:512:35: error: non-member function 'hmdf::DT_MONTH hmdf::month()' cannot have cv-qualifier
      512 | DT_MONTH DateTime::month () const noexcept  {
          |                                   ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc: In function 'hmdf::DT_MONTH hmdf::month()':
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:514:36: error: 'date' was not declared in this scope
      514 |     return (static_cast<DT_MONTH>((date () % 10000) / 100));
          |                                    ^~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc: At global scope:
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:519:1: error: 'DateTime' does not name a type
      519 | DateTime::DatePartType DateTime::dmonth () const noexcept  {
          | ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:526:1: error: 'DateTime' does not name a type
      526 | DateTime::DatePartType DateTime::dyear () const noexcept  {
          | ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:540:12: error: 'DateTime' is not a class, namespace, or enumeration
      540 | DT_WEEKDAY DateTime::dweek () const noexcept  {
          |            ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:540:37: error: non-member function 'hmdf::DT_WEEKDAY hmdf::dweek()' cannot have cv-qualifier
      540 | DT_WEEKDAY DateTime::dweek () const noexcept  {
          |                                     ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc: In function 'hmdf::DT_WEEKDAY hmdf::dweek()':
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:546:20: error: 'DateTime' does not name a type
      546 |         const_cast<DateTime *>(this)->breaktime_ (this->time (), nanosec ());
          |                    ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:546:29: error: expected '>' before '*' token
      546 |         const_cast<DateTime *>(this)->breaktime_ (this->time (), nanosec ());
          |                             ^
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:546:29: error: expected '(' before '*' token
      546 |         const_cast<DateTime *>(this)->breaktime_ (this->time (), nanosec ());
          |                             ^
          |                             (
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:546:30: error: expected primary-expression before '>' token
      546 |         const_cast<DateTime *>(this)->breaktime_ (this->time (), nanosec ());
          |                              ^
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:546:32: error: invalid use of 'this' in non-member function
      546 |         const_cast<DateTime *>(this)->breaktime_ (this->time (), nanosec ());
          |                                ^~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:546:51: error: invalid use of 'this' in non-member function
      546 |         const_cast<DateTime *>(this)->breaktime_ (this->time (), nanosec ());
          |                                                   ^~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:546:77: error: expected ')' before ';' token
      546 |         const_cast<DateTime *>(this)->breaktime_ (this->time (), nanosec ());
          |                                                                             ^
          |                                                                             )
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc: At global scope:
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:553:1: error: 'DateTime' does not name a type
      553 | DateTime::HourType DateTime::hour () const noexcept  {
          | ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:565:1: error: 'DateTime' does not name a type
      565 | DateTime::MinuteType DateTime::minute () const noexcept  {
          | ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:575:1: error: 'DateTime' does not name a type
      575 | DateTime::SecondType DateTime::sec () const noexcept  {
          | ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:585:1: error: 'DateTime' does not name a type
      585 | DateTime::MillisecondType DateTime::msec () const noexcept  {
          | ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:594:1: error: 'DateTime' does not name a type
      594 | DateTime::MicrosecondType DateTime::microsec () const noexcept  {
          | ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:603:1: error: 'DateTime' does not name a type
      603 | DateTime::NanosecondType DateTime::nanosec () const noexcept  {
          | ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:617:1: error: 'DateTime' does not name a type
      617 | DateTime::EpochType DateTime::time () const noexcept  {
          | ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:633:1: error: 'DateTime' does not name a type
      633 | DateTime::LongTimeType DateTime::long_time () const noexcept  {
          | ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:641:8: error: 'DateTime' is not a class, namespace, or enumeration
      641 | double DateTime::diff_seconds (const DateTime &that) const  {
          |        ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:641:38: error: 'DateTime' does not name a type
      641 | double DateTime::diff_seconds (const DateTime &that) const  {
          |                                      ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:641:54: error: non-member function 'double hmdf::diff_seconds(const int&)' cannot have cv-qualifier
      641 | double DateTime::diff_seconds (const DateTime &that) const  {
          |                                                      ^~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc: In function 'double hmdf::diff_seconds(const int&)':
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:647:28: error: request for member 'time_zone_' in 'that', which is of non-class type 'const int'
      647 |     if (time_zone_ != that.time_zone_)
          |                            ^~~~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:654:29: error: invalid use of 'this' in non-member function
      654 |         static_cast<double>(this->time ()) +
          |                             ^~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:657:34: error: request for member 'time' in 'that', which is of non-class type 'const int'
      657 |         static_cast<double>(that.time ()) +
          |                                  ^~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:658:35: error: request for member 'nanosec' in 'that', which is of non-class type 'const int'
      658 |         (static_cast<double>(that.nanosec ()) / 1000000000.0);
          |                                   ^~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc: At global scope:
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:665:8: error: 'DateTime' is not a class, namespace, or enumeration
      665 | double DateTime::diff_minutes (const DateTime &that) const noexcept  {
          |        ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:665:38: error: 'DateTime' does not name a type
      665 | double DateTime::diff_minutes (const DateTime &that) const noexcept  {
          |                                      ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:665:60: error: non-member function 'double hmdf::diff_minutes(const int&)' cannot have cv-qualifier
      665 | double DateTime::diff_minutes (const DateTime &that) const noexcept  {
          |                                                            ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:672:8: error: 'DateTime' is not a class, namespace, or enumeration
      672 | double DateTime::diff_hours (const DateTime &that) const noexcept  {
          |        ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:672:36: error: 'DateTime' does not name a type
      672 | double DateTime::diff_hours (const DateTime &that) const noexcept  {
          |                                    ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:672:58: error: non-member function 'double hmdf::diff_hours(const int&)' cannot have cv-qualifier
      672 | double DateTime::diff_hours (const DateTime &that) const noexcept  {
          |                                                          ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:679:8: error: 'DateTime' is not a class, namespace, or enumeration
      679 | double DateTime::diff_days (const DateTime &that) const noexcept  {
          |        ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:679:35: error: 'DateTime' does not name a type
      679 | double DateTime::diff_days (const DateTime &that) const noexcept  {
          |                                   ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:679:57: error: non-member function 'double hmdf::diff_days(const int&)' cannot have cv-qualifier
      679 | double DateTime::diff_days (const DateTime &that) const noexcept  {
          |                                                         ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:686:8: error: 'DateTime' is not a class, namespace, or enumeration
      686 | double DateTime::diff_weekdays (const DateTime &that) const noexcept  {
          |        ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:686:39: error: 'DateTime' does not name a type
      686 | double DateTime::diff_weekdays (const DateTime &that) const noexcept  {
          |                                       ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:686:61: error: non-member function 'double hmdf::diff_weekdays(const int&)' 
    cannot have cv-qualifier
      686 | double DateTime::diff_weekdays (const DateTime &that) const noexcept  {
          |                                                             ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc: In function 'double hmdf::diff_weekdays(const int&)':
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:689:13: error: expected ';' before 'slug'
      689 |     DateTime    slug (that);
          |             ^   ~~~~
          |             ;
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:692:12: error: 'slug' was not declared in this scope
      692 |     while (slug.date () != date ())  {
          |            ^~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:692:28: error: 'date' was not declared in this scope
      692 |     while (slug.date () != date ())  {
          |                            ^~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:698:36: error: 'slug' was not declared in this scope
      698 |     return (ddays + (diff_seconds (slug) / static_cast<double>(24 * 3600)));
          |                                    ^~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc: At global scope:
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:703:8: error: 'DateTime' is not a class, namespace, or enumeration
      703 | double DateTime::diff_weeks (const DateTime &that) const noexcept  {
          |        ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:703:36: error: 'DateTime' does not name a type
      703 | double DateTime::diff_weeks (const DateTime &that) const noexcept  {
          |                                    ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:703:58: error: non-member function 'double hmdf::diff_weeks(const int&)' cannot have cv-qualifier
      703 | double DateTime::diff_weeks (const DateTime &that) const noexcept  {
          |                                                          ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:710:6: error: 'DateTime' is not a class, namespace, or enumeration
      710 | void DateTime::add_seconds (EpochType secs) noexcept  {
          |      ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc: In function 'void hmdf::add_seconds(hmdf::EpochType)':
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:712:15: error: invalid use of 'this' in non-member function
      712 |     set_time (this->time () + secs, nanosec ());
          |               ^~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc: At global scope:
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:718:6: error: 'DateTime' is not a class, namespace, or enumeration
      718 | void DateTime::add_nanoseconds (long nanosecs) noexcept  {
          |      ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc: In function 'void hmdf::add_nanoseconds(long int)':
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:721:36: error: invalid use of 'this' in non-member function
      721 |         static_cast<long long int>(this->time()) * 1000000000LL +
          |                                    ^~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc: At global scope:
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:732:6: error: 'DateTime' is not a class, namespace, or enumeration
      732 | void DateTime::add_days (long days) noexcept  {
          |      ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc: In function 'void hmdf::add_days(long int)':
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:738:19: error: 'DateTime' does not name a type
      738 |             const DateTime  prev_date (*this);
          |                   ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:745:17: error: 'date' was not declared in this scope
      745 |             if (date () == prev_date.date ())  {
          |                 ^~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:745:28: error: 'prev_date' was not declared in this scope
      745 |             if (date () == prev_date.date ())  {
          |                            ^~~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc: At global scope:
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:775:6: error: 'DateTime' is not a class, namespace, or enumeration
      775 | void DateTime::add_weekdays (long days) noexcept  {
          |      ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:793:6: error: 'DateTime' is not a class, namespace, or enumeration
      793 | void DateTime::add_months (long months) noexcept  {
          |      ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc: In function 'void hmdf::add_months(long int)':
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:814:11: error: 'DateTime' does not name a type
      814 |     const DateTime  new_di((y * 100 + m) * 100 + new_day,
          |           ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:821:6: error: invalid use of 'this' in non-member function
      821 |     *this = new_di;
          |      ^~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:821:13: error: 'new_di' was not declared in this scope; did you mean 'new_day'?
      821 |     *this = new_di;
          |             ^~~~~~
          |             new_day
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc: At global scope:
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:827:6: error: 'DateTime' is not a class, namespace, or enumeration
      827 | void DateTime::add_years (long years) noexcept  {
          |      ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc: In function 'void hmdf::add_years(long int)':
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:836:11: error: 'DateTime' does not name a type
      836 |     const DateTime  new_di(
          |           ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:844:6: error: invalid use of 'this' in non-member function
      844 |     *this = new_di;
          |      ^~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:844:13: error: 'new_di' was not declared in this scope; did you mean 'new_day'?
      844 |     *this = new_di;
          |             ^~~~~~
          |             new_day
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc: At global scope:
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:850:6: error: 'DateTime' is not a class, namespace, or enumeration
      850 | bool DateTime::is_weekend () const noexcept  {
          |      ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:850:36: error: non-member function 'bool hmdf::is_weekend()' cannot have cv-qualifier
      850 | bool DateTime::is_weekend () const noexcept  {
          |                                    ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:859:6: error: 'DateTime' is not a class, namespace, or enumeration
      859 | bool DateTime::is_newyear () const noexcept  {
          |      ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:859:36: error: non-member function 'bool hmdf::is_newyear()' cannot have cv-qualifier
      859 | bool DateTime::is_newyear () const noexcept  {
          |                                    ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:876:6: error: 'DateTime' is not a class, namespace, or enumeration
      876 | bool DateTime::is_xmas () const noexcept  {
          |      ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:876:33: error: non-member function 'bool hmdf::is_xmas()' cannot have cv-qualifier
      876 | bool DateTime::is_xmas () const noexcept  {
          |                                 ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:892:13: error: 'DateTime' is not a class, namespace, or enumeration
      892 | std::string DateTime::string_format (DT_FORMAT format) const  {
          |             ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:892:56: error: non-member function 'std::string hmdf::string_format(hmdf::DT_FORMAT)' cannot have cv-qualifier
      892 | std::string DateTime::string_format (DT_FORMAT format) const  {
          |                                                        ^~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:902:13: error: 'DateTime' is not a class, namespace, or enumeration
      902 | inline void DateTime::change_env_timezone_(DT_TIME_ZONE time_zone)  {
          |             ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:918:13: error: 'DateTime' is not a class, namespace, or enumeration
      918 | inline void DateTime::reset_env_timezone_(DT_TIME_ZONE time_zone)  {
          |             ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:934:1: error: 'DateTime' does not name a type
      934 | DateTime::EpochType DateTime::maketime_ (struct tm &ltime) const noexcept  {
          | ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:955:1: error: 'DateTime' is not a class, namespace, or enumeration
      955 | DateTime::breaktime_ (EpochType the_time, NanosecondType nanosec) noexcept  {
          | ^~~~~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc: In function 'void hmdf::breaktime_(hmdf::EpochType, hmdf::NanosecondType)':C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:969:5: error: 'date_' was not declared in this scope
      969 |     date_ = (ltime.tm_year + 1900) * 100;
          |     ^~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc: At global scope:
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:988:6: error: 'DateTime' is not a class, namespace, or enumeration
      988 | void DateTime::date_to_str (DT_FORMAT format, T &result) const  {
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:988:58: error: non-member function 'void hmdf::date_to_str(hmdf::DT_FORMAT, 
    T&)' cannot have cv-qualifier
      988 | void DateTime::date_to_str (DT_FORMAT format, T &result) const  {
          |                                                          ^~~~~
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc: In function 'void hmdf::date_to_str(hmdf::DT_FORMAT, T&)':
    C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71\source_subfolder\src\Utils\DateTime.cc:1106:38: error: invalid use of 'this' in non-member function
     1106 |             buffer.printf ("%ld.%d", this->time(), nanosec());
          |                                      ^~~~
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h: At global scope:
    C:/Users/Server/.conan/data/dataframe/1.17.0/_/_/build/c09e3d8495156e11deb56d47b1c1689da5025a71/source_subfolder/include/DataFrame/Utils/DateTime.h:421:5: warning: 'hmdf::DatePartType hmdf::days_in_month_(hmdf::DT_MONTH, hmdf::DatePartType) noexcept' used but never defined
      421 |     days_in_month_ (DT_MONTH month, DatePartType year) noexcept;
          |     ^~~~~~~~~~~~~~
    mingw32-make[2]: *** [source_subfolder\CMakeFiles\DataFrame.dir\build.make:124: source_subfolder/CMakeFiles/DataFrame.dir/src/Utils/DateTime.cc.obj] Error 1
    mingw32-make[1]: *** [CMakeFiles\Makefile2:113: source_subfolder/CMakeFiles/DataFrame.dir/all] Error 2
    mingw32-make: *** [makefile:148: all] Error 2
    dataframe/1.17.0:
    dataframe/1.17.0: ERROR: Package 'c09e3d8495156e11deb56d47b1c1689da5025a71' build failed
    dataframe/1.17.0: WARN: Build folder C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71
    ERROR: dataframe/1.17.0: Error in build() method, line 110
            cmake.build()
            ConanException: Error 2 while executing cmake --build C:\Users\Server\.conan\data\dataframe\1.17.0\_\_\build\c09e3d8495156e11deb56d47b1c1689da5025a71 -- -j16
    
    help wanted question Compiling 
    opened by SpyrosMourelatos 15
  • write a dataframe failed on Multithreading

    write a dataframe failed on Multithreading

    1. should write implement on DataFrame Calling SpinLock Guard ?
    2. HeteroVector hold a global map without an lock, can this map defined as thread_local(since c++11) while SpinLock also thread_local too ?
    struct  HeteroVector  {
    ...
    template<typename T>
    inline static std::unordered_map<const HeteroVector *, std::vector<T>>
           vectors_ {  };
    ...
    
    help wanted question 
    opened by westfly 14
  • Reading CSV files

    Reading CSV files

    It seems like it should be pretty rudimentary to just open a CSV file. However, I am having trouble with just this.

    I can break my question into a couple of parts:

    1. If the first line of CSV file does not consist of specifying the data contained within the file, what happens?
    2. If I want to open a file where the index column is a date, should the declaration be: hmdf::StdDataFrame<hmdf::DateTime> df

    As of now the code in the a file run.cpp reads

    #include "../include/Errors.h" // For ASSERT_ERROR()
    #include <DataFrame/DataFrame.h>
    #include <DataFrame/Utils/DateTime.h>
    
    typedef hmdf::StdDataFrame<hmdf::DateTime> MyDataFrame;
    
    int main()
    {
    	MyDataFrame df;
    	df.read("../Data/APPL 2016-2019.csv", hmdf::io_format::csv);
    	ASSERT_ERROR("Hello World");
    	return 0;
    }
    

    Where the first couple of lines for APPL 2016-2019.csv are

    Date,Open,High,Low,Close,Adj Close,Volume
    1/4/2016,25.6525,26.342501,25.5,26.3375,24.202784,270597600
    1/5/2016,26.4375,26.4625,25.602501,25.6775,23.596279,223164000
    

    and the error message when compiling is a long message

    /tmp/ccn6Cq3C.o: In function `void hmdf::_col_vector_push_back_<hmdf::DateTime, std::vector<hmdf::DateTime, std::allocator<hmdf::DateTime> > >(std::vector<hmdf::DateTime, std::allocator<hmdf::DateTime> >&, std::basic_ifstream<char, std::char_traits<char> >&, hmdf::DateTime (*)(char const*, char**), hmdf::io_format)':
    run.cpp:(.text+0x354): undefined reference to `hmdf::DateTime::DateTime(hmdf::DT_TIME_ZONE)'
    run.cpp:(.text+0x39c): undefined reference to `hmdf::DateTime::set_time(long, int)'
    /tmp/ccn6Cq3C.o: In function `hmdf::HeteroVector::~HeteroVector()':
    run.cpp:(.text._ZN4hmdf12HeteroVectorD2Ev[_ZN4hmdf12HeteroVectorD5Ev]+0x14): undefined reference to `hmdf::HeteroVector::clear()'
    /tmp/ccn6Cq3C.o: In function `hmdf::_IdxParserFunctor_<hmdf::DateTime>::operator()(std::vector<hmdf::DateTime, std::allocator<hmdf::DateTime> >&, std::basic_ifstream<char, std::char_traits<char> >&, hmdf::io_format)::{lambda(char const*, char**)#1}::operator()(char const*, char**) const':
    run.cpp:(.text._ZZN4hmdf18_IdxParserFunctor_INS_8DateTimeEEclERSt6vectorIS1_SaIS1_EERSt14basic_ifstreamIcSt11char_traitsIcEENS_9io_formatEENKUlPKcPPcE_clESE_SG_[_ZZN4hmdf18_IdxParserFunctor_INS_8DateTimeEEclERSt6vectorIS1_SaIS1_EERSt14basic_ifstreamIcSt11char_traitsIcEENS_9io_formatEENKUlPKcPPcE_clESE_SG_]+0x25): undefined reference to `hmdf::DateTime::DateTime(hmdf::DT_TIME_ZONE)'
    /tmp/ccn6Cq3C.o: In function `hmdf::DataFrame<hmdf::DateTime, hmdf::HeteroVector>::read_csv_(std::basic_ifstream<char, std::char_traits<char> >&, bool)::{lambda(char const*, char**)#2}::operator()(char const*, char**) const':run.cpp:(.text._ZZN4hmdf9DataFrameINS_8DateTimeENS_12HeteroVectorEE9read_csv_ERSt14basic_ifstreamIcSt11char_traitsIcEEbENKUlPKcPPcE0_clESA_SC_[_ZZN4hmdf9DataFrameINS_8DateTimeENS_12HeteroVectorEE9read_csv_ERSt14basic_ifstreamIcSt11char_traitsIcEEbENKUlPKcPPcE0_clESA_SC_]+0x25): undefined reference to `hmdf::DateTime::DateTime(hmdf::DT_TIME_ZONE)'
    /tmp/ccn6Cq3C.o: In function `hmdf::DataFrame<hmdf::DateTime, hmdf::HeteroVector>::read_csv2_(std::basic_ifstream<char, std::char_traits<char> >&, bool)':
    run.cpp:(.text._ZN4hmdf9DataFrameINS_8DateTimeENS_12HeteroVectorEE10read_csv2_ERSt14basic_ifstreamIcSt11char_traitsIcEEb[_ZN4hmdf9DataFrameINS_8DateTimeENS_12HeteroVectorEE10read_csv2_ERSt14basic_ifstreamIcSt11char_traitsIcEEb]+0xd6f): undefined reference to `hmdf::DateTime::DateTime(hmdf::DT_TIME_ZONE)'
    run.cpp:(.text._ZN4hmdf9DataFrameINS_8DateTimeENS_12HeteroVectorEE10read_csv2_ERSt14basic_ifstreamIcSt11char_traitsIcEEb[_ZN4hmdf9DataFrameINS_8DateTimeENS_12HeteroVectorEE10read_csv2_ERSt14basic_ifstreamIcSt11char_traitsIcEEb]+0xdb7): undefined reference to `hmdf::DateTime::set_time(long, int)'
    /tmp/ccn6Cq3C.o: In function `hmdf::DataFrame<hmdf::DateTime, hmdf::HeteroVector>::read_json_(std::basic_ifstream<char, std::char_traits<char> >&, bool)::{lambda(char const*, char**)#1}::operator()(char const*, char**) const':
    run.cpp:(.text._ZZN4hmdf9DataFrameINS_8DateTimeENS_12HeteroVectorEE10read_json_ERSt14basic_ifstreamIcSt11char_traitsIcEEbENKUlPKcPPcE_clESA_SC_[_ZZN4hmdf9DataFrameINS_8DateTimeENS_12HeteroVectorEE10read_json_ERSt14basic_ifstreamIcSt11char_traitsIcEEbENKUlPKcPPcE_clESA_SC_]+0x25): undefined reference to `hmdf::DateTime::DateTime(hmdf::DT_TIME_ZONE)'
    /tmp/ccn6Cq3C.o: In function `std::vector<float, std::allocator<float> >& hmdf::DataFrame<hmdf::DateTime, hmdf::HeteroVector>::create_column<float>(char const*)':
    run.cpp:(.text._ZN4hmdf9DataFrameINS_8DateTimeENS_12HeteroVectorEE13create_columnIfEERSt6vectorIT_SaIS6_EEPKc[_ZN4hmdf9DataFrameINS_8DateTimeENS_12HeteroVectorEE13create_columnIfEERSt6vectorIT_SaIS6_EEPKc]+0x197): undefined reference to `hmdf::HeteroVector::HeteroVector()'
    /tmp/ccn6Cq3C.o: In function `std::vector<double, std::allocator<double> >& hmdf::DataFrame<hmdf::DateTime, hmdf::HeteroVector>::create_column<double>(char const*)':
    run.cpp:(.text._ZN4hmdf9DataFrameINS_8DateTimeENS_12HeteroVectorEE13create_columnIdEERSt6vectorIT_SaIS6_EEPKc[_ZN4hmdf9DataFrameINS_8DateTimeENS_12HeteroVectorEE13create_columnIdEERSt6vectorIT_SaIS6_EEPKc]+0x197): undefined reference to `hmdf::HeteroVector::HeteroVector()'
    /tmp/ccn6Cq3C.o: In function `std::vector<long double, std::allocator<long double> >& hmdf::DataFrame<hmdf::DateTime, hmdf::HeteroVector>::create_column<long double>(char const*)':
    run.cpp:(.text._ZN4hmdf9DataFrameINS_8DateTimeENS_12HeteroVectorEE13create_columnIeEERSt6vectorIT_SaIS6_EEPKc[_ZN4hmdf9DataFrameINS_8DateTimeENS_12HeteroVectorEE13create_columnIeEERSt6vectorIT_SaIS6_EEPKc]+0x197): undefined reference to `hmdf::HeteroVector::HeteroVector()'
    /tmp/ccn6Cq3C.o: In function `std::vector<int, std::allocator<int> >& hmdf::DataFrame<hmdf::DateTime, hmdf::HeteroVector>::create_column<int>(char const*)':
    run.cpp:(.text._ZN4hmdf9DataFrameINS_8DateTimeENS_12HeteroVectorEE13create_columnIiEERSt6vectorIT_SaIS6_EEPKc[_ZN4hmdf9DataFrameINS_8DateTimeENS_12HeteroVectorEE13create_columnIiEERSt6vectorIT_SaIS6_EEPKc]+0x197): undefined reference to `hmdf::HeteroVector::HeteroVector()'
    /tmp/ccn6Cq3C.o: In function `std::vector<unsigned int, std::allocator<unsigned int> >& hmdf::DataFrame<hmdf::DateTime, hmdf::HeteroVector>::create_column<unsigned int>(char const*)':
    run.cpp:(.text._ZN4hmdf9DataFrameINS_8DateTimeENS_12HeteroVectorEE13create_columnIjEERSt6vectorIT_SaIS6_EEPKc[_ZN4hmdf9DataFrameINS_8DateTimeENS_12HeteroVectorEE13create_columnIjEERSt6vectorIT_SaIS6_EEPKc]+0x197): undefined reference to `hmdf::HeteroVector::HeteroVector()'
    /tmp/ccn6Cq3C.o:run.cpp:(.text._ZN4hmdf9DataFrameINS_8DateTimeENS_12HeteroVectorEE13create_columnIlEERSt6vectorIT_SaIS6_EEPKc[_ZN4hmdf9DataFrameINS_8DateTimeENS_12HeteroVectorEE13create_columnIlEERSt6vectorIT_SaIS6_EEPKc]+0x197): more undefined references to `hmdf::HeteroVector::HeteroVector()' follow
    /tmp/ccn6Cq3C.o: In function `hmdf::DateTime hmdf::get_nan<hmdf::DateTime>()':
    run.cpp:(.text._ZN4hmdf7get_nanINS_8DateTimeEEET_v[_ZN4hmdf7get_nanINS_8DateTimeEEET_v]+0x19): undefined reference to `hmdf::DateTime::DateTime(hmdf::DT_TIME_ZONE)'
    /tmp/ccn6Cq3C.o: In function `void __gnu_cxx::new_allocator<hmdf::HeteroVector>::construct<hmdf::HeteroVector, hmdf::HeteroVector>(hmdf::HeteroVector*, hmdf::HeteroVector&&)':
    run.cpp:(.text._ZN9__gnu_cxx13new_allocatorIN4hmdf12HeteroVectorEE9constructIS2_JS2_EEEvPT_DpOT0_[_ZN9__gnu_cxx13new_allocatorIN4hmdf12HeteroVectorEE9constructIS2_JS2_EEEvPT_DpOT0_]+0x43): undefined reference to `hmdf::HeteroVector::HeteroVector(hmdf::HeteroVector&&)'
    /tmp/ccn6Cq3C.o: In function `void std::_Construct<hmdf::HeteroVector, hmdf::HeteroVector const&>(hmdf::HeteroVector*, hmdf::HeteroVector const&)':
    run.cpp:(.text._ZSt10_ConstructIN4hmdf12HeteroVectorEJRKS1_EEvPT_DpOT0_[_ZSt10_ConstructIN4hmdf12HeteroVectorEJRKS1_EEvPT_DpOT0_]+0x3f): undefined reference to `hmdf::HeteroVector::HeteroVector(hmdf::HeteroVector const&)'    
    collect2: error: ld returned 1 exit status
    
    enhancement question 
    opened by ominusliticus 14
Releases(1.21.0)
  • 1.21.0(Jul 22, 2022)

    Enhanced documentation + add more to hello_world.cc Fixed compiling issue related to injecting clock_gettime() system call into code Code clean ups and performance enhancements Fixed a bug in KthValueVisitor that affected MedianVisitor and QuantileVisitor Implemented BalanceOfPowerVisitor visitor Implemented NonZeroRangeVisitor visitor Implemented ChandeKrollStopVisitor visitor Added average option to TrueRange Implemented VotexVisitor visitor Implemented KeltnerChannelsVisitor visitor Added normalize option to TrueRange + now using exponential moving avg in TrueRange Implemented TrixVisitor visitor Implemented PrettyGoodOsciVisitor visitor Implemented ZeroLagMovingMeanVisitor visitor Implemented StableMeanVisitor visitor Added double operator to DateTime Implemented describe()

    Source code(tar.gz)
    Source code(zip)
  • 1.20.0(Feb 25, 2022)

    Enhanced documentation Fixed a few bugs; visitors macros, get_[data|view]_by_loc(), get_view_by_idx() Fixed all views not to be const, since you can change things through views CMake compiling was redone to make it easier for Windows Windows macros were redesigned to make compiling easier Turned extra warning flag on and fixed all compiler warnings Made hello_world.cc more comprehensive Implemented get_[data|view]() Replaced std::array, in all interfaces, with std::vector Implemented get_[data|view]_by_sel() for up to 5 columns Implemented to_string() and from_string() Implemented Coppock Curve Visitor Implemented Bias Visitor

    Source code(tar.gz)
    Source code(zip)
  • 1.19.0(Oct 12, 2021)

    Fixed bugs, including in multithreading, groupby + Removed all warnings Improved documentation Improved/tightened multithreading + SpinLock is now recursive Implemented RateOfChangeVisitor Implemented AccumDistVisitor Added single_act_visit() for 5 columns Implemented ChaikinMoneyFlowVisitor Implemented VertHorizFilterVisitor Implemented OnBalanceVolumeVisitor Implemented TrueRangeVisitor Changed the ReturnVisitor logic to start with a NaN and have the same length as input Implemented DecayVisitor Implemented HodgesTompkinsVolVisitor Implemented ParkinsonVolVisitor Implemented concat_view() Added hello_world.cc Implemented get_row() that always includes all columns

    Source code(tar.gz)
    Source code(zip)
  • 1.18.0(Jul 13, 2021)

    Fixed minor bugs (MACD, MassIndex, PercentPriceOSCI) and streamlined code Improved documentation Implemented gen_sym_triangle() – generate symmetric triangular numbers Implemented RSXVisitor -- "noise free" version of RSI, with no added la Implemented TTMTrendVisitor -- Trade To Market trend indicator Implemented ParabolicSARVisitorVisitor -- Parabolic Stop And Reverse (PSAR) Implemented EBSineWaveVisitor -- Even Better Sine Wave (EBSW) indicator Implemented EhlerSuperSmootherVisitor -- Ehler's Super Smoother Filter (SSF) indicator Implemented VarIdxDynAvgVisitor -- Variable Index Dynamic Average (VIDYA) indicator Implemented AbsVisitor – Absolute value visitor Implemented PivotPointSRVisitor -- Pivot Points, Supports and Resistances indicators Added mean_type + rearranged mean calculations Implemented ExponentiallyWeightedMeanVisitor – Exponentially weighted moving average Added abbreviated type aliases for visitors with long names Implemented AvgDirMovIdxVisitor -- Average Directional Movement Index (ADX) Added more performance tests Implemented fill_missing() with another DataFrame Implmented HoltWinterChannelVisitor -- Holt-Winter Channel (HWC) indicator Implemented HeikinAshiCndlVisitor – Heikin Ashi candle Implemented FastFourierTransVisitor – Fast Fourier transform and its inverse Implemented CenterOfGravityVisitor -- Also called Stochastic Oscillator Implemented ArnaudLegouxMAVisitor -- Arnaud Legoux Moving Average

    Source code(tar.gz)
    Source code(zip)
  • 1.17.0(May 3, 2021)

    Bug fixes, including in DateTime, is_equal(), write() Rearranged code to make it easier to compile as DLL Significantly improved docs both in terms of format and content Implemented Percent Price Oscillator visitor Added consolidated() for 4 and 5 columns Added another version of shift() to return a copy of a single shifted column Implemented Ulcer Index visitor Completely redesigned groupby() interface and made it significantly more versatile Completely redesigned bucketize() interface and made it significantly more versatile Implemented Count visitor Added ISO date format to DateTime Implemented ability to read()/write() DateTime as strings into streams Fixed a few move semantics to improve memory efficiency

    Source code(tar.gz)
    Source code(zip)
  • 1.16.0(Mar 1, 2021)

    Improved documentation Minor bug fixes including a bug in MassIndexVisitor Implemented CCIVisitor (Commodity Channel Index) Implemented gen_triangular_nums() Rearranged code Implemented EntropyVisitor (information entropy) Implemented GarmanKlassVolVisitor (Garman Klass volatility) Implemented YangZhangVolVisitor (Yang Zhang volatility) Added columns_only flag to read()/write() Added non-zero flag option to DiffVisitor Implemented KamaVisitor (Kaufman's Adaptive Moving Average) Implemented FisherTransVisitor (Fisher transform) Implemented SlopeVisitor Implemented UltimateOSCIVisitor (Ultimate Oscillator)

    Source code(tar.gz)
    Source code(zip)
  • 1.15.0(Jan 1, 2021)

    Fixed bugs, notably:

    • Fixed a bug in MACDVisitor calculation
    • Fixed a bug in vector reverse iterators
    • Fixed DataFrame destructor to work properly in multithreading environments

    Streamlined and simplified code Enhanced documentations Implemented gen_even_space_nums() Generalized read/write to take either file name or stream Made columns to have deterministic order. Now you can access columns either by name or index With column order, implemented left/right rotating and shifting Implemented remove_duplicates() for a single column Implemented TTestVisitor Implemented MassIndexVisitor Implemented WeightedMeanVisitor Added in_reverse to visit() methods Implemented QuadraticMeanVisitor Implemented HullRollingMeanVisitor Implemented RollingMidValueVisitor Implemented DrawdownVisitor Added single_act_visit() for 3 and 4 columns Implemented WilliamPrcRVisitor Added repeat_count to ExponentialRollAdopter, so we can have multiple smoothing in one call Added repeat_count to ExpoSmootherVisitor

    Source code(tar.gz)
    Source code(zip)
  • 1.14.0(Nov 4, 2020)

    Added weights and residual calculations to PolyFitVisitor Implemented LogFitVisitor Implemented ExpoSmootherVisitor (exponential smoothing) Implemented HWExpoSmootherVisitor (Holt-Winters double exponential smoothing) Implemented consolidate() Specialized std::hash for DateTime Implemented [Max|Min]SubArrayVisitor (sub-intervals with max/min sums) Replaced all Max/Min’s with Extremums visitors and typedef’ed Max/Min Implemented LowessVisitor (Locally Weighted Scatterplot Smoothing) Implemented StepRollAdopter Implemented DecomposeVisitor (STL time-series decomposer) with additive and multiplicative options Enhanced documentations Fixed bugs and compile issues

    Source code(tar.gz)
    Source code(zip)
  • 1.12.0(Sep 30, 2020)

    Improve single-act-visitor interface to be more flexible Bug fixes Enhanced documentation Implemented gen_log_space_nums() to generate logarithmically-spaced numbers Implemented remove_duplicates() Enhanced group-by functionality and made it more generalized Implemented io_format::csv2 to read/write files in Pandas csv format Implemented empty() and shapeless() Implemented Box-Cox visitor Implemented Normalize and Standardize visitors Implemented Hampel filter visitor Implemented Polynomial Fit visitor Implemented Hurst Exponent visitor

    Source code(tar.gz)
    Source code(zip)
  • 1.11.0(Aug 14, 2020)

    Enhanced documentation Fixed all VSC++ warnings for 64bit compilation (we don’t compile 32bit anymore) Implemented RankVisitor Improved random number generation Implemented SigmoidVisitor Implemented combine() method Added nodiscard to some methods Implemented RSIVisitor (Relative Strength Index)

    Source code(tar.gz)
    Source code(zip)
  • 1.10.0(Jun 8, 2020)

    Enhanced DateTime object Implemented get_columns_info method Implemented CategoryVisitor visitor Implemented FactorizeVisitor visitor Implemented pattern_match method Changed shrink_to_fit() to optimize for power of 2 cache line aliasing misses Implemented ClipVisitor visitor Significantly enhanced documentation both in terms of content and format Fixed a bug in DateTime object related to time zones Implemented SharpeRatioVisitor visitor

    Source code(tar.gz)
    Source code(zip)
  • 1.9.0(Apr 5, 2020)

    Added visit_async() and single_act_visit_async() methods Enhanced documentations Fixed many codacy complains Fixed a glitch in DateTime related to nanoseconds Added Conan package support, thanks to @yssource Added get retype_column() method Added load_align_column() method Brought the whole codebase to 100% compliance with C++ standards (using _GLIBCXX_DEBUG)

    Source code(tar.gz)
    Source code(zip)
  • 1.8.0(Mar 13, 2020)

    Added mid_point to fill_policy Added quantile visitor Added VWAP (Volume Weighted Average Price) visitor Added VWBAS (Volume Weighted Bid-Ask Spread) visitor Added concat() and self_concat() methods Added get_reindexed() and get_reindexed_view() methods Made all get methods (i.e. views) const Switched to HTML docs

    Source code(tar.gz)
    Source code(zip)
  • 1.7.0(Feb 3, 2020)

    Code reorganization Added DataFrame method get_memory_usage() Divided visitor source file into Stats, ML, and financial source files Added exponential-moving-stats adopter for visitors Added Geometric-Mean visitor Added Harmonic-Mean visitor Added Double-Cross-Over visitor Added Bollinger-Band visitor Added Moving-Average-Convergence/Divergence visitor Added Expanding-Roll-Adopter for visitors Added support for Conan file compiling Improved multi-threading + added multi-threading to more algos Added MADVisitor -- 4 different Mean-Absolute-Deviation visitor logic Added Standard-Error-of-the-Mean visitor

    Source code(tar.gz)
    Source code(zip)
  • 1.6.0(Jan 2, 2020)

    Improved testing Enhanced documentation Improved DataFrame performance Added z-score visitor Added protection for multithreading Improved visitors performance Added k-means visitor Brought iterators up to C++17 standards Added affinity-propagation visitor Improved sorting performance Added multi-column sorting + ascending vs. descending Added join by column and improved join by index Factoring out a lot of code, especially on sort and join Improved Mode calculation not to copy data

    Source code(tar.gz)
    Source code(zip)
  • V-1.5.0(Sep 1, 2019)

    Code restructures Documentation enhancements shape() shuffle() shrink_to_fit() Roll adapters for visitor algorithms Better NaN value handling Slicing by random selection Random number generators JASON files format read/write Performance/scalability comparison with Pandas was added to README Enhanced get_[data|view]by_loc(), allowing distinct location Enhanced get[data|view]_by_idx(), allowing distinct indices

    Source code(tar.gz)
    Source code(zip)
  • V-1.4.0(Jul 3, 2019)

    MMap stuff Ptr views Fixed CMake More Visitors Index generation Slicing and removing by boolean selection Other improvements and cleanups

    Source code(tar.gz)
    Source code(zip)
  • V-1.3.0(Jun 1, 2019)

  • V-1.2.0(May 7, 2019)

  • V-1.1.0(Apr 9, 2019)

  • V-1.0.0(Apr 5, 2019)

Owner
Hossein Moein
Software Engineer
Hossein Moein
C++ library to create dynamic structures in plain memory of shared-memory segments

Ищи описание на хабре @mrlolthe1st. #define _CRT_SECURE_NO_WARNINGS #include "shared_structures.h" #include <iostream> #include <fstream> #include <ca

Александр Новожилов 4 Mar 30, 2022
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
lightweight, compile-time and rust-like wrapper around the primitive numerical c++ data types

prim_wrapper header-only, fast, compile-time, rust-like wrapper around the primitive numerical c++ data types dependencies gcem - provides math functi

null 1 Oct 22, 2021
Total 21 math problem solved by c language with 4 types of functional reference. Also added circular repeated linked list system of Data structure.

C-ProblemSolve Total 21 math problem solved by c language with 4 types of functional reference. Also added circular repeated linked list system of Dat

MH Miyazi 3 Aug 28, 2021
Replacements to standard numeric types which throw exceptions on errors

safe_numerics Arithmetic operations in C++ are NOT guaranteed to yield a correct mathematical result. This feature is inherited from the early days of

Boost.org 191 Nov 11, 2022
A modern day direct port of BOOM 2.02 for modern times. Aiming to tastefully continue the development of BOOM, in the style of TeamTNT.

ReBOOM ReBOOM is a continuation of the BOOM source port, version 2.02. what is it ReBOOM is a source port, directly ported from BOOM 2.02 with additio

Gibbon 12 Jul 27, 2022
A Pipeline for LC-MS/MS Metabolomics Data Process and Analysis

NP³ MS Workflow A Pipeline for LC-MS/MS Metabolomics Data Process and Analysis Overview The NP³ MS workflow is a software system with a collection of

null 3 Feb 15, 2022
Binary Analysis Craft!

BinCraft - Binary Analysis Craft BinCraft is a future binary analysis toolkit. Features: Layered Architecture: composed by multiple libraries that can

PortalLab 236 Nov 6, 2022
Binary Analysis Craft!

BinCraft - Binary Analysis Craft BinCraft is a future binary analysis toolkit. Features: Layered Architecture: composed by multiple libraries that can

PortalLab 62 Aug 25, 2022
A family of header-only, very fast and memory-friendly hashmap and btree containers.

The Parallel Hashmap Overview This repository aims to provide a set of excellent hash map implementations, as well as a btree alternative to std::map

Gregory Popovitch 1.7k Dec 4, 2022
Cross-platform process memory inspector

Catsight Cross-platform process memory viewer inspired by x64dbg. Features Cross-platform (currently runs on Linux and Windows). Attach to any process

Melissa 150 Nov 18, 2022
Fast & memory efficient hashtable based on robin hood hashing for C++11/14/17/20

➵ robin_hood unordered map & set robin_hood::unordered_map and robin_hood::unordered_set is a platform independent replacement for std::unordered_map

Martin Leitner-Ankerl 1.3k Nov 28, 2022
A GREAT program to fuck your memory or swap

Let everyone enjoy the fun of fucking -- Chi_Tang FuckMemory This is a GREAT program to fuck your memory or Swap Installation Dependencies make g++ Li

FuckComputer 10 Oct 31, 2022
HashTableBenchmark - A simple cross-platform speed & memory-efficiency benchmark for the most common hash-table implementations in the C++ world

Hash-Tables Benchmarks This repository contains a bunch of extendable benchmarks mostly for following containers: std:unordered_map from STL. google::

Unum 9 Nov 20, 2022
The first C compiler made to work under modern GCC

first-cc-gcc A port of the earliest C compiler to modern GCC. The compiler outputs PDP-11 assembly code that can be compiled and run on a PDP-11 emula

null 154 Nov 20, 2022
Rajesh Kumar Sah 1 Nov 20, 2021
A simple single header 64 and 32 bit hash function using only add, sub, ror, and xor.

K-HASH A simple single header 64 bit hash function using only add, sub, ror, and xor. This a just general-purpose hash function for like making hash m

null 69 Jul 31, 2022
C header library for typed lists (using macros and "template" C).

vector.h C header library for typed lists (using macros and "template" C). Essentially, this is a resizable array of elements of your choosing that is

Christopher Swenson 31 Nov 29, 2022
C++ implementation of a fast hash map and hash set using hopscotch hashing

A C++ implementation of a fast hash map and hash set using hopscotch hashing The hopscotch-map library is a C++ implementation of a fast hash map and

Thibaut Goetghebuer-Planchon 573 Nov 26, 2022