Template syntax for lambdas
Use case
Access template parameter inside lambda.
Explanation
[]<typename T> gives access to T inside lambda.
Code
#include <cstdint>
#include <iostream>
#include <vector>
int main() {
auto analyze = []<typename T>(const std::vector<T> &data) {
std::cout << "Element size: " << sizeof(T) << " bytes.\n";
for (const auto &addr : data) {
std::cout << "Analyzing 0x" << std::hex << addr << ".\n";
}
};
std::vector<uint64_t> addrs{0x10001000, 0x10002000};
analyze(addrs);
return 0;
}
Output
$ ./src/c++20/build/template-syntax-for-lambdas
Element size: 8 bytes.
Analyzing 0x10001000.
Analyzing 0x10002000.