From 68fa8704794b6d3edbe08f7246a108fbc0334d34 Mon Sep 17 00:00:00 2001 From: Guillaume Chatelet Date: Mon, 21 Sep 2020 09:57:09 +0000 Subject: [PATCH] [Doc] Add C++ namespace to docs Fixes #117 --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index f67f339..801ad7a 100644 --- a/README.md +++ b/README.md @@ -30,6 +30,10 @@ instructions) at runtime. - **Unit tested.** +## Code samples + +**Note:** For C++ code, the library functions are defined in the `CpuFeatures` namespace. + ### Checking features at runtime Here's a simple example that executes a codepath if the CPU supports both the @@ -38,6 +42,7 @@ AES and the SSE4.2 instruction sets: ```c #include "cpuinfo_x86.h" +// For C++, add `using namespace CpuFeatures;` static const X86Features features = GetX86Info().features; void Compute(void) { @@ -59,6 +64,7 @@ features and then check whether AES and NEON are supported. #include #include "cpuinfo_arm.h" +// For C++, add `using namespace CpuFeatures;` static const ArmFeatures features = GetArmInfo().features; static const bool has_aes_and_neon = features.aes && features.neon; @@ -78,6 +84,7 @@ instruction set (e.g., `g++ -mavx`) and sets `has_avx` accordingly. #include #include "cpuinfo_x86.h" +// For C++, add `using namespace CpuFeatures;` static const X86Features features = GetX86Info().features; static const bool has_avx = CPU_FEATURES_COMPILED_X86_AVX || features.avx; @@ -100,6 +107,7 @@ set—but only if it's not Sandy Bridge. #include #include "cpuinfo_x86.h" +// For C++, add `using namespace CpuFeatures;` static const X86Info info = GetX86Info(); static const X86Microarchitecture uarch = GetX86Microarchitecture(&info); static const bool has_fast_avx = info.features.avx && uarch != INTEL_SNB;