Skip to content

YoungHaKim7/cpp23_26_project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

link


CPLUS_INCLUDE_PATH์ด๊ฑธ ํ•ด์ค˜์•ผ C++26์ด ๋œ๋‹ค.|๐Ÿ”|

export CPLUS_INCLUDE_PATH=$PREFIX/$HOST/include/c++/$GCCVERSION:$PREFIX/lib/gcc/$HOST/$GCCVERSION/include
  • fishshell
set -x CPLUS_INCLUDE_PATH "$PREFIX/$HOST/include/c++/$GCCVERSION:$PREFIX/lib/gcc/$HOST/$GCCVERSION/include"

gcc15์ตœ์‹ ํŒ ๋‹ค ์„ค์น˜ํ•˜๊ณ  gcc-15 default๋กœ ๋งŒ๋“ค๊ธฐ|๐Ÿ”|

sudo update-alternatives --install /usr/bin/gcc gcc /opt/gcc-15/bin/gcc 100
sudo update-alternatives --install /usr/bin/g++ g++ /opt/gcc-15/bin/g++ 100

cmake ์ตœ์‹ ํŒ ์„ค์น˜|๐Ÿ”|

./bootstrap && make && sudo make install

Cmake์—…๋ฐ์ดํŠธ ํ•˜๊ธฐ[๐Ÿ”]

Cmake option์˜ต์…˜ ์„ค์ •[๐Ÿ”]

C++ 26์ตœ์‹ ๋‰ด์Šค ๋ชจ์Œ|๐Ÿ”|

  • 250428
  • GCC 15๋Š” C++26 ๊ธฐ๋Šฅ์„ ๋Œ€๊ฑฐ ์ถ”๊ฐ€ํ–ˆ์œผ๋ฉฐ, ์ผ๋ถ€ C++23 ๊ธฐ๋Šฅ๋„ ๊ฐœ์„ ํ–ˆ์Œ
  • ์ฃผ์š” ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์€ Pack Indexing, Variadic Friends, ์‚ญ์ œ ์ด์œ  ๋ช…์‹œ, ๊ตฌ์กฐ์  ๋ฐ”์ธ๋”ฉ ์กฐ๊ฑด๋ฌธ ๋“ฑ
  • ์ƒˆ๋กœ์šด ์ปดํŒŒ์ผ๋Ÿฌ ์˜ต์…˜๊ณผ ๊ฒฝ๊ณ ๋“ค๋„ ๋„์ž…๋˜์–ด ๊ฐœ๋ฐœ์ž ๊ฒฝํ—˜์ด ํ–ฅ์ƒ๋จ
  • C++ ๋ชจ๋“ˆ ์ง€์›์ด ๊ฐ•ํ™”๋˜์—ˆ๊ณ , ํ…œํ”Œ๋ฆฟ ์ปดํŒŒ์ผ ์†โ€ฆ

gcc์ตœ์‹ ์ •๋ณด ๋ฐ ๋‹ค์šด๋กœ๋“œ ๋ฐ›๊ธฐ|๐Ÿ”|

์ตœ์‹  LLVM์„ค์น˜(clang)|๐Ÿ”|

wget https://apt.llvm.org/llvm.sh
chmod +x llvm.sh
sudo ./llvm.sh <version number>

clang-format-20์„ค์น˜๋ฐฉ๋ฒ•|๐Ÿ”|

wget https://apt.llvm.org/llvm.sh
chmod +x llvm.sh
sudo ./llvm.sh 20
sudo apt install clang-format-20
$ cmake -S llvm -B build -G Ninja \
	-DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra" \
 	-DLLVM_ENABLE_RUNTIMES="compiler-rt;libcxx;libcxxabi" \
	-DLLVM_USE_LINKER=mold \
	-DCMAKE_BUILD_TYPE=Release \
	-DCMAKE_C_COMPILER=clang \
	-DCMAKE_CXX_COMPILER=clang++
$ cd build
$ cmake --build . --target install

GDB Tutorial|๐Ÿ”|

  • Gdb is a debugger for C (and C++). It allows you to do things like run the program up to a certain point then stop and print out the values of certain variables at that point, or step through the program one line at a time and print out the values of each variable after executing each line. It uses a command line interface.

C++26: The Next C++ Standard | by Rainer Grimm์ด ์‚ฌ๋žŒ์ด ์ตœ๊ณ |๐Ÿ”|


Code Generation in Rust vs C++26 | Posted Sep 30, 2024 Updated Oct 4, 2024 | By Barry Revzin|๐Ÿ”|


C++23 tutorial|๐Ÿ”|

C++ Weekly - Ep 323 - C++23's auto{} and auto()

gcc command

g++ -std=c++2b -Wpedantic -Wall -Wextra -Wconversion -O3 -Werror -o main main.cpp

./main

https://en.m.wikipedia.org/wiki/C%2B%2B23

C++23 Standard Library Preview - Jeff Garland - CppCon 2021|๐Ÿ”|

https://youtu.be/ySsqD2e5uRQ


Despite the pandemic the C++ committee is continuing to work towards C++23. This survey presentation provides students with a broad overview of the changes and new facilities in the C++23 standard library.


Compiler Explorer__web coding|๐Ÿ”|

compiler explorer

https://github.com/CppCon/CppCon2023

https://github.com/CppCon/CppCon2022

https://github.com/CppCon/CppCon2021

https://github.com/CppCon/CppCon2020

https://github.com/CppCon

https://www.modernescpp.com/index.php/ranges-improvements-with-c-23

https://en.cppreference.com/w/cpp/23

C++ 23 Forum|๐Ÿ”|

https://cplusplus.com/forum/lounge/283965/

C++ Core Guidelines|๐Ÿ”|

https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines


C/C++ Support in Clang|๐Ÿ”|

Language Standard Flag Available in Clang?
C++2c
C++26
-std=c++2c Partial
C++23 -std=c++23
-std=c++2b
Partial
C++20 -std=c++20
-std=c++2a
Partial
C++17 -std=c++17 Clang 5
C++14 -std=c++14 Clang 3.4
C++11 -std=c++11 Clang 3.3
C++98/C++03 -std=c++98 Yes (other than export)
GNU 89 none, -std=gnu89
ANSI, ISO C90 -ansi, -std=c89
ISO C99 -std=c99
ISO C11 -std=c11
  • (CS)์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ [ 3ํŒ ] ๊น€ํ˜•์‹  ์ € | ํผ์ŠคํŠธ๋ถ | 2016๋…„ 09์›” 06์ผ(p35)

GCC / Clang|๐Ÿ”|

-Wall -Wextra -Wshadow -Wnon-virtual-dtor -pedantic

  • use these and consider the following (see descriptions below)

see descriptions below

  • -lm - ํ•„์š”ํ•˜๋‹ค๋ฉด ํ‘œ์ค€ ์ˆ˜ํ•™ ํ•จ์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.

  • -pedantic - Warn on language extensions

  • -Wall -Wextra reasonable and standard

  • -Wshadow warn the user if a variable declaration shadows one from a parent context

  • -Wnon-virtual-dtor warn the user if a class with virtual functions has a non-virtual destructor. This helps catch hard to track down memory errors

  • -Wold-style-cast warn for c-style casts

  • -Wcast-align warn for potential performance problem casts -Wunused warn on anything being unused

  • -Woverloaded-virtual warn if you overload (not override) a virtual function

  • -Wpedantic (all versions of GCC, Clang >= 3.2) warn if non-standard C++ is used

  • -Wconversion warn on type conversions that may lose data

  • -Wsign-conversion (Clang all versions, GCC >= 4.3) warn on sign conversions

  • -Wmisleading-indentation (only in GCC >= 6.0) warn if indentation implies blocks where blocks do not exist

  • -Wduplicated-cond (only in GCC >= 6.0) warn if if / else chain has duplicated conditions

  • -Wduplicated-branches (only in GCC >= 7.0) warn if if / else branches have duplicated code

  • -Wlogical-op (only in GCC) warn about logical operations being used where bitwise were probably wanted

  • -Wnull-dereference (only in GCC >= 6.0) warn if a null dereference is detected

  • -Wuseless-cast (only in GCC >= 4.8) warn if you perform a cast to the same type

  • -Wdouble-promotion (GCC >= 4.6, Clang >= 3.8) warn if float is implicitly promoted to double

  • -Wformat=2 warn on security issues around functions that format output (i.e., printf)

  • -Wlifetime (only special branch of Clang currently) shows object lifetime issues

  • -Wimplicit-fallthrough Warns when case statements fall-through. (Included with -Wextra in GCC, not in clang)

Consider using -Weverything and disabling the few warnings you need to on Clang

  • -Weffc++ warning mode can be too noisy, but if it works for your project, use it also.

https://github.com/cpp-best-practices/cppbestpractices/blob/master/02-Use_the_Tools_Available.md


gcc15์„ค์น˜ํ•˜๋‹ค๊ฐ€ ๋‚˜์˜จ ๋ฉ”์„ธ์ง€ ๋ถ„์„ํ•˜๊ธฐ

libtool: finish: PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/sbin" ldconfig -n /opt/gcc-15/lib/../lib64
----------------------------------------------------------------------
Libraries have been installed in:
   /opt/gcc-15/lib/../lib64

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the `LD_RUN_PATH' environment variable
     during linking
   - use the `-Wl,-rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to `/etc/ld.so.conf'

ํ•ด๊ฒฐ

export CFLAGS="$CFLAGS -D__GLIBC_USE\(...\)=0"

About

C++23_26 & My Youtube Channel - GlobalYoung https://www.youtube.com/@GlobalYoung7

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published