C++는 예전에 배웠던 사람은 이해하기 힘들정도로 이제 완전 새로운 언어가 되어버렸다.
C++11 ; 가장 극적으로 많이 변했음
C++14
C++17
-------------
http://en.cppreference.com/w/cpp
C++ reference
--------------
http://en.cppreference.com/w/cpp/compiler_support
major c++ compiler
- GCC
- Clang
- MSVC
Clang은 Apple이 주도하고 Google,MS,Intel,ARM,Sony가 참여하는 거대 open source project. Clang은 compiler front end라고 하고 back end는 LLVM을 쓴다고 함. 나도 무슨 말인지 모름. ^^ LLVM(Low Level Virtual Machine)이니까 LLVM위에 올라가는 compiler라는 뜻인듯.
https://en.wikipedia.org/wiki/Clang
--------------
GCC download 받을 곳
- cygwin
- minGW
- Equation - http://www.equation.com/servlet/equation.cmd?fa=fortran
MingGW는 http://www.mingw.org/나 sourceforge 말고 아래 사이트를 이용.
MinGW Distro
----------------
MinGW w64
--------------
https://msdn.microsoft.com/en-us/library/3bstk3k5.aspx
http://blogs.msdn.com/b/vcblog/archive/2015/06/19/c-11-14-17-features-in-vs-2015-rtm.aspx
MS는 CPP compiler지원과 std library지원에 있어서 역시나 자신만의 길을 걷는다. 나쁜 세끼들. 표준에 따르지.
#ifdef _MSC_VER // disable _s warnings #define _CRT_SECURE_NO_WARNINGS // disable pragma warnings #pragma warning( disable : 4068 ) // standard function missing from MS library #includeint vasprintf(char ** ret, const char * format, va_list ap); #else #define _NOEXCEPT noexcept #endif
-------------
virtual, vtable, c++ vs c
http://www.eventhelix.com/RealtimeMantra/basics/ComparingCPPAndCPerformance2.htm#.Vju4c7NVhBc
-------------
왜 C++는 optimazation에서 불리할까?
Inheritance - copy unnecessary codes
vtable -
template - compiler generated codes for all possible types
-------------
http://en.cppreference.com/w/cpp/language/cv
Appear in any type specifier, including decl-specifier-seq of declaration grammar, to specify constness or volatility of the object being declared or of the type being named.
const
- defines that the type is constant.volatile
- defines that the type is volatile.mutable
- applies to non-static class members of non-reference non-const type and specifies that the member does not affect the externally visible state of the class (as often used for mutexes, memo caches, lazy evaluation, and access instrumentation).mutable
members of const classes are modifiable. (Note: the C++ language grammar treatsmutable
as a storage-class-specifier, but it does not affect storage class.)
-------------
http://www.cplusplus.com/reference
C Library
The elements of the C language library are also included as a subset of the C++ Standard library. These cover many aspects, from general utility functions and macros to input/output functions and dynamic memory management functions:
- <cassert> (assert.h)
- C Diagnostics Library (header)
- <cctype> (ctype.h)
- Character handling functions (header)
- <cerrno> (errno.h)
- C Errors (header)
- <cfenv> (fenv.h)
- Floating-point environment (header)
- <cfloat> (float.h)
- Characteristics of floating-point types (header)
- <cinttypes> (inttypes.h)
- C integer types (header)
- <ciso646> (iso646.h)
- ISO 646 Alternative operator spellings (header)
- <climits> (limits.h)
- Sizes of integral types (header)
- <clocale> (locale.h)
- C localization library (header)
- <cmath> (math.h)
- C numerics library (header)
- <csetjmp> (setjmp.h)
- Non local jumps (header)
- <csignal> (signal.h)
- C library to handle signals (header)
- <cstdarg> (stdarg.h)
- Variable arguments handling (header)
- <cstdbool> (stdbool.h)
- Boolean type (header)
- <cstddef> (stddef.h)
- C Standard definitions (header)
- <cstdint> (stdint.h)
- Integer types (header)
- <cstdio> (stdio.h)
- C library to perform Input/Output operations (header)
- <cstdlib> (stdlib.h)
- C Standard General Utilities Library (header)
- <cstring> (string.h)
- C Strings (header)
- <ctgmath> (tgmath.h)
- Type-generic math (header)
- <ctime> (time.h)
- C Time Library (header)
- <cuchar> (uchar.h)
- Unicode characters (header)
- <cwchar> (wchar.h)
- Wide characters (header)
- <cwctype> (wctype.h)
- Wide character type (header)
Containers
- <array>
- Array header (header)
- <bitset>
- Bitset header (header)
- <deque>
- Deque header (header)
- <forward_list>
- Forward list (header)
- <list>
- List header (header)
- <map>
- Map header (header)
- <queue>
- Queue header (header)
- <set>
- Set header (header)
- <stack>
- Stack header (header)
- <unordered_map>
- Unordered map header (header)
- <unordered_set>
- Unordered set header (header)
- <vector>
- Vector header (header)
-------------
-------------
-------------
'Programming' 카테고리의 다른 글
Hard core Embedded Programming - no printf() sprintf() (0) | 2015.11.19 |
---|---|
Test Driven Development for Embedded C (0) | 2015.11.18 |
C언어 레퍼런스 (0) | 2015.10.25 |
Eclipse for C/C++ (0) | 2015.10.17 |
Python - Lottery number generator (0) | 2015.10.15 |