>>88
$ cat -n foo.c
1
2 #include <stdio.h>
3
4 #define static_strlent(static_str, type) (sizeof(static_str)/sizeof(type) -1)
5 #define static_strlen(static_str) (static_strlent(static_str, char))
6 #define static_wcstrlen(static_str) (static_strlent(static_str, wchar_t))
7 #define static_mbstrlen(static_str) (static_strlent(static_str, char))
8
9 int main(void)
10 {
11 printf("char %d\n", static_strlen("sakuratan"));
12 printf("wchar %d\n", static_wcstrlen(L"さくらたん"));
13 printf("mb %d\n", static_mbstrlen("さくらたん"));
14
15 return 0;
16 }
$ ./foooo
char 9
wchar 5
mb 15

マルチバイトはもう知らん。
わざわざC++の規格読むの面倒だから後は適当に誰かやってくれるだろう。