иницилизаци битовых полей + плюс объект = ICE
От: Zhendos  
Дата: 24.05.20 21:12
Оценка:
Компилировал чужой код и компилятор упал,
смог свести к такой проблеме и cообщил в MS:
Судя по
https://godbolt.org/ воспроизводится только последней версией: 19.26,
19.24 скомпилировал без проблем. Конечно может быть дело в том что
там через wine запускается, а через VirtualBox + Windows.

Есть ли в этом коде проблемы с точки зрения C++17 стандарта?
Вроде bool integral тип и его можно для битовых полей использовать?

struct alloc_slice {
    constexpr alloc_slice() {}
    alloc_slice(const alloc_slice&) noexcept = default;
    alloc_slice& operator=(const alloc_slice&) noexcept = default;

    alloc_slice(alloc_slice&& s) noexcept = default;
    alloc_slice& operator=(alloc_slice&& s) noexcept = default;


    ~alloc_slice() {  }
};

struct Options {
    bool                create : 1;
    alloc_slice         encryptionKey;
    static const Options defaults;
};

const Options Options::defaults = Options{
  true
};
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.