Добрый день.
Транслятор VS 2017.
Пишу простой код:
#include <fstream>
using namespace std;
void setposition(ifstream* ifsptr, streampos pos, ios::seek_dir d = ios::beg) {
ifsptr->clear();
ifsptr->seekg(pos, d);
}
int main() {
ifstream ifs;
ifs.open("a.txt");
setposition(&ifs, 0, ios::beg);
return 0;
}
Если выставить опцию С++14, то все транслируется.
Если выставить опцию С++17, то возникает ошибка:
error C2039: seek_dir: не является членом "std::basic_ios>"
Вопрос:
Спасибо.
UPD1:
А что делать, если требуется, чтобы код транслировался и на более старых версиях, например на VS 2010? Опять дефайнами исправлять косяки?
UPD2:
Господа/товарищи/братья/сестры не надо стирать слова "Добрый день" и "Спасибо" в моих или чьих-либо других постах. Никакой стаковерфлоу не отменяет правил эпистолярной вежливости в русском языке. Так же как не отменяет он правил грамматики, пунктуации, стилистики и личной гигиены.
void setposition(ifstream* ifsptr, streampos pos, ios::seekdir d = ios::beg)
{
Годится и для /std:c++14
.
C самого начала стандартизованных времен (С++98) в стандартной библиотеке С++ типом для задания направления всегда был именно std::ios_base::seekdir
. Никаких проблем с использованием std::ios_base::seekdir
в более ранних реализациях у вас не будет. Вы должны были использовать именно этот тип с самого начала.
А тип std::ios_base::seek_dir
всегда являлся deprecated. Этот тип существовал в std::ios_base
на "птичьих" правах только для обратной совместимости с достандартными реализациями.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Верные ли утверждения: 1Полная специализация есть для функций и классов 2
Преподаватель сказал, что строка for (int j = i - step; j >= 0; j = j - step) портит всю суть сортировки Шелла и сказал переделать таким образом, чтобы использовать...