[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Possible to declare move constructor of basic_symbol as noexcept?
From: |
Akim Demaille |
Subject: |
Re: Possible to declare move constructor of basic_symbol as noexcept? |
Date: |
Thu, 7 Jan 2021 06:30:14 +0100 |
Hi Adrian,
> Le 6 janv. 2021 à 20:43, Adrian <withoutpointk@gmail.com> a écrit :
>
> Hello,
>
> Is there any possibility we can declare the move constructor of
> basic_symbol as noexcept (if the semantic_types are noexcept
> moveable)?
>
> I have a semantic value that is non-copyable (moveable only) and I
> want an std::vector<symbol_type>. std::vector only calls the move
> constructor when resizing if the move constructor is declared noexcept
>
> It seems to me that the issue might be that you would require all of
> the semantic types to be noexcept moveable. You would need a
> (potentially huge) noexcept predicate, but since it's generated code
> maybe it's ok
My C++ is rusting. What exactly are you asking for? From
> #if 201103L <= YY_CPLUSPLUS
> /// Move constructor.
> basic_symbol (basic_symbol&& that)
> : Base (std::move (that))
> , value ()
> {
> switch (this->kind ())
> {
> case symbol_kind::S_NUMBER: // NUMBER
> value.move< int > (std::move (that.value));
> break;
>
> case symbol_kind::S_TEXT: // TEXT
> case symbol_kind::S_item: // item
> value.move< std::string > (std::move (that.value));
> break;
>
> case symbol_kind::S_list: // list
> value.move< std::vector<std::string> > (std::move (that.value));
> break;
>
> default:
> break;
> }
>
> }
> #endif
to go to
> #if 201103L <= YY_CPLUSPLUS
> /// Move constructor.
> basic_symbol (basic_symbol&& that)
> noexcept (
> std::is_nothrow_move_constructible< int >::value
> && std::is_nothrow_move_constructible< std::string >::value
> && std::is_nothrow_move_constructible< std::vector<std::string>
> >::value
>
> )
> : Base (std::move (that))
> , value ()
right?
- Possible to declare move constructor of basic_symbol as noexcept?, Adrian, 2021/01/06
- Re: Possible to declare move constructor of basic_symbol as noexcept?,
Akim Demaille <=
- Re: Possible to declare move constructor of basic_symbol as noexcept?, Adrian, 2021/01/07
- Re: Possible to declare move constructor of basic_symbol as noexcept?, Adrian, 2021/01/07
- Re: Possible to declare move constructor of basic_symbol as noexcept?, Akim Demaille, 2021/01/19
- Re: Possible to declare move constructor of basic_symbol as noexcept?, Christian Schoenebeck, 2021/01/19
- Re: Possible to declare move constructor of basic_symbol as noexcept?, Akim Demaille, 2021/01/30
- Re: Possible to declare move constructor of basic_symbol as noexcept?, Christian Schoenebeck, 2021/01/30
- Re: Possible to declare move constructor of basic_symbol as noexcept?, Akim Demaille, 2021/01/31