Claude Code Plugins

Community-maintained marketplace

Feedback

>

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name cpp-basics
version 3.0.0
description Production-grade skill for C++ fundamentals. Covers variables, data types, operators, control flow, functions, and program structure. Foundation for all C++ development.
sasmp_version 1.3.0
skill_version 3.0.0
bonded_agent cpp-fundamentals-agent
bond_type PRIMARY_BOND
category learning
parameters [object Object]
error_handling [object Object]
observability [object Object]

C++ Basics Skill

Production-Grade Learning Skill | Foundation Building

Master the essential building blocks of C++ programming.


Topics Covered

1. Variables & Data Types

#include <iostream>
#include <cstdint>  // Fixed-width integers

int main() {
    // ─────────────────────────────────────────────────
    // Integer Types (with guaranteed sizes)
    // ─────────────────────────────────────────────────
    int8_t   tiny   = 127;                  // 1 byte, -128 to 127
    int16_t  small  = 32767;                // 2 bytes
    int32_t  normal = 2147483647;           // 4 bytes
    int64_t  large  = 9223372036854775807;  // 8 bytes

    // Unsigned variants
    uint8_t  ubyte  = 255;                  // 0 to 255
    uint32_t ucount = 4294967295;           // 0 to 4B

    // ─────────────────────────────────────────────────
    // Floating Point
    // ─────────────────────────────────────────────────
    float  f = 3.14f;           // ~7 decimal digits
    double d = 3.14159265358979; // ~15 decimal digits

    // ─────────────────────────────────────────────────
    // Character & Boolean
    // ─────────────────────────────────────────────────
    char   c = 'A';       // ASCII character
    bool   b = true;      // true or false

    // ─────────────────────────────────────────────────
    // Modern C++ Initialization (prefer brace init)
    // ─────────────────────────────────────────────────
    int x{42};            // Brace initialization
    auto y = 3.14;        // Type deduction (double)
    auto z{10};           // int

    return 0;
}

2. Operators

Category Operators Example
Arithmetic + - * / % 10 / 3 = 3
Comparison == != < > <= >= 5 == 5true
Logical && || ! true && falsefalse
Bitwise & | ^ ~ << >> 0xFF & 0x0F0x0F
Assignment = += -= *= /= x += 5
Increment ++ -- ++i (prefer prefix)

3. Control Flow

// ─────────────────────────────────────────────────────
// Conditionals
// ─────────────────────────────────────────────────────
if (score >= 90) {
    grade = 'A';
} else if (score >= 80) {
    grade = 'B';
} else {
    grade = 'F';
}

// Switch with C++17 init
switch (int x = getValue(); x) {
    case 1:  std::cout << "One\n";  break;
    case 2:  std::cout << "Two\n";  break;
    default: std::cout << "Other\n"; break;
}

// ─────────────────────────────────────────────────────
// Loops
// ─────────────────────────────────────────────────────
// For loop (prefer prefix ++)
for (int i = 0; i < n; ++i) { }

// Range-based for (C++11)
for (const auto& item : container) { }

// While
while (condition) { }

// Do-while (runs at least once)
do { } while (condition);

4. Functions

// ─────────────────────────────────────────────────────
// Function declaration
// ─────────────────────────────────────────────────────
int add(int a, int b);               // Declaration
void greet(std::string_view name);   // string_view for efficiency

// ─────────────────────────────────────────────────────
// Definition with default parameter
// ─────────────────────────────────────────────────────
int add(int a, int b) {
    return a + b;
}

void greet(std::string_view name = "World") {
    std::cout << "Hello, " << name << "!\n";
}

// ─────────────────────────────────────────────────────
// Pass by reference (for modification or large objects)
// ─────────────────────────────────────────────────────
void increment(int& value) {
    ++value;
}

void process(const std::vector<int>& data) {  // const ref for read-only
    for (int x : data) { /* ... */ }
}

// ─────────────────────────────────────────────────────
// Function overloading
// ─────────────────────────────────────────────────────
int max(int a, int b) { return (a > b) ? a : b; }
double max(double a, double b) { return (a > b) ? a : b; }

Troubleshooting

Common Errors

Error Cause Fix
undefined reference Missing function definition Add function body
expected ';' Missing semicolon Check previous line
undeclared identifier Variable not declared Declare before use
narrowing conversion Data loss in brace init Use explicit cast

Decision Tree

Compilation error?
├── "undefined reference"
│   └── Function declared but not defined → Add definition
├── "expected ';'"
│   └── Missing semicolon → Check line above error
├── "undeclared identifier"
│   └── Variable not in scope → Declare or check spelling
└── "no matching function"
    └── Wrong argument types → Match function signature

Unit Test Template

#include <cassert>

void test_basics() {
    // Test integer operations
    assert(add(2, 3) == 5);
    assert(add(-1, 1) == 0);

    // Test floating point (with tolerance)
    constexpr double epsilon = 1e-9;
    assert(std::abs(calculateArea(2.0) - 12.566370614) < epsilon);

    // Test boolean logic
    assert((true && false) == false);
    assert((true || false) == true);

    std::cout << "All tests passed!\n";
}

Learning Path

Week 1: Foundation
├── Day 1-2: Variables & data types
├── Day 3-4: Operators
├── Day 5-6: Control flow
└── Day 7: Practice exercises

Week 2: Functions & Arrays
├── Day 1-2: Functions basics
├── Day 3-4: Arrays & pointers
├── Day 5-6: String handling
└── Day 7: Mini project

References


C++ Plugin v3.0.0 - Production-Grade Learning Skill