• Jan Wilken Dörrie's avatar
    Reland "GCC: Fix base::internal::InvokeFuncImpl" · 528e9a3e
    Jan Wilken Dörrie authored
    This is a reland of 9293d5c8
    
    Original change's description:
    > GCC: Fix base::internal::InvokeFuncImpl
    > 
    > GCC doesn't like that the Value data member has no out-of-line
    > definition. The problem is triggered specifically only when compiling
    > 
    >   components/services/leveldb/leveldb_database_impl.cc
    > 
    > which has lambda functions returning locally-defined classes.
    > 
    > The current code works as-is in C++17 mode which introduces the concept
    > of inline variables, but in C++14 we need either an explicit out-of-line
    > definition or a function member instead of a data member.
    > 
    > Use std::integral_constant for defining the value.
    > 
    > Bug: 819294
    > Change-Id: I5c68e14ce3fa9d8b4d8a2cb42d7f9b53938aabf3
    > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1862451
    > Reviewed-by: Jan Wilken Dörrie <jdoerrie@chromium.org>
    > Reviewed-by: Daniel Cheng <dcheng@chromium.org>
    > Commit-Queue: Jüri Valdmann <juri.valdmann@qt.io>
    > Cr-Commit-Position: refs/heads/master@{#706384}
    
    Bug: 819294
    Change-Id: I3d5a52ddc6815516e2239f9347c60de06bf765a2
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1865212Reviewed-by: default avatarDaniel Cheng <dcheng@chromium.org>
    Commit-Queue: Jan Wilken Dörrie <jdoerrie@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#707329}
    528e9a3e
bind.h 17.8 KB