编译器编译一个\'io_service_\'变量,显示为:不能出现在常量表达式中
|
我创建了一个ServerService命名空间,用于包含类名称server_datetime。 Server_datetime类作为Boost示例的教程,但是我通过使用模板参数将io_service(boost :: asio :: io_service)和端点(tcp :: endpoint(tcp :: v4(),SIZE_DATA))对象插入模板来改进了server_datetime类。我遵循以下示例:
using boost::asio::ip::tcp;
namespace ServerService{
template<typename Service, typename Endpoint>
class server_datetime {
public:
server_datetime(){
acceptor_(service_, endpoint_);
for(;;)
{
tcp::socket socket(Service);
acceptor_.accept(socket);
std::string message = make_daytime_string;
boost::system::error_code ignored_error;
boost::asio::write(socket, boost::asio::buffer(message),boost::asio::transfer_all(), ignored_error);
}
}
std::string make_daytime_string(){
std::time_t now = std::time(0);
return std::ctime(&now);
}
virtual ~server_datetime();
private:
tcp::acceptor acceptor_;
Service service_;
Endpoint endpoint_;
};
}
主要功能称为server_datetime类,如下所示:
#include \"server_datetime.hpp\"
using namespace std;
using boost::asio::ip::tcp;
int main() {
const boost::asio::io_service io_service_;
const int SIZE_DATA = 13;
ServerService::server_datetime<io_service_, tcp::endpoint(tcp::v4(),SIZE_DATA) > server;
cout << \"\" << endl; // prints
return 0;
}
通过编译器编译主函数后,编译器显示错误为:
..\\src\\connectk.cpp: In function \'int main()\':
..\\src\\connectk.cpp:10: error: \'io_service_\' cannot appear in a constant-expression
..\\src\\connectk.cpp:10: error: \'boost::asio::ip::tcp::v4()\' cannot appear in a constant-expression
..\\src\\connectk.cpp:10: error: a function call cannot appear in a constant-expression
..\\src\\connectk.cpp:10: error: template argument 1 is invalid
..\\src\\connectk.cpp:10: error: template argument 2 is invalid
..\\src\\connectk.cpp:10: error: invalid type in declaration before \';\' token
没有找到相关结果
已邀请:
3 个回复
辽躺
您忘记了(),应为:
迪擅哨乘傅
琶竞捆栓