void f() { int x; auto l = [=]{ return x; }; typedef decltype(l) C; SA(__is_trivially_copyable(C)); SA(__is_trivially_constructible(C,C)); }
void test() { int a; decltype(a) b; typedef int Integer; typedef float Float; typedef bool Bool; bool b2 = __is_trivially_constructible(Integer, Float, Bool); }
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #define _REALLY_INCLUDE_SYS__SYSTEM_PROPERTIES_H_ #include <sys/_system_properties.h> #include <system_properties/prop_area.h> #include <system_properties/system_properties.h> #include "private/bionic_defs.h" static SystemProperties system_properties; static_assert(__is_trivially_constructible(SystemProperties), "System Properties must be trivially constructable"); // This is public because it was exposed in the NDK. As of 2017-01, ~60 apps reference this symbol. // It is set to nullptr and never modified. __BIONIC_WEAK_VARIABLE_FOR_NATIVE_BRIDGE prop_area* __system_property_area__ = nullptr; __BIONIC_WEAK_FOR_NATIVE_BRIDGE int __system_properties_init() { return system_properties.Init(PROP_FILENAME) ? 0 : -1; } __BIONIC_WEAK_FOR_NATIVE_BRIDGE int __system_property_set_filename(const char*) { return -1;