原文链接: vscode 使用 clang 格式化 c++代码
需要ubuntu 安装 clang
vscode 安装 clang-format 插件和 clangd插件
1sudo apt-get update 2 3sudo apt-get upgrade -y 4 5 6 7curl -SL http://releases.llvm.org/9.0.0/clang%2bllvm-9.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz | tar -xJC . 8 9# For Ubuntu 18.04: 10# curl -SL http://releases.llvm.org/9.0.0/clang%2bllvm-9.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz | tar -xJC . 11# For Ubuntu 14.04: 12# curl -SL http://releases.llvm.org/9.0.0/clang%2bllvm-9.0.0-x86_64-linux-gnu-ubuntu-14.04.tar.xz | tar -xJC . 13 14 15 16 17mv clang+llvm-9.0.0-x86_64-linux-gnu-ubuntu-16.04 clang_9.0.0 18sudo mv clang_9.0.0 /usr/local 19 20# For Ubuntu 18.04: 21mv clang+llvm-9.0.0-x86_64-linux-gnu-ubuntu-18.04 clang_9.0.0 22sudo mv clang_9.0.0 /usr/local 23 24# For Ubuntu 14.04: 25mv clang+llvm-9.0.0-x86_64-linux-gnu-ubuntu-14.04 clang_9.0.0 26sudo mv clang_9.0.0 /usr/local 27 28 29add .bashrc or .zshrc 30 31 32export PATH=/usr/local/clang_9.0.0/bin:$PATH 33export LD_LIBRARY_PATH=/usr/local/clang_9.0.0/lib:$LD_LIBRARY_PATH
添加路径, 这样就能使用格式化了

t.cpp
1#include <utility> 2#include <string> 3#include <iostream> 4 5template<class... T> 6auto pack(T... t) 7{ 8 // Now legal in C++20 9 return [...t=std::move(t)](auto&& f){f(t...);}; 10}; 11 12// Forgive me Kate Gregory 13void f(int age, const std::string& name ) 14{ 15 std::cout <<"I am " << name <<" and am " <<age <<" years old\n"; 16} 17int main(int argc,char** argv ) 18{ 19 if ( argc != 3) 20 { 21 std::cerr << " Provide my age then my name\n"; 22 return -1; 23 } 24 25 int age = std::stoi(argv[1]); 26 std::string name = argv[2]; 27 auto func = pack(age,name); 28 func(f); 29 return 0; 30}

1clang++ -stdlib=libc++ -std=c++2a -Wall trial.cpp -o trial 2 3./trial 25 oguz
