On 13/11/16 21:02 +0000, Jonathan Wakely wrote:
On 12/11/16 21:24 +0200, Ville Voutilainen wrote:
+  inline in_place_t in_place{};
+
+  template<typename _Tp> struct in_place_type_t
+  {
+    explicit in_place_type_t() = default;
+  };
+
+  template<typename _Tp>
+    in_place_type_t<_Tp> in_place_type{};
+
+  template<size_t _Idx> struct in_place_index_t
+  {
+    explicit in_place_index_t() = default;
+  };
+
+  template<size_t _Idx>
+    in_place_index_t<_Idx> in_place_index{};

I was told there's a Core issue that says these are not actually
inline variables unless they say "inline". Not sure which issue that
is, but G++ does the right thing and makes them globally unique,
rather than having internal linkage.

(At LWG's request P0504R0 marked them inline just to be safe.)

OK for trunk, thanks.

Oh, they aren't actually constexpr in your patch, so non-const, and so
don't get internal linkage. But they *should* be constexpr, please add
that to all three, and add inline to the two variable templates.


Reply via email to