Код: Выделить всё
constexpr std::optional test2(void) {
return std::nullopt;
}
Код: Выделить всё
[build] /.../.cxx:223:47: error: constexpr function's return type 'std::optional' is not a literal type
[build] 223 | constexpr std::optional test2(void) {
[build] | ^
[build] /nix/store/fsb7lmhyy01flrnviwjfz3fgm53w990v-libcxx-18.1.7-dev/include/c++/v1/optional:582:7: note: 'optional' is not literal because it has base class '__optional_move_assign_base' of non-literal type
[build] 582 | : private __optional_move_assign_base,
Может ли кто-нибудь дать мне несколько советов?
Я настроил свою среду с помощью nix, поэтому ошибка должна быть воспроизводимой:
Код: Выделить всё
{ pkgs ? import {} }: pkgs.mkShell {
nativeBuildInputs = with pkgs.buildPackages; [
# system tools
zsh
git
openssl
# basic configuration
pkgs.llvmPackages_18.stdenv
pkgs.llvmPackages_18.libcxx
pkgs.llvmPackages_18.libcxxStdenv
pkgs.llvmPackages_18.bintools
pkgs.llvmPackages_18.clang-tools
cmake
# ...
];
}
Подробнее здесь: https://stackoverflow.com/questions/787 ... -constexpr