This keyword in C++ generally tells the compiler to not do any implicit conversions through that function or constructor.
struct Meter {
explicit Meter(double v) : v_(v) {} // require explicit construction
double v_;
};
void use(Meter m) {}
int main() {
// Meter m = 3.0; // ❌ implicit conversion blocked
Meter m1(3.0); // ✅
Meter m2{3.0}; // ✅
// use(3.0); // ❌
use(Meter{3.0}); // ✅
}