Checks whether system is using dark mode or not.
Signature:
using fnShouldAppsUseDarkMode = bool (WINAPI*)(); // ordinal 132
/** | |
* | |
* MIT License | |
* | |
* Copyright (c) 2017-2022 Cody Tilkins | |
* | |
* Permission is hereby granted, free of charge, to any person obtaining a copy | |
* of this software and associated documentation files (the "Software"), to deal | |
* in the Software without restriction, including without limitation the rights | |
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
"""Provides a rule that outputs a monolithic static library.""" | |
load("@bazel_tools//tools/cpp:toolchain_utils.bzl", "find_cpp_toolchain") | |
TOOLS_CPP_REPO = "@bazel_tools" | |
def _cc_static_library_impl(ctx): | |
output_lib = ctx.actions.declare_file("{}.a".format(ctx.attr.name)) | |
output_flags = ctx.actions.declare_file("{}.link".format(ctx.attr.name)) |
KEYMAPOPTS="us us" | |
HOSTNAMEOPTS="-n alpine" | |
INTERFACESOPTS="auto lo | |
iface lo inet loopback | |
auto eth0 | |
iface eth0 inet dhcp | |
hostname alpine | |
" | |
TIMEZONEOPTS="-z UTC" |
Install Termux, an Android terminal emulator that provides a Linux execution environment and various tools.
Update system packages in Termux:
$ pkg update -y
В предыдущей серии мы изобретали нечто, называемое XXX_traits, где под XXX скрывается какой-то концепт. А сам трейт описывает, какие операции доступны для типов, реализующих данный концепт. И все взаимодействие с шаблонными параметрами происходило с помощью вспомогательной структуры.
template <class T, class S>
auto accumulate(const std::vector<T>& arr, S&& op)
-> RESULT<T>::REQUIRES<SummatorTraits<S>::value> {
using STraits = SummatorTraits<S>;
/* | |
c++: 17 | |
deps: | |
- org.sw.demo.jtv.pqxx | |
- org.sw.demo.apolukhin.magic_get | |
*/ | |
#include <boost/pfr/precise/core.hpp> | |
#include <pqxx/pqxx> |
В предыдущей серии мы пытались сделать нечто, напоминающее проверку концепции C++20 средствами C++14/17.
У нас была функция sum
, от типов аргументов которой мы требовали применимости операции +.
И выглядело в конечном итоге это так:
template<typename T>
auto sum(T a, T b) -> RESULT::REQUIRES> {
Подходит к концу 2019 год. Уже скоро C++20 станет доступен во всей своей красе. Но совсем не скоро он плотно войдет в мир промышленной разработки (сюда еще даже C++14 не везде дошел).
В С++20 появятся концепции/типажи (concepts) -- долгожданная горсть синтаксического сахара, призванная дать разработчикам возможность писать шаблоны (templates), накладывая ограничения на их параметры так, чтоб потом не было мучительно больно.
Допустим, у нас есть такой простенький шаблон