hosseinmoein / DataFrame

C++ DataFrame for statistical, Financial, and ML analysis -- in modern C++ using native types and contiguous memory storage
https://hosseinmoein.github.io/DataFrame/
BSD 3-Clause "New" or "Revised" License
2.41k stars 306 forks source link

make command failed #222

Closed homedry closed 1 year ago

homedry commented 1 year ago

OS: Ubuntu 22.04.1 LTS CMake: cmake version 3.22.1 Make: GNU Make 4.3 g++: g++ (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0

What I did: git clone https://github.com/hosseinmoein/DataFrame.git cd DataFrame mkdir Release cd Release cmake -DCMAKE_BUILD_TYPE=Release -DHMDF_BENCHMARKS=1 -DHMDF_EXAMPLES=1 -DHMDF_TESTING=1 ..

And when I did: make

Consolidate compiler generated dependencies of target DataFrame [ 14%] Built target DataFrame [ 14%] Built target hmdf_copy_sample_data.json [ 14%] Built target hmdf_copy_sample_data_dt_index.csv [ 14%] Built target hmdf_copy_sample_data_string_index.csv [ 14%] Built target hmdf_copy_sample_data.csv Consolidate compiler generated dependencies of target dataframe_tester [ 14%] Building CXX object test/CMakeFiles/dataframe_tester.dir/dataframe_tester.cc.o In file included from /media/Projects/DataFrame/include/DataFrame/DataFrame.h:3803, from /media/Projects/DataFrame/test/dataframe_tester.cc:28: /media/Projects/DataFrame/include/DataFrame/Internals/DataFrame_private_decl.h:317:10: error: explicit specialization in non-namespace scope ‘class hmdf::DataFrame<I, H>’ 317 | template<> | ^ /media/Projects/DataFrame/include/DataFrame/Internals/DataFrame_private_decl.h:319:1: error: template-id ‘_col_vector_pushback<const char, hmdf::DataFrame<I, H>::StlVecType<std::__cxx11::basic_string<char, std::char_traits, std::allocator > > >’ in declaration of primary template 319 | _col_vector_pushback<const char , StlVecType>( | ^~~~~~~~~~~~~ /media/Projects/DataFrame/include/DataFrame/Internals/DataFrame_private_decl.h:340:10: error: explicit specialization in non-namespace scope ‘class hmdf::DataFrame<I, H>’ 340 | template<> | ^ /media/Projects/DataFrame/include/DataFrame/Internals/DataFrame_private_decl.h:342:1: error: template-id ‘_col_vector_pushback<hmdf::DateTime, hmdf::DataFrame<I, H>::StlVecType >’ in declaration of primary template 342 | _col_vector_pushback<DateTime, StlVecType>( | ^~~~~~~~~~~~~~ /media/Projects/DataFrame/include/DataFrame/Internals/DataFrame_private_decl.h:430:10: error: explicit specialization in non-namespace scope ‘class hmdf::DataFrame<I, H>’ 430 | template<> | ^ /media/Projects/DataFrame/include/DataFrame/Internals/DataFrame_private_decl.h:431:9: error: too few template-parameter-lists 431 | struct IdxParserFunctor { | ^~~~~~~~~ /media/Projects/DataFrame/include/DataFrame/Internals/DataFrame_private_decl.h:443:10: error: explicit specialization in non-namespace scope ‘class hmdf::DataFrame<I, H>’ 443 | template<> | ^ /media/Projects/DataFrame/include/DataFrame/Internals/DataFrame_private_decl.h:444:9: error: too few template-parameter-lists 444 | struct IdxParserFunctor { | ^~~~~~ /media/Projects/DataFrame/include/DataFrame/Internals/DataFrame_private_decl.h:456:10: error: explicit specialization in non-namespace scope ‘class hmdf::DataFrame<I, H>’ 456 | template<> | ^ /media/Projects/DataFrame/include/DataFrame/Internals/DataFrame_private_decl.h:457:9: error: too few template-parameter-lists 457 | struct IdxParserFunctor { | ^~~~~~~ /media/Projects/DataFrame/include/DataFrame/Internals/DataFrame_private_decl.h:469:10: error: explicit specialization in non-namespace scope ‘class hmdf::DataFrame<I, H>’ 469 | template<> | ^ /media/Projects/DataFrame/include/DataFrame/Internals/DataFrame_private_decl.h:470:9: error: too few template-parameter-lists 470 | struct IdxParserFunctor { | ^~~~~~~ /media/Projects/DataFrame/include/DataFrame/Internals/DataFrame_private_decl.h:482:10: error: explicit specialization in non-namespace scope ‘class hmdf::DataFrame<I, H>’ 482 | template<> | ^ /media/Projects/DataFrame/include/DataFrame/Internals/DataFrame_private_decl.h:483:9: error: too few template-parameter-lists 483 | struct IdxParserFunctor { | ^~~~~~~~ /media/Projects/DataFrame/include/DataFrame/Internals/DataFrame_private_decl.h:495:10: error: explicit specialization in non-namespace scope ‘class hmdf::DataFrame<I, H>’ 495 | template<> | ^ /media/Projects/DataFrame/include/DataFrame/Internals/DataFrame_private_decl.h:496:9: error: too few template-parameter-lists 496 | struct IdxParserFunctor { | ^~~~~~~~~ /media/Projects/DataFrame/include/DataFrame/Internals/DataFrame_private_decl.h:508:10: error: explicit specialization in non-namespace scope ‘class hmdf::DataFrame<I, H>’ 508 | template<> | ^ /media/Projects/DataFrame/include/DataFrame/Internals/DataFrame_private_decl.h:509:9: error: too few template-parameter-lists 509 | struct IdxParserFunctor { | ^~~~~~~~ /media/Projects/DataFrame/include/DataFrame/Internals/DataFrame_private_decl.h:521:10: error: explicit specialization in non-namespace scope ‘class hmdf::DataFrame<I, H>’ 521 | template<> | ^ /media/Projects/DataFrame/include/DataFrame/Internals/DataFrame_private_decl.h:522:9: error: too few template-parameter-lists 522 | struct IdxParserFunctor { | ^~~~~~~~~ /media/Projects/DataFrame/include/DataFrame/Internals/DataFrame_private_decl.h:534:10: error: explicit specialization in non-namespace scope ‘class hmdf::DataFrame<I, H>’ 534 | template<> | ^ /media/Projects/DataFrame/include/DataFrame/Internals/DataFrame_private_decl.h:535:9: error: too few template-parameter-lists 535 | struct IdxParserFunctor { | ^~~~~~~~~~ /media/Projects/DataFrame/include/DataFrame/Internals/DataFrame_private_decl.h:547:10: error: explicit specialization in non-namespace scope ‘class hmdf::DataFrame<I, H>’ 547 | template<> | ^ /media/Projects/DataFrame/include/DataFrame/Internals/DataFrame_private_decl.h:548:9: error: too few template-parameter-lists 548 | struct IdxParserFunctor { | ^~~~~~~ /media/Projects/DataFrame/include/DataFrame/Internals/DataFrame_private_decl.h:564:10: error: explicit specialization in non-namespace scope ‘class hmdf::DataFrame<I, H>’ 564 | template<> | ^ /media/Projects/DataFrame/include/DataFrame/Internals/DataFrame_private_decl.h:565:9: error: too few template-parameter-lists 565 | struct IdxParserFunctor { | ^~~~~~~~ /media/Projects/DataFrame/include/DataFrame/Internals/DataFrame_private_decl.h:581:10: error: explicit specialization in non-namespace scope ‘class hmdf::DataFrame<I, H>’ 581 | template<> | ^ /media/Projects/DataFrame/include/DataFrame/Internals/DataFrame_private_decl.h:582:9: error: too few template-parameter-lists 582 | struct IdxParserFunctor { | ^~~~~~~~ /media/Projects/DataFrame/include/DataFrame/Internals/DataFrame_private_decl.h:641:10: error: explicit specialization in non-namespace scope ‘class hmdf::DataFrame<I, H>’ 641 | template<> | ^ /media/Projects/DataFrame/include/DataFrame/Internals/DataFrame_private_decl.h:643:1: error: template-id ‘_generate_tsindex’ in declaration of primary template 643 | _generate_tsindex(StlVecType &index_vec, | ^~~~~~~~~ In file included from /media/Projects/DataFrame/include/DataFrame/DataFrame.h:3823, from /media/Projects/DataFrame/test/dataframe_tester.cc:28: /media/Projects/DataFrame/include/DataFrame/Internals/DataFrame_read.tcc: In instantiation of ‘void hmdf::DataFrame<I, H>::readcsv(std::istream&, bool) [with I = std::cxx11::basic_string; H = hmdf::HeteroVector<0>; std::istream = std::basic_istream]’: /media/Projects/DataFrame/include/DataFrame/Internals/DataFrame_read.tcc:778:9: required from ‘bool hmdf::DataFrame<I, H>::read(S&, hmdf::io_format, bool) [with S = std::basic_istream; I = std::__cxx11::basic_string; H = hmdf::HeteroVector<0>]’ /media/Projects/DataFrame/include/DataFrame/Internals/DataFrame_read.tcc:763:23: required from ‘bool hmdf::DataFrame<I, H>::read(const char*, hmdf::io_format, bool) [with I = std::cxx11::basic_string; H = hmdf::HeteroVector<0>]’ /media/Projects/DataFrame/test/dataframe_tester.cc:516:25: required from here /media/Projects/DataFrame/include/DataFrame/Internals/DataFrame_read.tcc:330:44: error: no match for call to ‘(hmdf::DataFrame<std::cxx11::basic_string, hmdf::HeteroVector<0> >::IdxParserFunctor<std::__cxx11::basic_string >) (hmdf::DataFrame<std::cxx11::basic_string, hmdf::HeteroVector<0> >::IndexVecType&, std::istream&)’ 330 | IdxParserFunctor()(vec, stream); | ~~~~~~~^~~~~ In file included from /media/Projects/DataFrame/include/DataFrame/DataFrame.h:3803, from /media/Projects/DataFrame/test/dataframe_tester.cc:28: /media/Projects/DataFrame/include/DataFrame/Internals/DataFrame_private_decl.h:425:10: note: candidate: ‘void hmdf::DataFrame<I, H>::IdxParserFunctor::operator()(hmdf::DataFrame<I, H>::StlVecType&, std::istream&, hmdf::io_format) [with T = std::cxx11::basic_string; I = std::__cxx11::basic_string; H = hmdf::HeteroVector<0>; hmdf::DataFrame<I, H>::StlVecType = std::vector<std::cxx11::basic_string >; std::istream = std::basic_istream]’ 425 | void operator()(StlVecType &, std::istream &, io_format) { } | ^~~~ /media/Projects/DataFrame/include/DataFrame/Internals/DataFrame_private_decl.h:425:10: note: candidate expects 3 arguments, 2 provided In file included from /media/Projects/DataFrame/include/DataFrame/DataFrame.h:3823, from /media/Projects/DataFrame/test/dataframe_tester.cc:28: /media/Projects/DataFrame/include/DataFrame/Internals/DataFrame_read.tcc: In instantiation of ‘void hmdf::DataFrame<I, H>::readcsv(std::istream&, bool) [with I = hmdf::DateTime; H = hmdf::HeteroVector<0>; std::istream = std::basic_istream]’: /media/Projects/DataFrame/include/DataFrame/Internals/DataFrame_read.tcc:778:9: required from ‘bool hmdf::DataFrame<I, H>::read(S&, hmdf::io_format, bool) [with S = std::basic_istream; I = hmdf::DateTime; H = hmdf::HeteroVector<0>]’ /media/Projects/DataFrame/include/DataFrame/Internals/DataFrame_read.tcc:763:23: required from ‘bool hmdf::DataFrame<I, H>::read(const char, hmdf::io_format, bool) [with I = hmdf::DateTime; H = hmdf::HeteroVector<0>]’ /media/Projects/DataFrame/test/dataframe_tester.cc:531:24: required from here /media/Projects/DataFrame/include/DataFrame/Internals/DataFrame_read.tcc:330:44: error: no match for call to ‘(hmdf::DataFrame<hmdf::DateTime, hmdf::HeteroVector<0> >::IdxParserFunctor) (hmdf::DataFrame<hmdf::DateTime, hmdf::HeteroVector<0> >::IndexVecType&, std::istream&)’ 330 | IdxParserFunctor()(vec, stream); | ~~~~~~~^~~~~ In file included from /media/Projects/DataFrame/include/DataFrame/DataFrame.h:3803, from /media/Projects/DataFrame/test/dataframe_tester.cc:28: /media/Projects/DataFrame/include/DataFrame/Internals/DataFrame_private_decl.h:425:10: note: candidate: ‘void hmdf::DataFrame<I, H>::IdxParserFunctor::operator()(hmdf::DataFrame<I, H>::StlVecType&, std::istream&, hmdf::io_format) [with T = hmdf::DateTime; I = hmdf::DateTime; H = hmdf::HeteroVector<0>; hmdf::DataFrame<I, H>::StlVecType = std::vector<hmdf::DateTime, std::allocator >; std::istream = std::basic_istream]’ 425 | void operator()(StlVecType &, std::istream &, io_format) { } | ^~~~ /media/Projects/DataFrame/include/DataFrame/Internals/DataFrame_private_decl.h:425:10: note: candidate expects 3 arguments, 2 provided In file included from /media/Projects/DataFrame/include/DataFrame/DataFrame.h:3823, from /media/Projects/DataFrame/test/dataframe_tester.cc:28: /media/Projects/DataFrame/include/DataFrame/Internals/DataFrame_read.tcc: In instantiation of ‘void hmdf::DataFrame<I, H>::readcsv(std::istream&, bool) [with I = long unsigned int; H = hmdf::HeteroVector<0>; std::istream = std::basic_istream]’: /media/Projects/DataFrame/include/DataFrame/Internals/DataFrame_read.tcc:778:9: required from ‘bool hmdf::DataFrame<I, H>::read(S&, hmdf::io_format, bool) [with S = std::basic_istream; I = long unsigned int; H = hmdf::HeteroVector<0>]’ /media/Projects/DataFrame/include/DataFrame/Internals/DataFrame_read.tcc:763:23: required from ‘bool hmdf::DataFrame<I, H>::read(const char, hmdf::io_format, bool) [with I = long unsigned int; H = hmdf::HeteroVector<0>]’ /media/Projects/DataFrame/test/dataframe_tester.cc:1242:17: required from here /media/Projects/DataFrame/include/DataFrame/Internals/DataFrame_read.tcc:330:44: error: no match for call to ‘(hmdf::DataFrame<long unsigned int, hmdf::HeteroVector<0> >::IdxParserFunctor) (hmdf::DataFrame<long unsigned int, hmdf::HeteroVector<0> >::IndexVecType&, std::istream&)’ 330 | IdxParserFunctor()(vec, stream); | ~~~~~~~^~~~~ In file included from /media/Projects/DataFrame/include/DataFrame/DataFrame.h:3803, from /media/Projects/DataFrame/test/dataframe_tester.cc:28: /media/Projects/DataFrame/include/DataFrame/Internals/DataFrame_private_decl.h:425:10: note: candidate: ‘void hmdf::DataFrame<I, H>::IdxParserFunctor::operator()(hmdf::DataFrame<I, H>::StlVecType&, std::istream&, hmdf::io_format) [with T = long unsigned int; I = long unsigned int; H = hmdf::HeteroVector<0>; hmdf::DataFrame<I, H>::StlVecType = std::vector<long unsigned int, std::allocator >; std::istream = std::basic_istream]’ 425 | void operator()(StlVecType &, std::istream &, io_format) { } | ^~~~ /media/Projects/DataFrame/include/DataFrame/Internals/DataFrame_private_decl.h:425:10: note: candidate expects 3 arguments, 2 provided make[2]: [test/CMakeFiles/dataframe_tester.dir/build.make:76: test/CMakeFiles/dataframe_tester.dir/dataframe_tester.cc.o] Error 1 make[1]: [CMakeFiles/Makefile2:207: test/CMakeFiles/dataframe_tester.dir/all] Error 2 make: *** [Makefile:146: all] Error 2

Please help me. Thank you in advance.

hosseinmoein commented 1 year ago

I cannot reproduce this. Are you sure your compiler is enabled for C++17 or higher? The errors don't make sense, but that's typical C++

hosseinmoein commented 1 year ago

I just noticed my CMake file has this

cmake_minimum_required(VERSION 3.8)
homedry commented 1 year ago

I cannot reproduce this. Are you sure your compiler is enabled for C++17 or higher? The errors don't make sense, but that's typical C++

this trivial program

int main()
  { std::cout << __cplusplus << std::endl; }

prints output 201703 which means c++17.

homedry commented 1 year ago

I just noticed my CMake file has this

cmake_minimum_required(VERSION 3.8)

Should I downgrade cmake maybe?

but sudo apt list -a cmake prints

cmake/jammy-updates,now 3.22.1-1ubuntu1.22.04.1 amd64 [installed]
cmake/jammy 3.22.1-1ubuntu1 amd64

cmake/jammy-updates 3.22.1-1ubuntu1.22.04.1 i386
cmake/jammy 3.22.1-1ubuntu1 i386
homedry commented 1 year ago

I cannot reproduce this. Are you sure your compiler is enabled for C++17 or higher? The errors don't make sense, but that's typical C++

this trivial program

int main()
  { std::cout << __cplusplus << std::endl; }

prints output 201703 which means c++17.

What I tried: I noticed in Release/CmakeCache.txt file, there is CMAKE_CXX_COMPILER:STRING=/usr/bin/c++

So I added the two line for setting compiler for cmake to use g++ not c++:

find_program(CMAKE_C_COMPILER NAMES $ENV{CC} gcc PATHS ENV PATH NO_DEFAULT_PATH)
find_program(CMAKE_CXX_COMPILER NAMES $ENV{CXX} g++ PATHS ENV PATH NO_DEFAULT_PATH)

But the same error reproduced. (compiler set g++)

below is CMakeCache.txt in Release file

# This is the CMakeCache file.
# For build in directory: /media/Projects/DataFrame/Release
# It was generated by CMake: /usr/bin/cmake
# You can edit this file to change values found and used by cmake.
# If you do not want to change any of the values, simply exit the editor.
# If you do want to change a value, simply edit, save, and exit the editor.
# The syntax for the file is as follows:
# KEY:TYPE=VALUE
# KEY is the name of a variable in the cache.
# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!.
# VALUE is the current value for the KEY.

########################
# EXTERNAL cache entries
########################

//Path to a program.
CMAKE_ADDR2LINE:FILEPATH=/usr/bin/addr2line

//Path to a program.
CMAKE_AR:FILEPATH=/usr/bin/ar

//Choose the type of build, options are: None Debug Release RelWithDebInfo
// MinSizeRel ...
CMAKE_BUILD_TYPE:STRING=Release

//Enable/Disable color output during build.
CMAKE_COLOR_MAKEFILE:BOOL=ON

//CXX compiler
CMAKE_CXX_COMPILER:STRING=/usr/bin/g++

//A wrapper around 'ar' adding the appropriate '--plugin' option
// for the GCC compiler
CMAKE_CXX_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-11

//A wrapper around 'ranlib' adding the appropriate '--plugin' option
// for the GCC compiler
CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-11

//Flags used by the CXX compiler during all build types.
CMAKE_CXX_FLAGS:STRING=

//Flags used by the CXX compiler during DEBUG builds.
CMAKE_CXX_FLAGS_DEBUG:STRING=-g

//Flags used by the CXX compiler during MINSIZEREL builds.
CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG

//Flags used by the CXX compiler during RELEASE builds.
CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG

//Flags used by the CXX compiler during RELWITHDEBINFO builds.
CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG

//Path to a program.
CMAKE_C_COMPILER:FILEPATH=/usr/bin/gcc

//Path to a program.
CMAKE_DLLTOOL:FILEPATH=CMAKE_DLLTOOL-NOTFOUND

//Flags used by the linker during all build types.
CMAKE_EXE_LINKER_FLAGS:STRING=

//Flags used by the linker during DEBUG builds.
CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING=

//Flags used by the linker during MINSIZEREL builds.
CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING=

//Flags used by the linker during RELEASE builds.
CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING=

//Flags used by the linker during RELWITHDEBINFO builds.
CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING=

//Enable/Disable output of compile commands during generation.
CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=

//User executables (bin)
CMAKE_INSTALL_BINDIR:PATH=bin

//Read-only architecture-independent data (DATAROOTDIR)
CMAKE_INSTALL_DATADIR:PATH=

//Read-only architecture-independent data root (share)
CMAKE_INSTALL_DATAROOTDIR:PATH=share

//Documentation root (DATAROOTDIR/doc/PROJECT_NAME)
CMAKE_INSTALL_DOCDIR:PATH=

//C header files (include)
CMAKE_INSTALL_INCLUDEDIR:PATH=include

//Info documentation (DATAROOTDIR/info)
CMAKE_INSTALL_INFODIR:PATH=

//Object code libraries (lib)
CMAKE_INSTALL_LIBDIR:PATH=lib

//Program executables (libexec)
CMAKE_INSTALL_LIBEXECDIR:PATH=libexec

//Locale-dependent data (DATAROOTDIR/locale)
CMAKE_INSTALL_LOCALEDIR:PATH=

//Modifiable single-machine data (var)
CMAKE_INSTALL_LOCALSTATEDIR:PATH=var

//Man documentation (DATAROOTDIR/man)
CMAKE_INSTALL_MANDIR:PATH=

//C header files for non-gcc (/usr/include)
CMAKE_INSTALL_OLDINCLUDEDIR:PATH=/usr/include

//Install path prefix, prepended onto install directories.
CMAKE_INSTALL_PREFIX:PATH=/usr/local

//Run-time variable data (LOCALSTATEDIR/run)
CMAKE_INSTALL_RUNSTATEDIR:PATH=

//System admin executables (sbin)
CMAKE_INSTALL_SBINDIR:PATH=sbin

//Modifiable architecture-independent data (com)
CMAKE_INSTALL_SHAREDSTATEDIR:PATH=com

//Read-only single-machine data (etc)
CMAKE_INSTALL_SYSCONFDIR:PATH=etc

//Path to a program.
CMAKE_LINKER:FILEPATH=/usr/bin/ld

//Path to a program.
CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/gmake

//Flags used by the linker during the creation of modules during
// all build types.
CMAKE_MODULE_LINKER_FLAGS:STRING=

//Flags used by the linker during the creation of modules during
// DEBUG builds.
CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING=

//Flags used by the linker during the creation of modules during
// MINSIZEREL builds.
CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING=

//Flags used by the linker during the creation of modules during
// RELEASE builds.
CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING=

//Flags used by the linker during the creation of modules during
// RELWITHDEBINFO builds.
CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING=

//Path to a program.
CMAKE_NM:FILEPATH=/usr/bin/nm

//Path to a program.
CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy

//Path to a program.
CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump

//Value Computed by CMake
CMAKE_PROJECT_DESCRIPTION:STATIC=

//Value Computed by CMake
CMAKE_PROJECT_HOMEPAGE_URL:STATIC=

//Value Computed by CMake
CMAKE_PROJECT_NAME:STATIC=DataFrame

//Value Computed by CMake
CMAKE_PROJECT_VERSION:STATIC=1.22.0

//Value Computed by CMake
CMAKE_PROJECT_VERSION_MAJOR:STATIC=1

//Value Computed by CMake
CMAKE_PROJECT_VERSION_MINOR:STATIC=22

//Value Computed by CMake
CMAKE_PROJECT_VERSION_PATCH:STATIC=0

//Value Computed by CMake
CMAKE_PROJECT_VERSION_TWEAK:STATIC=

//Path to a program.
CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib

//Path to a program.
CMAKE_READELF:FILEPATH=/usr/bin/readelf

//Flags used by the linker during the creation of shared libraries
// during all build types.
CMAKE_SHARED_LINKER_FLAGS:STRING=

//Flags used by the linker during the creation of shared libraries
// during DEBUG builds.
CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING=

//Flags used by the linker during the creation of shared libraries
// during MINSIZEREL builds.
CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING=

//Flags used by the linker during the creation of shared libraries
// during RELEASE builds.
CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING=

//Flags used by the linker during the creation of shared libraries
// during RELWITHDEBINFO builds.
CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING=

//If set, runtime paths are not added when installing shared libraries,
// but are added when building.
CMAKE_SKIP_INSTALL_RPATH:BOOL=NO

//If set, runtime paths are not added when using shared libraries.
CMAKE_SKIP_RPATH:BOOL=NO

//Flags used by the linker during the creation of static libraries
// during all build types.
CMAKE_STATIC_LINKER_FLAGS:STRING=

//Flags used by the linker during the creation of static libraries
// during DEBUG builds.
CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING=

//Flags used by the linker during the creation of static libraries
// during MINSIZEREL builds.
CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING=

//Flags used by the linker during the creation of static libraries
// during RELEASE builds.
CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING=

//Flags used by the linker during the creation of static libraries
// during RELWITHDEBINFO builds.
CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING=

//Path to a program.
CMAKE_STRIP:FILEPATH=/usr/bin/strip

//If this value is on, makefiles will be generated without the
// .SILENT directive, and all commands will be echoed to the console
// during the make.  This is useful for debugging only. With Visual
// Studio IDE projects all commands are done without /nologo.
CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE

//Value Computed by CMake
DataFrame_BINARY_DIR:STATIC=/media/Projects/DataFrame/Release

//Value Computed by CMake
DataFrame_IS_TOP_LEVEL:STATIC=ON

//Value Computed by CMake
DataFrame_SOURCE_DIR:STATIC=/media/Projects/DataFrame

//Build Benchmarks
HMDF_BENCHMARKS:BOOL=1

//Build Examples
HMDF_EXAMPLES:BOOL=1

//Enable testing
HMDF_TESTING:BOOL=1

########################
# INTERNAL cache entries
########################

//ADVANCED property for variable: CMAKE_ADDR2LINE
CMAKE_ADDR2LINE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_AR
CMAKE_AR-ADVANCED:INTERNAL=1
//This is the directory where this CMakeCache.txt was created
CMAKE_CACHEFILE_DIR:INTERNAL=/media/Projects/DataFrame/Release
//Major version of cmake used to create the current loaded cache
CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3
//Minor version of cmake used to create the current loaded cache
CMAKE_CACHE_MINOR_VERSION:INTERNAL=22
//Patch version of cmake used to create the current loaded cache
CMAKE_CACHE_PATCH_VERSION:INTERNAL=1
//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE
CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1
//Path to CMake executable.
CMAKE_COMMAND:INTERNAL=/usr/bin/cmake
//Path to cpack program executable.
CMAKE_CPACK_COMMAND:INTERNAL=/usr/bin/cpack
//Path to ctest program executable.
CMAKE_CTEST_COMMAND:INTERNAL=/usr/bin/ctest
//ADVANCED property for variable: CMAKE_CXX_COMPILER
CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR
CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB
CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_FLAGS
CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG
CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL
CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE
CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO
CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_DLLTOOL
CMAKE_DLLTOOL-ADVANCED:INTERNAL=1
//Executable file format
CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS
CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG
CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL
CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE
CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO
CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS
CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1
//Name of external makefile project generator.
CMAKE_EXTRA_GENERATOR:INTERNAL=
//Name of generator.
CMAKE_GENERATOR:INTERNAL=Unix Makefiles
//Generator instance identifier.
CMAKE_GENERATOR_INSTANCE:INTERNAL=
//Name of generator platform.
CMAKE_GENERATOR_PLATFORM:INTERNAL=
//Name of generator toolset.
CMAKE_GENERATOR_TOOLSET:INTERNAL=
//Test CMAKE_HAVE_LIBC_PTHREAD
CMAKE_HAVE_LIBC_PTHREAD:INTERNAL=1
//Have include pthread.h
CMAKE_HAVE_PTHREAD_H:INTERNAL=1
//Source directory with the top level CMakeLists.txt file for this
// project
CMAKE_HOME_DIRECTORY:INTERNAL=/media/Projects/DataFrame
//ADVANCED property for variable: CMAKE_INSTALL_BINDIR
CMAKE_INSTALL_BINDIR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_INSTALL_DATADIR
CMAKE_INSTALL_DATADIR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_INSTALL_DATAROOTDIR
CMAKE_INSTALL_DATAROOTDIR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_INSTALL_DOCDIR
CMAKE_INSTALL_DOCDIR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_INSTALL_INCLUDEDIR
CMAKE_INSTALL_INCLUDEDIR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_INSTALL_INFODIR
CMAKE_INSTALL_INFODIR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_INSTALL_LIBDIR
CMAKE_INSTALL_LIBDIR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_INSTALL_LIBEXECDIR
CMAKE_INSTALL_LIBEXECDIR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_INSTALL_LOCALEDIR
CMAKE_INSTALL_LOCALEDIR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_INSTALL_LOCALSTATEDIR
CMAKE_INSTALL_LOCALSTATEDIR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_INSTALL_MANDIR
CMAKE_INSTALL_MANDIR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_INSTALL_OLDINCLUDEDIR
CMAKE_INSTALL_OLDINCLUDEDIR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_INSTALL_RUNSTATEDIR
CMAKE_INSTALL_RUNSTATEDIR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_INSTALL_SBINDIR
CMAKE_INSTALL_SBINDIR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_INSTALL_SHAREDSTATEDIR
CMAKE_INSTALL_SHAREDSTATEDIR-ADVANCED:INTERNAL=1
//Install .so files without execute permission.
CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1
//ADVANCED property for variable: CMAKE_INSTALL_SYSCONFDIR
CMAKE_INSTALL_SYSCONFDIR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_LINKER
CMAKE_LINKER-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MAKE_PROGRAM
CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS
CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG
CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL
CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE
CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO
CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_NM
CMAKE_NM-ADVANCED:INTERNAL=1
//number of local generators
CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=4
//ADVANCED property for variable: CMAKE_OBJCOPY
CMAKE_OBJCOPY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_OBJDUMP
CMAKE_OBJDUMP-ADVANCED:INTERNAL=1
//Platform information initialized
CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1
//ADVANCED property for variable: CMAKE_RANLIB
CMAKE_RANLIB-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_READELF
CMAKE_READELF-ADVANCED:INTERNAL=1
//Path to CMake installation.
CMAKE_ROOT:INTERNAL=/usr/share/cmake-3.22
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS
CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG
CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL
CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE
CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO
CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH
CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SKIP_RPATH
CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS
CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG
CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL
CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE
CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO
CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STRIP
CMAKE_STRIP-ADVANCED:INTERNAL=1
//uname command
CMAKE_UNAME:INTERNAL=/usr/bin/uname
//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE
CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1
//Details about finding Threads
FIND_PACKAGE_MESSAGE_DETAILS_Threads:INTERNAL=[TRUE][v()]
//Have symbol clock_gettime
HMDF_HAVE_CLOCK_GETTIME:INTERNAL=1
//CMAKE_INSTALL_PREFIX during last run
_GNUInstallDirs_LAST_CMAKE_INSTALL_PREFIX:INTERNAL=/usr/local

I'm not sure but isn't there possibility this issue is concerned with the link below? https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85282

hosseinmoein commented 1 year ago

Since I cannot reproduce this, my help would be very limited. But as an experiment use my makefiles instead of CMake. They explicitly set -std=c++20. Go to the src directory and do:

make -f Makefile.Linux.GCC64 clobber
make -f Makefile.Linux.GCC64

You may have to adjust the path to g++ in the makefile

hosseinmoein commented 1 year ago

I was able to get the gcc and Ubuntu versions compatible with you and was able to reproduce the error. Apparently clang and VC++ do not produce this error. The conflict is supposed to have been resolved in C++20. But I have a way of fixing it. Apparently, full specialization is not allowed within a template class, but partial specialization is allowed -- mind exploded. It will take me over the weekend or maybe longer to find time to implement it.

hosseinmoein commented 1 year ago

This has been fixed in master