int lenght = file.tellg ( ); // ок
file.tellg ( ) + 2; // не ок
file.tellg ( ) - 2; // не ок
// MSVC
#include <fstream>
#include <iostream>
void main () {
std::ifstream file ( "input.txt" );
if (!file.is_open ()) {
return;
}
auto sp = file.tellg ();
/*
using pos_type = typename _Traits::pos_type;
*/
file.seekg ( 0, std::ios_base::end );
int lenght = file.tellg ();
file.seekg ( lenght - 3, std::ios_base::beg );// [?]/r/n
//! file.seekg ( file.tellg () - 3, std::ios_base::beg )
/*
file.tellg () - 3;
Severity Description Line Code Project File Suppression State
Error (active) more than one operator "-" matches these operands: 29 E0350 test1
*/
char ch;
file.get ( ch );
std::cout << ch;
}
operator+
с int.operator+
с каким-то streamoff, а с int - ничего нет. Там, правда, не указано, что есть опретор преобразования к int, так что это, наверно, тоже лучше не использовать. 2 + telg()
На gcc вроде прокатывает без предупреждений.