1

(9 відповідей, залишених у HTML та CSS)

От як я зробив на базі вашого:

/* усі інші стилі точнісінько як у вашій першій відповіді */
.def_block proof:before {
  margin-left: 5px;
  content: "Доведення:";
  font-weight: bold;
}

<dl class="def_block">
  <dt>срака</dt>
  <p>Теорема</p>
  <dd>М'яка частина тіла, що знаходиться нижче спини та вижче ніг, у дівок може бути гарною, а у чоловіків волохатою</dd>
  <proof/>
  <dd>
    Це ж очевидно...
  </dd>
</dl>

2

(9 відповідей, залишених у HTML та CSS)

@FakiNyan, дякую завдяки вам мені вдалось написати отаку статтю Нотатки на курс "Вступ до комплексного аналізу"

Чи не підкажете як би мені розширити цей блок, так щоб туди ще й доведення вставити можна було? Дякую!

3

(9 відповідей, залишених у HTML та CSS)

Щиро дякую, сере! ви мені надзвичайно допомогли!

Таке додаткове запитання. а чи можна, щоб dt заповнювалось автоматично. тобто я хочу мати кілька класів як-от def_definition, def_theorem і т.д. І я хотів би щоб якщо я використовую def_definition, то в dt автоматом ставилось означення, а якщо def_theorem, то автоматом ставилось теорема.

Також, можливо має сенс копіювати код сюди також, щоб не треба було нікуди переходити і для пошуковиків сайт буде видніший. Ще раз дякую!

4

(9 відповідей, залишених у HTML та CSS)

У долученні ви можеете побачити як би я хотів, щоб виглядала таблиця такого змісту:

<table class=def_block>
<tr><th>Означення</th></tr>
<tr><td>Нехай $D \in C$ буде областю визначення і нехай $f : D \to C$ буде неперервною функцією. Первісна $f$ у $D$ це аналітична функція $F : D \to C$ така, що $F' = f$ у $D$.</td></tr>
</table>

Як визначити цей клас, def_block?

Необов'язково, щоб клас був саме таким, можливі інші варіанти, які ви вважваєте підхожими для цієї цілі.

Так, але все це марно, бо як виявилось за допомогою SFINAE видалити функцію з класу неможливо.

Дякую, старатимусь хоч іноді писати код:)

Зрозуміло, треба ::type пистаи наприкінці :)


Та, ні!

template <class T>
class I
{
public:
    virtual auto write(const T&) -> std::enable_if<std::is_copy_constructible<T>::value>::type = 0;
};

error: expected type-specifier

Так наче працює

template <class T>
class I
{
public:
    virtual auto write(const T&) -> std::enable_if<std::is_copy_constructible<T>::value> = 0;
};

class II : public I<int>
{
public:
    auto write(const int&) -> std::enable_if<std::is_copy_constructible<int>::value> override {
        cout  << __PRETTY_FUNCTION__ << endl;
    };
};
Console написав:

virtual std::enable_if<true, void> II::write(int&)

Питання, чому не можна так:

class II : public I<int>
{
public:
    void write(const int&) override {};
};

Як мені перевизначити в підкласі таку віртуальну функцію? І чи такі віртуальні функції можуть бути взагалі?

template <class T>
class I
{
public:
    virtual auto write(const T&) -> std::enable_if<std::is_copy_constructible<T>::value> = 0;
};

10

(4 відповідей, залишених у C/C++)

Чому б не викласти десь у HTML форматі. Наприклад тут https://codeguida.com/

Оце я неуважний! Там const тре!

А так:

#include <vector>
#include <algorithm>

template <class ED>
struct EdgeData1 {
    bool operator<(const EdgeData1<ED>& other) { return indexTo < other.indexTo; }
    int indexTo;
    ED edgeData;
};

template <class ED>
struct EdgeData2 {
    int indexTo;
    ED edgeData;
};
template <class ED>
bool operator<(const EdgeData2<ED>& l, const EdgeData2<ED>& r) { return l.indexTo < r.indexTo; }

std::vector<EdgeData1<int>> v1;
std::vector<EdgeData2<int>> v2;

void main() {
    std::is_sorted(cbegin(v1), cend(v1));
    std::is_sorted(cbegin(v2), cend(v2));
}

Трошки зменшив код, щоб не доводилось прокручувати.

Так працює:

template <class ED>
struct EdgeData {
    EdgeData(int indexTo, const ED& edgeData) : indexTo(indexTo), edgeData(edgeData) {}
    EdgeData(int indexTo, ED&& edgeData) : indexTo(indexTo), edgeData(move(edgeData)) {}
    int indexTo;
    ED edgeData;
};
template <class ED>
bool operator<(const EdgeData<ED>& l, const EdgeData<ED>& r) { return l.indexTo < r.indexTo; }

а так ні:

template <class ED>
struct EdgeData {
    EdgeData(int indexTo, const ED& edgeData) : indexTo(indexTo), edgeData(edgeData) {}
    EdgeData(int indexTo, ED&& edgeData) : indexTo(indexTo), edgeData(move(edgeData)) {}
    bool operator<(const EdgeData<ED>& other) { return indexTo < other.indexTo; }
    int indexTo;
    ED edgeData;
};

Помилка - страшне багатошарове повідомлення через використання std::is_sorted

14

(2 відповідей, залишених у C/C++)

Вам потрібно оголосити одновимірний масив, який у вас здається вже є, це - double x[100];

По мірі введення матриці, ви додаєте у відповідний елемент цього масиву щойно введений елемент. Тобто, якщо ви ввели елемент a(i)(j), то, припускаючи, що перший індекс це рядок, вам треба додати щойно введений елемент до x(j), тобто

x[j] += a[i][j];

Наприкінці вам треба пройтись масивом x у звичайному циклі for і вибрати індекс найбільшого елемента. Це і буде індекс стовпчика з найбільшою сумою елементів.

15

(0 відповідей, залишених у C/C++)

const uint32 trianglesCount = output.TrianglesPositions.size() / 3;
for (uint32 i = 0; i < trianglesCount; ++i) { ... }

тут мені довелось приводити тип, а хотілось би цього не робити. Можна в першому рядку використати auto, але тоді приводити тип потрібно у другому. Чи є альтернатива?

const auto trianglesCount = output.TrianglesPositions.size() / 3;
for (uint32 i = 0; i < (uint32)trianglesCount; ++i) { ... }

Розумію, що можна спробувати викрутитись за допомогою, але такий підхід не завжди зручний

for (auto i : ...) { ... }

Поки писав, до мені дійшло, що можна так, хоча не так читно як попередні варіанти:

const auto trianglesCount = output.TrianglesPositions.size() / 3;
for (auto i = trianglesCount - 1; i >= 0; --i) { ... }

16

(1 відповідей, залишених у C/C++)

Використайте третій параметр

istream& getline (istream& is, string& str, char delim);

Якщо в у вас роздільник це '\t', то якось так

        const char delim = '\t';
        ifstream team("RealMadrid.txt"); 
        vector<base> bases;
        while(team)
        { 
            bases.push_back();
            getline(team, bases.back().name, delim); 
            string tmp;
            getline(team, tmp, delim);
            bases.back().years = stoi(tmp);
            ....
        };

там можуть виникнути артефакти через endl в іменах починаючи з другого, але це має бути не складно побороти.

Ну на швидкість це вплине радше позитивно, бо судячи з цього

document.getElementById("myBtn").addEventListener("click", function(){
    document.getElementById("demo").innerHTML = "Hello World";
});

використовується функція, а не рядок, наприклад, "onmouseenter_color(" + r + "," + c + ")", який потім треба розпарсити.

18

(4 відповідей, залишених у Інше)

0xDADA11C7 написав:

Ви можете написати листа на мейл.

Я написав йому приватне повідомлення, але може цей форум у нього зареєстрований на не основний імейл. Сумніваюсь, що він мене ігнорує. Тому якщо хтось може дати йому знати якось, то це було б добре.

misha_bondar_2012 написав:

Як у вас могла бути спільна справа, якщо Ви навіть контакту не маєте?

У мене його скайп, але він там не з'являється.

19

(4 відповідей, залишених у Інше)

Вітаю, маю скайп користувача, але він там не з'являється, і на форумі не активний вже місяці чотири. Чи має хтось інші його контакти, бо в нас була спільна справа, яка заглухла на певний час, а зараз вже  можна продовжувати, а зв'язок встановити не можу.

20

(3 відповідей, залишених у PHP)

Можна спробувати якось так:

$wordplace = fetch_all(...);
echo '<script>';
echo 'var shirt = ' . json_encode($wordplace ) . ';';
echo '</script>';

Здається якщо отримувати кортежі з БД не по одному а всі разом, то якраз повертається масив.

або в один рядок:

print "{column: ". $row['col'].", direction: ".$row['direction'].", row: ".$row['row'].", wordLength: ".$row['wordLength']."},";