#include <iostream>
using namespace std;

template<size_t N>
constexpr size_t sum(const char (&ch)[N]) {
	size_t result = 0;
	for(size_t i = 0; i < N; ++i) result += ch[i];
	return result;
}

template<size_t N>
size_t calc(size_t add) { return N + add; }

template<size_t N>
size_t test(const char (&ch)[N], int add) { return calc<sum<N>(ch)>(add); }

int main() {
	cout << calc<sum("00")>(4); // compiles
	cout << test("00", 4);      // fails
	return 0;
}