static_assert(__is_trivially_assignable(A, const A&), "");
static_assert(__is_trivially_assignable(B, const B&), "");
}
+
+namespace dr2061 { // dr2061: yes
+#if __cplusplus >= 201103L
+ namespace A {
+ inline namespace b {
+ namespace C {
+ // 'f' is the example from the DR. 'S' is an example where if we didn't
+ // properly handle the two being the same, we would get an incomplete
+ // type error during attempted instantiation.
+ template<typename T> void f();
+ template<typename T> struct S;
+ }
+ }
+ }
+
+ namespace A {
+ namespace C {
+ template<> void f<int>() { }
+ template<> struct S<int> { };
+ }
+ }
+
+ void use() {
+ A::C::f<int>();
+ A::C::S<int> s;
+ }
+#endif // C++11
+}
<td><a href="https://wg21.link/cwg2061">2061</a></td>
<td>CD4</td>
<td>Inline namespace after simplifications</td>
- <td class="none" align="center">Unknown</td>
+ <td class="full" align="center">Yes</td>
</tr>
<tr id="2062">
<td><a href="https://wg21.link/cwg2062">2062</a></td>