2
有什么办法可以获得这样的行为吗?用户定义的字符串文字的长度作为模板参数?
// Some definition(s) of operator "" _my_str
// Some definition of function or macro MY_STR_LEN
using T1 = MY_STR_LEN("ape"_my_str);
// T1 is std::integral_constant<std::size_t, 3U>.
using T2 = MY_STR_LEN("aardvark"_my_str);
// T2 is std::integral_constant<std::size_t, 8U>.
这似乎不是,因为字符串文字被立即传递给some_return_type operator "" _my_str(const char*, std::size_t);
和从来没有文字操作模板(2.14.8/5)。该大小函数参数不能用作模板参数,尽管它几乎总是一个常量表达式。
但似乎应该有某种方式来做到这一点。
是的,不过这只是针对一个特定的对象's'。所以我们需要为每个用户定义的文字命名? – aschepler
@aschepler:类似于'“abc”_xyz.len'也应该有效。 –