CLion я бы не советовал для разработки под Win до тех пор, пока не появится нативная поддержка msvc компилятора. С mingw для новичка гемороя будет слишком много.
Ну в вашем примере да, так и есть, а вот если будет очень много одновременных обращений к списку, то будет довольно жестко. Просто в вашем случае гонки по сути и не будет.
На деле вы не совсем правильно выразились, стоит использовать если потоков много, но при этом не высока гонка на lock-free алгоритмах, если же нагрузка на lock-free алгоритмы будет высока, то гонка съест всё преимущество.
Взятие указателя уже разыменование. Нет, если просто написать где либо
const int n = 5;
пока не будет взят адрес, данные в памяти размещаться не будут.
В дополнении еще один момент, выражения помеченные как const будут размещены в памяти только в случае если будет разыменование, иначе будет сразу подставлять значения.
Понял про что вы, ну когда обычная переменная объявляется в теле функции, она создается на стеке, в этом случае невозможно на этапе компиляции/линковки узнать её адрес. Когда же объявляется вне функции, переменная размещается в сегменте данных, в этом случае на этапе линковки адрес будет известен. А constexpr это выражение уровня компиляции, поэтому и не может узнать адрес переменной на стеке.
Это не задачи для C++, это математические задачи и не более. И использовать эти задачи можно разве что при изучении математики. Но никак не при изучении языка программирования.
Это не поможет дать ответ. Вообще для того, чтобы спроектировать БД, надо спроектировать объектную структуру данных, оценить кол-во данных, вывести объемы связей, тенденции роста, кол-во запросов по типам и т.д. А чтобы это сделать надо спроектировать функциональность, описать все действия, построить диаграммы состояний и т.д. А после того как будут готовые схемы, можно с ходу решить что использовать. Так делается по уму.
Но так делают разве что уже крупные компании. А вам скорее всего придется делать методом проб и ошибок, поэтому есть смысл спроектировать базовую структуру кода таким образом, чтобы можно было легко менять куски.
А в общем что могу посоветовать, если много вставок в таблицу (хотя бы сотни в секунду), и при этом кол-во записей большое как минимум от 200-300 тысяч с перспективами до нескольких миллионов, то либо InnoDB (XtraDB) или шардинг.
Если вставок мало, то просто MyISAM, выдержит спокойно десятки миллионов записей, естественно при прямых запросах и правильных индексах.
Ну а полнотекстовый поиск через специализированные решения, например Sphinx, ну и вместо обычного MySQL поставьте MariaDB.
И в какой это книге не написано, что в C/C++ нет проверки за выходы границы массивов? А если действительно не написано, то значит вы неудачно выбрали материал для изучения. Ну а то что книги по C/C++ даются сложно, всё логично, это не простые языки. За неделю их не выучить, и даже за месяцы, они изучаются годами.
Вообще дело в том, что JIT компилятор довольно оптимальный код может давать, даже уж очень оптимальный и вполе такое возможно, надо просто посидеть в дебаге и поглядеть на дизасм обоих версий.
Мне то это зачем, просто вопрос задан так, что непонятно чего хотят. Можно использовать контрол браузера, можно из C++ обращаться по хттп протоколу, можно внедрить свой код в браузер, можно плагин использовать. И что именно автор хочет, непонятно.