powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Конец дня = мозни набекрень
6 сообщений из 6, страница 1 из 1
Конец дня = мозни набекрень
    #39738693
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет!

Чо то я туплю, но никак не могу заставить работать перегруженную foo

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
template <typename T>
class A
{
public:
	A(void) = default;
	~A(void) = default;

	T* m_param;

	void foo(void)	{	}

	void foo(void(*pfn)(T*))	{	}

	template <typename ...ArgsT>
	void foo(void(*pfn)(T*, ArgsT...), ArgsT ... Args)	{	}
};

int APIENTRY _tWinMain(HINSTANCE, HINSTANCE, LPTSTR, int)
{
	A<int> a;

	a.foo([](int*){});			// ok
	a.foo([](int*, bool){}, false);		// error C2661: 'A<int>::foo': no overloaded function takes 2 arguments

	return 0;
}



Что не так ?

--------------------------------------------------------------
o(O_O)o
...
Рейтинг: 0 / 0
Конец дня = мозни набекрень
    #39738695
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мозни = мозги

пора закругляться видимо
...
Рейтинг: 0 / 0
Конец дня = мозни набекрень
    #39738720
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как обычно: написал на форум и разобрался сам

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
template <typename T>
class A
{
public:
	A(void) = default;
	~A(void) = default;

	T* m_param;

	void foo(void)	{	}

//	void foo(void(*pfn)(T*))	{	}

	template <typename Fn, typename ...ArgsT>
	void foo(const Fn& fn, ArgsT ... Args)
	{
	}
};

int APIENTRY _tWinMain(HINSTANCE, HINSTANCE, LPTSTR, int)
{
	A<int> a;

	a.foo([](int*){});			// ok
	a.foo([](int*, bool){}, false);		// ok

	return 0;
}
...
Рейтинг: 0 / 0
Конец дня = мозни набекрень
    #39738776
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CerebrumКак обычно: написал на форум и разобрался сам
Не зря говорится: "Правильно заданный вопрос содержит половину ответа"

Я неоднократно начинал писать в форум и в процессе написания находил ответ. Много тем сюда не попало )))
...
Рейтинг: 0 / 0
Конец дня = мозни набекрень
    #39738811
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ненавижу такое:

работаешь на всех парах, все идет нормально, работа в удовольствие. Вроде как не первый год с языком знаком, за плечами опыт и знания, казалось бы, что может пойти не так? Ну даже если и пойдет, то проблема, как правило, забарывается на раз, два. Но порой встретится какая мелкая фигня, о которую ты, работая на всех парах, споткнешься и что не делаешь, компилятор все время недоволен. Начинаешь перепроверять - все в порядке... вроде. Но ошибку никак не удается понять и устранить.

Проходит полчаса... час... бесплодных попыток, посещают мысли податься на форум, потому что все что можно уже загуглил и перечитал буквари

Потом находишь проблему и устраняешь.
Блин, как я мог так тупить!

Ладно, проехали.

Но самое большое, что я ненавижу в подобной ситуации - это то, что пока ты боролся с этой мелочью, ты растерял половину контекста, который держал в голове, когда еще работал над основной задачей!
Потому что пока разбирался с проблемой, забил себе "кэш" всяким мусором, который к задаче не относится.

И теперь проблема решена, но встает вопрос - так, на чем я там остановился...?

И приходится заново восстанавливать всю картину рабочего контекста задачи, но в таких вот перепадах часто забываешь что хотел еще вот это сделать или вон там что-то поправить/добавить и вспоминаешь только, когда в коде выстреливать начинает.
Если бы не эта... хрень о которую ты споткнулся, ты бы это никогда не упустил бы, т.к. это на автомате всегда, либо в контексте решаемой задачи.

Все это документировать перед тем как начать разбираться с проблемой получится наврятли, т.к. ты не знаешь насколько затянется поиск решения. Да и что конспектировать то? Как правило, это какая-то повседневная рутинная мелочь, про которую ты помнишь и делаешь на автомате, но когда тебя выбивает из колеи "необъяснимый" мелкий косяк, то ты так же с легкостью можешь про нее забыть.

У этой проблемы есть и наболее тяжелая форма - это переключение между проектами.

Пока ты работаешь над одним проектом, прилетает задача поправить/добавить что-то по мелочи в другом проекте, про который ты уже забыл полтора месяца как или больше. Естественно что ты про этот старый проект помнишь уже смутно, а в текущем проекте все свежо, но что делать - переключаешься - и в конце концов ты ни там, ни здесь. Приходится заново включаться в оставленный проект, восстанавливая большую картину рабочего контекста.
...
Рейтинг: 0 / 0
Конец дня = мозни набекрень
    #39738888
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cerebrum,

Поэтому я стараюсь приводить все проекты в состояние, когда они укладываются в голове. Понимаю, что есть огромные проекты (у нас на работе, например, пакет из нескольких продуктов, у которых у каждого 20+ лет разработки), но надо стараться систематизировать знания о проекте. Или обладать умением быстро извлекать эти знания из кода. Я не вижу иных вариантов, да и этот, в общем-то, замечателен :)

Ты должен управлять проектом, а не проект тобой. Как только что-то пошло не так - надо остановиться и привести вещи в порядок. Чтобы действия были предсказуемыми: ты написал код, он сделал именно то, что планировалось, при этом ничего не сломав. Кто-то скажет, что так не бывает. Возможно, но надо стремиться к этому, потому что если не стремиться, обычным делом будет: "мы это сделали, и почему-то отвалилось всё тут, тут и вот тут, и я не понимаю, как так получилось ?!". Т.е. как минимум, вся схема в голове даёт быстрое понимание, откуда взялись те или иные баги (у меня вчера ружьё стало стрелять коробками с патронами, вместо пуль, как только я немного подправил логику сбора предметов, и я понял сразу, где баг, даже не смотря в код).
Поэтому, как только чувствуешь, что архитектура проекта утекает из понимания, самое время остановиться и снова взять власть над проектом
. Любое промедление и откладывание этого дела будет нарастать, как снежный ком, и как результат - проект может полностью уйти из-под контроля, что оставить его в рабочем состоянии после любых правок будет невозможно.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Конец дня = мозни набекрень
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]