Douglas Gregor
0f5c1c0127
Allow a conversion from the empty initializer list {} to an
...
std::initializer_list<T> so long as <T> is known. This conversion has
identity rank.
llvm-svn: 154065
2012-04-04 23:09:20 +00:00
Douglas Gregor
0e60cd78cc
When performing template argument deduction for an initializer list,
...
be sure to perform the argument type adjustments in
[temp.deduct.call]p2, e.g., array decay.
And, when performing these deductions in the context of 'auto', make
sure that we're deducing the P' in std::initializer_list<P'> rather
than the whole initializer list.
Together, this makes code like
for( auto s : {"Deferred", "New", "Open", "Review"}) { }
work properly.
llvm-svn: 153998
2012-04-04 05:10:53 +00:00
Sebastian Redl
1918166de7
Support deducing template arguments from nested initializer lists. PR12119.
...
llvm-svn: 152848
2012-03-15 21:40:51 +00:00
Sebastian Redl
eef474ce1b
Fix parsing and processing initializer lists in return statements and as direct member initializers.
...
llvm-svn: 151155
2012-02-22 10:50:08 +00:00
Sebastian Redl
73cfbebed4
Emit a warning when list-initializing a std::initializer_list member.
...
llvm-svn: 150933
2012-02-19 16:31:05 +00:00
Sebastian Redl
d74dd49065
Proper initializer list support for new expressions and type construct expressions. Array new still missing.
...
llvm-svn: 150346
2012-02-12 18:41:05 +00:00
Sebastian Redl
09edce0400
Minor fixups for auto deduction of initializer lists.
...
Fix some review comments.
Add a test for deduction when std::initializer_list isn't available yet.
Fix redundant error messages. This fixes and outstanding FIXME too.
llvm-svn: 148735
2012-01-23 22:09:39 +00:00
Sebastian Redl
42acd4a05b
Auto deduction support for std::initializer_list, including for-range support. This means you can now write:
...
for (int i : {1, 4, 512, 23, 251}) {}
llvm-svn: 148353
2012-01-17 22:50:08 +00:00
Sebastian Redl
43144e72b5
Template argument deduction for std::initializer_list arguments from initializer lists.
...
llvm-svn: 148352
2012-01-17 22:49:58 +00:00
Sebastian Redl
10f0fc04a8
Basic overloading support for std::initializer_list.
...
llvm-svn: 148350
2012-01-17 22:49:48 +00:00
Sebastian Redl
c1839b1b09
Sema support for initialization of std::initializer_list from initializer lists.
...
This does not yet support CodeGen.
llvm-svn: 148349
2012-01-17 22:49:42 +00:00