#include <Arduino.h>
#include <stdio.h>
#include "prompt_invoke.h"
int add(int a, int b) { return a + b; }
void foo(const char* s, int i) { Serial1.print("foo: "); Serial1.println(String(s)+" - "+String(i)); }
void setup() {
Serial1.begin(115200);
while (!Serial1); Serial1.println("");
//auto t1 = argumentTypeNames(&add); // t1 == tuple("int", "int")
//auto t2 = argumentTypeNames(&foo); // t2 == tuple("string", "int", "long long")
using traits = function_traits<decltype(&add)>;
printTypeNames<traits::args_tuple>( std::make_index_sequence<traits::arity>{} );
}
void countMe() {
static unsigned int count = 0;
Serial1.println(count);
++count;
}
void loop() {
countMe();
delay(1000);
}