Форум программистов, компьютерный форум CyberForum.ru

Корректность использования #ifdef для предотвращения компиляции - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Next http://www.cyberforum.ru/cpp-beginners/thread1190440.html
Ребят я не очень понимаю вот такую строчку: comp* next . (comp - это название структуры ,но что делает next не понимаю)
C++ Осуществить сортировку текстового файла по длине строк циклическим слиянием/разделением Осуществить сортировку текстового файла циклическим слиянием/разделением (по длине строк). Файл читается группами по n строк в динамический массив указателей на строки, группа сортируется и записывается в промежуточный файл. Имя промежуточного файла генерируется в виде Fnnnn.txt, где nnn-номер группы. Затем файлы сливаются по "олимпийской"- по два в один. http://www.cyberforum.ru/cpp-beginners/thread1190439.html
Подсчитать количество строк в тексте, который набирается с клавиатуры C++
Подсчитать количество строк в тексте, который набирается с клавиатуры. Добавлено через 1 минуту Почему после нажатия на кнопку Enter не определяется кол-во строк. #include "stdafx.h" #include <conio.h> //Для _getch() #include <stdio.h> //Для getchar() #define eof -1
C++ Определить принадлежит ли точка треугольнику
Определить,принадлежит ли точка M(X,Y) треугольнику,образованном осями Ох и Оу и прямой,которая пересекает эти оси в точках Х и Y. Буду очень благодарен за любую помощь.
C++ Ошибка error C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead http://www.cyberforum.ru/cpp-beginners/thread1190428.html
#include <iostream> #include <cstring> #include <fstream> #include<string> #include<iomanip> using namespace std; struct link {
C++ Определить номера строк матрицы Определить номера строк матрицы R, хотя бы один элемент которых равен с, и элементы этих строк умножить на d. Закрыто. Дубль во Фрилансе подробнее

Показать сообщение отдельно
relationer
33 / 0 / 0
Регистрация: 07.11.2013
Сообщений: 118
27.05.2014, 21:31     Корректность использования #ifdef для предотвращения компиляции
Здравствуйте!

Есть шаблон Vector.

Он определен в файле vector.hpp. Для выноса кода шаблона в отдельный файл я использовал метод включения cpp-файла в hpp-файл.
Т. е.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// vector.hpp
#ifndef VECTOR_HPP
#define VECTOR_HPP
template<typename T>
class Vector
{
    //...
}
#include "vector.cpp"
#endif
// end of vector.hpp
// vector.cpp
template<typename T>
Vector<T>::something() { }
//...
// end of vector.cpp
Однако очевидно, что подобный cpp-файл нельзя компилировать.
Вопрос. Корректно ли использовать следующую конструкцию в cpp-файле:
C++
1
2
3
#ifdef VECTOR_HPP
// ...
#endif
Дополнительных object-файлов для подобных cpp мой компилятор (g++ 4.8.2) не создает.
Однако, возможно, это только его особенность. Что происходит на других компиляторах и корректен ли такой лайфхак вообще?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 16:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru