Вопрос про стандартные классы и компил-тайм...
От: Shmj Ниоткуда  
Дата: 10.05.25 07:49
Оценка:
Вы на практике использовали стандартные классы в компил-тайме? Только честно.

Вот, оказывается, все работает:

  Скрытый текст
#include <iostream>
#include <vector>
#include <span>
#include <cstdint>

constexpr int fun1()
{
    std::vector<int> vec1 = std::vector<int>(1000);
    std::span<int> span1 = std::span<int>(vec1.begin(), vec1.end());
    
    
    std::optional<int> opt1 = 1;
    span1[0] = *opt1;

    std::string str1 = "test";
    str1[0] = vec1[0] + 1;
    
    return str1[0];
}

int main(int argc, const char * argv[]) {
    
    constexpr int result = fun1();
    static_assert(result == 2);
    
    return 0;
}


Хотя по идее тот же вектор — создает свое тело (массив для хранения данных) в куче. Но в компил-тайме умеет работать иным образом.

Это ж сколько дурной работы было проделано

А что на счет других стандартных классов — можно ли огласить список какие из них имеют поддержку компил-тайм?

Так же, получается, не всей методы этих классов доступны в компил-тайм. По идее нужно выделять цветом те что доступны.

Есть такие таблицы?
=сначала спроси у GPT=
Отредактировано 10.05.2025 8:00 Shmj . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.