- FromGccToCPP
g++Compiler and Linker- Header File (Preprocess Statement)
- CPP File
- OBJ File (Machine Code File,
.objin Windows,.oin Linux) - Linking (Static Linking and Dynamic Linking)
- Differences Between
gccandg++ - How to Compile One CPP File
- How to Compile Multiple CPP Files
- How to Compile and Link a Library
g++,clang++andmscv++- Notes
makeand Makefilemake- Makefile
- Basic Syntax of Makefile
- How
makeProcesses 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
makecommand - 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 the Log
- Check Who Modified the File
- Discard Current Modifications
- Restore Local Files Before Using
git addorgit rmto Stage Deletions - Restore Local Files After Using
git addorgit rmto Stage Deletions - Check the Differences After Using
git addorgit rm, but Beforegit commit - Check the Differences Between the CommitHash and the Current Working Directory
- Check the Differences Between the CommitHashes
- Check the Differences Between the CommitHashes
- 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
- Show Tags
- Tag a CommitHash
- Push the Tag to Remote
- Delete a Tag
- Preface
- Some Basic Concepts
- Memory Partitions
autoanddecltypeusingandtypedefnamespaceconst,constexprandstaticconstconstexpr- 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
mutableLambda FunctionsnoexceptLambda 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
constInstance of ClassesconstexprInstances of ClassesstaticInstances of Classes- Anonymous Classes
- Operator Overloading
- How to Determine Which Constructor or Assignment Operator Is Invoked
- Inheritance
virtualfriendfinalexplicitusing- 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::forwardand 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_castandreinterpret_cast - Upcasting and Downcasting
- Notes
- Function Binding
- C++17 Bindings
std::bind- Other Bindings
std::bindstd::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::anystd::optional(Optional Data)- Chars and Strings
- Pairs (
std::pair) - Tuples (
std::tuple) - Smart Pointers (Scoped Pointers)
std::chronoNamespace- Threads
- Explanation
thread_localstd::this_threadstd::refandstd::cref- Six STD Mutex Classes
std::lock_guardstd::unique_lockandstd::shared_lockstd::scoped_lockstd::lockandstd::try_lock- Three Lock Type Tags
std::call_onceandstd::once_flagstd::atomicandstd::atomic_refstd::condition_variableandstd::condition_variable_anystd::notify_all_at_thread_exitstd::asyncstd::futureandstd::shared_futurestd::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::ofstreamandstd::fstreamstd::ifstreamstd::ofstreamstd::fstream- Declaration Syntax
- Initialization Syntax
- Usage Syntax
- Members and Related Stuffs
- Links
- Member Types
- Member Functions
- Member Functions Inherited from
std::basic_istream(forstd::ifstreamandstd::fstream) - Member Classes Inherited from
std::basic_istream(forstd::ifstreamandstd::fstream) - Member Functions Inherited from
std::basic_istream(forstd::ofstreamandstd::fstream) - Member Classes Inherited from
std::basic_istream(forstd::ofstreamandstd::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