- FromGccToCPP
g++
Compiler and Linker- Header File (Preprocess Statement)
- CPP File
- OBJ File (Machine Code File,
.obj
in Windows,.o
in Linux) - Linking (Static Linking and Dynamic Linking)
- Differences Between
gcc
andg++
- How to Compile One CPP File
- How to Compile Multiple CPP Files
- How to Compile and Link a Library
g++
,clang++
andmscv++
- Notes
make
and Makefilemake
- Makefile
- Basic Syntax of Makefile
- How
make
Processes a Makefile .PHONY
, a Pseudo Target- Implicit Rule
- Variables in Makefile
- Explanation and Usage
- The Syntax of Defining a Variable
- The Syntax of Referencing a Variable
- Default Variables, Common Variables, Automatic Variables, Special Symbols and Environment Variables
- Functions in Makefiles
- Pattern Rules
- Explanation and Usage
- Basic Syntax
- Notes
- How to Understand the Actual Process of Pattern Rules
- Example Without Variables
- Example With Variables
- Example 1: Using Variables for File Extensions
- Example 2: Using Variables for Directories
- Example 3: Using Variables for Compiler and Flags
- Example 4: Using Variables for Custom Commands
- Example 5: Combining Multiple Variables
- Example 6: Using a Variable for a List of Targets
- Example 7: Using a Variable with Multiple Targets for an Executable
- Example 9: Using a Variable for Source Files and a Pattern Rule to Compile Them
- Example 10: Pattern Rule with Variable Target-pattern Using wildcard
- Example 11: Pattern Rule with a Prefix
- Example 12: Limitations and an Error Demonstration
- How to Process Header Files Effectively
- How to Precompile Header Files
- How to Generate Multiple Targets with One Command Set for Efficient Parallel Compilation
- Some Common
make
command - How to Manage Libraries or Dependencies Your Project Denpends On
- Git
- Perface
- Create and Initialize a Repository
- Check the Usage of
git
- Add Files to a Branch
- Delete Files of a Branch
- Check the Status
- Check Who Modified the File
- Discard Current Modifications
- Restore Local Files Before Using
git add
orgit rm
to Stage Deletions - Restore Local Files After Using
git add
orgit rm
to Stage Deletions - Check the Differences After Using
git add
orgit rm
, but Beforegit commit
- Check the Differences
- Check the Revision History
- Revert to the Previous Version While Keeping Current Modifications
- Revert to the Previous Version and Discard Current Modifications
- Link the Local Repository to a Remote Repository
- Clone a Remote Repository
- Update the Local Repository form a Remote Repository
- Push the Local Repository to the Remote Repository
- Check Branches
- Create a New Branch and Switch to The New Branch
- Merge Another Branch into the Current Branch
- Delete a Branch
- Stash Current Changes, Show Stashed Changes, Restore Previous Changes and Clear Stashes
- Copy the Specific Modification from Another Branch to the Current Branch
- Push the Current Branch to The Remote Repository
- Reorganize the Commit History
- Tag Commits
- Preface
- Some Basic Concepts
- Memory Partitions
auto
anddecltype
using
andtypedef
namespace
const
,constexpr
andstatic
const
constexpr
- Explanation
- Allowed Elements (Valid Elements)
- Disallowed Elements
- Usage
static
volatile
- Macro, Preprocessor Directives (Including
pragma
) and Other Related Keywords - Functions
- Explanation
- Advantages and Disadvantages
- Declaration Syntax
- Definition Syntax
- Reference Syntax
- Function Arguments
- Keywords Related to Functions
- Function Pointers
- Lambda Functions
- Why Use Lambda Functions
- Explanation
- Syntax
- Capture Clause
- Explanation
- Example 1: Capture Nothing
- Example 2: A Default Capture Mode
[=]
- Capture All Variables by Value - Example 3: A Default Capture Mode
[&]
- Capture All Variables by Value - Example 4: Specify Some Variables Captured by Value
- Example 5: Specify Some Variables Captured by Reference
- Example 6: Specify Some Variables Captured by Reference and Others by Value
- Example 7: Specify Some Variables Captured by Value and Others by Reference
- Example 8: Specify Some Variables Captured by Reference and Some by Value
- Example 9: Creates a New Variable within the Lambda and Initializes it with an Expression
mutable
Lambda Functionsnoexcept
Lambda Functions- Notes
- Function Parameter Packs
- Callback Functions and Registeration Functions
- Function References
- Function Signatures
- Hiding, Overloading, Overriding, and Overwriting
std::function
- Classes (
class
)- Explanation
- Visibility
- Declaration Syntax
- Definition Syntax
- Member Variables
- Methods
- Constructors
- Destructors
- Common Objects
- Class Pointers
- Class References
const
Instance of Classesconstexpr
Instances of Classesstatic
Instances of Classes- Anonymous Classes
- Operator Overloading
- How to Determine Which Constructor or Assignment Operator Is Invoked
- Inheritance
virtual
friend
final
explicit
using
- Hiding, Overloading, Overriding, and Overwriting
- Bitfields
- A Demonstration
- Notes
- Hiding, Overloading, Overriding, and Overwriting
- Structures (
struct
) - Operators
- Templates
- Explanation
- Order of Parameters in the Parameter List
- Limitations of Template Default Types and Values
- Explicit Instantiation
- Implicit Instantiation (Common Instantiation)
- Function Templates
- Class Templates or Struct Templates
- Template Specialization
- Variadic Templates (Template Packs)
- Template Parameters with Non-type Parameters
- Constraints and Concepts
- SFINAE (Substitution Failure Is Not An Error)
- Type Traits
- Template Aliases
std::forward
and Universial References (Forward References)
static_assert
- Introduction to C++ STL
- Conversion and Casting
- Explanation
- Implicit Conversion
- Explicit Conversion (Type Casting)
- Explanation
- C-style Casting (Recommend for Performance)
- C++-style Casting (Recommend for Safety)
explicit
std::bit_cast
(Recommended for Safety, Performance and Type Integrity)- Differences between
std::bit_cast
andreinterpret_cast
- Upcasting and Downcasting
- Notes
- Function Binding
- C++17 Bindings
std::bind
- Other Bindings
std::bind
std::function
- Arrays
- Explanation
- Static Arrays (Raw Arrays)
- Static Arrays (
std::array
) - Dynamic Arrays (
std::vector
) - Dynamic Arrays (
std::vector
)
- Lists (Doubly-linked Lists)
- Forward Lists (Singly-linked Lists)
- Sets
- Multisets
- Unordered Sets
- Unordered Multisets
- Flat Sets
- Flat Multisets
- Maps
- Multimaps
- Unordered Maps
- Unordered Multimaps
- Flat Maps
- Flat Multimaps
- Stacks
- Queues
- Priority Queues
- Deques (Double-ended Queue) (Deck)
- Enums (
enum
) - Unions
std::variant
(Multiple Types of Data in Single Variable)std::any
std::optional
(Optional Data)- Chars and Strings
- Pairs (
std::pair
) - Tuples (
std::tuple
) - Smart Pointers (Scoped Pointers)
std::chrono
Namespace- Threads
- Explanation
thread_local
std::this_thread
std::ref
andstd::cref
- Six STD Mutex Classes
std::lock_guard
std::unique_lock
andstd::shared_lock
std::scoped_lock
std::lock
andstd::try_lock
- Three Lock Type Tags
std::call_once
andstd::once_flag
std::atomic
andstd::atomic_ref
std::condition_variable
andstd::condition_variable_any
std::notify_all_at_thread_exit
std::async
std::future
andstd::shared_future
std::promise
- Notes
- Some C Functions and Operators
- Extern Linkage
- Some Small Knowledge
- Common Compiler Optimization Techniques
- Type Puning
- The Usage of Automatic Scope-based Destruction
- How to Return Multiple Values
- Breakpoints
- Precompiled Headers (PCH)
- How to Measure How Many Memory Allocations Ocur or Track Memory Allocations
- Benchmark and How to Visualize Benchmark Results
- Singleton
- Continuous Integration (CI) in C++
- RAII (Resource Acquisition Is Initialization)
- How to Process Unused Variables
- What Causes Undefined Behavior (UB)
- Handles
<iostream>
<ostream>
<fstream>
- Explanation
std::ifstream
,std::ofstream
andstd::fstream
std::ifstream
std::ofstream
std::fstream
- Declaration Syntax
- Initialization Syntax
- Usage Syntax
- Members and Related Stuffs
- Links
- Member Types
- Member Functions
- Member Functions Inherited from
std::basic_istream
(forstd::ifstream
andstd::fstream
) - Member Classes Inherited from
std::basic_istream
(forstd::ifstream
andstd::fstream
) - Member Functions Inherited from
std::basic_istream
(forstd::ofstream
andstd::fstream
) - Member Classes Inherited from
std::basic_istream
(forstd::ofstream
andstd::fstream
) - All Stuffs Inherited from
std::std::basic_ios
- All Stuffs Inherited from
std::ios_base
- Non-member Functions
std::getline
- QT
- Creational Patterns
- Structural Patterns
- Behavioral Patterns
- CUDA and OpenCL Compilation Processes
- Copy Engine, DMA, MMU, GPU Memory, and CPU Memory
- Command Queues (or Cuda Streams), Blocking or Non-blocking and Priorities
-
Notifications
You must be signed in to change notification settings - Fork 0
0BananaBig0/from_gcc_to_cpp
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
About
No description, website, or topics provided.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published