编辑:尚未回答 - 链接的问题是关于普通r值的,初始化列表是一个单独的、相关的概念。
这个语句是否有明确定义,在初始化列表中使用前缀递增运算符,对于在列表中出现两次的变量,是否是未定义的行为?
struct T t = { i, ++i };
我最感兴趣的是ANSI C,但了解其他版本的C和/或C++是否有所不同也很有用。如果类似以下结构的语法合法:
struct T t = { i, i++ };
struct T t = { ++i, ++i };
struct T t = { i++, ++i };
struct T t = { i++, i++ };