### cargoがインストールされていることを確認
$ cargo –version
cargo 1.83.0 (5ffbef321 2024-10-29)
## プロジェクトの作成
$ cargo new hoge
main.rs
use rand::Rng; fn main() { let mut rng = rand::thread_rng(); for _i in 1..10 { println!("{}", rng.gen_range(1, 101)); } }
Cargo.tom
[package] name = "hoge" version = "0.1.0" edition = "2021" [dependencies] rand = "0.7"
$ cargo run
26
4
61
71
29
17
33
37
59
### C++でライブラリを作る
MathLibrary.h
#pragma once namespace MathLibrary { class Arithmetic { public: static double Add(double a, double b); static double Subtract(double a, double b); static double Multiply(double a, double b); static double Divide(double a, double b); }; }
#include "MathLibrary.h" namespace MathLibrary { double Arithmetic::Add(double a, double b) { return a + b; } double Arithmetic::Subtract(double a, double b) { return a - b; } double Arithmetic::Multiply(double a, double b) { return a * b; } double Arithmetic::Divide(double a, double b) { return a / b; } }
#include <iostream> #include "MathLibrary.h" int main() { double a = 7.4; int b = 99; std::cout << "a + b = " << MathLibrary::Arithmetic::Add(a, b) << std::endl; std::cout << "a - b = " << MathLibrary::Arithmetic::Subtract(a, b) << std::endl; std::cout << "a * b = " << MathLibrary::Arithmetic::Multiply(a, b) << std::endl; std::cout << "a / b = " << MathLibrary::Arithmetic::Add(a, b) << std::endl; }
$ g++ -o test MathLibrary.cpp test.cpp && ./test
a + b = 106.4
a – b = -91.6
a * b = 732.6
a / b = 106.4
crateというより、複数ファイルの使用か…