Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Next http://www.cyberforum.ru/cpp-beginners/thread1190440.html
Ребят я не очень понимаю вот такую строчку: comp* next . (comp - это название структуры ,но что делает next не понимаю)
C++ Осуществить сортировку текстового файла по длине строк циклическим слиянием/разделением Осуществить сортировку текстового файла циклическим слиянием/разделением (по длине строк). Файл читается группами по n строк в динамический массив указателей на строки, группа сортируется и... http://www.cyberforum.ru/cpp-beginners/thread1190439.html
Подсчитать количество строк в тексте, который набирается с клавиатуры C++
Подсчитать количество строк в тексте, который набирается с клавиатуры. Добавлено через 1 минуту Почему после нажатия на кнопку Enter не определяется кол-во строк. #include "stdafx.h" #include...
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

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

27.05.2014, 21:31. Просмотров 316. Ответов 3
Метки (Все метки)

Здравствуйте!

Есть шаблон 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) не создает.
Однако, возможно, это только его особенность. Что происходит на других компиляторах и корректен ли такой лайфхак вообще?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru