Если перенести реализацию get() после определения value, то вроде работает:
/* metaclass fro conversation */
template<size_t x>
class __builder {
private:
/* generate string type */
typedef typename num_builder< num_digits(x), x, '\0' >::type type;
/* string declaration */
static constexpr type value{};
public:
/* */
static constexpr const char* get();
};
/* instantiate string */
template< size_t x >
constexpr typename __builder< x >::type __builder< x >::value;
template< size_t x >
constexpr const char * __builder< x >::get()
{
return(value.data);
}
/* compile-time const for converted string */
static constexpr const char* tag = __builder< TAG >::get();
Говорить дальше не было нужды. Как и все космонавты, капитан Нортон не испытывал особого доверия к явлениям, внешне слишком заманчивым.