You are not logged in. This forum allows only logged in users to post. If you want to post in the forum, please log in.
Download
Desenvolver
Conta
Download
Desenvolver
Login
Forgot Account/Password
Criar Conta
Linguagem
Ajuda
Linguagem
Ajuda
×
Login
Nome de acesso
Senha
×
Forgot Account/Password
Estado tradução de Português
Category:
Software
People
PersonalForge
Magazine
Wiki
Pesquisa
OSDN
>
Pesquisar Software
>
System
>
Networking
>
CLX C++ Libraries
>
Fóruns
>
開発者
>
スコープ解決演算子について
CLX C++ Libraries
Descrição
Project Summary
Developer Dashboard
Página da Web
Developers
Image Gallery
List of RSS Feeds
Activity
Statistics
Histórico
Downloads
List of Releases
Stats
Código Fonte
Code Repository list
Subversion
Visualizar Repositório
Tíquete
Ticket List
Milestone List
Type List
Lista de componentes
List of frequently used tickets/RSS
Submit New Ticket
Communication
List of Forums
ヘルプ (2)
公開討議 (19)
開発者 (24)
News
Fóruns:
開発者
(Thread #21892)
Return to Thread list
RSS
スコープ解決演算子について (2009-03-03 12:22 by
cielquis
#42273)
Criar tíquete
「clxで、変数をホストのバイトオーダーからネットワークのバイトオーダーに
変換するhtons()というスタンダードライブラリにある関数を使用しているのですが、C++の名前空間の外側、つまり、大域的という事で、
::htons()
と、スコープ解決演算子::を使用しているのですが、darwinでは、これはマクロの為、エラーになっていました。Xcodeのビルドのプリプロセスで確認いたしました。」
http://qwik.jp/objc20-reading/30.html
上記への対応.
当初,大域空間で定義されている関数を呼び出すときは,::f() のような形で記述していたが,上記のような問題が発生するようなので f() と記述する事とする.比較的最近に実装したものは,上記のようなスコープ解決演算子は付けなくなっていたので,これを機に統一する事とする.
RE: スコープ解決演算子について (2009-03-15 00:02 by
cielquis
#42550)
Criar tíquete
何故グローバルな名前空間で定義されている関数を呼び出すときに,スコープ解決演算子を使用していたのかを思い出した.クラス内に同名のメソッドがある場合,引数が違ってもグローバル空間に定義されている関数を探しに行ってくれないからだった.
udp::socket, tcp::socket, tcp::acceptor, icmp::scoket, ssl::socket, ssl::acceptor 辺りでこの問題が出てくる.対象となる関数は,connect(), accept(), bind(), send(), recv() 辺り.
なので,以下の関数をコールするときはスコープ解決演算子を付ける事とする.
::connect(), ::bind(), ::listen(), ::accept(), ::send(), ::recv()
これ以外の関数のグローバル名前空間へのスコープ解決演算子は取り払う.尚,sendto() と recvfrom() は,send_to(), recv_from() のような規則でメソッド名を付けているのでこちらはスコープ解決演算子は付けない.
Responder a
#42273