abs () объявлен в заголовке cmath. Итак, если вы хотите использовать abs (), вам необходимо включить в свой код cmath, например:
#include
#include
using namespace std;
int main()
{
float someVariable = abs(-4.22);
cout << someVariable;
}
следующим образом:
double abs (double x);
float abs (float x);
long double abs (long double x);
double abs (T x); // additional overloads for integral types
Так как Вы используете мерзавца, вот некоторые мои методы, которые могут или не могут работать на Вас:
Это звучит сложным, но это - действительно радость для осуществления (по крайней мере, для меня), поскольку мерзавец так быстр и так чувствует себя хорошо в выполнении всех этих шагов.
Я знаю о двух защитимом и обычно опытном использовании питания фиксировать:
Мелкозернистые фиксации, где Вы фиксируете рано, часто фиксируют, и в маленьких блоках. Система не может быть в хорошем состоянии в каждой фиксации. Главное преимущество этой практики - то, что Вы получаете очень четкое представление о том, что было изменено и когда, и с системой как darcs или командой как git-rebase
у Вас есть шанс при "избирательном подходе к выбору" фиксаций, которые интересуют Вас.
Надежные фиксации, где Вы фиксируете только, когда система находится в твердом теле, например, это не только, создают, но также и передают регрессионные тесты.
В проекте большой группы своего рода надежная схема является необходимостью, хотя можно все еще сделать мелкозернистые фиксации локально и обнародовать их только когда в твердом теле.
После многих лет я последовательно замечал, что большинство студентов и другие новички боятся фиксировать и не фиксируют достаточно часто. Для моих собственных проектов я склонен использовать мелкозернистый подход, и для больших проектов я обычно несу по крайней мере два ответвления, делая фиксации твердой системы на одной и мелкозернистые фиксации на других.
Другие ответы хороши для работы с центральным репозиторием, используемым несколькими людьми. Когда я использую мерзавца, у меня обычно есть свои собственные частные ответвления для материала, я продолжаю работать, и я склонен делать много маленьких фиксаций. При разработке я нахожу, что это полезно, поскольку я могу быстро отследить в обратном порядке, когда я понимаю, что должен был сделать что-то по-другому, и у меня также есть относительно подробный журнал того, что я сделал.
Затем, когда я, имеют что-то готовое для продвижения в восходящем направлении (т.е. протестированный, зарегистрированный и т.д.) Я продвигаю как единственная фиксация, избегая помехи в центральном repo. Лучший из обоих миров.
Проверьте ПРАКТИЧЕСКОЕ РУКОВОДСТВО Управления исходным кодом от Eric Sink. В прошлый раз, когда я прошел его, это было сфокусировано главным образом на централизованном VCS, но существует все еще много хороших вещей там.
Я обычно фиксирую после того, как новая опция была добавлена, или после того, как зарегистрированное исправление ошибки было завершено. В основном, одна вещь за один раз. Это помогает откатывать изменения.
Что касается сообщения о фиксации, я перечислю добавленную функциональность для новой возможности. Для исправления ошибки я включаю идентификатор ошибки от нашей базы данных ошибки.
При работе над маленьким персональным проектом это, вероятно, имеет значение меньше, потому что Вы знаете свой код, Вы помните то, что Вы сделали, приблизительно когда и т.д. - по крайней мере, я делаю.
Но для больших проектов со многими разработчиками, это imo важный для
При просмотре истории измененных файлов и Вы пытаетесь узнать, когда конкретная проблема появилась, хорошие комментарии помогут Вам найти правильную фиксацию намного более быстрой.
Путем подавления количества фиксаций также будет легче проверить изменения, связанные с новой возможностью, вернуться "функция" или объединить его в другое дерево.
/B
Когда Вы фиксируете изменение, удостоверяются, что код создает и в основном функционален. Это - невоспитанность для фиксации кода, который повреждает сборку. Если Вы работаете в среде команды нет ничего худшего, чем проверка последнего кода, который найдет, что это повреждает приложение или даже не компилирует.
Что касается к комментариям, дайте грубое описание относительно того, что код делает и идеально почему Вы сделали его. это позволяет Вам выяснить то, что регистрация обходится без необходимости прочитать код
Для персональных проектов я склонен делать фиксации так же часто столь практичными, который может быть пару раз часом, как это позволяет мне возвращаться вовремя к предыдущему "снимку", когда я понимаю, что спускался по неправильному маршруту.
Для многопользовательских проектов это будет зависеть от правил, Вы не можете фиксировать что-то, пока Вы не достигли тех целей. Лично я склонен фиксировать, когда я могу записать, что комментарий вроде "исправляет этот билет", или "реализует эту функциональность".
Что касается комментариев, я поместил сводку изменений или ссылку Wiki или билет. Код и таким образом разность должны быть зарегистрированы достаточно для сообщения подробностей.