├── Scripts ├── mac-setup.sh ├── linux-setup.sh ├── win-setup.ps1 ├── GetModules.cmake ├── mac-build.sh ├── linux-build.sh └── win-build.ps1 ├── Textbook.png ├── .gitmodules ├── Math ├── Problem1 │ ├── main.cpp │ └── CMakeLists.txt ├── Problem10 │ ├── main.cpp │ └── CMakeLists.txt ├── Problem11 │ ├── main.cpp │ └── CMakeLists.txt ├── Problem12 │ ├── main.cpp │ └── CMakeLists.txt ├── Problem13 │ ├── main.cpp │ └── CMakeLists.txt ├── Problem14 │ ├── main.cpp │ └── CMakeLists.txt ├── Problem2 │ ├── main.cpp │ └── CMakeLists.txt ├── Problem3 │ ├── main.cpp │ └── CMakeLists.txt ├── Problem4 │ ├── main.cpp │ └── CMakeLists.txt ├── Problem5 │ ├── main.cpp │ └── CMakeLists.txt ├── Problem6 │ ├── main.cpp │ └── CMakeLists.txt ├── Problem7 │ ├── main.cpp │ └── CMakeLists.txt ├── Problem8 │ ├── main.cpp │ └── CMakeLists.txt └── Problem9 │ ├── main.cpp │ └── CMakeLists.txt ├── Algorithm └── Problem45 │ ├── main.cpp │ └── CMakeLists.txt ├── Archives └── Problem79 │ ├── main.cpp │ └── CMakeLists.txt ├── Database └── Problem85 │ ├── main.cpp │ └── CMakeLists.txt ├── DateTime └── Problem39 │ ├── main.cpp │ └── CMakeLists.txt ├── Extra └── Problem101 │ ├── main.cpp │ └── CMakeLists.txt ├── Images └── Problem82 │ ├── main.cpp │ └── CMakeLists.txt ├── Language └── Problem15 │ ├── main.cpp │ └── CMakeLists.txt ├── Regex └── Problem23 │ ├── main.cpp │ └── CMakeLists.txt ├── Concurrency └── Problem61 │ ├── main.cpp │ └── CMakeLists.txt ├── Cryptography └── Problem88 │ ├── main.cpp │ └── CMakeLists.txt ├── DesignPattern └── Problem67 │ ├── main.cpp │ └── CMakeLists.txt ├── Filesystem └── Problem32 │ ├── main.cpp │ └── CMakeLists.txt ├── Networking └── Problem95 │ ├── main.cpp │ └── CMakeLists.txt ├── Serialization └── Problem73 │ ├── main.cpp │ └── CMakeLists.txt ├── External ├── lib │ ├── linux │ │ └── .gitignore │ ├── windows │ │ └── .gitignore │ └── macos │ │ └── .gitignore └── include │ └── .gitignore ├── LICENSE ├── Guide.md ├── CMakeLists.txt ├── README.md └── .gitignore /Scripts/mac-setup.sh: -------------------------------------------------------------------------------- 1 | 2 | git submodule update --init; 3 | -------------------------------------------------------------------------------- /Scripts/linux-setup.sh: -------------------------------------------------------------------------------- 1 | 2 | git submodule update --init; 3 | -------------------------------------------------------------------------------- /Scripts/win-setup.ps1: -------------------------------------------------------------------------------- 1 | 2 | git submodule update --init; 3 | -------------------------------------------------------------------------------- /Textbook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CppKorea/ModernCppChallengeStudy/HEAD/Textbook.png -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "External/GSL"] 2 | path = External/GSL 3 | url = https://github.com/Microsoft/GSL 4 | -------------------------------------------------------------------------------- /Math/Problem1/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(int argc, char* argv[]) 4 | { 5 | return 0; 6 | } 7 | -------------------------------------------------------------------------------- /Math/Problem10/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(int argc, char* argv[]) 4 | { 5 | return 0; 6 | } 7 | -------------------------------------------------------------------------------- /Math/Problem11/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(int argc, char* argv[]) 4 | { 5 | return 0; 6 | } 7 | -------------------------------------------------------------------------------- /Math/Problem12/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(int argc, char* argv[]) 4 | { 5 | return 0; 6 | } 7 | -------------------------------------------------------------------------------- /Math/Problem13/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(int argc, char* argv[]) 4 | { 5 | return 0; 6 | } 7 | -------------------------------------------------------------------------------- /Math/Problem14/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(int argc, char* argv[]) 4 | { 5 | return 0; 6 | } 7 | -------------------------------------------------------------------------------- /Math/Problem2/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(int argc, char* argv[]) 4 | { 5 | return 0; 6 | } 7 | -------------------------------------------------------------------------------- /Math/Problem3/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(int argc, char* argv[]) 4 | { 5 | return 0; 6 | } 7 | -------------------------------------------------------------------------------- /Math/Problem4/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(int argc, char* argv[]) 4 | { 5 | return 0; 6 | } 7 | -------------------------------------------------------------------------------- /Math/Problem5/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(int argc, char* argv[]) 4 | { 5 | return 0; 6 | } 7 | -------------------------------------------------------------------------------- /Math/Problem6/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(int argc, char* argv[]) 4 | { 5 | return 0; 6 | } 7 | -------------------------------------------------------------------------------- /Math/Problem7/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(int argc, char* argv[]) 4 | { 5 | return 0; 6 | } 7 | -------------------------------------------------------------------------------- /Math/Problem8/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(int argc, char* argv[]) 4 | { 5 | return 0; 6 | } 7 | -------------------------------------------------------------------------------- /Math/Problem9/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(int argc, char* argv[]) 4 | { 5 | return 0; 6 | } 7 | -------------------------------------------------------------------------------- /Algorithm/Problem45/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(int argc, char* argv[]) 4 | { 5 | return 0; 6 | } 7 | -------------------------------------------------------------------------------- /Archives/Problem79/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(int argc, char* argv[]) 4 | { 5 | return 0; 6 | } 7 | -------------------------------------------------------------------------------- /Database/Problem85/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(int argc, char* argv[]) 4 | { 5 | return 0; 6 | } 7 | -------------------------------------------------------------------------------- /DateTime/Problem39/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(int argc, char* argv[]) 4 | { 5 | return 0; 6 | } 7 | -------------------------------------------------------------------------------- /Extra/Problem101/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(int argc, char* argv[]) 4 | { 5 | return 0; 6 | } 7 | -------------------------------------------------------------------------------- /Images/Problem82/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(int argc, char* argv[]) 4 | { 5 | return 0; 6 | } 7 | -------------------------------------------------------------------------------- /Language/Problem15/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(int argc, char* argv[]) 4 | { 5 | return 0; 6 | } 7 | -------------------------------------------------------------------------------- /Regex/Problem23/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(int argc, char* argv[]) 4 | { 5 | return 0; 6 | } 7 | -------------------------------------------------------------------------------- /Concurrency/Problem61/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(int argc, char* argv[]) 4 | { 5 | return 0; 6 | } 7 | -------------------------------------------------------------------------------- /Cryptography/Problem88/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(int argc, char* argv[]) 4 | { 5 | return 0; 6 | } 7 | -------------------------------------------------------------------------------- /DesignPattern/Problem67/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(int argc, char* argv[]) 4 | { 5 | return 0; 6 | } 7 | -------------------------------------------------------------------------------- /Filesystem/Problem32/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(int argc, char* argv[]) 4 | { 5 | return 0; 6 | } 7 | -------------------------------------------------------------------------------- /Networking/Problem95/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(int argc, char* argv[]) 4 | { 5 | return 0; 6 | } 7 | -------------------------------------------------------------------------------- /Scripts/GetModules.cmake: -------------------------------------------------------------------------------- 1 | 2 | message(STATUS "I need implementation!") 3 | 4 | add_subdirectory(${ROOT_DIR}/External/GSL) 5 | -------------------------------------------------------------------------------- /Serialization/Problem73/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(int argc, char* argv[]) 4 | { 5 | return 0; 6 | } 7 | -------------------------------------------------------------------------------- /Scripts/mac-build.sh: -------------------------------------------------------------------------------- 1 | 2 | mkdir -p build; 3 | pushd build; 4 | 5 | cmake ../ -DBUILD_SHARED_LIBS=true -DCMAKE_BUILD_TYPE=Debug; 6 | make -j10; 7 | make install; 8 | 9 | popd; 10 | -------------------------------------------------------------------------------- /Scripts/linux-build.sh: -------------------------------------------------------------------------------- 1 | 2 | mkdir -p build; 3 | pushd build; 4 | 5 | cmake ../ -DBUILD_SHARED_LIBS=true -DCMAKE_BUILD_TYPE=Debug; 6 | make -j10; 7 | make install; 8 | 9 | popd; 10 | -------------------------------------------------------------------------------- /Scripts/win-build.ps1: -------------------------------------------------------------------------------- 1 | 2 | New-Item -Name build -ItemType Directory; 3 | Push-Location -Path build; 4 | 5 | cmake ../ -G "Visual Studio 15 2017 Win64" -DBUILD_SHARED_LIBS=true -DCMAKE_BUILD_TYPE=Debug; 6 | MSBuild.exe ModernCppChallenge.sln /verbosity:minimal /property:platform=x64 /property:configuration=Debug /maxcpucount:4; 7 | MSBuild.exe INSTALL.vcxproj /verbosity:minimal; 8 | 9 | Pop-Location; 10 | -------------------------------------------------------------------------------- /External/lib/linux/.gitignore: -------------------------------------------------------------------------------- 1 | # Created by https://www.gitignore.io/api/linux 2 | 3 | ### Linux ### 4 | *~ 5 | 6 | # temporary files which can be created if a process still has a handle open of a deleted file 7 | .fuse_hidden* 8 | 9 | # KDE directory preferences 10 | .directory 11 | 12 | # Linux trash folder which might appear on any partition or disk 13 | .Trash-* 14 | 15 | # .nfs files are created when an open file is removed but is still being accessed 16 | .nfs* 17 | 18 | 19 | # End of https://www.gitignore.io/api/linux -------------------------------------------------------------------------------- /External/lib/windows/.gitignore: -------------------------------------------------------------------------------- 1 | # Created by https://www.gitignore.io/api/windows 2 | 3 | ### Windows ### 4 | # Windows thumbnail cache files 5 | Thumbs.db 6 | ehthumbs.db 7 | ehthumbs_vista.db 8 | 9 | # Dump file 10 | *.stackdump 11 | 12 | # Folder config file 13 | [Dd]esktop.ini 14 | 15 | # Recycle Bin used on file shares 16 | $RECYCLE.BIN/ 17 | 18 | # Windows Installer files 19 | *.cab 20 | *.msi 21 | *.msix 22 | *.msm 23 | *.msp 24 | 25 | # Windows shortcuts 26 | *.lnk 27 | 28 | 29 | # End of https://www.gitignore.io/api/windows -------------------------------------------------------------------------------- /External/lib/macos/.gitignore: -------------------------------------------------------------------------------- 1 | # Created by https://www.gitignore.io/api/macos 2 | 3 | ### macOS ### 4 | # General 5 | .DS_Store 6 | .AppleDouble 7 | .LSOverride 8 | 9 | # Icon must end with two \r 10 | Icon 11 | 12 | # Thumbnails 13 | ._* 14 | 15 | # Files that might appear in the root of a volume 16 | .DocumentRevisions-V100 17 | .fseventsd 18 | .Spotlight-V100 19 | .TemporaryItems 20 | .Trashes 21 | .VolumeIcon.icns 22 | .com.apple.timemachine.donotpresent 23 | 24 | # Directories potentially created on remote AFP share 25 | .AppleDB 26 | .AppleDesktop 27 | Network Trash Folder 28 | Temporary Items 29 | .apdisk 30 | 31 | 32 | # End of https://www.gitignore.io/api/macos -------------------------------------------------------------------------------- /Extra/Problem101/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | 2 | cmake_minimum_required(VERSION 3.1) 3 | 4 | # Use directory name for this project's name. 5 | string(REGEX MATCH Problem.+ # Format: Project + Number 6 | ProjectName ${CMAKE_CURRENT_SOURCE_DIR}) 7 | message(STATUS "${ProjectName}") 8 | 9 | project(${ProjectName} LANGUAGES CXX) 10 | 11 | add_executable(${PROJECT_NAME} main.cpp) 12 | 13 | if(MSVC) 14 | target_compile_options(${PROJECT_NAME} 15 | PRIVATE 16 | /std:c++latest 17 | ) 18 | else() 19 | target_compile_options(${PROJECT_NAME} 20 | PRIVATE 21 | -std=c++17 22 | ) 23 | endif() 24 | 25 | target_include_directories(${PROJECT_NAME} 26 | PRIVATE 27 | ${CMAKE_CURRENT_SOURCE_DIR} 28 | ) 29 | 30 | target_link_libraries(${PROJECT_NAME} 31 | PRIVATE 32 | GSL 33 | ) 34 | 35 | install(TARGETS ${PROJECT_NAME} 36 | DESTINATION ${CMAKE_INSTALL_PREFIX} 37 | ) 38 | -------------------------------------------------------------------------------- /Images/Problem82/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | 2 | cmake_minimum_required(VERSION 3.1) 3 | 4 | # Use directory name for this project's name. 5 | string(REGEX MATCH Problem.+ # Format: Project + Number 6 | ProjectName ${CMAKE_CURRENT_SOURCE_DIR}) 7 | message(STATUS "${ProjectName}") 8 | 9 | project(${ProjectName} LANGUAGES CXX) 10 | 11 | add_executable(${PROJECT_NAME} main.cpp) 12 | 13 | if(MSVC) 14 | target_compile_options(${PROJECT_NAME} 15 | PRIVATE 16 | /std:c++latest 17 | ) 18 | else() 19 | target_compile_options(${PROJECT_NAME} 20 | PRIVATE 21 | -std=c++17 22 | ) 23 | endif() 24 | 25 | target_include_directories(${PROJECT_NAME} 26 | PRIVATE 27 | ${CMAKE_CURRENT_SOURCE_DIR} 28 | ) 29 | 30 | target_link_libraries(${PROJECT_NAME} 31 | PRIVATE 32 | GSL 33 | ) 34 | 35 | install(TARGETS ${PROJECT_NAME} 36 | DESTINATION ${CMAKE_INSTALL_PREFIX} 37 | ) 38 | -------------------------------------------------------------------------------- /Math/Problem1/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | 2 | cmake_minimum_required(VERSION 3.1) 3 | 4 | # Use directory name for this project's name. 5 | string(REGEX MATCH Problem.+ # Format: Project + Number 6 | ProjectName ${CMAKE_CURRENT_SOURCE_DIR}) 7 | message(STATUS "${ProjectName}") 8 | 9 | project(${ProjectName} LANGUAGES CXX) 10 | 11 | add_executable(${PROJECT_NAME} main.cpp) 12 | 13 | if(MSVC) 14 | target_compile_options(${PROJECT_NAME} 15 | PRIVATE 16 | /std:c++latest 17 | ) 18 | else() 19 | target_compile_options(${PROJECT_NAME} 20 | PRIVATE 21 | -std=c++17 22 | ) 23 | endif() 24 | 25 | target_include_directories(${PROJECT_NAME} 26 | PRIVATE 27 | ${CMAKE_CURRENT_SOURCE_DIR} 28 | ) 29 | 30 | target_link_libraries(${PROJECT_NAME} 31 | PRIVATE 32 | GSL 33 | ) 34 | 35 | install(TARGETS ${PROJECT_NAME} 36 | DESTINATION ${CMAKE_INSTALL_PREFIX} 37 | ) 38 | -------------------------------------------------------------------------------- /Math/Problem10/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | 2 | cmake_minimum_required(VERSION 3.1) 3 | 4 | # Use directory name for this project's name. 5 | string(REGEX MATCH Problem.+ # Format: Project + Number 6 | ProjectName ${CMAKE_CURRENT_SOURCE_DIR}) 7 | message(STATUS "${ProjectName}") 8 | 9 | project(${ProjectName} LANGUAGES CXX) 10 | 11 | add_executable(${PROJECT_NAME} main.cpp) 12 | 13 | if(MSVC) 14 | target_compile_options(${PROJECT_NAME} 15 | PRIVATE 16 | /std:c++latest 17 | ) 18 | else() 19 | target_compile_options(${PROJECT_NAME} 20 | PRIVATE 21 | -std=c++17 22 | ) 23 | endif() 24 | 25 | target_include_directories(${PROJECT_NAME} 26 | PRIVATE 27 | ${CMAKE_CURRENT_SOURCE_DIR} 28 | ) 29 | 30 | target_link_libraries(${PROJECT_NAME} 31 | PRIVATE 32 | GSL 33 | ) 34 | 35 | install(TARGETS ${PROJECT_NAME} 36 | DESTINATION ${CMAKE_INSTALL_PREFIX} 37 | ) 38 | -------------------------------------------------------------------------------- /Math/Problem11/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | 2 | cmake_minimum_required(VERSION 3.1) 3 | 4 | # Use directory name for this project's name. 5 | string(REGEX MATCH Problem.+ # Format: Project + Number 6 | ProjectName ${CMAKE_CURRENT_SOURCE_DIR}) 7 | message(STATUS "${ProjectName}") 8 | 9 | project(${ProjectName} LANGUAGES CXX) 10 | 11 | add_executable(${PROJECT_NAME} main.cpp) 12 | 13 | if(MSVC) 14 | target_compile_options(${PROJECT_NAME} 15 | PRIVATE 16 | /std:c++latest 17 | ) 18 | else() 19 | target_compile_options(${PROJECT_NAME} 20 | PRIVATE 21 | -std=c++17 22 | ) 23 | endif() 24 | 25 | target_include_directories(${PROJECT_NAME} 26 | PRIVATE 27 | ${CMAKE_CURRENT_SOURCE_DIR} 28 | ) 29 | 30 | target_link_libraries(${PROJECT_NAME} 31 | PRIVATE 32 | GSL 33 | ) 34 | 35 | install(TARGETS ${PROJECT_NAME} 36 | DESTINATION ${CMAKE_INSTALL_PREFIX} 37 | ) 38 | -------------------------------------------------------------------------------- /Math/Problem12/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | 2 | cmake_minimum_required(VERSION 3.1) 3 | 4 | # Use directory name for this project's name. 5 | string(REGEX MATCH Problem.+ # Format: Project + Number 6 | ProjectName ${CMAKE_CURRENT_SOURCE_DIR}) 7 | message(STATUS "${ProjectName}") 8 | 9 | project(${ProjectName} LANGUAGES CXX) 10 | 11 | add_executable(${PROJECT_NAME} main.cpp) 12 | 13 | if(MSVC) 14 | target_compile_options(${PROJECT_NAME} 15 | PRIVATE 16 | /std:c++latest 17 | ) 18 | else() 19 | target_compile_options(${PROJECT_NAME} 20 | PRIVATE 21 | -std=c++17 22 | ) 23 | endif() 24 | 25 | target_include_directories(${PROJECT_NAME} 26 | PRIVATE 27 | ${CMAKE_CURRENT_SOURCE_DIR} 28 | ) 29 | 30 | target_link_libraries(${PROJECT_NAME} 31 | PRIVATE 32 | GSL 33 | ) 34 | 35 | install(TARGETS ${PROJECT_NAME} 36 | DESTINATION ${CMAKE_INSTALL_PREFIX} 37 | ) 38 | -------------------------------------------------------------------------------- /Math/Problem13/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | 2 | cmake_minimum_required(VERSION 3.1) 3 | 4 | # Use directory name for this project's name. 5 | string(REGEX MATCH Problem.+ # Format: Project + Number 6 | ProjectName ${CMAKE_CURRENT_SOURCE_DIR}) 7 | message(STATUS "${ProjectName}") 8 | 9 | project(${ProjectName} LANGUAGES CXX) 10 | 11 | add_executable(${PROJECT_NAME} main.cpp) 12 | 13 | if(MSVC) 14 | target_compile_options(${PROJECT_NAME} 15 | PRIVATE 16 | /std:c++latest 17 | ) 18 | else() 19 | target_compile_options(${PROJECT_NAME} 20 | PRIVATE 21 | -std=c++17 22 | ) 23 | endif() 24 | 25 | target_include_directories(${PROJECT_NAME} 26 | PRIVATE 27 | ${CMAKE_CURRENT_SOURCE_DIR} 28 | ) 29 | 30 | target_link_libraries(${PROJECT_NAME} 31 | PRIVATE 32 | GSL 33 | ) 34 | 35 | install(TARGETS ${PROJECT_NAME} 36 | DESTINATION ${CMAKE_INSTALL_PREFIX} 37 | ) 38 | -------------------------------------------------------------------------------- /Math/Problem14/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | 2 | cmake_minimum_required(VERSION 3.1) 3 | 4 | # Use directory name for this project's name. 5 | string(REGEX MATCH Problem.+ # Format: Project + Number 6 | ProjectName ${CMAKE_CURRENT_SOURCE_DIR}) 7 | message(STATUS "${ProjectName}") 8 | 9 | project(${ProjectName} LANGUAGES CXX) 10 | 11 | add_executable(${PROJECT_NAME} main.cpp) 12 | 13 | if(MSVC) 14 | target_compile_options(${PROJECT_NAME} 15 | PRIVATE 16 | /std:c++latest 17 | ) 18 | else() 19 | target_compile_options(${PROJECT_NAME} 20 | PRIVATE 21 | -std=c++17 22 | ) 23 | endif() 24 | 25 | target_include_directories(${PROJECT_NAME} 26 | PRIVATE 27 | ${CMAKE_CURRENT_SOURCE_DIR} 28 | ) 29 | 30 | target_link_libraries(${PROJECT_NAME} 31 | PRIVATE 32 | GSL 33 | ) 34 | 35 | install(TARGETS ${PROJECT_NAME} 36 | DESTINATION ${CMAKE_INSTALL_PREFIX} 37 | ) 38 | -------------------------------------------------------------------------------- /Math/Problem2/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | 2 | cmake_minimum_required(VERSION 3.1) 3 | 4 | # Use directory name for this project's name. 5 | string(REGEX MATCH Problem.+ # Format: Project + Number 6 | ProjectName ${CMAKE_CURRENT_SOURCE_DIR}) 7 | message(STATUS "${ProjectName}") 8 | 9 | project(${ProjectName} LANGUAGES CXX) 10 | 11 | add_executable(${PROJECT_NAME} main.cpp) 12 | 13 | if(MSVC) 14 | target_compile_options(${PROJECT_NAME} 15 | PRIVATE 16 | /std:c++latest 17 | ) 18 | else() 19 | target_compile_options(${PROJECT_NAME} 20 | PRIVATE 21 | -std=c++17 22 | ) 23 | endif() 24 | 25 | target_include_directories(${PROJECT_NAME} 26 | PRIVATE 27 | ${CMAKE_CURRENT_SOURCE_DIR} 28 | ) 29 | 30 | target_link_libraries(${PROJECT_NAME} 31 | PRIVATE 32 | GSL 33 | ) 34 | 35 | install(TARGETS ${PROJECT_NAME} 36 | DESTINATION ${CMAKE_INSTALL_PREFIX} 37 | ) 38 | -------------------------------------------------------------------------------- /Math/Problem4/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | 2 | cmake_minimum_required(VERSION 3.1) 3 | 4 | # Use directory name for this project's name. 5 | string(REGEX MATCH Problem.+ # Format: Project + Number 6 | ProjectName ${CMAKE_CURRENT_SOURCE_DIR}) 7 | message(STATUS "${ProjectName}") 8 | 9 | project(${ProjectName} LANGUAGES CXX) 10 | 11 | add_executable(${PROJECT_NAME} main.cpp) 12 | 13 | if(MSVC) 14 | target_compile_options(${PROJECT_NAME} 15 | PRIVATE 16 | /std:c++latest 17 | ) 18 | else() 19 | target_compile_options(${PROJECT_NAME} 20 | PRIVATE 21 | -std=c++17 22 | ) 23 | endif() 24 | 25 | target_include_directories(${PROJECT_NAME} 26 | PRIVATE 27 | ${CMAKE_CURRENT_SOURCE_DIR} 28 | ) 29 | 30 | target_link_libraries(${PROJECT_NAME} 31 | PRIVATE 32 | GSL 33 | ) 34 | 35 | install(TARGETS ${PROJECT_NAME} 36 | DESTINATION ${CMAKE_INSTALL_PREFIX} 37 | ) 38 | -------------------------------------------------------------------------------- /Math/Problem5/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | 2 | cmake_minimum_required(VERSION 3.1) 3 | 4 | # Use directory name for this project's name. 5 | string(REGEX MATCH Problem.+ # Format: Project + Number 6 | ProjectName ${CMAKE_CURRENT_SOURCE_DIR}) 7 | message(STATUS "${ProjectName}") 8 | 9 | project(${ProjectName} LANGUAGES CXX) 10 | 11 | add_executable(${PROJECT_NAME} main.cpp) 12 | 13 | if(MSVC) 14 | target_compile_options(${PROJECT_NAME} 15 | PRIVATE 16 | /std:c++latest 17 | ) 18 | else() 19 | target_compile_options(${PROJECT_NAME} 20 | PRIVATE 21 | -std=c++17 22 | ) 23 | endif() 24 | 25 | target_include_directories(${PROJECT_NAME} 26 | PRIVATE 27 | ${CMAKE_CURRENT_SOURCE_DIR} 28 | ) 29 | 30 | target_link_libraries(${PROJECT_NAME} 31 | PRIVATE 32 | GSL 33 | ) 34 | 35 | install(TARGETS ${PROJECT_NAME} 36 | DESTINATION ${CMAKE_INSTALL_PREFIX} 37 | ) 38 | -------------------------------------------------------------------------------- /Math/Problem6/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | 2 | cmake_minimum_required(VERSION 3.1) 3 | 4 | # Use directory name for this project's name. 5 | string(REGEX MATCH Problem.+ # Format: Project + Number 6 | ProjectName ${CMAKE_CURRENT_SOURCE_DIR}) 7 | message(STATUS "${ProjectName}") 8 | 9 | project(${ProjectName} LANGUAGES CXX) 10 | 11 | add_executable(${PROJECT_NAME} main.cpp) 12 | 13 | if(MSVC) 14 | target_compile_options(${PROJECT_NAME} 15 | PRIVATE 16 | /std:c++latest 17 | ) 18 | else() 19 | target_compile_options(${PROJECT_NAME} 20 | PRIVATE 21 | -std=c++17 22 | ) 23 | endif() 24 | 25 | target_include_directories(${PROJECT_NAME} 26 | PRIVATE 27 | ${CMAKE_CURRENT_SOURCE_DIR} 28 | ) 29 | 30 | target_link_libraries(${PROJECT_NAME} 31 | PRIVATE 32 | GSL 33 | ) 34 | 35 | install(TARGETS ${PROJECT_NAME} 36 | DESTINATION ${CMAKE_INSTALL_PREFIX} 37 | ) 38 | -------------------------------------------------------------------------------- /Math/Problem7/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | 2 | cmake_minimum_required(VERSION 3.1) 3 | 4 | # Use directory name for this project's name. 5 | string(REGEX MATCH Problem.+ # Format: Project + Number 6 | ProjectName ${CMAKE_CURRENT_SOURCE_DIR}) 7 | message(STATUS "${ProjectName}") 8 | 9 | project(${ProjectName} LANGUAGES CXX) 10 | 11 | add_executable(${PROJECT_NAME} main.cpp) 12 | 13 | if(MSVC) 14 | target_compile_options(${PROJECT_NAME} 15 | PRIVATE 16 | /std:c++latest 17 | ) 18 | else() 19 | target_compile_options(${PROJECT_NAME} 20 | PRIVATE 21 | -std=c++17 22 | ) 23 | endif() 24 | 25 | target_include_directories(${PROJECT_NAME} 26 | PRIVATE 27 | ${CMAKE_CURRENT_SOURCE_DIR} 28 | ) 29 | 30 | target_link_libraries(${PROJECT_NAME} 31 | PRIVATE 32 | GSL 33 | ) 34 | 35 | install(TARGETS ${PROJECT_NAME} 36 | DESTINATION ${CMAKE_INSTALL_PREFIX} 37 | ) 38 | -------------------------------------------------------------------------------- /Math/Problem8/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | 2 | cmake_minimum_required(VERSION 3.1) 3 | 4 | # Use directory name for this project's name. 5 | string(REGEX MATCH Problem.+ # Format: Project + Number 6 | ProjectName ${CMAKE_CURRENT_SOURCE_DIR}) 7 | message(STATUS "${ProjectName}") 8 | 9 | project(${ProjectName} LANGUAGES CXX) 10 | 11 | add_executable(${PROJECT_NAME} main.cpp) 12 | 13 | if(MSVC) 14 | target_compile_options(${PROJECT_NAME} 15 | PRIVATE 16 | /std:c++latest 17 | ) 18 | else() 19 | target_compile_options(${PROJECT_NAME} 20 | PRIVATE 21 | -std=c++17 22 | ) 23 | endif() 24 | 25 | target_include_directories(${PROJECT_NAME} 26 | PRIVATE 27 | ${CMAKE_CURRENT_SOURCE_DIR} 28 | ) 29 | 30 | target_link_libraries(${PROJECT_NAME} 31 | PRIVATE 32 | GSL 33 | ) 34 | 35 | install(TARGETS ${PROJECT_NAME} 36 | DESTINATION ${CMAKE_INSTALL_PREFIX} 37 | ) 38 | -------------------------------------------------------------------------------- /Math/Problem9/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | 2 | cmake_minimum_required(VERSION 3.1) 3 | 4 | # Use directory name for this project's name. 5 | string(REGEX MATCH Problem.+ # Format: Project + Number 6 | ProjectName ${CMAKE_CURRENT_SOURCE_DIR}) 7 | message(STATUS "${ProjectName}") 8 | 9 | project(${ProjectName} LANGUAGES CXX) 10 | 11 | add_executable(${PROJECT_NAME} main.cpp) 12 | 13 | if(MSVC) 14 | target_compile_options(${PROJECT_NAME} 15 | PRIVATE 16 | /std:c++latest 17 | ) 18 | else() 19 | target_compile_options(${PROJECT_NAME} 20 | PRIVATE 21 | -std=c++17 22 | ) 23 | endif() 24 | 25 | target_include_directories(${PROJECT_NAME} 26 | PRIVATE 27 | ${CMAKE_CURRENT_SOURCE_DIR} 28 | ) 29 | 30 | target_link_libraries(${PROJECT_NAME} 31 | PRIVATE 32 | GSL 33 | ) 34 | 35 | install(TARGETS ${PROJECT_NAME} 36 | DESTINATION ${CMAKE_INSTALL_PREFIX} 37 | ) 38 | -------------------------------------------------------------------------------- /Regex/Problem23/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | 2 | cmake_minimum_required(VERSION 3.1) 3 | 4 | # Use directory name for this project's name. 5 | string(REGEX MATCH Problem.+ # Format: Project + Number 6 | ProjectName ${CMAKE_CURRENT_SOURCE_DIR}) 7 | message(STATUS "${ProjectName}") 8 | 9 | project(${ProjectName} LANGUAGES CXX) 10 | 11 | add_executable(${PROJECT_NAME} main.cpp) 12 | 13 | if(MSVC) 14 | target_compile_options(${PROJECT_NAME} 15 | PRIVATE 16 | /std:c++latest 17 | ) 18 | else() 19 | target_compile_options(${PROJECT_NAME} 20 | PRIVATE 21 | -std=c++17 22 | ) 23 | endif() 24 | 25 | target_include_directories(${PROJECT_NAME} 26 | PRIVATE 27 | ${CMAKE_CURRENT_SOURCE_DIR} 28 | ) 29 | 30 | target_link_libraries(${PROJECT_NAME} 31 | PRIVATE 32 | GSL 33 | ) 34 | 35 | install(TARGETS ${PROJECT_NAME} 36 | DESTINATION ${CMAKE_INSTALL_PREFIX} 37 | ) 38 | -------------------------------------------------------------------------------- /Algorithm/Problem45/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | 2 | cmake_minimum_required(VERSION 3.1) 3 | 4 | # Use directory name for this project's name. 5 | string(REGEX MATCH Problem.+ # Format: Project + Number 6 | ProjectName ${CMAKE_CURRENT_SOURCE_DIR}) 7 | message(STATUS "${ProjectName}") 8 | 9 | project(${ProjectName} LANGUAGES CXX) 10 | 11 | add_executable(${PROJECT_NAME} main.cpp) 12 | 13 | if(MSVC) 14 | target_compile_options(${PROJECT_NAME} 15 | PRIVATE 16 | /std:c++latest 17 | ) 18 | else() 19 | target_compile_options(${PROJECT_NAME} 20 | PRIVATE 21 | -std=c++17 22 | ) 23 | endif() 24 | 25 | target_include_directories(${PROJECT_NAME} 26 | PRIVATE 27 | ${CMAKE_CURRENT_SOURCE_DIR} 28 | ) 29 | 30 | target_link_libraries(${PROJECT_NAME} 31 | PRIVATE 32 | GSL 33 | ) 34 | 35 | install(TARGETS ${PROJECT_NAME} 36 | DESTINATION ${CMAKE_INSTALL_PREFIX} 37 | ) 38 | -------------------------------------------------------------------------------- /Archives/Problem79/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | 2 | cmake_minimum_required(VERSION 3.1) 3 | 4 | # Use directory name for this project's name. 5 | string(REGEX MATCH Problem.+ # Format: Project + Number 6 | ProjectName ${CMAKE_CURRENT_SOURCE_DIR}) 7 | message(STATUS "${ProjectName}") 8 | 9 | project(${ProjectName} LANGUAGES CXX) 10 | 11 | add_executable(${PROJECT_NAME} main.cpp) 12 | 13 | if(MSVC) 14 | target_compile_options(${PROJECT_NAME} 15 | PRIVATE 16 | /std:c++latest 17 | ) 18 | else() 19 | target_compile_options(${PROJECT_NAME} 20 | PRIVATE 21 | -std=c++17 22 | ) 23 | endif() 24 | 25 | target_include_directories(${PROJECT_NAME} 26 | PRIVATE 27 | ${CMAKE_CURRENT_SOURCE_DIR} 28 | ) 29 | 30 | target_link_libraries(${PROJECT_NAME} 31 | PRIVATE 32 | GSL 33 | ) 34 | 35 | install(TARGETS ${PROJECT_NAME} 36 | DESTINATION ${CMAKE_INSTALL_PREFIX} 37 | ) 38 | -------------------------------------------------------------------------------- /Concurrency/Problem61/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | 2 | cmake_minimum_required(VERSION 3.1) 3 | 4 | # Use directory name for this project's name. 5 | string(REGEX MATCH Problem.+ # Format: Project + Number 6 | ProjectName ${CMAKE_CURRENT_SOURCE_DIR}) 7 | message(STATUS "${ProjectName}") 8 | 9 | project(${ProjectName} LANGUAGES CXX) 10 | 11 | add_executable(${PROJECT_NAME} main.cpp) 12 | 13 | if(MSVC) 14 | target_compile_options(${PROJECT_NAME} 15 | PRIVATE 16 | /std:c++latest 17 | ) 18 | else() 19 | target_compile_options(${PROJECT_NAME} 20 | PRIVATE 21 | -std=c++17 22 | ) 23 | endif() 24 | 25 | target_include_directories(${PROJECT_NAME} 26 | PRIVATE 27 | ${CMAKE_CURRENT_SOURCE_DIR} 28 | ) 29 | 30 | target_link_libraries(${PROJECT_NAME} 31 | PRIVATE 32 | GSL 33 | ) 34 | 35 | install(TARGETS ${PROJECT_NAME} 36 | DESTINATION ${CMAKE_INSTALL_PREFIX} 37 | ) 38 | -------------------------------------------------------------------------------- /Cryptography/Problem88/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | 2 | cmake_minimum_required(VERSION 3.1) 3 | 4 | # Use directory name for this project's name. 5 | string(REGEX MATCH Problem.+ # Format: Project + Number 6 | ProjectName ${CMAKE_CURRENT_SOURCE_DIR}) 7 | message(STATUS "${ProjectName}") 8 | 9 | project(${ProjectName} LANGUAGES CXX) 10 | 11 | add_executable(${PROJECT_NAME} main.cpp) 12 | 13 | if(MSVC) 14 | target_compile_options(${PROJECT_NAME} 15 | PRIVATE 16 | /std:c++latest 17 | ) 18 | else() 19 | target_compile_options(${PROJECT_NAME} 20 | PRIVATE 21 | -std=c++17 22 | ) 23 | endif() 24 | 25 | target_include_directories(${PROJECT_NAME} 26 | PRIVATE 27 | ${CMAKE_CURRENT_SOURCE_DIR} 28 | ) 29 | 30 | target_link_libraries(${PROJECT_NAME} 31 | PRIVATE 32 | GSL 33 | ) 34 | 35 | install(TARGETS ${PROJECT_NAME} 36 | DESTINATION ${CMAKE_INSTALL_PREFIX} 37 | ) 38 | -------------------------------------------------------------------------------- /Database/Problem85/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | 2 | cmake_minimum_required(VERSION 3.1) 3 | 4 | # Use directory name for this project's name. 5 | string(REGEX MATCH Problem.+ # Format: Project + Number 6 | ProjectName ${CMAKE_CURRENT_SOURCE_DIR}) 7 | message(STATUS "${ProjectName}") 8 | 9 | project(${ProjectName} LANGUAGES CXX) 10 | 11 | add_executable(${PROJECT_NAME} main.cpp) 12 | 13 | if(MSVC) 14 | target_compile_options(${PROJECT_NAME} 15 | PRIVATE 16 | /std:c++latest 17 | ) 18 | else() 19 | target_compile_options(${PROJECT_NAME} 20 | PRIVATE 21 | -std=c++17 22 | ) 23 | endif() 24 | 25 | target_include_directories(${PROJECT_NAME} 26 | PRIVATE 27 | ${CMAKE_CURRENT_SOURCE_DIR} 28 | ) 29 | 30 | target_link_libraries(${PROJECT_NAME} 31 | PRIVATE 32 | GSL 33 | ) 34 | 35 | install(TARGETS ${PROJECT_NAME} 36 | DESTINATION ${CMAKE_INSTALL_PREFIX} 37 | ) 38 | -------------------------------------------------------------------------------- /DateTime/Problem39/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | 2 | cmake_minimum_required(VERSION 3.1) 3 | 4 | # Use directory name for this project's name. 5 | string(REGEX MATCH Problem.+ # Format: Project + Number 6 | ProjectName ${CMAKE_CURRENT_SOURCE_DIR}) 7 | message(STATUS "${ProjectName}") 8 | 9 | project(${ProjectName} LANGUAGES CXX) 10 | 11 | add_executable(${PROJECT_NAME} main.cpp) 12 | 13 | if(MSVC) 14 | target_compile_options(${PROJECT_NAME} 15 | PRIVATE 16 | /std:c++latest 17 | ) 18 | else() 19 | target_compile_options(${PROJECT_NAME} 20 | PRIVATE 21 | -std=c++17 22 | ) 23 | endif() 24 | 25 | target_include_directories(${PROJECT_NAME} 26 | PRIVATE 27 | ${CMAKE_CURRENT_SOURCE_DIR} 28 | ) 29 | 30 | target_link_libraries(${PROJECT_NAME} 31 | PRIVATE 32 | GSL 33 | ) 34 | 35 | install(TARGETS ${PROJECT_NAME} 36 | DESTINATION ${CMAKE_INSTALL_PREFIX} 37 | ) 38 | -------------------------------------------------------------------------------- /Filesystem/Problem32/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | 2 | cmake_minimum_required(VERSION 3.1) 3 | 4 | # Use directory name for this project's name. 5 | string(REGEX MATCH Problem.+ # Format: Project + Number 6 | ProjectName ${CMAKE_CURRENT_SOURCE_DIR}) 7 | message(STATUS "${ProjectName}") 8 | 9 | project(${ProjectName} LANGUAGES CXX) 10 | 11 | add_executable(${PROJECT_NAME} main.cpp) 12 | 13 | if(MSVC) 14 | target_compile_options(${PROJECT_NAME} 15 | PRIVATE 16 | /std:c++latest 17 | ) 18 | else() 19 | target_compile_options(${PROJECT_NAME} 20 | PRIVATE 21 | -std=c++17 22 | ) 23 | endif() 24 | 25 | target_include_directories(${PROJECT_NAME} 26 | PRIVATE 27 | ${CMAKE_CURRENT_SOURCE_DIR} 28 | ) 29 | 30 | target_link_libraries(${PROJECT_NAME} 31 | PRIVATE 32 | GSL 33 | ) 34 | 35 | install(TARGETS ${PROJECT_NAME} 36 | DESTINATION ${CMAKE_INSTALL_PREFIX} 37 | ) 38 | -------------------------------------------------------------------------------- /Language/Problem15/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | 2 | cmake_minimum_required(VERSION 3.1) 3 | 4 | # Use directory name for this project's name. 5 | string(REGEX MATCH Problem.+ # Format: Project + Number 6 | ProjectName ${CMAKE_CURRENT_SOURCE_DIR}) 7 | message(STATUS "${ProjectName}") 8 | 9 | project(${ProjectName} LANGUAGES CXX) 10 | 11 | add_executable(${PROJECT_NAME} main.cpp) 12 | 13 | if(MSVC) 14 | target_compile_options(${PROJECT_NAME} 15 | PRIVATE 16 | /std:c++latest 17 | ) 18 | else() 19 | target_compile_options(${PROJECT_NAME} 20 | PRIVATE 21 | -std=c++17 22 | ) 23 | endif() 24 | 25 | target_include_directories(${PROJECT_NAME} 26 | PRIVATE 27 | ${CMAKE_CURRENT_SOURCE_DIR} 28 | ) 29 | 30 | target_link_libraries(${PROJECT_NAME} 31 | PRIVATE 32 | GSL 33 | ) 34 | 35 | install(TARGETS ${PROJECT_NAME} 36 | DESTINATION ${CMAKE_INSTALL_PREFIX} 37 | ) 38 | -------------------------------------------------------------------------------- /Networking/Problem95/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | 2 | cmake_minimum_required(VERSION 3.1) 3 | 4 | # Use directory name for this project's name. 5 | string(REGEX MATCH Problem.+ # Format: Project + Number 6 | ProjectName ${CMAKE_CURRENT_SOURCE_DIR}) 7 | message(STATUS "${ProjectName}") 8 | 9 | project(${ProjectName} LANGUAGES CXX) 10 | 11 | add_executable(${PROJECT_NAME} main.cpp) 12 | 13 | if(MSVC) 14 | target_compile_options(${PROJECT_NAME} 15 | PRIVATE 16 | /std:c++latest 17 | ) 18 | else() 19 | target_compile_options(${PROJECT_NAME} 20 | PRIVATE 21 | -std=c++17 22 | ) 23 | endif() 24 | 25 | target_include_directories(${PROJECT_NAME} 26 | PRIVATE 27 | ${CMAKE_CURRENT_SOURCE_DIR} 28 | ) 29 | 30 | target_link_libraries(${PROJECT_NAME} 31 | PRIVATE 32 | GSL 33 | ) 34 | 35 | install(TARGETS ${PROJECT_NAME} 36 | DESTINATION ${CMAKE_INSTALL_PREFIX} 37 | ) 38 | -------------------------------------------------------------------------------- /DesignPattern/Problem67/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | 2 | cmake_minimum_required(VERSION 3.1) 3 | 4 | # Use directory name for this project's name. 5 | string(REGEX MATCH Problem.+ # Format: Project + Number 6 | ProjectName ${CMAKE_CURRENT_SOURCE_DIR}) 7 | message(STATUS "${ProjectName}") 8 | 9 | project(${ProjectName} LANGUAGES CXX) 10 | 11 | add_executable(${PROJECT_NAME} main.cpp) 12 | 13 | if(MSVC) 14 | target_compile_options(${PROJECT_NAME} 15 | PRIVATE 16 | /std:c++latest 17 | ) 18 | else() 19 | target_compile_options(${PROJECT_NAME} 20 | PRIVATE 21 | -std=c++17 22 | ) 23 | endif() 24 | 25 | target_include_directories(${PROJECT_NAME} 26 | PRIVATE 27 | ${CMAKE_CURRENT_SOURCE_DIR} 28 | ) 29 | 30 | target_link_libraries(${PROJECT_NAME} 31 | PRIVATE 32 | GSL 33 | ) 34 | 35 | install(TARGETS ${PROJECT_NAME} 36 | DESTINATION ${CMAKE_INSTALL_PREFIX} 37 | ) 38 | -------------------------------------------------------------------------------- /Serialization/Problem73/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | 2 | cmake_minimum_required(VERSION 3.1) 3 | 4 | # Use directory name for this project's name. 5 | string(REGEX MATCH Problem.+ # Format: Project + Number 6 | ProjectName ${CMAKE_CURRENT_SOURCE_DIR}) 7 | message(STATUS "${ProjectName}") 8 | 9 | project(${ProjectName} LANGUAGES CXX) 10 | 11 | add_executable(${PROJECT_NAME} main.cpp) 12 | 13 | if(MSVC) 14 | target_compile_options(${PROJECT_NAME} 15 | PRIVATE 16 | /std:c++latest 17 | ) 18 | else() 19 | target_compile_options(${PROJECT_NAME} 20 | PRIVATE 21 | -std=c++17 22 | ) 23 | endif() 24 | 25 | target_include_directories(${PROJECT_NAME} 26 | PRIVATE 27 | ${CMAKE_CURRENT_SOURCE_DIR} 28 | ) 29 | 30 | target_link_libraries(${PROJECT_NAME} 31 | PRIVATE 32 | GSL 33 | ) 34 | 35 | install(TARGETS ${PROJECT_NAME} 36 | DESTINATION ${CMAKE_INSTALL_PREFIX} 37 | ) 38 | -------------------------------------------------------------------------------- /Math/Problem3/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | 2 | cmake_minimum_required(VERSION 3.1) 3 | 4 | # Use directory name for this project's name. 5 | string(REGEX MATCH Problem.+ # Format: Project + Number 6 | ProjectName ${CMAKE_CURRENT_SOURCE_DIR}) 7 | message(STATUS "${ProjectName}") 8 | 9 | project(${ProjectName} LANGUAGES CXX) 10 | 11 | add_executable(${PROJECT_NAME} main.cpp) 12 | 13 | if(MSVC) 14 | target_compile_options(${PROJECT_NAME} 15 | PRIVATE 16 | /std:c++latest 17 | ) 18 | else() 19 | target_compile_options(${PROJECT_NAME} 20 | PRIVATE 21 | -std=c++17 22 | ) 23 | endif() 24 | 25 | target_include_directories(${PROJECT_NAME} 26 | PRIVATE 27 | ${CMAKE_CURRENT_SOURCE_DIR} 28 | ) 29 | 30 | target_link_libraries(${PROJECT_NAME} 31 | PRIVATE 32 | GSL 33 | ) 34 | 35 | install(TARGETS ${PROJECT_NAME} 36 | DESTINATION ${CMAKE_INSTALL_PREFIX} 37 | ) 38 | 39 | # message(STATUS "${PROJECT_NAME}") 40 | # message(STATUS "${CMAKE_CURRENT_BINARY_DIR}") 41 | # message(STATUS "${CMAKE_CURRENT_LIST_DIR}") 42 | # message(STATUS "${CMAKE_CURRENT_SOURCE_DIR}") 43 | 44 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 C++ Korea 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Guide.md: -------------------------------------------------------------------------------- 1 | ## Note 2 | 3 | - 외부 라이브러리를 git submodule을 사용해 가져오는 경우, 4 | [External](./External) 디렉터리 밑에 배치해주시면 됩니다 5 | - 이미 빌드 된 형태로 가져와서 사용하는 경우, 6 | [External/include](./External)와 [External/lib](./External)에 배치해주시면 됩니다 7 | 8 | ## How To 9 | 10 | ### Build 11 | 12 | 과정은 크게 두 단계로, 준비(setup) 단계와 빌드(build) 단계로 구분됩니다. 준비하시고, 쏘세요! (?) 13 | 14 | #### Windows 15 | 16 | 윈도우는 cmd 보다는 PowerShell을 사용해 빌드하는 것을 전제합니다. 17 | 경우에 따라서는 cmd 스크립트를 작성할 수 있으므로, 이 경우는 `.bat`파일을 별도로 생성하여 작성하시면 됩니다. 18 | 19 | ```ps 20 | git clone https://github.com/CppKorea/ModernCppChallenge CppChallenge 21 | Set-Location -Path ./Path/To/CppChallenge 22 | 23 | & ./Scripts/win-setup.ps1; # 빌드 전 준비작업 24 | & ./Scripts/win-build.ps1; # 프로젝트 생성 + 빌드 25 | ``` 26 | 27 | #### Linux 28 | 29 | linux라고 명명했지만 CI 환경에서는 보통 **Ubuntu** Distribution을 사용하기에 이를 기준으로 합니다. 30 | 다른 환경 혹은 shell을 사용하신다면 추가로 작성하는 것도 환영합니다. 31 | 32 | ```sh 33 | git clone https://github.com/CppKorea/ModernCppChallenge CppChallenge 34 | cd ./Path/To/CppChallenge 35 | 36 | bash ./Scripts/linux-setup.sh # 빌드 전 준비작업 37 | bash ./Scripts/linux-build.sh # 프로젝트 생성 + 빌드 38 | ``` 39 | 40 | #### MacOS 41 | 42 | MacOS 환경에서는 스크립트 이름이 다릅니다 ! 43 | 44 | ```sh 45 | git clone https://github.com/CppKorea/ModernCppChallenge CppChallenge 46 | cd ./Path/To/CppChallenge 47 | 48 | bash ./Scripts/mac-setup.sh # 빌드 전 준비작업 49 | bash ./Scripts/mac-build.sh # 프로젝트 생성 + 빌드 50 | ``` 51 | -------------------------------------------------------------------------------- /CMakeLists.txt: -------------------------------------------------------------------------------- 1 | 2 | cmake_minimum_required(VERSION 3.1) 3 | 4 | project(ModernCppChallenge LANGUAGES CXX) 5 | 6 | set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/Scripts) 7 | set(ROOT_DIR ${CMAKE_SOURCE_DIR}) 8 | set(CMAKE_INSTALL_PREFIX ${CMAKE_SOURCE_DIR}/Solved) 9 | 10 | include(GetModules) 11 | 12 | # Ch.1 13 | add_subdirectory(Math/Problem1) 14 | add_subdirectory(Math/Problem2) 15 | add_subdirectory(Math/Problem3) 16 | add_subdirectory(Math/Problem4) 17 | add_subdirectory(Math/Problem5) 18 | add_subdirectory(Math/Problem6) 19 | add_subdirectory(Math/Problem7) 20 | add_subdirectory(Math/Problem8) 21 | add_subdirectory(Math/Problem9) 22 | add_subdirectory(Math/Problem10) 23 | add_subdirectory(Math/Problem11) 24 | add_subdirectory(Math/Problem12) 25 | add_subdirectory(Math/Problem13) 26 | add_subdirectory(Math/Problem14) 27 | 28 | # add_subdirectory(Language) # Ch.2 29 | # add_subdirectory(Regex) # Ch.3 30 | # add_subdirectory(Filesystem) # Ch.4 31 | # add_subdirectory(DateTime) # Ch.5 32 | # add_subdirectory(Algorithm) # Ch.6 33 | # add_subdirectory(Concurrency) # Ch.7 34 | # add_subdirectory(Serialization) # Ch.9 35 | # add_subdirectory(DesignPattern) # Ch.8 36 | # add_subdirectory(Archives) # Ch.10 37 | # add_subdirectory(Database) # 38 | # add_subdirectory(Images) # 39 | # add_subdirectory(Cryptography) # Ch.11 40 | 41 | # add_subdirectory(Extra) # Bonus challenge! 42 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 모던 C++ 챌린지 스터디 2 | 3 | 2018년 하반기에 진행하는 모던 C++ 챌린지 스터디 관련 자료입니다. 4 | 5 | ## 날짜 6 | 7 | - 토/일요일 오전 10시 ~ 오후 1시 8 | 9 | ## 장소 10 | 11 | - 토즈 강남 지역 (강남 / 교대 / 양재 / 선릉) 12 | 13 | ## 스터디 인원 14 | 15 | - 40명 (10명 * 4분반) 16 | 17 | ## 주 교재 18 | 19 | - The Modern C++ Challenge: Become an expert programmer by solving real-world problems 20 | 21 | ![Textbook](./Textbook.png) 22 | 23 | ## 일정 24 | 25 | - 10월 6일 / 7일 26 | - 자기 소개 27 | - 아이스 브레이킹 28 | - 스터디 진행 안내 29 | - 10월 20일 30 | - Chapter 1: Math Problems 31 | - Sum of naturals divisible by 3 and 5 32 | - Greatest common divisior 33 | - Least common multiple 34 | - Largest prime smaller than given number 35 | - Sexy prime pairs 36 | - Abundant numbers 37 | - Amicable numbers 38 | - Armstrong numbers 39 | - Prime factors of a number 40 | - Gray code 41 | - Converting numerical values to Roman 42 | - Largest Collatz sequence 43 | - Computing the value of Pi 44 | - Validating ISBNs 45 | - 11월 3일 / 4일 46 | - Chapter 2: Language Features 47 | - IPv4 data type 48 | - Enumerating IPv4 addresses in a range 49 | - Creating a 2D array with basic operations 50 | - Minimum function with any number of arguments 51 | - Adding a range of values to a container 52 | - Container any, all, none 53 | - System handle wrapper 54 | - Literals of various temperature scales 55 | - Chapter 3: Strings and Regular Expressions 56 | - Binary to string conversion 57 | - String to binary conversion 58 | - Capitalizing an article title 59 | - Joining strings together separated by a delimiter 60 | - Splitting a string into tokens with a list of possible delimiters 61 | - Longest palindromic substring 62 | - License plate validation 63 | - Extracting URL parts 64 | - Transforming dates in strings 65 | - 11월 17일 / 18일 66 | - Chapter 4: Streams and Filesystems 67 | - Pascal's triangle 68 | - Tabular printing of a list of processes 69 | - Removing empty lines from a text file 70 | - Computing the size of a directory 71 | - Deleting files older than a given date 72 | - Finding files in a directory that match a regular expression 73 | - Temporary log files 74 | - Chapter 5: Date and Time 75 | - Measuring function execution time 76 | - Number of days between two dates 77 | - Day of the week 78 | - Day and week of the year 79 | - Meeting time for multiple time zones 80 | - Monthly calendar 81 | - 12월 1일 / 2일 82 | - Chapter 6: Algorithms and Data Structures 83 | - Priority queue 84 | - Circular buffer 85 | - Double buffer 86 | - The most frequent element in a range 87 | - Text histogram 88 | - Filtering a list of phone numbers 89 | - Transforming a list of phone numbers 90 | - Generating all the permutations of a string 91 | - Average rating of movies 92 | - Pairwise algorithm 93 | - Zip algorithm 94 | - Select algorithm 95 | - Sort algorithm 96 | - The shortest path between nodes 97 | - The Weasel program 98 | - The Game of Life 99 | - 12월 15일 / 16일 100 | - Chapter 7: Concurrency 101 | - Parallel transform algorithm 102 | - Parallel min and max element algorithms using threads 103 | - Parallel min and max element algorithms using asynchronous functions 104 | - Parallel sort algorithm 105 | - Thread-safe logging to the console 106 | - Customer service system 107 | - Chapter 8: Design Patterns 108 | - Validating passwords 109 | - Generating random passwords 110 | - Generating social security numbers 111 | - Approval system 112 | - Observable vector container 113 | - Computing order price with discounts 114 | - 1월 5일 / 6일 115 | - Chapter 9: Data Serialization 116 | - Serializing and deserializing data to/from XML 117 | - Selecting data from XML using XPath 118 | - Serializing data to JSON 119 | - Deserializing data from JSON 120 | - Printing a list of movies to a PDF 121 | - Creating a PDF from a collection of images 122 | - Chapter 10: Archives, Images, and Databases 123 | - Finding files in a ZIP archive 124 | - Compressing and decompressing files to/from a ZIP archive 125 | - Compressing and decompressing files to/from a ZIP archive with a password 126 | - Creating a PNG that represents a national flag 127 | - Creating verification text PNG images 128 | - EAN-13 barcode generator 129 | - Reading movies from an SQLite database 130 | - Inserting movies into SQLite database transactionally 131 | - Handling movie images in an SQLite database 132 | - 1월 19일 / 20일 133 | - Chapter 11: Cryptography 134 | - Caesar cipher 135 | - Vigenere cipher 136 | - Base64 encoding and decoding 137 | - Validating user credentials 138 | - Computing file hashes 139 | - Encrypting and decrypting files 140 | - File signing 141 | - Chapter 12: Networking and Services 142 | - Finding the IP address of a host 143 | - Client-server Fizz-Buzz 144 | - Bitcoin exchange rates 145 | - Fetching emails using IMAP 146 | - Translating text to any language 147 | - Detecting faces in a picture 148 | - 스터디 마무리 149 | - 비용 정산 150 | 151 | ## 스터디 참고 사항 및 진행 방식 152 | 153 | - 스터디 모집 인원은 한 분반 당 8명으로 구성합니다. 154 | - 1분반은 토요일 오전 10시 ~ 오후 1시에 진행합니다. 155 | - 2분반은 일요일 오전 10시 ~ 오후 1시에 진행합니다. 156 | - 스터디에 사용하는 책은 개별 구입하셔야 합니다. 157 | - 스터디는 격주 단위로 진행합니다. 158 | - 2주동안 각자 정해진 분량의 문제들을 풀어옵니다. 159 | - 서로의 코드를 리뷰하며 더 좋은 해결 방법을 찾기 위해 토론합니다. 160 | - 즉석에서 문제를 응용해서 풀어보는 시간도 갖습니다. 161 | - 스터디와 관련된 모든 예제 코드는 Github에 업로드합니다. 162 | 163 | ## 비용 164 | 165 | - 12만원 (예치금 4만원 + 장소 대여비 1만원 * 8회) 166 | 167 | ## 선납금 및 장소 대여비 입금 계좌 168 | 169 | - 신한은행 110-471-445816 옥찬호 170 | 171 | ## 스터디 진행 도우미 172 | 173 | - 1분반(토요일) : 옥찬호 174 | - 2분반(일요일) : 정승호 175 | - 3분반(토요일) : 박동하 176 | - 4분반(토요일) : 정은식 177 | -------------------------------------------------------------------------------- /External/include/.gitignore: -------------------------------------------------------------------------------- 1 | # Created by https://www.gitignore.io/api/c,vim,c++,cmake,emacs,xcode,qtcreator,visualstudio,visualstudiocode 2 | 3 | ### C ### 4 | # Prerequisites 5 | *.d 6 | 7 | # Object files 8 | *.o 9 | *.ko 10 | *.obj 11 | *.elf 12 | 13 | # Linker output 14 | *.ilk 15 | *.map 16 | *.exp 17 | 18 | # Precompiled Headers 19 | *.gch 20 | *.pch 21 | 22 | # Libraries 23 | *.lib 24 | *.a 25 | *.la 26 | *.lo 27 | 28 | # Shared objects (inc. Windows DLLs) 29 | *.dll 30 | *.so 31 | *.so.* 32 | *.dylib 33 | 34 | # Executables 35 | *.exe 36 | *.out 37 | *.app 38 | *.i*86 39 | *.x86_64 40 | *.hex 41 | 42 | # Debug files 43 | *.dSYM/ 44 | *.su 45 | *.idb 46 | *.pdb 47 | 48 | # Kernel Module Compile Results 49 | *.mod* 50 | *.cmd 51 | .tmp_versions/ 52 | modules.order 53 | Module.symvers 54 | Mkfile.old 55 | dkms.conf 56 | 57 | ### C++ ### 58 | # Prerequisites 59 | 60 | # Compiled Object files 61 | *.slo 62 | 63 | # Precompiled Headers 64 | 65 | # Compiled Dynamic libraries 66 | 67 | # Fortran module files 68 | *.mod 69 | *.smod 70 | 71 | # Compiled Static libraries 72 | *.lai 73 | 74 | # Executables 75 | 76 | ### CMake ### 77 | CMakeCache.txt 78 | CMakeFiles 79 | CMakeScripts 80 | Testing 81 | Makefile 82 | cmake_install.cmake 83 | install_manifest.txt 84 | compile_commands.json 85 | CTestTestfile.cmake 86 | 87 | ### Emacs ### 88 | # -*- mode: gitignore; -*- 89 | *~ 90 | \#*\# 91 | /.emacs.desktop 92 | /.emacs.desktop.lock 93 | *.elc 94 | auto-save-list 95 | tramp 96 | .\#* 97 | 98 | # Org-mode 99 | .org-id-locations 100 | *_archive 101 | 102 | # flymake-mode 103 | *_flymake.* 104 | 105 | # eshell files 106 | /eshell/history 107 | /eshell/lastdir 108 | 109 | # elpa packages 110 | /elpa/ 111 | 112 | # reftex files 113 | *.rel 114 | 115 | # AUCTeX auto folder 116 | /auto/ 117 | 118 | # cask packages 119 | .cask/ 120 | dist/ 121 | 122 | # Flycheck 123 | flycheck_*.el 124 | 125 | # server auth directory 126 | /server/ 127 | 128 | # projectiles files 129 | .projectile 130 | 131 | # directory configuration 132 | .dir-locals.el 133 | 134 | ### QtCreator ### 135 | # gitignore for Qt Creator like IDE for pure C/C++ project without Qt 136 | # 137 | # Reference: http://doc.qt.io/qtcreator/creator-project-generic.html 138 | 139 | 140 | 141 | # Qt Creator autogenerated files 142 | 143 | 144 | # A listing of all the files included in the project 145 | *.files 146 | 147 | # Include directories 148 | *.includes 149 | 150 | # Project configuration settings like predefined Macros 151 | *.config 152 | 153 | # Qt Creator settings 154 | *.creator 155 | 156 | # User project settings 157 | *.creator.user* 158 | 159 | # Qt Creator backups 160 | *.autosave 161 | 162 | ### Vim ### 163 | # Swap 164 | [._]*.s[a-v][a-z] 165 | [._]*.sw[a-p] 166 | [._]s[a-rt-v][a-z] 167 | [._]ss[a-gi-z] 168 | [._]sw[a-p] 169 | 170 | # Session 171 | Session.vim 172 | 173 | # Temporary 174 | .netrwhist 175 | # Auto-generated tag files 176 | tags 177 | # Persistent undo 178 | [._]*.un~ 179 | 180 | ### VisualStudioCode ### 181 | .vscode/* 182 | !.vscode/settings.json 183 | !.vscode/tasks.json 184 | !.vscode/launch.json 185 | !.vscode/extensions.json 186 | 187 | ### Xcode ### 188 | # Xcode 189 | # 190 | # gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore 191 | 192 | ## User settings 193 | xcuserdata/ 194 | 195 | ## compatibility with Xcode 8 and earlier (ignoring not required starting Xcode 9) 196 | *.xcscmblueprint 197 | *.xccheckout 198 | 199 | ## compatibility with Xcode 3 and earlier (ignoring not required starting Xcode 4) 200 | build/ 201 | DerivedData/ 202 | *.moved-aside 203 | *.pbxuser 204 | !default.pbxuser 205 | *.mode1v3 206 | !default.mode1v3 207 | *.mode2v3 208 | !default.mode2v3 209 | *.perspectivev3 210 | !default.perspectivev3 211 | 212 | ### Xcode Patch ### 213 | *.xcodeproj/* 214 | !*.xcodeproj/project.pbxproj 215 | !*.xcodeproj/xcshareddata/ 216 | !*.xcworkspace/contents.xcworkspacedata 217 | /*.gcno 218 | 219 | ### VisualStudio ### 220 | ## Ignore Visual Studio temporary files, build results, and 221 | ## files generated by popular Visual Studio add-ons. 222 | ## 223 | ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore 224 | 225 | # User-specific files 226 | *.suo 227 | *.user 228 | *.userosscache 229 | *.sln.docstates 230 | 231 | # User-specific files (MonoDevelop/Xamarin Studio) 232 | *.userprefs 233 | 234 | # Build results 235 | [Dd]ebug/ 236 | [Dd]ebugPublic/ 237 | [Rr]elease/ 238 | [Rr]eleases/ 239 | x64/ 240 | x86/ 241 | bld/ 242 | [Bb]in/ 243 | [Oo]bj/ 244 | [Ll]og/ 245 | 246 | # Visual Studio 2015/2017 cache/options directory 247 | .vs/ 248 | # Uncomment if you have tasks that create the project's static files in wwwroot 249 | #wwwroot/ 250 | 251 | # Visual Studio 2017 auto generated files 252 | Generated\ Files/ 253 | 254 | # MSTest test Results 255 | [Tt]est[Rr]esult*/ 256 | [Bb]uild[Ll]og.* 257 | 258 | # NUNIT 259 | *.VisualState.xml 260 | TestResult.xml 261 | 262 | # Build Results of an ATL Project 263 | [Dd]ebugPS/ 264 | [Rr]eleasePS/ 265 | dlldata.c 266 | 267 | # Benchmark Results 268 | BenchmarkDotNet.Artifacts/ 269 | 270 | # .NET Core 271 | project.lock.json 272 | project.fragment.lock.json 273 | artifacts/ 274 | 275 | # StyleCop 276 | StyleCopReport.xml 277 | 278 | # Files built by Visual Studio 279 | *_i.c 280 | *_p.c 281 | *_h.h 282 | *.meta 283 | *.iobj 284 | *.ipdb 285 | *.pgc 286 | *.pgd 287 | *.rsp 288 | *.sbr 289 | *.tlb 290 | *.tli 291 | *.tlh 292 | *.tmp 293 | *.tmp_proj 294 | *_wpftmp.csproj 295 | *.log 296 | *.vspscc 297 | *.vssscc 298 | .builds 299 | *.pidb 300 | *.svclog 301 | *.scc 302 | 303 | # Chutzpah Test files 304 | _Chutzpah* 305 | 306 | # Visual C++ cache files 307 | ipch/ 308 | *.aps 309 | *.ncb 310 | *.opendb 311 | *.opensdf 312 | *.sdf 313 | *.cachefile 314 | *.VC.db 315 | *.VC.VC.opendb 316 | 317 | # Visual Studio profiler 318 | *.psess 319 | *.vsp 320 | *.vspx 321 | *.sap 322 | 323 | # Visual Studio Trace Files 324 | *.e2e 325 | 326 | # TFS 2012 Local Workspace 327 | $tf/ 328 | 329 | # Guidance Automation Toolkit 330 | *.gpState 331 | 332 | # ReSharper is a .NET coding add-in 333 | _ReSharper*/ 334 | *.[Rr]e[Ss]harper 335 | *.DotSettings.user 336 | 337 | # JustCode is a .NET coding add-in 338 | .JustCode 339 | 340 | # TeamCity is a build add-in 341 | _TeamCity* 342 | 343 | # DotCover is a Code Coverage Tool 344 | *.dotCover 345 | 346 | # AxoCover is a Code Coverage Tool 347 | .axoCover/* 348 | !.axoCover/settings.json 349 | 350 | # Visual Studio code coverage results 351 | *.coverage 352 | *.coveragexml 353 | 354 | # NCrunch 355 | _NCrunch_* 356 | .*crunch*.local.xml 357 | nCrunchTemp_* 358 | 359 | # MightyMoose 360 | *.mm.* 361 | AutoTest.Net/ 362 | 363 | # Web workbench (sass) 364 | .sass-cache/ 365 | 366 | # Installshield output folder 367 | [Ee]xpress/ 368 | 369 | # DocProject is a documentation generator add-in 370 | DocProject/buildhelp/ 371 | DocProject/Help/*.HxT 372 | DocProject/Help/*.HxC 373 | DocProject/Help/*.hhc 374 | DocProject/Help/*.hhk 375 | DocProject/Help/*.hhp 376 | DocProject/Help/Html2 377 | DocProject/Help/html 378 | 379 | # Click-Once directory 380 | publish/ 381 | 382 | # Publish Web Output 383 | *.[Pp]ublish.xml 384 | *.azurePubxml 385 | # Note: Comment the next line if you want to checkin your web deploy settings, 386 | # but database connection strings (with potential passwords) will be unencrypted 387 | *.pubxml 388 | *.publishproj 389 | 390 | # Microsoft Azure Web App publish settings. Comment the next line if you want to 391 | # checkin your Azure Web App publish settings, but sensitive information contained 392 | # in these scripts will be unencrypted 393 | PublishScripts/ 394 | 395 | # NuGet Packages 396 | *.nupkg 397 | # The packages folder can be ignored because of Package Restore 398 | **/[Pp]ackages/* 399 | # except build/, which is used as an MSBuild target. 400 | !**/[Pp]ackages/build/ 401 | # Uncomment if necessary however generally it will be regenerated when needed 402 | #!**/[Pp]ackages/repositories.config 403 | # NuGet v3's project.json files produces more ignorable files 404 | *.nuget.props 405 | *.nuget.targets 406 | 407 | # Microsoft Azure Build Output 408 | csx/ 409 | *.build.csdef 410 | 411 | # Microsoft Azure Emulator 412 | ecf/ 413 | rcf/ 414 | 415 | # Windows Store app package directories and files 416 | AppPackages/ 417 | BundleArtifacts/ 418 | Package.StoreAssociation.xml 419 | _pkginfo.txt 420 | *.appx 421 | 422 | # Visual Studio cache files 423 | # files ending in .cache can be ignored 424 | *.[Cc]ache 425 | # but keep track of directories ending in .cache 426 | !*.[Cc]ache/ 427 | 428 | # Others 429 | ClientBin/ 430 | ~$* 431 | *.dbmdl 432 | *.dbproj.schemaview 433 | *.jfm 434 | *.pfx 435 | *.publishsettings 436 | orleans.codegen.cs 437 | 438 | # Including strong name files can present a security risk 439 | # (https://github.com/github/gitignore/pull/2483#issue-259490424) 440 | #*.snk 441 | 442 | # Since there are multiple workflows, uncomment next line to ignore bower_components 443 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) 444 | #bower_components/ 445 | 446 | # RIA/Silverlight projects 447 | Generated_Code/ 448 | 449 | # Backup & report files from converting an old project file 450 | # to a newer Visual Studio version. Backup files are not needed, 451 | # because we have git ;-) 452 | _UpgradeReport_Files/ 453 | Backup*/ 454 | UpgradeLog*.XML 455 | UpgradeLog*.htm 456 | ServiceFabricBackup/ 457 | *.rptproj.bak 458 | 459 | # SQL Server files 460 | *.mdf 461 | *.ldf 462 | *.ndf 463 | 464 | # Business Intelligence projects 465 | *.rdl.data 466 | *.bim.layout 467 | *.bim_*.settings 468 | *.rptproj.rsuser 469 | 470 | # Microsoft Fakes 471 | FakesAssemblies/ 472 | 473 | # GhostDoc plugin setting file 474 | *.GhostDoc.xml 475 | 476 | # Node.js Tools for Visual Studio 477 | .ntvs_analysis.dat 478 | node_modules/ 479 | 480 | # Visual Studio 6 build log 481 | *.plg 482 | 483 | # Visual Studio 6 workspace options file 484 | *.opt 485 | 486 | # Visual Studio 6 auto-generated workspace file (contains which files were open etc.) 487 | *.vbw 488 | 489 | # Visual Studio LightSwitch build output 490 | **/*.HTMLClient/GeneratedArtifacts 491 | **/*.DesktopClient/GeneratedArtifacts 492 | **/*.DesktopClient/ModelManifest.xml 493 | **/*.Server/GeneratedArtifacts 494 | **/*.Server/ModelManifest.xml 495 | _Pvt_Extensions 496 | 497 | # Paket dependency manager 498 | .paket/paket.exe 499 | paket-files/ 500 | 501 | # FAKE - F# Make 502 | .fake/ 503 | 504 | # JetBrains Rider 505 | .idea/ 506 | *.sln.iml 507 | 508 | # CodeRush personal settings 509 | .cr/personal 510 | 511 | # Python Tools for Visual Studio (PTVS) 512 | __pycache__/ 513 | *.pyc 514 | 515 | # Cake - Uncomment if you are using it 516 | # tools/** 517 | # !tools/packages.config 518 | 519 | # Tabs Studio 520 | *.tss 521 | 522 | # Telerik's JustMock configuration file 523 | *.jmconfig 524 | 525 | # BizTalk build output 526 | *.btp.cs 527 | *.btm.cs 528 | *.odx.cs 529 | *.xsd.cs 530 | 531 | # OpenCover UI analysis results 532 | OpenCover/ 533 | 534 | # Azure Stream Analytics local run output 535 | ASALocalRun/ 536 | 537 | # MSBuild Binary and Structured Log 538 | *.binlog 539 | 540 | # NVidia Nsight GPU debugger configuration file 541 | *.nvuser 542 | 543 | # MFractors (Xamarin productivity tool) working folder 544 | .mfractor/ 545 | 546 | # Local History for Visual Studio 547 | .localhistory/ 548 | 549 | 550 | # End of https://www.gitignore.io/api/c,vim,c++,cmake,emacs,xcode,qtcreator,visualstudio,visualstudiocode -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | CommitNote 3 | Solved/ 4 | 5 | # Created by https://www.gitignore.io/api/c,vim,c++,cmake,emacs,xcode,qtcreator,visualstudio,visualstudiocode 6 | 7 | ### C ### 8 | # Prerequisites 9 | *.d 10 | 11 | # Object files 12 | *.o 13 | *.ko 14 | *.obj 15 | *.elf 16 | 17 | # Linker output 18 | *.ilk 19 | *.map 20 | *.exp 21 | 22 | # Precompiled Headers 23 | *.gch 24 | *.pch 25 | 26 | # Libraries 27 | *.lib 28 | *.a 29 | *.la 30 | *.lo 31 | 32 | # Shared objects (inc. Windows DLLs) 33 | *.dll 34 | *.so 35 | *.so.* 36 | *.dylib 37 | 38 | # Executables 39 | *.exe 40 | *.out 41 | *.app 42 | *.i*86 43 | *.x86_64 44 | *.hex 45 | 46 | # Debug files 47 | *.dSYM/ 48 | *.su 49 | *.idb 50 | *.pdb 51 | 52 | # Kernel Module Compile Results 53 | *.mod* 54 | *.cmd 55 | .tmp_versions/ 56 | modules.order 57 | Module.symvers 58 | Mkfile.old 59 | dkms.conf 60 | 61 | ### C++ ### 62 | # Prerequisites 63 | 64 | # Compiled Object files 65 | *.slo 66 | 67 | # Precompiled Headers 68 | 69 | # Compiled Dynamic libraries 70 | 71 | # Fortran module files 72 | *.mod 73 | *.smod 74 | 75 | # Compiled Static libraries 76 | *.lai 77 | 78 | # Executables 79 | 80 | ### CMake ### 81 | CMakeCache.txt 82 | CMakeFiles 83 | CMakeScripts 84 | Testing 85 | Makefile 86 | cmake_install.cmake 87 | install_manifest.txt 88 | compile_commands.json 89 | CTestTestfile.cmake 90 | 91 | ### Emacs ### 92 | # -*- mode: gitignore; -*- 93 | *~ 94 | \#*\# 95 | /.emacs.desktop 96 | /.emacs.desktop.lock 97 | *.elc 98 | auto-save-list 99 | tramp 100 | .\#* 101 | 102 | # Org-mode 103 | .org-id-locations 104 | *_archive 105 | 106 | # flymake-mode 107 | *_flymake.* 108 | 109 | # eshell files 110 | /eshell/history 111 | /eshell/lastdir 112 | 113 | # elpa packages 114 | /elpa/ 115 | 116 | # reftex files 117 | *.rel 118 | 119 | # AUCTeX auto folder 120 | /auto/ 121 | 122 | # cask packages 123 | .cask/ 124 | dist/ 125 | 126 | # Flycheck 127 | flycheck_*.el 128 | 129 | # server auth directory 130 | /server/ 131 | 132 | # projectiles files 133 | .projectile 134 | 135 | # directory configuration 136 | .dir-locals.el 137 | 138 | ### QtCreator ### 139 | # gitignore for Qt Creator like IDE for pure C/C++ project without Qt 140 | # 141 | # Reference: http://doc.qt.io/qtcreator/creator-project-generic.html 142 | 143 | 144 | 145 | # Qt Creator autogenerated files 146 | 147 | 148 | # A listing of all the files included in the project 149 | *.files 150 | 151 | # Include directories 152 | *.includes 153 | 154 | # Project configuration settings like predefined Macros 155 | *.config 156 | 157 | # Qt Creator settings 158 | *.creator 159 | 160 | # User project settings 161 | *.creator.user* 162 | 163 | # Qt Creator backups 164 | *.autosave 165 | 166 | ### Vim ### 167 | # Swap 168 | [._]*.s[a-v][a-z] 169 | [._]*.sw[a-p] 170 | [._]s[a-rt-v][a-z] 171 | [._]ss[a-gi-z] 172 | [._]sw[a-p] 173 | 174 | # Session 175 | Session.vim 176 | 177 | # Temporary 178 | .netrwhist 179 | # Auto-generated tag files 180 | tags 181 | # Persistent undo 182 | [._]*.un~ 183 | 184 | ### VisualStudioCode ### 185 | .vscode/* 186 | !.vscode/settings.json 187 | !.vscode/tasks.json 188 | !.vscode/launch.json 189 | !.vscode/extensions.json 190 | 191 | ### Xcode ### 192 | # Xcode 193 | # 194 | # gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore 195 | 196 | ## User settings 197 | xcuserdata/ 198 | 199 | ## compatibility with Xcode 8 and earlier (ignoring not required starting Xcode 9) 200 | *.xcscmblueprint 201 | *.xccheckout 202 | 203 | ## compatibility with Xcode 3 and earlier (ignoring not required starting Xcode 4) 204 | build/ 205 | DerivedData/ 206 | *.moved-aside 207 | *.pbxuser 208 | !default.pbxuser 209 | *.mode1v3 210 | !default.mode1v3 211 | *.mode2v3 212 | !default.mode2v3 213 | *.perspectivev3 214 | !default.perspectivev3 215 | 216 | ### Xcode Patch ### 217 | *.xcodeproj/* 218 | !*.xcodeproj/project.pbxproj 219 | !*.xcodeproj/xcshareddata/ 220 | !*.xcworkspace/contents.xcworkspacedata 221 | /*.gcno 222 | 223 | ### VisualStudio ### 224 | ## Ignore Visual Studio temporary files, build results, and 225 | ## files generated by popular Visual Studio add-ons. 226 | ## 227 | ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore 228 | 229 | # User-specific files 230 | *.suo 231 | *.user 232 | *.userosscache 233 | *.sln.docstates 234 | 235 | # User-specific files (MonoDevelop/Xamarin Studio) 236 | *.userprefs 237 | 238 | # Build results 239 | [Dd]ebug/ 240 | [Dd]ebugPublic/ 241 | [Rr]elease/ 242 | [Rr]eleases/ 243 | x64/ 244 | x86/ 245 | bld/ 246 | [Bb]in/ 247 | [Oo]bj/ 248 | [Ll]og/ 249 | 250 | # Visual Studio 2015/2017 cache/options directory 251 | .vs/ 252 | # Uncomment if you have tasks that create the project's static files in wwwroot 253 | #wwwroot/ 254 | 255 | # Visual Studio 2017 auto generated files 256 | Generated\ Files/ 257 | 258 | # MSTest test Results 259 | [Tt]est[Rr]esult*/ 260 | [Bb]uild[Ll]og.* 261 | 262 | # NUNIT 263 | *.VisualState.xml 264 | TestResult.xml 265 | 266 | # Build Results of an ATL Project 267 | [Dd]ebugPS/ 268 | [Rr]eleasePS/ 269 | dlldata.c 270 | 271 | # Benchmark Results 272 | BenchmarkDotNet.Artifacts/ 273 | 274 | # .NET Core 275 | project.lock.json 276 | project.fragment.lock.json 277 | artifacts/ 278 | 279 | # StyleCop 280 | StyleCopReport.xml 281 | 282 | # Files built by Visual Studio 283 | *_i.c 284 | *_p.c 285 | *_h.h 286 | *.meta 287 | *.iobj 288 | *.ipdb 289 | *.pgc 290 | *.pgd 291 | *.rsp 292 | *.sbr 293 | *.tlb 294 | *.tli 295 | *.tlh 296 | *.tmp 297 | *.tmp_proj 298 | *_wpftmp.csproj 299 | *.log 300 | *.vspscc 301 | *.vssscc 302 | .builds 303 | *.pidb 304 | *.svclog 305 | *.scc 306 | 307 | # Chutzpah Test files 308 | _Chutzpah* 309 | 310 | # Visual C++ cache files 311 | ipch/ 312 | *.aps 313 | *.ncb 314 | *.opendb 315 | *.opensdf 316 | *.sdf 317 | *.cachefile 318 | *.VC.db 319 | *.VC.VC.opendb 320 | 321 | # Visual Studio profiler 322 | *.psess 323 | *.vsp 324 | *.vspx 325 | *.sap 326 | 327 | # Visual Studio Trace Files 328 | *.e2e 329 | 330 | # TFS 2012 Local Workspace 331 | $tf/ 332 | 333 | # Guidance Automation Toolkit 334 | *.gpState 335 | 336 | # ReSharper is a .NET coding add-in 337 | _ReSharper*/ 338 | *.[Rr]e[Ss]harper 339 | *.DotSettings.user 340 | 341 | # JustCode is a .NET coding add-in 342 | .JustCode 343 | 344 | # TeamCity is a build add-in 345 | _TeamCity* 346 | 347 | # DotCover is a Code Coverage Tool 348 | *.dotCover 349 | 350 | # AxoCover is a Code Coverage Tool 351 | .axoCover/* 352 | !.axoCover/settings.json 353 | 354 | # Visual Studio code coverage results 355 | *.coverage 356 | *.coveragexml 357 | 358 | # NCrunch 359 | _NCrunch_* 360 | .*crunch*.local.xml 361 | nCrunchTemp_* 362 | 363 | # MightyMoose 364 | *.mm.* 365 | AutoTest.Net/ 366 | 367 | # Web workbench (sass) 368 | .sass-cache/ 369 | 370 | # Installshield output folder 371 | [Ee]xpress/ 372 | 373 | # DocProject is a documentation generator add-in 374 | DocProject/buildhelp/ 375 | DocProject/Help/*.HxT 376 | DocProject/Help/*.HxC 377 | DocProject/Help/*.hhc 378 | DocProject/Help/*.hhk 379 | DocProject/Help/*.hhp 380 | DocProject/Help/Html2 381 | DocProject/Help/html 382 | 383 | # Click-Once directory 384 | publish/ 385 | 386 | # Publish Web Output 387 | *.[Pp]ublish.xml 388 | *.azurePubxml 389 | # Note: Comment the next line if you want to checkin your web deploy settings, 390 | # but database connection strings (with potential passwords) will be unencrypted 391 | *.pubxml 392 | *.publishproj 393 | 394 | # Microsoft Azure Web App publish settings. Comment the next line if you want to 395 | # checkin your Azure Web App publish settings, but sensitive information contained 396 | # in these scripts will be unencrypted 397 | PublishScripts/ 398 | 399 | # NuGet Packages 400 | *.nupkg 401 | # The packages folder can be ignored because of Package Restore 402 | **/[Pp]ackages/* 403 | # except build/, which is used as an MSBuild target. 404 | !**/[Pp]ackages/build/ 405 | # Uncomment if necessary however generally it will be regenerated when needed 406 | #!**/[Pp]ackages/repositories.config 407 | # NuGet v3's project.json files produces more ignorable files 408 | *.nuget.props 409 | *.nuget.targets 410 | 411 | # Microsoft Azure Build Output 412 | csx/ 413 | *.build.csdef 414 | 415 | # Microsoft Azure Emulator 416 | ecf/ 417 | rcf/ 418 | 419 | # Windows Store app package directories and files 420 | AppPackages/ 421 | BundleArtifacts/ 422 | Package.StoreAssociation.xml 423 | _pkginfo.txt 424 | *.appx 425 | 426 | # Visual Studio cache files 427 | # files ending in .cache can be ignored 428 | *.[Cc]ache 429 | # but keep track of directories ending in .cache 430 | !*.[Cc]ache/ 431 | 432 | # Others 433 | ClientBin/ 434 | ~$* 435 | *.dbmdl 436 | *.dbproj.schemaview 437 | *.jfm 438 | *.pfx 439 | *.publishsettings 440 | orleans.codegen.cs 441 | 442 | # Including strong name files can present a security risk 443 | # (https://github.com/github/gitignore/pull/2483#issue-259490424) 444 | #*.snk 445 | 446 | # Since there are multiple workflows, uncomment next line to ignore bower_components 447 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) 448 | #bower_components/ 449 | 450 | # RIA/Silverlight projects 451 | Generated_Code/ 452 | 453 | # Backup & report files from converting an old project file 454 | # to a newer Visual Studio version. Backup files are not needed, 455 | # because we have git ;-) 456 | _UpgradeReport_Files/ 457 | Backup*/ 458 | UpgradeLog*.XML 459 | UpgradeLog*.htm 460 | ServiceFabricBackup/ 461 | *.rptproj.bak 462 | 463 | # SQL Server files 464 | *.mdf 465 | *.ldf 466 | *.ndf 467 | 468 | # Business Intelligence projects 469 | *.rdl.data 470 | *.bim.layout 471 | *.bim_*.settings 472 | *.rptproj.rsuser 473 | 474 | # Microsoft Fakes 475 | FakesAssemblies/ 476 | 477 | # GhostDoc plugin setting file 478 | *.GhostDoc.xml 479 | 480 | # Node.js Tools for Visual Studio 481 | .ntvs_analysis.dat 482 | node_modules/ 483 | 484 | # Visual Studio 6 build log 485 | *.plg 486 | 487 | # Visual Studio 6 workspace options file 488 | *.opt 489 | 490 | # Visual Studio 6 auto-generated workspace file (contains which files were open etc.) 491 | *.vbw 492 | 493 | # Visual Studio LightSwitch build output 494 | **/*.HTMLClient/GeneratedArtifacts 495 | **/*.DesktopClient/GeneratedArtifacts 496 | **/*.DesktopClient/ModelManifest.xml 497 | **/*.Server/GeneratedArtifacts 498 | **/*.Server/ModelManifest.xml 499 | _Pvt_Extensions 500 | 501 | # Paket dependency manager 502 | .paket/paket.exe 503 | paket-files/ 504 | 505 | # FAKE - F# Make 506 | .fake/ 507 | 508 | # JetBrains Rider 509 | .idea/ 510 | *.sln.iml 511 | 512 | # CodeRush personal settings 513 | .cr/personal 514 | 515 | # Python Tools for Visual Studio (PTVS) 516 | __pycache__/ 517 | *.pyc 518 | 519 | # Cake - Uncomment if you are using it 520 | # tools/** 521 | # !tools/packages.config 522 | 523 | # Tabs Studio 524 | *.tss 525 | 526 | # Telerik's JustMock configuration file 527 | *.jmconfig 528 | 529 | # BizTalk build output 530 | *.btp.cs 531 | *.btm.cs 532 | *.odx.cs 533 | *.xsd.cs 534 | 535 | # OpenCover UI analysis results 536 | OpenCover/ 537 | 538 | # Azure Stream Analytics local run output 539 | ASALocalRun/ 540 | 541 | # MSBuild Binary and Structured Log 542 | *.binlog 543 | 544 | # NVidia Nsight GPU debugger configuration file 545 | *.nvuser 546 | 547 | # MFractors (Xamarin productivity tool) working folder 548 | .mfractor/ 549 | 550 | # Local History for Visual Studio 551 | .localhistory/ 552 | 553 | 554 | # End of https://www.gitignore.io/api/c,vim,c++,cmake,emacs,xcode,qtcreator,visualstudio,visualstudiocode --------------------------------------------------------------------------------